Job & Dashboard Reference
Arguments schema
Reference every argument definition field: types, required, default, enum, widget pickers, connector_slot, and ${VAR} substitution.
Arguments schema
Tasks and job templates declare typed parameters under an arguments: key. Task arguments are supplied at run time and read in JSONata as arguments.<name>. Template-level arguments are collected when a Job is created and substituted into the job snapshot wherever ${VAR} placeholders appear. For template arguments the schema is enforced by parseJobDefinition in src/job-parser.ts; this page covers both surfaces because the definition fields are the same.
For guidance on choosing arguments over job_config, see Template arguments.
Definition
arguments:
day:
type: string
description: Which dataset to process
required: true
enum: [day1, day2, day3]
limit:
type: number
default: 100
dry_run:
type: boolean
default: false
issue_keys:
type: string[]
default: [FP-14, SUP-1234]Definition fields
| Field | Type | Required | Description |
|---|---|---|---|
type |
string | No | string, number, boolean, string[], or number[]. Template arguments default to string when omitted; any other value is rejected. |
description |
string | No | Human-readable description shown in run and create dialogs. |
required |
boolean | No | Whether the value must be provided at runtime (default: false). |
default |
any | No | Value used when the caller omits the argument. |
enum |
array | No | Restrict allowed values to this list. |
widget |
string | No | UI picker hint for the Create Job and Run Task dialogs (see below). |
integration |
string | No | With widget: integrated_account, filter accounts by integration slug for multi-integration connectors. |
connector_slot |
string | No | With picker widgets, the connector slot name whose mapping supplies the connector (for example truto, mongo). |
Array types (string[], number[]) render as comma-separated inputs in the dialogs. At runtime they coerce to real arrays — JSON arrays and comma-separated strings are both accepted from CLI and API.
UI widgets
widget changes only how operators pick a value — never the runtime behavior.
Default (no widget)
A plain input matching the type, or a dropdown when enum is set.
integrated_account
Use whenever an argument holds an integrated-account connector's integrated_account_id UUID, so operators pick from a searchable account list instead of pasting UUIDs:
sf_integrated_account_id:
type: string
required: true
widget: integrated_account
integration: salesforce
connector_slot: truto
description: Truto integrated account ID for the customer's Salesforce orgThe picker lists accounts from the connector mapped to connector_slot and optionally filters them by integration. A per-integration catalog connector normally uses the account pinned in its connector config, so omit the argument there unless the task deliberately lets operators choose.
mongo_collection_record
Use when the value should be selected from a MongoDB collection through a mapped Mongo connector slot:
TRUTO_MIGRATION_JOB_NAME:
type: string
required: true
widget: mongo_collection_record
connector_slot: mongo
mongo_collection: migration_jobs
mongo_value_field: name
mongo_label_field: name
mongo_description_fields: [tenant_id]
mongo_search_fields: [name, tenant_id, source_id, destination_id]
mongo_sort:
updated_at: -1
created_at: -1
name: 1| Field | Description |
|---|---|
mongo_collection |
Mongo collection to query. |
mongo_value_field |
Field path stored as the argument value. |
mongo_label_field |
Field path shown as the primary label. |
mongo_description_fields |
Field paths shown as muted metadata. |
mongo_search_fields |
Field paths searched with a case-insensitive Mongo regex. |
mongo_filter |
Base Mongo filter merged into every picker query. |
mongo_sort |
Mongo sort object. |
The picker requires mongo_value_field to exist and be non-empty on a row, so sparse rows do not consume a page without producing selectable options.
${VAR} substitution
Template-level arguments are baked in at job creation: the UI collects the declared values, then every ${VAR_NAME} placeholder in the template YAML is replaced before the Job is saved. A template must explicitly map each argument into the task nodes that need it:
arguments:
SF_OBJECT:
type: string
required: true
tasks:
sync_meetings:
task: my/sf-to-hs
arguments:
sf_object: ${SF_OBJECT}Task-node arguments: values are otherwise passed verbatim — they are not JSONata. Writing sf_object: arguments.SF_OBJECT delivers the literal string "arguments.SF_OBJECT" to the task.
Runtime access
Read arguments in any JSONata config expression:
config: |
{
"connector": "blob_source",
"method": "read",
"args": {
"blob": "data/" & arguments.day & "/records.csv",
"format": "csv"
}
}Arguments, variables, and job_config
- Arguments — caller-supplied or defaulted runtime values that vary between runs.
- Variables — static values authored in the task YAML with a fixed
value. job_config— Job settings that stay editable between runs. See job_config schema.
Never put credentials in any of these — connector configuration carries secrets.
Related
- Template arguments — designing create-time parameters
- Job template YAML — where template arguments live
- job_config schema — the runtime-editable alternative