Field Types
EntryLayer fields combine a base field_type with config, validation metadata, form rules, source metadata, and field-group permissions.
When to use this page
Section titled “When to use this page”Use this page when composing CREATE_FIELD, UPDATE_FIELD, SET_FIELD_VALIDATION, CLEAR_FIELD_VALIDATION, or EXTRACT_VARIANT_FIELDS payloads.
Supported field types
Section titled “Supported field types”| Field type | Best for | Editable in submissions | Common SQL API commands |
|---|---|---|---|
Text | Free text, notes, identifiers, formula display values | Yes unless read-only | CREATE_FIELD, UPDATE_FIELD, SET_FIELD_VALIDATION |
Numeric | Amounts, counts, percentages, quantities | Yes unless read-only | CREATE_FIELD, SET_FIELD_VALIDATION, SET_PRIMARY_KEYS |
Date | Date or date-time values | Yes unless read-only | CREATE_FIELD, SET_FIELD_VALIDATION |
Checkbox | Boolean true/false values | Yes unless read-only | CREATE_FIELD, SET_FIELD_VALIDATION |
Select | Controlled choice lists and cascading selections | Yes unless read-only | CREATE_FIELD, UPDATE_FIELD, SET_FIELD_VALIDATION |
Label | Static or computed display text | Usually no | CREATE_FIELD, UPDATE_FIELD |
Variant | Snowflake VARIANT, OBJECT, or ARRAY source values | No by default | EXTRACT_VARIANT_FIELDS |
Base field contract
Section titled “Base field contract”{ "title": "Reviewer Comment", "field_type": "Text", "required": false, "description": "Visible helper text", "code": "reviewer_comment", "config": {}, "values": []}Use SQL API Contracts for the full Field, FieldValidation, and DraftStructure contracts.
Text is the most flexible field type.
| Config | Type | Default | Description |
|---|---|---|---|
multiline | boolean | false | Show as a textarea instead of a single-line input. |
default_value | string | none | Pre-filled value for new submissions. |
read_only | boolean | false | Display as non-editable. |
primary_key | boolean | false | Mark as a key field used for row identification. |
Common mistakes: using Text for a controlled status value that should be a Select, or putting secrets/default credentials into default_value.
Numeric
Section titled “Numeric”Numeric fields are used for quantities, counts, amounts, percentages, and other number-based values.
| Config | Type | Default | Description |
|---|---|---|---|
format | string | none | Display format: currency, percentage, or plain. |
range_min | number | none | Minimum allowed value. |
range_max | number | none | Maximum allowed value. |
round_precision | number | none | Decimal places to round to. |
default_value | string or number | none | Pre-filled value. |
read_only | boolean | false | Display as non-editable. |
primary_key | boolean | false | Mark as a key field used for row identification. |
Validation keys commonly used with Numeric fields: required, min, max, precision, and format.
Date fields support date-only input or date-and-time input.
| Config | Type | Default | Description |
|---|---|---|---|
include_time | boolean | false | Show time entry alongside the date. |
default_value | string | none | Pre-filled ISO date or date-time value. |
read_only | boolean | false | Display as non-editable. |
primary_key | boolean | false | Mark as a key field used for row identification. |
Common mistakes: sending locale-formatted dates in automation instead of ISO-style values.
Checkbox
Section titled “Checkbox”Checkbox fields store true/false values.
| Config | Type | Default | Description |
|---|---|---|---|
default_value | boolean or string | false | Pre-checked state. |
read_only | boolean | false | Display as non-editable. |
primary_key | boolean | false | Mark as a key field used for row identification. |
Select
Section titled “Select”Select fields represent controlled choice lists.
| Config | Type | Default | Description |
|---|---|---|---|
allow_multiple | boolean | false | Allow selecting multiple values. |
default_value | string | none | Pre-selected value. |
read_only | boolean | false | Display as non-editable. |
primary_key | boolean | false | Mark as a key field used for row identification. |
The SQL API accepts either string options:
{ "values": ["Open", "Closed", "Needs Review"]}or object options:
{ "values": [ {"title": "Open", "value": "O"}, {"title": "Closed", "value": "C"} ]}Stored values are normalized to objects with at least title and value. Invalid option elements return ERR_VALIDATION instead of persisting malformed field metadata.
Label fields are display-oriented, not input-oriented.
| Config | Type | Default | Description |
|---|---|---|---|
default_value | string | none | Starting display text when used as a static label. |
read_only | boolean | true | Labels are display-oriented in the live form. |
primary_key | boolean | false | Supported by the shared field model but rarely useful for labels. |
Variant
Section titled “Variant”Variant fields are used for Snowflake VARIANT, OBJECT, or ARRAY source values.
| Config | Type | Default | Description |
|---|---|---|---|
read_only | boolean | true | Variant fields are treated as display-only in the live form. |
default_value | string | none | Rarely used; generally source-driven. |
primary_key | boolean | false | Available in the shared field model but uncommon for Variant. |
Use EXTRACT_VARIANT_FIELDS to create operational fields from known JSON paths. SQL API extraction does not discover paths by sampling source rows.
Validation example
Section titled “Validation example”CALL ENTRYLAYER.API.SET_FIELD_VALIDATION( 'proj_123', 'field_amount', PARSE_JSON('{"required":true,"min":0,"max":100000,"format":"currency"}'));