Documentation

Why an Expression Engine?

Node configuration in BizFirst is defined at design time in the workflow editor — but the actual values those fields need are often only known at runtime: the name of the employee being onboarded, the approval threshold calculated earlier in the workflow, the API key stored in a vault.

The expression engine bridges design-time configuration and runtime data by allowing config fields to contain expression directives — placeholders like @{input:employeeId} or @{secret:ApiKey} that are resolved to real values before the node executor runs.

Data Flow — The Big Picture

flowchart LR subgraph DT["Design Time"] WE["Workflow Editor\nSets field values as expression strings"] end subgraph RT["Runtime"] T1["Tier 1\n@{'{'}env:·{'}'} @{'{'}secret:·{'}'}\nResolved before input exists"] INP["Input bag populated\nUpstream outputs mapped in"] T2["Tier 2\n@{'{'}input:·{'}'} @{'{'}output:·{'}'} @{'{'}var:·{'}'}\nResolved after input is ready"] EX["Node Executor\nReceives fully resolved config"] OUT["Output stored\n@{'{'}output:nodeKey.*{'}'}\nAvailable downstream"] end DT --> T1 --> INP --> T2 --> EX --> OUT style DT fill:#181d33,stroke:#2a3060 style RT fill:#111425,stroke:#2a3060 style T1 fill:#1e2640,stroke:#6c8cff,color:#e2e8f0 style INP fill:#162d22,stroke:#34d399,color:#e2e8f0 style T2 fill:#221c3e,stroke:#a78bfa,color:#e2e8f0 style EX fill:#2d2616,stroke:#fbbf24,color:#e2e8f0 style OUT fill:#162d22,stroke:#34d399,color:#e2e8f0 style WE fill:#1e2640,stroke:#6c8cff,color:#e2e8f0

System Architecture

Data Bags

Named containers that hold data at runtime. Input bags, output bags, memory variables, config bags — each with a specific lifecycle and scope.

Read more →

Expression Syntax

The @{directive:key} and {{directive:key}} syntax. What directives exist, how they resolve, and the three evaluator kinds.

Read more →

Evaluation Pipeline

Two-tier evaluation: Tier 1 at config-load (env/secrets), Tier 2 after input is ready (runtime data). Why two tiers and exactly when each runs.

Read more →

Node Field Policies

The NodeFieldDescriptor system — how each field declares its expression, data flow, HIL, and security behaviour. The manifest and override system.

Read more →

Who Should Read This

Related documentation The Node Lifecycle documentation covers where the expression pipeline fits within the full execution flow. Read that first if you need the architectural context.