Skip to content

Runtime Values and Expressions

Runtime values let SchemAlign resolve dynamic values while a pipeline runs.

Named values

Named values are explicit.

academic_period={{current_term}}
file_name=graduates_{{current_term}}_{{yyyymmdd}}.csv

current_term should be defined as a named runtime value, not inferred from a generic artifact.

Value sources

Named values may come from:

Source Example
System value {{run_id}}
Date value {{yyyymmdd}}
SQL scalar value current_term = select current_term from academic_period
Upstream node-published value next_page_token = response.body.nextPageToken

Resolution timing

Expressions should resolve immediately before the node that uses them executes.

1. Node becomes ready.
2. SchemAlign loads the node config.
3. Expression-enabled fields are resolved.
4. The node receives prepared config.
5. The node executes.

A node runner should receive a resolved value:

{
  "url": "https://example.edu/report?academic_period=202640"
}

not the unresolved expression:

{
  "url": "https://example.edu/report?academic_period={{current_term}}"
}

Field-level expression support

Not every field should support expressions.

Good candidates:

  • URLs
  • query parameters
  • headers
  • SQL text
  • file names
  • file paths
  • email subject
  • email body
  • output artifact names

Fields that usually should stay literal:

  • node type
  • organization ID
  • project ID
  • credential selector
  • runtime selector
  • unsafe custom node runtime settings
  • most boolean toggles