Live and Preview Configuration Cycle - BloomReach Experience - Open Source CMS

This article covers a Hippo CMS version 12. There's an updated version available that covers our most recent release.

20-06-2018

Live and Preview Configuration Cycle

The previous pages explained the different configuration elements of the HST configuration. We pretty much discussed all the node types using a running configuration example. Also the previous pages frequently mention the Channel Manager and Channel Editor to add new channels and modify existing channels in a runtime production environment. 

However they did not yet explain how it works with respect to:

  1. Making changes to a channel without having them directly live
  2. Working with multiple webmasters concurrently within the same channel.
Below describes the preview configuration cycle for CMS 12.0.0 and onward. In earlier CMS versions it was quite different so if you are on an older version, look up the documentation of the older version.

Preview configuration

In general, in a production environment, there is always a preview configuration for a channel, unless there have not yet been any webmasters that opened the channel in the Channel Manager. This typically is the case only after the first deployment or just or after first creation of a new site from a blueprint. In that case, the relevant configuration parts for site example are as follows:

Configuration with no preview yet:

/hst:hst:
  /hst:configurations:
    /example:
      /...:
        /hst:workspace:
  /hst:hosts:
    /dev-localhost:
      /localhost:
        /hst:root:
  /hst:sites:
    /example:

When a webmaster opens the channel example through the Channel Manager, then the live hst:workspace configuration gets cloned into a preview configuration to have a separate preview configuration:

Configuration with preview:

/hst:hst:
  /hst:configurations:
    /example:
      /...:
        /hst:workspace:
    /example-preview:
      hst:inheritsfrom: ../example
      /hst:workspace:
  /hst:hosts:
    /dev-localhost:
      /localhost:
        /hst:root:
  /hst:sites:
    /example:

Above can be seen, that below the hst:hosts or hst:sites nothing changes as a result of creating a preview. What has been added is a copy of the live workspace to hst:configurations/example-preview/hst:workspace and the node example-preview is marked to inherit from the example. The preview only has an hst:workspace, and inherits all non-workspace nodes from the live configuration (in CMS versions before 12.0.0, also the non-workspace nodes used to be copied).

All changes the webmaster now makes through the Channel Editor end up below the preview hst:workspace. If a webmaster changes something through the Channel Manager, certain parts of the configuration below the preview hst:workspace get locked by that webmaster. Since only parts of a channel configuration get locked, multiple webmasters can work in one and the same channel concurrently. Note thus that there is 1 single preview configuration shared by all webmasters and other CMS users who can preview a document. 

Multiple webmasters can modify one and the same channel concurrently. They all work in the same preview configuration

After a webmaster has made changes, they can 

  1. Publish changes, in which case their preview changes become live. In the stored HST configuration this effectively means that :
    • Locks from the webmaster are removed
    • Changed preview configuration is copied to the live configuration
  2. Discard changes, in which case their preview changes are deleted. In the stored hst configuration this effectively means that :
    • Locks from the webmaster are removed
    • Changed preview configuration is removed

Locking:

Locking of configuration nodes differ per configuration section and whether the nodes are in the hst:workspace or not. See chapter Locking for more details.

Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?