用途:当你需要为 Make 平台设计或生成 DSL YAML 时使用,涵盖应用(App)、实体(Entity)、字段(Field)、关联(Relation)、视图及记录 schema 的建模;也可由相关请求触发。Make 平台借鉴了 Kubernetes 与 Ansible 的设计思路,业务模型通过 DSL 建模定义,再通过 DataAPI 对数据进行 CRUD-LS。makedsl 只负责 schema 建模语义;CanvasTable 的展示、列、渲染器或单元格编辑应使用 canvas-table-integration。
主要能力与模型:APP 逻辑上对应数据库的一个 database;Entity 对应一个表(底层为 ${App}.${Entity} 的 TiDB Table);Field 对应列;Record 对应行。Relation 是实体间关系的纯结构声明(谁和谁有关系、几对几),不涉及展示逻辑;关联数据展示通过 LookupField,关联数据写入需在 Data API 的 data.qfei_relation 中显式传递。
使用方式:编写 YAML 后通过 makecli 提交到 Make 平台。示例 App DSL:key: MatrixProject、name、type: Make.App、meta.version: 1.0.0、properties.description。Entity DSL 指定 key、name、type: Make.Entity、appKey、meta.version 及 properties.fields 列表;字段如 Make.Field.Text、Make.Field.TextArea、Make.Field.SingleSelect(含 options 的 label/value)。
约束:App 与 Entity 的 key 创建后不可更新;App key 在 org 下唯一,Entity key 在 App 下唯一;key 仅允许英文字符、数字、下划线,长度 2-20,不能以下划线开头;name 为用户可见展示名称,允许中英文数字下划线,长度 2-20。
运行时边界:DSL YAML 是设计与部署输入,不是已发布 App Service 的必需运行时文件。不要生成硬编码 /dsl/00-app.yaml 等容器路径的 Service 启动逻辑;已发布 Service 应从 Make 远程 schema API 或环境提供的配置加载 schema。本地 DSL 文件可用于开发、fixtures、测试和 makecli apply,但不能是 k8s 启动的唯一来源。若 Service 需要离线开发的本地 fallback schema,应显式说明并同时测试远程 schema 路径与 fallback 路径。前端构建或已发布 App 运行时需要远程 schema 时,应使用 Meta Service API(见 references/MetaAPIDesign.md),而非读取本地 DSL 文件。
参考文档映射:Meta API schema 访问见 references/MetaAPIDesign.md;Data API 与关系载荷见 references/DataAPIDesign.md;关系声明见 references/RelationDesign.md;基础字段 DSL 与 lookup 字段见 references/FieldDesign.md;用户字段见 references/UserFieldDesign.md;部门字段见 references/DepartmentFieldDesign.md;文件字段见 references/FileFieldDesign.md;实体数据过滤器用法见 references/EntityDataFilterUsage.md。其他具体细节资料未提供。