ADR 020: Campos de formulario v1¶
Estado¶
Aceptado — 2026-07
Contexto¶
Los formularios SDUI debían alcanzar paridad funcional con paneles admin tipo Filament antes de congelar el contrato v1 del framework.
Decisión¶
FormFieldTypeampliado encore/cortex_core/spi.pycon tipos básicos, layouts, archivos y avanzados (repeater, rich text, computed, visible_when).FormField.configpara metadatos por tipo sin romper el SPI en cada campo nuevo.- Emisión única en
framework/cortex_framework/forms/emit.py(schema + uischema + reglas). - Renderers en
packages/cortex-panel-shadcn/src/widgets/form/sobre JSON Forms 3. - Upload vía
POST /api/v1/uploadscon backend S3 (CORTEX_UPLOAD_*). FormDefinition.uischemaopcional para preservar layouts deFormBuilder(secciones, tabs, columnas).
Contratos destacados¶
- Select/radio/checkbox_list:
enumOptionsen UI schema. - Computed:
cortexComputeden JSON Schema; evaluación en cliente (applyComputedFields). - Visible when: reglas JSON Forms
SHOW/HIDE. - Repeater:
type: array+options.detailcon layout hijo.
Consecuencias¶
- Nuevos campos deben añadir tipo SPI + emisión + renderer + test en
test_form_emit.py. - Skins alternativas (
material,patternfly) no incluidas en v1. - Sin máscaras de input avanzadas en v1.