Atlas Forms
Data Binding Overview
Data binding connects a form control to an external data source. When the form loads, bound controls read their initial value from the source. When the user changes a value, the binding writes it back. This two-way connection is defined in the binding property of each control in the form schema.
The Binding Object
// Minimal binding — reads from $json at path 'applicant.firstName'
{
"id": "first-name",
"type": "text",
"binding": {
"source": "$json",
"path": "applicant.firstName"
}
}
Source Types
| Source | What It Connects To | When to Use |
|---|---|---|
$json | The primary JSON data input passed to the form (initialValues) | Editing an entity — the main use case |
$context | The workflow execution context / memory store | Reading workflow variables, user identity, tenant info |
What Binding Does
- On form load: the engine reads
binding.pathfrombinding.sourceand sets the control's initial value - On user change: the engine writes the new value back to
binding.pathin the form's value map - On submit:
engine.getValues()returns the full map — including all bound field updates — for the submit handler to persist
Pages in This Guide
| Page | Topic |
|---|---|
| The Binding Object | Full type reference: source, path, readOnly, transform |
| $json Source | Binding to the primary JSON input |
| $context Source | Binding to workflow execution context variables |
| Path Syntax | Dot notation, array indexing, nested paths |
| Two-Way Binding | How onChange writes back to the bound path |
| Shared Binding Paths | Two controls on the same path (quick-pick pattern) |
| Binding Transforms | Pre/post-transform for format conversion |
| Dynamic Binding | Expression-based paths resolved at runtime |