The SiteSync module enables you to promote content between your Sitefinity CMS website environments. The module facilitates one-way transferring of content from your content authoring environment all the way up to your live environment. SiteSync can be used as a standalone solution for content promotion and can also be part of a Continuous Deployment (CD) setup, where it serves as a content transfer mechanism. For more information see Best practices: Difference between SiteSync and Export / Import.
NOTE: SiteSync can be configured to promote content only in one direction. You cannot use SiteSync in scenarios where you need to keep two environments in bi-directional sync (content editing happening on both environments and using SiteSync to push content to each other). This scenario is not supported as it might result in overwriting content and data loss.
What problem it solves
When editing content directly on the Live environment, you risk causing performance degradations due to ongoing publish operations that result in cache invalidation. In addition, manipulating your content on Live, including editing, deleting, and modifying the content structure, may lead to irreversible changes. In contrast, if you perform all content-related activities on a dedicated environment, you ensure streamlined process and identifying potential problems before they occur on the live environment.
SiteSync removes the need for content to be generated or edited on the live website environment. When you leverage SiteSync, you adhere to best practices to have your content generated on a separate environment and then promoting it to live. Using SiteSync makes content promotion much easier than the conventional approach of using database backup and restore between environments. You can have your content promoted between multiple environments, for example Content authoring -> Test -> Staging -> Production.
How it works
SiteSync transfers content using web service communication. Once you configure SiteSync, the module starts listening to the Sitefinity CMS system events that are thrown when you work with content. Content is marked as pending for sync, and gets stored in a dedicated object, called SiteSync log entry. All log entries are grouped by content type, and listed in the SiteSync module, which enables you to selectively promote the desired content to the configured destination environment (also called target). Once you click the sync button (or a scheduled sync gets executed), the source Sitefinity CMS environment initiates a service call to the target environment and pushes the content. In this process SiteSync handles the content on the target environment in the following manner:
- All newly created items on the source environment are created on the destination environment as well - with the same Id and content as on the source environment.
- In the case content is updated on the source environment and this item already exists on the target environment, its content will be updated to match the content of the promoted item.
- When an item is deleted or unpublished on the source environment, SiteSync will delete the item from the destination environment upon sync
- If you need SiteSync to sync structure in addition to content, the module syncs any Dynamic module structure changes, such as new modules, and modified and added fields
Once the promotion operation finishes, the web service response contains the sync status, including any errors that may occur during sync. The response is displayed on the SiteSync module summary screen.
The following diagram illustrates the process: