Saltar a contenido

ADR 013: Schema SDUI

Estado

Aceptado — 2026-06

Contexto

Cortex emitía widgets CUS sueltos desde builders dispersos (emit.py). Se requiere un árbol unificado para forms, tables, layouts y actions bajo un mismo modelo de composición.

Decisión

  1. SchemaNode en core/cortex_core/spi.py como árbol discriminado (field, column, layout, widget, action).
  2. framework/cortex_framework/schema/SchemaBuilder, emisión JSON, validación.
  3. Widget CUS schema renderizado por SchemaRenderer en @cortex/panel-shadcn.
  4. Builders de alto nivel (ResourceBuilder, FormBuilder, …) siguen generando widgets tipados; Schema es fundamento para layouts y composición.

Conceptos Schema

Concepto Cortex
Componentes de schema SchemaBuilder.components()
Form fields FormBuilder → widget form
Table columns TableBuilder → widget data-table
Layouts (Grid, Section, Tabs, Wizard) LayoutBuilder + widget wizard
Widgets WidgetDefinition + hook register_widgets

Consecuencias

  • Nuevos layouts y widgets custom deben preferir nodos Schema.
  • api-table / json-form permanecen alias legacy un release más.