什么是 AuraBoot?

AuraBoot 工作台

AuraBoot 是一个源代码可获取、可自托管的低代码平台,用于构建业务应用。它面向需要 CRM、ERP、工作流、内部工具、Dashboard、审批流程或行业模块的团队,这些团队不希望把每一个界面、表、API、Permission 与审计轨迹都从零手写。

核心理念很简单:把你的业务应用描述为元数据。AuraBoot 读取 Model、Field、Command、Page、菜单、Permission、字典和 Plugin 定义,然后把它们转换为可用的数据库表、REST 接口、动态 Page、基于角色的访问规则以及可审计的业务操作。

AuraBoot 并不仅仅是一个表单生成器。其运行时包含 Command Pipeline、Page schema 渲染器、Plugin 打包系统、BPM Workflow 集成、数据 Permission、自动化 Hook 以及可选的 AI 辅助 Workflow。对于标准业务页面,你使用配置;对于深度领域逻辑,你可以添加后端或前端扩展。

AuraBoot 适合谁

当你的应用包含重复的业务模式时,AuraBoot 会是一个不错的选择:

  • 大量实体伴随 CRUD 操作、列表、表单、详情页和 Permission
  • 围绕记录的审批或状态流转 Workflow
  • 多 Tenant、部门、角色和数据可见性边界
  • 需要被打包、复用和版本化的业务模块
  • 不需要每次都重建所有界面就能演进的内部工具
  • 希望把业务定义以 JSON 形式保存在 Git 中,而不是隐藏在封闭的 SaaS 构建器里

它通常不适合面向消费者的应用、高度定制的类游戏 UI,或者每个界面都是一次性 React 应用的 Workflow。

平台模型

AuraBoot 应用由一组简洁的平台原语组装而成:

原语定义内容运行时产物
Model业务数据形态数据库表、API 资源、字段
字典受控取值选择项、标签、状态值
Command业务操作经过校验的事务、审计、副作用
PageUI schema列表、表单、详情、Dashboard、Block
菜单导航入口侧边栏与路由注册
Permission访问规则基于角色与资源级别的校验
Plugin打包边界可复用模块,具备导入和升级生命周期

下面是一个简单 Model 所走的路径:

Model JSON
  -> 字段定义
  -> 数据库表
  -> CRUD 与 Command 接口
  -> Page schema
  -> 菜单与 Permission
  -> 运行时 UI

重要的是这些产物保持互联。当一个字段发生变化时,Page、校验、API 行为与 Permission 都可以通过同一份元数据模型推导。

架构概览

AuraBoot 包含三个主要层:

浏览器 UI
  React + 动态 Page 渲染器 + Page Designer

后端运行时
  Spring Boot + Command Pipeline + 元数据注册表 + Plugin 导入器

数据与集成层
  PostgreSQL + Redis + outbox 事件 + Webhook + 可选的 LLM 提供方

前端不会硬编码每一个业务界面,而是从元数据注册表中渲染 Page schema。后端不会为每个 Model 暴露专门的 Controller,而是使用一套共享的动态 CRUD 与 Command 执行路径。Plugin 则是把定义从开发推到生产的打包单元。

AuraBoot 与典型低代码工具的差异

AuraBoot 被设计为对开发者友好的应用运行时,而不仅仅是一个可视化构建器:

  • Git 友好的定义:Model、Command、Page、菜单与 Permission 都可以以 JSON 文件形式存放在 Plugin 包中。
  • Command 优先的业务逻辑:写入操作经由统一的 Command Pipeline 流转,而不是散落在各处的 endpoint handler。
  • 默认自托管:团队可以在自己的基础设施中运行 AuraBoot,把数据牢牢掌握在自己手里。
  • 能配则配,该写代码时写代码:标准界面由 DSL 驱动,但扩展仍可使用 Java 和 React。
  • 内建运维原语:审计日志、Permission、Workflow、Webhook 以及 Plugin 校验都是平台级概念。

接下来读什么

如果你是 AuraBoot 新手,可按以下路径学习:

  1. 安装 - 在本地运行平台。
  2. 快速开始 - 体验最短的可运行闭环。
  3. Model 与字段 - 理解数据层。
  4. Command - 理解业务操作。
  5. Plugin 开发 - 打包一个可复用模块。