spec.md 3.4 KB

低代码应用管理优化

背景

现有低代码应用管理已经拆分了业务领域、数据模型和应用页面设计,但仍存在边界不清:

  • 数据模型保存会过滤 id、租户、审计等系统字段,页面无法看到真实表结构的基础字段。
  • 表结构 DDL 同步主要出现在应用发布环节,导致字段变更和表结构变更不在数据模型资产内闭环。
  • 应用页面设计可以间接携带模型协议,容易把页面设计和字段/DDL 变更混在一起。
  • 操作按钮只能开关内置按钮,缺少按按钮名称、位置、样式和跳转交互进行配置的能力。
  • 草稿实时预览仍以结构化示例为主,用户希望看到更接近真实运行态的页面元素。

目标

  1. 数据模型中的每个业务表必须显式拥有只读系统字段:id 自增主键、tenant_idcreate_bycreate_timecreate_deptupdate_byupdate_timedel_flag
  2. 数据模型保存提供两种模式:
    • 仅保存模型配置。
    • 保存模型配置并同步表结构到数据库。
  3. DDL 预览、字段追加和建表同步都在数据模型页面完成,应用发布不再作为主要 DDL 操作入口。
  4. 审计字段和 ID 字段在模型设计、应用字段池、页面预览中可见,但不可编辑、不可删除、不可作为普通业务字段写入。
  5. 页面设计支持自定义操作按钮,至少能配置名称、位置、样式、跳转目标和打开方式,并进入运行时操作列/工具栏协议。
  6. 实时预览默认渲染真实 Naive UI 表单、表格、按钮和页面布局;已发布应用可继续加载正式运行接口。

非目标

  • 不实现任意 SQL 级 DDL 修改;已有表在线同步仍只允许安全追加字段。
  • 不实现低代码自定义按钮的任意脚本执行。
  • 不把主子表运行时纳入本次范围。

后端变更

  • LowcodeFieldSchema 补充系统字段元数据:primaryKeysystemFieldreadonlyautoIncrement
  • LowcodePolicySchema 补充主键策略、租户字段、逻辑删除字段等数据策略配置,并强制保持安全默认值。
  • LowcodeDataModelService 保存时不再过滤系统字段,而是规范化并补齐系统字段;同步 DDL 时调用受控 DDL 服务。
  • LowcodeDdlService 将 DDL 能力作为数据模型操作使用,创建新表时固定生成 id bigint NOT NULL AUTO_INCREMENT PRIMARY KEY;已有表缺少合规 id 时阻断执行。
  • LowcodeRuntimeConfigBuilder 生成运行时配置时系统字段可读不可写:可进入列表/详情,不能进入新增/编辑可写字段。
  • 应用发布保留兼容字段,但前端发布面板不再主推 DDL。

前端变更

  • 数据模型页增加“保存配置”和“保存并同步表结构”两个明确操作,以及模型页 DDL 预览。
  • 模型字段表展示系统字段,只读、不可复制、不可删除、不可修改核心属性。
  • 页面设计支持配置工具栏和行操作自定义按钮,按钮协议进入 pageSchema。
  • 预览页用真实 Naive UI 组件渲染草稿页面元素,自定义按钮也在预览中呈现。

安全与约束

  • 在线 DDL 仍需后端权限校验 ai:lowcode:deploy-ddl
  • 已有表只允许追加缺失业务字段;不删除、不改名、不修改已有字段类型。
  • 运行时写入接口必须过滤 id、租户和审计字段,避免只读字段被前端提交覆盖。