Two syntaxes, not one
${'{'}...{'}'} and {{ ... }} are handled by two different resolvers. They are not interchangeable.
Hydra substitutes two syntaxes: ${'{'}...{'}'} for environment and secrets, {{ ... }} for job parameters.
Substitution happens before parsing. What the parser sees is the right column.
| in the manifest | source | what the parser sees |
|---|
Written by hand: interpolation is handled by two regular expressions, not by a model.
| form | resolved from | missing value | note |
|---|---|---|---|
${ENV:NAME} | process environment | error | same resolver as SECRET |
${SECRET:NAME} | secret store | error | never echoed in logs |
{{ param:NAME }} | job parameters | error, strict | a whole value can be replaced |
{{ env:NAME }} | process environment | tolerated | non-strict resolver |
${'{'}...{'}'} and {{ ... }} are handled by two different resolvers. They are not interchangeable.
Typing a password directly is refused here, as it is refused everywhere on this site.