DSL capability matrix — AuraBoot's arsenal

🌐 The complete write-up is in Chinese for now — see DSL 能力矩阵. This English page is a capability summary; the full narrative (with per-layer pain points and worked examples) is being translated.

The hard part of business software is never "can it be done" — it's that, once done, it can't be changed and every cross-cutting concern is yours to carry: state machines hardcoded in services, permission checks scattered across controllers, field linkage buried in front-end events.

AuraBoot's answer is a DSL: business "what" is described as versioned JSON; the runtime handles the "how". Pages, fields, commands, permissions, linkage, charts — all data, not hand-written code. One architecture, instantiated 1000 times.

All numbers below come from live source: DslRegistry.java, ComponentRuntimeManifest.ts, ActionRegistry.ts, LinkageEngine.ts.

The matrix

LayerWhat it removesScale (live)Read
Page kindsHand-writing a layout per page type5 (list / form / detail / dashboard / composite)Pages & Layouts
Block systemUI assembly scattered in JSX35 block types (BlockRegistry + kindPolicy)DSL Engine
Fields & componentsWiring a control + validation + dict + masking per field13 data types → 50 Smart componentsFields & components
Command engineRe-adding auth/validation/audit per feature8 command types · 16 operators · 14 autoSet · 5 risk levelsCommands
InteractivityField linkage / state-gated buttons in front-end events72 fn.* · 8 linkage actions · ~30 atomic actionsInteractivity
Data sourcesSQL/URL hardcoded into pages4 modes (static / model / namedQuery / api)DSL Engine
List & queryRe-building filters/aggregation per table16 operators · aggregation · 6 SavedView typesDSL Engine
Validation gatesConfig errors becoming "the UI looks off" ticketsStatic audit + platform validator (S-* codes)DSL Engine
Designer familyDisconnected low-code silos6 OSS designers, shared metadata shapeDesigner Overview
AI-nativeWrapping another API to call AIcmd_risk_level (L0–L4) + agent_hint per commandAI Overview

Where to go next