Fields & Smart components
🌐 The complete write-up is in Chinese for now — see 字段类型与 Smart 组件. This English page is a capability summary; the full narrative is being translated.
Building a full-field record form by hand is a chore per field: pick the control, configure validation, bind a dict, decide masking, wire reference lookup. Change the model once and the front end follows. AuraBoot folds it into declarations — declare what the data is, and the runtime gives you the right control, validation, dict, and masking.
13 data types
string · text · integer · decimal · boolean · date · datetime · json · enum · reference · computed · ai_text · money. (Length lives in feature.length, not inline string(120).)
50 Smart components (live registry)
The runtime manifest (ComponentRuntimeManifest.ts) registers 50 components — 40 general-purpose + 10 module-registered — proving the registry is open.
| Category | Count | Examples |
|---|---|---|
| Form inputs | 16 | input, textarea, select, multiselect, checkbox, radio, numberinput, switch, upload, richtext, formref, aifield, moneyinput, colorpicker, agenttoolpicker, guardrailseditor |
| Date/time | 6 | datepicker, daterange, timepicker, timerangepicker, date, datetime |
| Pickers | 7 | treeselect, cascadeselect, userselect, ownerselect, organizationselect, memberpicker, addressfield |
| Display | 7 | display, imagedisplay, table, list, ratingfield, progressfield, fileattachment |
| Interaction / Layout | 2 + 2 | button, navigation / form, layout |
| Module-registered | 10 | 9 decision blocks + 1 quoteops block |
Most fields need no component: the runtime infers it (a field with dictCode auto-uses SmartSelect; otherwise SmartInput). Name resolution: exact → lowercase → Smart-prefixed → registry fallback.
Virtual fields, Roll-Up, JSONB
- 3 virtual field types: read-only computed / materialized / transient.
- Roll-Up summary: parent field auto-filled from child aggregation (
SUM/COUNT/AVG/MIN/MAX), auto-recalculated by the command pipeline. - JSONB virtual fields: many logical fields in one JSONB column; full DSL parity with physical fields (render, list, 16-operator filter, sort, i18n, linkage, export). One-level path; no
unique/indexed.
Field features & masking
feature carries required/readonly/searchable/unique/indexed/length/pattern/precision etc. — declared on the model field, inherited by every page. Dicts (DYNAMIC/TREE) drive SmartSelect and carry extra.color/icon for semantic colors. Field-level masking (hide/partial/hash/custom) is evaluated by the five-layer permission engine.