P2-WP01 通用治理对象与领域模板验证记录
1. 工程范围
P2-WP01 在现有设备台账、治理责任、质量和指标能力之外增加一层通用定义契约:
GovernanceObjectType 的稳定类型编码、UUIDv5 对象身份、来源身份字段、版本和生命周期;
- 领域模板的对象类型、字段、责任角色、规则、指标和初始化数据格式;
- PostgreSQL 模板当前态、不可变历史版本、物化对象类型和导入/回滚审计;
- 模板列表、详情、审计、差异预检、导入和追加式回滚 API;
- viewer 只读、editor 差异预检、admin 导入/回滚的管理页面;
- 与 P2-WP00 对齐的备品备件/物料主数据默认模板。
本工作包没有新建设备或物料资产 CRUD 服务。设备台账 API、数据表和前端页面未修改,
第二业务域通过领域模板描述六类对象,后续工作包复用平台能力。
2. 事务与安全边界
- 模板编码和对象类型编码采用稳定代码;对象来源身份字段必须非空并去重;
- 稳定对象 UID 基于模板、对象类型和排序后的来源身份 JSON 计算 UUIDv5;
- 模板拒绝包含 password、secret、token、credential、API Key 或私钥语义的字段;
- dry-run 只做规范化和差异计算,不写模板、版本或审计;
- 导入在同一事务内更新当前模板、追加版本、物化对象类型和写审计,失败时整体回滚;
- 回滚不覆盖旧版本,而是将目标历史内容作为新版本导入并记录目标版本;
- 模板移除对象类型时只将已物化类型标记为 retired,不删除类型或业务数据;
- 只有 admin 可以导入和回滚,editor 仅可预检,viewer 仅可读取。
3. 默认第二业务域
docs/phase2/P2_WP01_SPARE_PARTS_DOMAIN_TEMPLATE.json 固化 P2-WP00 的默认第二业务域:
- 六类对象:物料、物料分类、仓库与库位、库存余额、供应商物料映射、设备备件适配关系;
- 三类责任角色;
- 八条质量规则;
- 三项运营指标;
- 三个来源契约、四类术语/代码集和三类流程初始化契约。
模板中的企业样本和责任人仍为待绑定状态,不虚构真实姓名、凭据或网络地址。
4. 定向验证范围
遵循工作包级验证策略,本次不执行全量回归。定向验证覆盖:
- 模板规范化、稳定 UID、差异、版本、追加式回滚和秘密字段拒绝;
- 默认第二业务域六对象与八规则契约;
- viewer/editor/admin API 权限矩阵;
- 新增迁移的四张表、约束、追加性和 Alembic 头;
- 管理页面 API、路由和关键操作契约;
- 既有设备台账服务可导入且设备相关 API 权限与专项测试保持通过;
- OpenAPI 重新生成并包含六个模板操作;
app/ 与 deployment/app/ 的新增和触达后端文件一致;
- 前端生产构建成功。
5. 本地工程验证结果(2026-07-30)
本轮只执行 P2-WP01 与直接兼容范围,没有执行全量回归:
- P2-WP01 核心、API、迁移、前端契约、RBAC、设备台账兼容和 OpenAPI 定向测试
51 项通过;
- 本地 PostgreSQL 已由 Alembic
20260730_360 升级到 20260730_370,领域模板与既有
设备台账两项真实数据库集成测试通过;
- 集成测试验证六类默认对象一次性物化、模板 V1/V2/回滚 V3、三条追加式审计,以及在
持久化中途模拟异常后事务回滚仍停留在 V1;
- 本次触达 Python 文件 Ruff 检查通过,新增和触达前端文件 ESLint 检查通过;
- 前端生产构建成功;仍有项目既有的 Browserslist 数据过期、旧文件
console、CSS
顺序和包体积警告,本次新增页面没有 ESLint 错误;
- OpenAPI 由当前路由重新生成,共 225 个操作,包含六个领域模板操作;
app/ 与 deployment/app/ 的新增和触达后端文件逐字节一致。
以上是本地工程验证,不代表企业第二业务域样本、真实人员、生产权限和发布已经验收。