Custom Data Field JSON Configuration Reference
Short reference: which keys in columns_json and front_json are controlled from the Custom Data model editor, and which only via the JSON toggle or the advanced reference.
Configuration levels
| Level | UI location | Stored as |
|---|---|---|
| Field type | Fields tab → field card | type, semantics (system_ref, association, options, …) |
| Data & validation | Fields → card details | default, unique, rules, non_editable |
| Display | Field display | width, align, hidden_in_table, modal_entity, columns_chooser, table_stylization, modal_entity_layout |
| Advanced | JSON or advanced reference | hidden_all, hide_in_filter, highlight_rules, widgets (MAP, SLIDER, …) |
Field card controls
| Control | JSON key | Purpose |
|---|---|---|
| Default value | default | Initial value on record create |
| Required | rules: ["required"] | Field must be filled |
| Unique values | unique | UNIQUE index in DB |
| View only | non_editable | Block inline edit in table |
| Validation rules | rules | email, url, digits, json, … |
Type-driven keys (system_ref, association) come from the selected Type, not separate card fields.
Field display tab
| UI setting | Storage |
|---|---|
| Field order (drag-and-drop) | columns_chooser[].position |
| Table toggle | columns_json[key].hidden_in_table + columns_chooser[].active |
| Card toggle | membership in front_json.modal_entity |
| Label / icon / color / editable | front_json.modal_entity[key].{label,icon,icon_color,editable} |
| Width / alignment | columns_json[key].{width,align} |
| Column total | columns_json[key].total_* + front_json.table_stylization.total_row |
| Row highlighting | front_json.table_stylization.colorize or highlight_rules |
| Record card groups | front_json.modal_entity_layout |
modal_entity_layout
{
"version": 1,
"display": "accordion",
"groups": [
{ "id": "main", "title": "Main", "fields": ["name", "status"] }
]
}
- Fields with Card enabled but no group go to Other.
- Without
modal_entity_layoutthe record card is a flat list (backward compatible).
System types (system_ref)
{
"type": "INTEGER",
"label": "Assignee",
"system_ref": "user"
}
Allowed values: user, skill_group, subject, chat_status, tag, priority. Stored as INTEGER id in DB.