config can contain a placeholder written ${...}. The server resolves placeholders just before the node runs, from message data, an allow-list of settings, or a secret store. This keeps secrets out of stored workflow definitions and lets one definition adapt to its input.
The placeholder syntax is pre-beta and may change before v0.1.0.
Sources
A placeholder that cannot be resolved against the message returns an empty value. If a node’s configuration cannot be resolved at all, that message fails like any other plugin failure, so retries and error routing apply.
Interpolation and types
- When a value is exactly one placeholder, such as
"${payload.count}", the type is preserved: a number stays a number. - When a placeholder is part of a longer string, such as
"Build ${payload.build}", the result is text. - To force a type, add a suffix:
${payload.secs:int}. Supported suffixes areint(orinteger),long,double(orfloat),bool(orboolean) andstring.
Environment and system values
Workflows can read only a short list of server values, because a server holds more than secrets:
Names that look like secrets (containing
PASSWORD, PASSWD, SECRET, TOKEN, CREDENTIAL, PRIVATE or KEY) stay blocked even if you list them. Use the secret store for those. Reading a name that is not allowed fails the message with a clear error.
Secrets
Write a secret asdecrypted:name. The default secret provider reads the environment variable YUKTA_SECRET_<NAME> (the name is upper-cased), so secret values never appear in a stored definition, in versions or in logs of the definition.
Expressions
Several plugins take an expression instead of a plain value: branch cases, filter predicates, mapper projections and loop exit conditions. Expressions read the message throughpayload and metadata: