app:field:create
Adds a new field to a table and applies the migration
Options
| Name | Type | Description |
|---|---|---|
org_id | string | The organization ID that owns the schema |
schema_id | string | The name of the schema (database) that contains the table |
table | string | The name of the table to add the field to |
field | Field | The field definition to create |
↳ name | string | Is the column / input name. Must be unique within its table or input set and must not collide with reserved record fields (id, created_at, updated_at, deleted_at, version, version_owner_id) when used as a DB column. |
↳ type | FieldType | Is the field's data type. See the FieldType constants for the supported values. |
↳ required | bool | Marks the field as non-nullable / mandatory. Inserts and updates that omit a required field (and provide no Default) are rejected. |
↳ default | any | Is the value applied when a record is inserted (or a form is rendered) without an explicit value for this field. A nil or zero value means no default is applied. |
↳ related_table | string | Is the name of the target table for relation fields. Required when Type is has_one, has_many, or belongs_to; ignored otherwise. |
↳ related_field | string | Is the name of the foreign-key field on the related table. Used only by has_many to identify which column on RelatedTable points back to this record. |
↳ description | string | Is a human-readable explanation of the field's purpose. Surfaced in generated documentation and GUI tooling; has no effect on storage or validation. |
↳ options | []string | Is the ordered list of permitted string values for FieldTypeEnum. Required for enum fields; ignored for all other types. |
↳ label | string | Is the UI label for the field. Renderers fall back to Name when empty. |
↳ option_labels | []string | Is a parallel array to Options that carries display labels for enum values. Index i in OptionLabels labels Options[i]. When empty, the value itself is shown. |
↳ default_source | string | Declares the origin of a dynamic default value when the server has resolved one into Default. Allowed sources: "now", "today". The set is closed and intentionally excludes identity sources (org_id, user_id), which are injected as workflow vars by the server, never surfaced as form fields. |
↳ relation_label_field | string | Names the field on the related record that the UI should show as the dropdown label. When empty, the renderer falls back to the related record's id. Only meaningful when Type is a relation. |
Outputs
| Name | Type | Description |
|---|---|---|
field | Field | The newly created field definition |
↳ name | string | Is the column / input name. Must be unique within its table or input set and must not collide with reserved record fields (id, created_at, updated_at, deleted_at, version, version_owner_id) when used as a DB column. |
↳ type | FieldType | Is the field's data type. See the FieldType constants for the supported values. |
↳ required | bool | Marks the field as non-nullable / mandatory. Inserts and updates that omit a required field (and provide no Default) are rejected. |
↳ default | any | Is the value applied when a record is inserted (or a form is rendered) without an explicit value for this field. A nil or zero value means no default is applied. |
↳ related_table | string | Is the name of the target table for relation fields. Required when Type is has_one, has_many, or belongs_to; ignored otherwise. |
↳ related_field | string | Is the name of the foreign-key field on the related table. Used only by has_many to identify which column on RelatedTable points back to this record. |
↳ description | string | Is a human-readable explanation of the field's purpose. Surfaced in generated documentation and GUI tooling; has no effect on storage or validation. |
↳ options | []string | Is the ordered list of permitted string values for FieldTypeEnum. Required for enum fields; ignored for all other types. |
↳ label | string | Is the UI label for the field. Renderers fall back to Name when empty. |
↳ option_labels | []string | Is a parallel array to Options that carries display labels for enum values. Index i in OptionLabels labels Options[i]. When empty, the value itself is shown. |
↳ default_source | string | Declares the origin of a dynamic default value when the server has resolved one into Default. Allowed sources: "now", "today". The set is closed and intentionally excludes identity sources (org_id, user_id), which are injected as workflow vars by the server, never surfaced as form fields. |
↳ relation_label_field | string | Names the field on the related record that the UI should show as the dropdown label. When empty, the renderer falls back to the related record's id. Only meaningful when Type is a relation. |
Example
name: Add a field to a table
actions:
- name: created
component: app:field:create
vars:
org_id: "{{ var.org_id }}"
schema_id: content
table: articles
field:
name: summary
type: text
outputs:
field: "{{ created.field }}"