-
Notifications
You must be signed in to change notification settings - Fork 1
Metadata Versioning & History — 元数据版本历史与回滚 (Phase 4a) #1060
Copy link
Copy link
Closed
Description
背景
ObjectStack 的元数据系统需要支持 版本历史追踪 和 回滚能力。当 admin 修改对象定义后,需要查看变更历史、比较版本差异、并在出现问题时快速回滚。
✅ 已有基础设施:
MetadataRecordSchema.version — 版本号字段(metadata-persistence.zod.ts:103)
MetadataRecordSchema.checksum — 校验和字段(metadata-persistence.zod.ts:106)
DatabaseLoader — 保存时自动递增 version(database-loader.ts:292)
publishPackage() / revertPackage() — 包级别版本管理
❌ 尚未实现:
sys_metadata_history 表、getHistory(), rollback(), diff()
任务分解
- History 存储层
定义 MetadataHistoryRecordSchema
创建 sys_metadata_history 系统对象 - IMetadataService 接口扩展
getHistory(type, name, options?) — 版本时间线
rollback(type, name, version) — 回滚到指定版本
diff(type, name, v1, v2) — 版本差异 - DatabaseLoader 历史追踪
保存时自动写入 history 记录
实现 getHistory / rollback / diff - Checksum 实现
规范化 JSON → SHA-256 校验和
Checksum 去重(与上一版本相同则跳过 history) - REST API 端点
GET /api/v1/metadata/:type/:name/history
POST /api/v1/metadata/:type/:name/rollback
GET /api/v1/metadata/:type/:name/diff - 历史清理策略
maxVersions / maxAge 可配置保留策略
架构对标
平台 版本控制
Salesforce Setup Audit Trail, 6 个月变更历史
ServiceNow Update Sets + Versions 表
Reactions are currently unavailable