Forms
Forms
A form definition configures which columns (verticals), datasets, and services power a form component. Each vertical maps to a rendered column in the form layout and can contain sections (collapsible groups) or a flat list of field references.
Field names referenced inside verticals/sections must match keys defined in the Fields configuration.
"createIssueForm": {
"verticals": [
{
"name": "column1",
"sections": [
{
"id": "basicInfo",
"title": "Basic Information",
"fields": [
"issue_title",
"issue_desc"
]
}
]
},
{
"name": "column2",
"fields": [
"issue_priority",
"issue_state"
]
}
],
"datasets": [
"contextNode"
],
"services": [
"fetchIssueTypes"
],
"edit": {
"services": [
{ "name": "updateIssue" }
]
}
}
Form properties
| Property | Type | Required | Description |
|---|---|---|---|
verticals | array | yes | Ordered list of column definitions rendered left-to-right in the form. Each entry is a Vertical. |
datasets | array<string> | yes | Dataset definition name references that provide the graph/node data context. Field values are resolved against these datasets. |
services | array<string> | no | Service definition names called eagerly on form load to fetch initial data into the graph before fields are resolved. |
deferredServices | array<string> | no | Service definition names called lazily after initial load. Useful when a service depends on a value only available after the form has first rendered. |
edit | object | no | Configuration applied when the form is saved in edit mode. See Edit. |
Vertical properties
Each entry in verticals defines one column in the form layout.
| Property | Type | Required | Description |
|---|---|---|---|
name | string | yes | Unique name for this column, used to reference it from the verticals list. |
title | string | no | Optional display title for the column. |
sections | array | no | List of Section objects that group related fields under collapsible headers. Use either sections or fields, not both. |
fields | array | no | Flat list of field references rendered directly in the column without grouping. Use either fields or sections, not both. |
Section properties
Sections group fields within a column under a collapsible header.
| Property | Type | Required | Description |
|---|---|---|---|
id | string | yes | Unique identifier for the section within the form. |
title | string | no | Header label displayed in the section's toggle bar. |
collapsed | boolean | no | When true, the section starts collapsed. Defaults to false (expanded). |
hidden | boolean | no | When true, the section and all its fields are hidden. Can be driven dynamically via visibility. |
visibility | object | no | Controls section visibility based on another field's value. See Visibility. |
fields | array | no | Ordered list of field references to render inside this section. |
Section visibility
| Property | Type | Description |
|---|---|---|
dependsOn | string | The name or id of the field whose value controls this section's visibility. |
dependsOnValue | string or array<string> | The value(s) the dependsOn field must match for the section to be shown. Any other value hides the section. |
Field reference
Each item in a vertical's fields array or a section's fields array is a string reference to a field definition key.
| Value | Type | Required | Description |
|---|---|---|---|
| field key | string | yes | The key of the field definition as declared in the fields configuration. |
Edit properties
| Property | Type | Description |
|---|---|---|
services | array<object> | List of services called when the form is saved in edit mode. Each object has a name property with the service definition name to invoke (typically a PATCH or POST service). |
Edit services example
"edit": {
"services": [
{ "name": "updateIssue" }
]
}