Parameters, templates and Workflow conditions
Typed parameters, Calculated field templates and Workflow decision conditions are separate mechanisms. A text template is not executable code. A Workflow condition reads only the supported execution context. Preserve these boundaries when moving a value between an editor, Session override and task condition.
Typed parameter definitions
Definitions may declare name, type, description, required, sensitive, overridable, scopes, default, enum, minimum, maximum and maxLength. Up to 100 definitions are supported with unique names. Names begin with a letter, have up to 64 characters and may use letters, numbers, underscores, dots and hyphens. Prefixes sys. and dova. are reserved.
| Type | Accepted value |
|---|---|
string |
Text; default maximum length 4,000 unless another valid limit is defined. |
integer |
A JSON integer; boolean is not an integer for this contract. |
number |
A finite JSON number, excluding boolean, infinity and NaN. |
boolean |
JSON true or false, not equivalent-looking text. |
datetime |
Zoned ISO text normalized to UTC at second precision. |
json |
Bounded JSON, up to 32,768 bytes in the normalizer. |
secret |
A validated protected reference rather than a cleartext value. |
Description is limited to 300 characters. Max length can be 1–32,768, minimum cannot exceed maximum, and enum has 1–50 normalized candidates and is unavailable for JSON/Secret. A sensitive parameter must use Secret; marking an ordinary string sensitive does not turn it into protected custody.
Resolve value layers
The declared precedence is definition default → global → environment → worker → task. A later allowed layer replaces an earlier value. Scopes and Overridable constrain substitutions, and Required checks the resolved value. Inspect provenance in the preview when the value differs from your expectation.
For a laboratory REGION string, use default NORTH, an allowed environment override SOUTH, and an allowed task override CENTRAL. Confirm the task layer wins only when its scope and override rules permit it. Do not remove those restrictions just to make an unauthorized substitution succeed.
Calculated field text templates
${customer} substitutes a field and ${param.region} substitutes a parameter. The result is text, bounded to 4,000 characters. A recognized missing identifier becomes an empty string. A dotted field name is not automatically navigation through a nested object. Use a separate typed conversion when a numeric result is required.
Workflow JSON condition operators
| Operator | Meaning |
|---|---|
eq, ne |
Equality/inequality against the expected JSON value. |
gt, gte, lt, lte |
Ordered comparison; incompatible types evaluate false. |
in, not_in |
Membership/absence in an expected list. |
contains |
Containment in a supported string/list/dictionary value. |
exists, truthy |
Reference existence or truth value, without a required comparison value. |
References are limited to parameters.name, variables.name, tasks.id.status and tasks.id.outputs.name. Missing references make ordinary comparisons false. Numbers stay JSON numbers; the condition does not promise automatic conversion from text.
{"all":[
{"ref":"parameters.RUN_MODE","op":"eq","value":"full"},
{"ref":"tasks.load.status","op":"eq","value":"succeeded"}
]}
load must be the actual task identifier. Do not assume a universal output field such as row count. Groups all/any contain 1–20 expressions; not negates one expression. Depth over five, trees over 40 nodes and comparison values over 4,096 bytes are rejected.
Test decisions step by step
- Define
RUN_MODEas String with allowedfullandsamplevalues. - Create a small published laboratory Session and Workflow.
- Add a Decision with a true expression over
parameters.RUN_MODE. - Inspect the false branch generated automatically by the UI as the direct negation of the true expression.
- Publish and run with full, then sample, as two distinct attempts.
- Verify the selected branch and safe resolved parameters in each attempt.
Workflow task types include Start, Session, Decision, Timer and End; link behavior includes Success, Failure, Always and Expression. Always does not remove all parent/eligibility rules. Inspect references, types and parameter provenance when a decision differs from expectation.