After Setting up environments for a Space, you can determine which models and content entries are synced to your main environment.
To get the most out of this tutorial, you should have already have the following:
- Builder Admin permissions in a space with an Enterprise plan
- More than one environment
With Live Sync, models and content are by default linked across environments. Linked models and content sync in real time so if you make model updates in the parent environment, the other environments reflect those changes.
However, you can turn off Live Sync for a model or content and work on that model or content independent of your main environment. Then you can push your changes to the main environment when you're ready.
Make sure to manually migrate webhooks so that you can ensure that the environment-specific URLs are correct.
To get changes from a child environment to the main environment, see Pushing changes from a child environment.
The following diagram shows that Live Sync only goes one way, from the main environment to child environments. When Live Sync is on, child environments reflect changes in the main environment.
- Go to Settings.
- On the Environments tab, enter the environment where you'd like to turn off Live Sync. Note that you can only turn off Live Sync in child environments.
- In the environment, go to Models.
- Click on the Model you'd like to unlink.
- On the upper right of the Model, click the down arrow next to the Linked indicator and select Turn Off Live Sync.
- In the confirmation dialogue that opens, click the Turn Off Live Sync button. The Linked indicator changes to Unlinked.
The following video demonstrates turning off Live Sync for a model.
- Go to Settings.
- On the Environments tab, enter the environment where you'd like to turn on Live Sync. Note that you can only turn on Live Sync in non-prod environments.
- In the environment, go to Models.
- Click on the Model you'd like to unlink.
- On the upper right of the Model, click the down arrow next to the Unlinked indicator and select Turn On Live Sync.
- In the confirmation dialogue that opens, click the Turn Off Live Sync button. The Unlinked indicator changes to Linked.
The following video demonstrates turning on Live Sync for a model.
You can turn off Live Sync to work on content and models independent of your main environment. Then you can push your changes to the main environment when you're ready.
To turn off Live Sync for content, do the following:
- Go to Settings.
- On the Environments tab, enter the environment where you'd like to turn off Live Sync.
- In the environment, go to Content.
- Click on the content entry you'd like to unlink.
- In the Visual Editor, at the top, click the down arrow next to the Linked indicator and select Turn Off Live Sync.
- In the confirmation dialogue that opens, click the Turn Off Live Sync button. The Linked indicator changes to Unlinked.
The following video demonstrates turning off Live Sync for a content entry.
- Go to Settings.
- On the Environments tab, enter the environment where you'd like to turn off live sync.
- In the environment, go to Content.
- Click on the content entry you'd like to link.
- At the top of the Visual Editor, click the down arrow next to the Unlinked indicator and select Turn on Live Sync.
In the confirmation dialogue that opens, click the Turn On Live Sync button. The Unlinked indicator changes to Linked.
When you turn on Live Sync, all unpushed changes in the child environment are overwritten. If you want to keep your changes in the child environment, you must push to your main environment first.
The following video demonstrates turning on Live Sync for a content entry.
Pushing, which is a manual process, gives you full control over when and how your changes are propagated so that you can carefully review updates before pushing them to the production environment.
Pushing is a manual process of copying updates in the following ways:
- from a child environment to the main environment
- from a child environment to another child environment
If you push unlinked content to the main environment, Builder links the two environments. If however, you push from one unlinked sibling environment to another, the environments remain unlinked.
If you create or edit content or models in a child environment and want those changes in main, you must push in order of dependency:
- Push all changed models.
- Push dependent content, such as Symbols.
- Push the content.
You have to manually push changes from a child environment to the main environment—Builder does not push automatically from child environments to main.
The following diagram shows that pushing goes from a child environment to another child environment or to main:
When you have an unlinked model with changes that are ready for the main environment, you can push them from a non-prod environment to the main or a sibling environment.
Note that if more than one person is working on a model and someone pushes the changes in that content entry, all changes by all users are simultaneously pushed.
If you push unlinked models to the main environment, Builder links the two environments. If however, you push from one unlinked sibling environment to another, the environments remain unlinked.
- Go to Settings.
- On the Environments tab, enter the environment with the updated model whose changes you'd like to push up.
- In the environment, go to Models.
- Click on the Model you'd like to edit.
- Edit the model.
- On the upper right of the Model, click the down arrow next to the Unlinked indicator and select Push to
environment
. - In the confirmation dialogue that opens, click the Yes, Push Now button. Notice that the Unlinked indicator changes to Linked.
The following video demonstrates pushing changes from an environment named Dev to an environment named Prod and then shows going to Prod to display the changes.
When you're ready to push content changes, be aware that if more than one person is working on a content entry and someone pushes the changes in that content entry, all changes by all users are simultaneously pushed.
- Go to Settings.
- On the Environments tab, enter the environment with the updated model whose changes you'd like to push up.
- In the environment, go to Content.
- Click on the content entry you'd like to push.
- In the Visual Editor, at the top, click the down arrow next to the Unlinked indicator and select Push to Main.
- In the confirmation dialogue that opens, click the Yes, Push Now button. Notice that the Unlinked indicator changes to Linked.
If you've created a model in a child environment rather than your main environment, be sure to push the model first, then the content.
The following video demonstrates pushing content changes from an environment named Dev to an environment named Prod and then shows going to Prod to view the changes.
Resync resets an environment by copying all data from the parent Space to create a replica into the child environment, removing any changes made in the child environment before the process.
During the resync, Public API keys, global webhooks, and Space URLs remain unchanged, so you don't have to re-integrate with your app for the new environment.
Customize the resync process by selecting specific items from the parent Space to copy into the child environment while retaining environment-specific data, such as Custom Targeting and Users, in both environments.
To resync an environment:
- Go to Space Settings.
- Click Environments tab and select the environment you want to re-sync.
- Click the three dots next to the environment name.
- Select Resync from the menu.
- In the panel that appears, select or deselect the items you want to sync.
- Click Resync and confirm your choices.
When performing a resync, you can selectively include:
- Content: Folders, Views, All content entries and models
- Settings: Users, Custom Breakpoints, Custom Roles, Locale and Custom Targeting, Plugins
Settings that sync by default:
- Advanced Settings
- All Fonts
- Code Generation Instructions
- Design Tokens
Example use case:
- Sync all content entries and models from the parent environment while preserving users, roles, and environment-specific data in the child environment.
A video demonstration that shows this process in action:
If you're working with environments, make sure to read Environments and Permissions so you can specify which users can push from one environment to another.