阅读时间:1 分钟
0 字
Ontology Core 与版本
Ontology Core 定义平台能够表达的业务语义。Registry 拥有草稿、校验、审批和发布事务;共享包 packages/ontology-core/ 只承载跨服务使用的公共类型和不变量。
元模型
| 对象 | 含义 | 关键字段 |
|---|---|---|
| Ontology | 独立业务语义空间 | ontologyId、租户、名称、默认语言 |
| EntityType | 业务对象类型 | 标识、显示名、身份策略、生命周期 |
| PropertyDefinition | 实体属性 | 数据类型、必填、敏感级别、校验、可查询性 |
| RelationType | 实体间关系 | 源/目标类型、方向、基数、遍历限制 |
| DataSourceBinding | 模型到数据源的映射 | 连接器、源对象、字段映射、读写能力 |
| IdentityMapping | 跨源实体身份映射 | 命名空间、源标识、规范标识、匹配来源 |
| FunctionDefinition | 无副作用计算或查询 | 输入、输出、实现引用、超时和资源预算 |
| ActionDefinition | 有副作用的业务动作 | 输入、规则、授权、审批、执行器、幂等范围 |
| RuleDefinition | 业务约束 | 条件、错误码、严重级别、适用阶段 |
| PolicyBinding | 模型与策略关联 | 资源范围、动作、策略引用、版本 |
| ModelVersion | 不可变发布快照 | 版本号、状态、摘要、依赖、兼容性 |
EntityType 是类型定义,实体实例是运行时数据;关系类型与关系实例也必须区分。模型 ID 使用稳定机器标识,显示名称允许国际化,重命名显示名称不应改变契约标识。
身份与生命周期
每个实体类型必须声明身份策略:源系统主键、复合键、平台分配 ID 或多源规范 ID。跨源匹配需要记录匹配规则、来源、时间和置信信息;不能只保留最终映射而丢失依据。
实体生命周期由源系统事实和平台语义共同解释。建议统一状态:Active、Inactive、Deleted、Unknown。删除可能是软删除、源端删除事件或访问权限消失,三者不能合并为同一事实。
模型生命周期
mermaid
%%{init: {"flowchart": {"curve": "linear"}}}%%
flowchart LR
D["Draft"] --> V["Validated"] --> R["Reviewed"] --> P["Published"] --> X["Deprecated"] --> A["Archived"]
V --> D
R --> D- Draft 可编辑,不得被生产 Runtime 使用。
- Validated 已通过结构、映射、策略和引用校验。
- Reviewed 已完成必要审批和影响分析。
- Published 是不可变快照;修改必须产生新版本。
- Deprecated 仍可读取,但新调用方不应选择。
- Archived 只用于审计和历史重放,不能用于新请求。
发布检查
发布前至少检查 Schema 完整性、映射可达性、身份策略、策略引用、Action 输入输出、循环关系、敏感字段、依赖版本和兼容性。删除属性、收紧类型、改变身份策略、改变 Action 语义或权限默认值均视为潜在破坏性变更。
发布产物包含完整模型快照、内容摘要、依赖锁定、迁移提示、审批记录和生成时间。Runtime 按 tenantId + ontologyId + version 加载并缓存,缓存失效由发布事件驱动。
兼容性原则
- 新增可选属性通常向后兼容;新增必填属性需要默认值或迁移方案。
- 删除、重命名机器标识、改变类型或基数属于破坏性变更。
- Action 输入、结果和错误语义按 API 契约管理版本。
- 旧模型的执行证据必须永久引用原版本,不能自动改挂到新版本。