Copy (or fallback) variables from one environment to the next

Loving the service so far — one thing I’ve noticed is that it’s more trouble than it should be to copy variable values from one environment (i.e., Development) to another (i.e., Production). Sometimes you need the same value in multiple environments.

As a bonus, it might be nice to fall back to the previous environment if something is missing.

Hey John,

I get where you’re coming from but this is a bit of a tricky one, as introducing functionality for copying values from one environment to another carries the risk of a developer accidentally making a value the same in different environments which could lead to unexpected behavior for an application.

If you wanted to avoid copying and pasting to each field, an option is to download an export of the secrets from one environment and import the contents of the export into other environments.

Just be sure to review the secret values before saving!

Cheers,
Ryan

There is currently functionality for copying values from one environment to the other (change a value, hit “save”, check other environments, hit “confirm”). A “copy from…” context menu item doesn’t seem like a stretch from that feature, no?

This is true across environments, but it’s very confusing that you need to duplicate all of the values from parent in branched config. UI looks like it’s branching. In git conceptually it’s not loosing data from parent. Currently:

test
|> test_e2e
|> test_ci
|> test_unit
|> test_perf

If I have the same NODE_ENV=test in test, I expect it to be in every one of the children. And I can override it in specific, like test_perf NODE_ENV=production. In practice I have dozens of variables, where I set them in the root and expect them to propagate, and deploy explodes with missing variable, so I go and copy it to 4 children. The only edge-case here is where I want to actually drop variable, but I’d rather mark it as “absent” similar to empty value, so things like: if (isUndefined(process.env.ANALYZE)) will still work.

@igas

Any values added to the root config are copied into branch configs by default and then you can edit the branch config as needed.

If a value in a branch config is different from the root (see the image below) you can Promote it to the Root Config. The value is then added to all Branch Configs and Personal Configs. If you want to revert back to the Root Config value you can select the Root value and then save which will change the diverged value back to the value of the secret in the Root config.

Being able to do this from compare would be much easier, i’ll add your use case to our feature request issue.

I hope this helps!

-James Heimbuck, Principal Product Manager