Mesh ContentRepository Implementation Branches

If a Mesh ContentRepository has an Implementation Version set, the publish process will create a new Mesh branch (forked off of the last used branch) and publish the objects into that new branch.

This allows frontend implementations to still use the old implementation, until deployment of the new implementation is finished from the CMS side.

1 Branch tags

Branches in Mesh will be tagged in order to allow frontend implementations to select the correct branch when accessing published data.

1.1 Tag family gcmsImplementationVersion

Tags of the tag family gcmsImplementationVersion specify the implementation version, the branch belongs to. Frontend implementations that support specific implementation versions should always take those tags into consideration when selecting the correct branch.

1.2 Tag family gcmsChannelUuid

Tags of the tag family gcmsChannelUuid specify the UUID of the Gentics CMS channel the branch relates to. Frontend implementations may use those tags to identify the branch. However it is recommended to use the branch’s hostname or name to identify the branch.

1.3 Tag family gcmsInternal

Tags of the tag family gcmsInternal are for internal use of the publish process and should not be used in frontend implementations.

2 Examples

The following example shows the Mesh branches for an implementation with one Node

Node name Testnode
Hostname master.com

and one channel

Node name Testchannel
Hostname channel.com

which are published into a Mesh ContentRepository with “Project per Node” enabled and “Implementation version” set to “V 1.0”.

The objects in the master node would be published into the branch (which can be identified by hostname and gcmsImplementationVersion tag):


{
    "name": "Testnode",
    "hostname": "master.com",
    "tags": [
        {
            "name": "V 1.0",
            "tagFamily": "gcmsImplementationVersion"
        }
    ]
}

The objects in the channel would be published into the branch:


{
    "name": "Testchannel_V_1.0",
    "hostname": "channel.com",
    "tags": [
        {
            "name": "V 1.0",
            "tagFamily": "gcmsImplementationVersion"
        },
        {
            "name": "d769f172d12e11e8b93600155df0380b",
            "tagFamily": "gcmsChannelUuid"
        }
    ]
}

When the “Implementation version” is updated to V 2.0 the publish process would create two additional branches:


{
    "name": "Testnode_V_2.0",
    "hostname": "master.com",
    "tags": [
        {
            "name": "V 2.0",
            "tagFamily": "gcmsImplementationVersion"
        }
    ]
}

and


{
    "name": "Testchannel_V_2.0",
    "hostname": "channel.com",
    "tags": [
        {
            "name": "V 2.0",
            "tagFamily": "gcmsImplementationVersion"
        },
        {
            "name": "d769f172d12e11e8b93600155df0380b",
            "tagFamily": "gcmsChannelUuid"
        }
    ]
}