Expressions reference
Two mechanisms read data in a node’sconfig: ${...} placeholders, resolved immediately before the node runs, and expressions, evaluated by plugins such as BRANCH, FILTER, mappers and loops.
Placeholders
A placeholder is${source} inside any string of a node’s config. When a value is exactly one placeholder the type is preserved; inside a longer string the result is text.
A placeholder that cannot be resolved against the message gives an empty value. A configuration that cannot be resolved at all fails that message like a plugin failure, so retry and error routing apply. A readable-list violation or a missing secret also fails the message.
Type suffix
${payload.secs:int} forces a type.
An empty value cast to a number is empty, not an error.
Readable environment values
A name containing
PASSWORD, PASSWD, SECRET, TOKEN, CREDENTIAL, PRIVATE or KEY (case-insensitive) stays blocked even when listed.
Secrets
decrypted:name reads the environment variable YUKTA_SECRET_ plus the name upper-cased, every character other than a letter or digit replaced by _. decrypted:db.password reads YUKTA_SECRET_DB_PASSWORD. A secret may be scoped: YUKTA_SECRET_S_<SESSION>__<NAME> (session) and YUKTA_SECRET_T_<TENANT>__<NAME> (tenant) are read before the global name. A name containing __ is refused. A secret that is not found fails the message with Secret not found for key. Reads are logged with key name, scope, workflow and node, never the value.
Expressions
Expressions are Spring Expression Language (SpEL) strings. A plugin passes the message as the root, sopayload and metadata are readable:
Evaluation rules
Allowed methods
On any receiver:equals, hashCode, toString, compareTo, length, size, isEmpty, isBlank, contains, containsKey, containsValue, get, getOrDefault, indexOf, lastIndexOf, charAt, startsWith, endsWith, equalsIgnoreCase, matches, substring, trim, strip, toUpperCase, toLowerCase, split, keySet, values, isPresent, orElse, intValue, longValue, doubleValue, booleanValue, name, ordinal, abs, max, min. Every method of a java.time.* type is allowed.
Script limits
JavaScript scripts (mapper plugin) run with system propertiesyukta.script.timeout-ms (default 10000), yukta.script.max-statements (default 50000000) and yukta.script.max-heap-bytes (default 0, no limit; enforced only on Oracle GraalVM).