Architecture
Architecture at a Glance
From any data source to any UI, every layer is pluggable. Click any capability to jump to its docs:
ARCHITECTURE AT A GLANCE
Any data source, to any UI. Every layer is pluggable.
Nine layers from entry points to runtime: any data source at the bottom, DataProxy intercepting anything in the middle with security spanning the whole chain, AI embedded as a kernel capability, views and components generated from annotations, topped by a modern UI that works out of the box.
⚡Fast startupBoots in 2s ~ 5s🍃Spring Boot native3.x · JDK 17+🤖AI Native19 LLM · MCP📦Lightweight0.8 MB gzip first screen🧩Extensible everywhereComponents · pages · annotations · plugins🔑Flexible loginCaptcha · QR · LDAP / SSO🔓Truly open sourceApache-2.0🔁Steady iterationSince 2019 · 60+ releases
L9Access LayerHumans, systems and AI: three entry points, one backend
↕ serve
L8UI LayerAngular frontend · zero frontend code
Appearance
Navigation
Interaction
↕ render
L7View LayerOne model · many views · switch at the top
Table features
↕ compose
L6Component Layer35 edit components · switch by changing one enum
Selection
Media & editors
↕ annotation-driven · auto-generated
L5Model LayerAnnotation-driven · one Java class declares it all
Class-level
Entry & extension
↕ schema as tools · annotations as prompts
L4Intelligence LayerAI as a kernel capability: models are tools, annotations are prompts
Models & knowledge
Agents & tools
Open protocols
↕ tool calls · authorization · audit
L3Proxy & SecurityDataProxy intercepts anything · security spans the chain
DataProxyHooks across the whole CRUD lifecycle
validatebeforeAdd / afterAddbeforeUpdate / afterUpdatebeforeDelete / afterDeletebeforeFetch condition injectionafterFetch result shapingsearchCondition defaultsaddBehavior / editBehavioralert page noticeextraContent custom HTMLextraRow summary rowsexcelImport / excelExportprint contentformViewBehavior / formSave@PreDataProxy inheritancePostDataProxy global interceptEvent listenersEruptDao / LambdaQueryCustom REST APIsMagic-API online APIs
Security & PermissionsUPMS built in, from login to every button
User / Role / Menu / Org / Post / Dict@Power add / delete / edit / query / detailsImport / export / print / copy togglesCell-edit & AI dual togglesPowerHandler dynamic permissionsButton & API permission stringsRow-level data permission via beforeFetchCustom login via LoginProxyToken validationCaptcha / IP whitelistSalted SHA-512 password storageWeChat QR / third-party token loginLDAP / SSO integrationLogin log / operation logOpen API appid + secretMCP Bearer authAI call auditWatermark against screenshotsTenant data isolation PRO
↕ unified read / write
L2Data Source LayerAny data source · unified modeling · customizable
NoSQL & search
Platforms & directories
↕ deploy · dispatch · monitor
L1Runtime & Ops LayerA standard Spring Boot project, from single node to distributed
Runtime
Deployment
Distributed
Class Capabilities
Feature Map
Functional Architecture
Layered Architecture
Erupt follows a modular layered design — each layer has clear responsibilities and can be pulled in on demand.
Request Lifecycle
The full pipeline of a CRUD request inside the framework:
DataProxy Lifecycle
DataProxy is Erupt's Service layer and exposes lifecycle hooks for every CRUD action:
Annotation-Driven Pipeline
How a Java class turns into a complete admin page: