Content lifecycle

  Written by The Jahia Team
   Estimated reading time:
7.0 7.1 7.2

In the context of managing content and configuration across multiple environments (development, integration, pre-production, production), this documentation presents the options available in Digital Experience Manager while providing recommended best practices in their implementation.

PREAMBLE

Digital Experience Manager, in the course of content creation and editing, guarantees the integrity of editorial content (staging, default workspace) and the isolation of published content (live workspace). This is accomplished in the same environment thanks to strictly compartmentalized system of two workspaces. This architecture makes it possible to create and edit content directly on the production environment without the risk of making non-finalized content available on the live site.

Content is created and edited directly on the production environment; then made available on other environments on an as needed basis.

The process to propagate content between environments is described later in this documentation.

CONTENT EXPORT AND IMPORT

Content of a site can be exported or imported through different ways. Every method offers advantages and drawbacks answering to different needs, especially in terms of automating, performances and granularity.

PLATFORM EXPORT/IMPORT

Export

An export at the system level can be carried out using the following steps:

  •  Export the Tomcat and the following folders: digital-factory-data and digital-factory-config
  •  Export of the datastore (only if the binary content is stored in the default file system)
  •  Export of the database

The order of these steps is important to guarantee data integrity.

Import

The following shows the procedure to restore from backup:

  •  Restore Tomcat
  •  Restore the digital-factory-data and digital-factory-config folders
  •  Restore the datastore (if applicable)
  •  Restore the database
  •  Modify the datasource definition in tomcat/webapps/root/META-INF/context.xml

In clustered instance the following values may need to be modified in /digital-factory-config/jahia/jahia.node.properties file:

  • processingServer must be set to true on the processing server (and only on this node)
  • cluster.tcp.bindAddress must be set with the IP address where the server will listen to TCP communication.
  • cluster.tcp.bindPort must specify the port used for the server TCP socket

EXPORT / IMPORT OF A SITE

Export

Documentation on Export

Digital Experience Manager provides the possibility of exporting an entire site or a specific arborescence. This export can be done in one of two ways:

  • Through calling a URL (available for automating backups)
  • Directly from the Back-Office

Import

Documentation on Import

In the same way, import can be done in one of two ways:

  • Placing the export ZIP file in the digital-factory-data/imports folder, if DX is started the site will be directly imported, otherwise the site will be imported on next startup
  • Directly from the Back-Office

PARTIAL IMPORT / EXPORT

Digital Experience Manager allows an export or import based on the subtree of a content node as well as a single node of the tree. This is a manual action that is started from, the Editor Mode or from one of the Manager UI (Content Manager, File Manager, etc).

To export a node and its subnodes; right click on the node in the Editor Mode and select “Export” from the menu. 

PartialImport.png

RECOMMENDATIONS AND LIMITATIONS

RECOMMENDATIONS

The environment for content contribution should always be the production environment:

  •  The automatic merging of content from multiple environments is not possible
  •  User Generated Content (comments, ratings, etc) can be created directly on the live workspace

This content can then be broadcast over different environments using methods described in this documentation.

LIMITATIONS

An exported content item will be compatible with an environment if:

  •  The version of the deployed modules in both environments are identical.

OR

  •  The modules deployed in this environment support the backwards compatibility of the node definitions. (See the Jahia Development best practice documentation).

PRACTICAL USE CASE

CONTENT INITIALIZATION

Initial creation of Content can be done in two different ways:

  •  Creation of the content in the testing environment, then export and subsequently importing into the Production environment.
  •  Direct creation in the Production Environment

Regardless of the method used, it is recommended to consistently keep content contribution in a single environment.

AUTOMATING CONTENT SYNCHRONIZATION FROM PRODUCTION TO OTHER ENVIRONMENTS

Several methods of export and import can be automated to allow sync of content from one environment to another.

Methodology

The automation of content replication is trivial and can use the same mechanisms that are outlined in the production server backup procedure

The automation of the replication procedure can be done as follows:

Export

Command wget
http://<Serverip>:<port>/cms/export/default/{siteKey}.zip?exportformat=site&live=true&sitebox={siteKey} --http- user=root --http-password={ROOT_PASSWORD} --auth-no-challenge 

Import

Copy the exported file to the digital-factory-data/imports folder on the destination platform.

Attention: To avoid duplication of content; Digital Experience Manager blocks any imports whose names conflict with any zip file name previously imported. It is needed to append a timestamp or version number onto the imported zip file.

The automated import of a site does not overwrite the previous version of the site if it still exists on this platform. It is necessary to remove the previous version first. This action can be automated using a groovy script.

How often to replicate

How often to replicate content depends on the needs of the particular organization. The following list shows common restrictions and constraints when choosing a replication schedule:

  •  Daily replication can result in increased restrictions or workload for developers and testers. This could result in loss of content used in integration/test environment
  •  Replication each week or month can induce too much latency, making it hard for developers to replicate issues found on other environments
  •  Ad-hoc replication is a manual action

A compromise must be found between these different restrictions and risks.

CONTENT RELATED TO ENVIRONMENT

The import of technical content via a module is made thanks to the src/main/import/repository.xml file in the module. The repository.xml file, containing the standard JCR data tree, can be automatically generated using a partial export of the content. (See the section on import methodology).