Browse the docs
Guides
Compare and promote environments
See which variables exist only in one environment and which differ, then copy chosen values from staging to production as a new version, with values hidden.
Last updated
On this page
Environments drift. A variable gets added to staging and forgotten in production, or two environments end up with different values where they should match. Environment comparison shows the differences by name and lets you copy chosen values from one environment to another.
Example. Kiteline is a fictional company. Before a release, Jonas compares
payments-api / stagingwithpayments-api / production. One variable exists only in staging, and Priya, who can edit production, copies it over.
Open the comparison
Open a project and choose Compare environments, or Compare in an environment's header. You need at least two environments. They can be in different projects.
Pick an environment on the Left and on the Right. Swap exchanges them.
Read the result
At the top, counters summarize the comparison:
- different: variables or fields present in both with different values;
- only in production, or in whichever environment: present on one side only;
- identical: present in both with the same value.
Below, the comparison goes file by file and field by field, with a differs or matches label on each row. It also notes when a file is marked for loading into the process environment on one side only, or when lines outside the fields, such as comments or sections, differ. A file that has no fields, like a plain text file, is compared as a whole.
Tick Differences only to hide everything that matches.
Values are hidden. Each row has a button to show the values on both sides. The counters and labels are computed in your browser, so the server learns nothing about which values match.
Copy values across
Tick the rows you want to bring over, or a whole file, and choose Copy → to production, or ← Copy to staging for the other direction. A confirmation reminds you that the previous values stay in the target's history, so you can go back to them.
The copy is saved as a new version of the target environment, signed by you. The source environment doesn't change. If the target already has the same values, there's nothing to copy, and the app says so.
You need the Editor role on the target environment, or to be an owner or admin. When the target looks like production, the confirm button is red, so it doesn't happen by accident.
Starting a new environment from an existing one
When you create an environment with New environment, you can start it as a Copy of another environment. That copies files, paths and notes, but not share links. With Variable names only, no values, the new environment gets the names without any values, for example to start production from development and fill in real values yourself.
Rolling back a copy
Copying is an ordinary save. If you copied the wrong values, open History on the target, find the version before the copy and choose Restore…. That saves the old state as a new version. See Versions and history.
What gets recorded
The new version in the target environment is recorded in the audit log with its author, like any other save. Values never appear in the log.