Our format for stack variables has been slightly updated to support some new use-cases and to improve security.
Starting today, variables in stack files must be a value to a key (no more free form variables making JSON or YAML invalid). Entire subsections can still be replaced, for example "environment_variables": "{{$variables}}"
.
The $
syntax will allow for a literal string escape, so anywhere where a number, object, or array should be replaced with a value, throw a $
in front of the variable name and Cycle will do a literal replacement during a build. Without the $
, the variable will still be treated as a string "identifier": "{{id}}"
.
Finally, the value of variables will not be embedded into build outputs anymore. This is to ensure that no secrets or keys are inadvertently leaked or made visible where they shouldn't be.
This change is breaking for some stacks
To update your stacks to ensure compatibility for your next build:
- ensure that any variables that shouldn't be strings are escaped with a
$
- ensure that any free-floating replacements/invalid JSON & YAML are removed.
If you have any questions, please leave a comment here or reach out to our team on slack!
Thanks, have a great weekend.