Content staging

Staging allows you to easily transfer changes made to pages or objects from one Kentico instance to another Kentico instance (typically hosted on a different server). You can also perform complete synchronization of all pages and objects. All connected instances must use the same version of Kentico. Staging is particularly useful if you need to synchronize multiple environments during development, for example:

Development -> Testing -> Editing (staging) -> Live (production)

All pages stored in the content tree of websites can be synchronized. However, not all objects in Kentico support synchronization. Make sure you read through the What can be synchronized section for more information.

Staging on MVC websites

For websites created using the MVC development model, every “instance” within the staging topology consists of the following components:

  • The Kentico administration application used to manage content and objects
  • The MVC application that provides the live websites
  • One Kentico database shared by the applications

You can use staging without limitations. Configure staging between the Kentico administration applications, which then provide the transfer of data between the databases of the given instances. The MVC applications within individual staging instances then use the shared data to present the website.

Setting up staging

Configuring content staging – to allow synchronization, you need to configure the Kentico instances that you wish to connect.

Bi-directional content staging – explains how to configure servers to be both target and source servers at the same time. Allows transferring of changes in both directions.

Using X.509 authentication – learn how to secure the staging service using X.509 certificates.

Staging large files – Kentico supports staging of physical files stored as Page attachments and in Media libraries. Learn how to limit the maximum allowed size of synchronized files, and how to ensure synchronization of extremely large files between servers.

Content staging security – learn about the permissions that roles need to perform synchronization actions.

Troubleshooting staging – check for solutions to problems that can occur when using staging.

Synchronization

Synchronizing the content – explains how to transfer synchronization tasks to other servers.

Automatic content synchronization – set up the system to perform synchronization automatically.

Other

Exporting and importing sites – you can also manually transfer your content to other instances of Kentico using the export and import features.

What can be synchronized

Content staging supports synchronization of the following data:

  • Page data – pages in the website content tree.
    • Pages need to be on the same place in the content tree on both the source and target servers.
    • Timeout defined for pages that are part of a workflow is not synchronized for consistency reasons.
  • Page file attachments – if a page contains attachments or file fields, the files are synchronized together with the page.
  • Page relationships – relationships between pages are synchronized if the relationship type and both pages exist on the target server.
  • Page templates created for content-only (MVC) pages – synchronization is supported only for custom page templates (which are created from a default page template).
  • Workflow process – only published page versions are synchronized to the target server and both servers need to have the same workflow schemas defined.
  • Email feeds – when staging email feeds, we recommend setting the staging of child and binding objects to incremental to avoid overwriting individual email issues and their statistics.
  • Email widgets
  • Custom tables and their data.
  • Media libraries and the files and folders in them.
  • ACLs (page-level permissions)
  • Global objects – all global objects with the exceptions listed below.

Content staging does not support synchronization of the following data:

Warning

When you stage an object, the synchronization also includes all child objects and bindings (relationships with other objects) in most cases.

For example: A role is not assigned to any users in the development environment, but to 100 users on the target production server. If you synchronize the role object through staging, the users are removed from the role on the target server.

To avoid potential problems, we strongly recommend having mirrored content and consistent objects on all staging servers whenever possible. Developers can also customize the staging of child and binding objects to adjust the behavior according to your environment’s requirements.

Staging and ID values

Content staging cannot ensure that objects and pages have the same ID values after being transferred to a different environment. However, the synchronization process preserves GUID values. Use GUID fields if you need to identify pages or objects across multiple staging environments.