Environments in Kontent.ai let you create snapshots of your content. These can be snapshots of your production environment or other environments.In non-production environments, you can safely change the content model and the content itself without affecting what your customers see in production.
Create an environment
Creating an environment means creating a copy of a selected environment, such as Production. You can use the copy for development and testing purposes.You can create as many environments as your subscription plan allows. If you need to perform content model changes, we recommend using a code-first content migration.You can create new environments in Project settings > Environments.
What happens when you create an environment?
By default, cloning a new environment means creating an exact copy of the source environment, including:
User access to the new environment depends on their role. When creating an environment, you can choose which users to activate by selecting their roles. Project managers have access to all environments.Webhooks are set as disabled in the new environment to ensure they don't trigger your production apps and services.
Get your environment ID
You use the environment ID to tell Delivery API where to look for content. An environment ID looks like this: 8d20758c-d74c-4f59-ae04-ee928c0816b.
In Kontent.ai, select a project and its environment using the two drop-downs at the top left.
In Environment settings > General, click to copy the Environment ID to your clipboard.
Select an environment in the UI
You can switch among the current project’s environments using the second drop-down at the top.You can also change environments in Project settings > Environments by clicking Go to environment.
Environment swap – mark environment as production
With environment swap, you can mark any non-production environment as your new production environment. When selecting environments, the new production environment will show at the top of the list.
Before you swap
Before you attempt to swap your environments, consider the following:
Implement a content freeze to prevent content changes in production, avoiding loss of produced content during the swapping process.
After testing in the non-production environment, mark it as production. Then, end the content freeze and resume content creation.
How to swap environments
To mark a non-production environment as production, go to Project settings > Environments, and click Mark as production.If you want to disable your webhooks in the new production environment, unselect Enable webhooks after the swap is done. Otherwise, the webhooks will be enabled.
Make sure to select which user roles to activate in the new environment.
Select an environment to work in.
What happens when you swap environments?
When you mark a non-production environment as production:
Environment names stay the same. Make sure to rename both the new production environment and the old now non-production environment to avoid confusion after the swap.
Content & assets, content model, and settings of the environments stay the same. This includes all items, assets, content types, snippets, taxonomies, collections, workflows, roles, languages, preview URLs, and webhooks.
You can choose to have webhooks enabled or disabled after the swap.
Environment ID and API keys stay the same for both environments. Your apps will continue to work without interruption. However, because the environment IDs and API keys are different for each environment, you need to update them in your app after the swap so the app uses the new production environment.
Users and their (in)active status are carried over from the original production environment. Those active in the original production are activated in the new production. Similarly, the inactive users remain inactive.
Users that exist ONLY in the original production environment will NOT appear in the new production environment after the swap.
Theenvironment marked as production is shown at the top of the list. Non-production environments such as Develop appear below.
Should you clone your project or create environments?Although project cloning and environments work similarly, they serve different purposes.
Use environments to prepare changes in a safe space before going into production. Your developers then take care of propagating those changes to production.
Use project cloning to create new standalone projects for content creation. For example, if you want to run projects based on a similar content model but with slightly different content.
Tip: Omit content item version history from the source environment for a faster cloning experience.
What about subscription plan limits?Your subscription plan limits for content items and assets count only for the environment with the largest number of content items and assets. Bandwidth and API calls count for all environments.
Avoid environment swap with custom asset domainsA custom asset domain is tied to a specific environment, regardless of whether the environment is marked as production. This means you can’t use a custom asset domain with the environment swap. After each swap, it'd be necessary to set up new HTTPS certificates.