Skip to content

Metadata Versioning & History — 元数据版本历史与回滚 (Phase 4a) #1060

@hotlong

Description

@hotlong

背景
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()
任务分解

  1. History 存储层
    定义 MetadataHistoryRecordSchema
    创建 sys_metadata_history 系统对象
  2. IMetadataService 接口扩展
    getHistory(type, name, options?) — 版本时间线
    rollback(type, name, version) — 回滚到指定版本
    diff(type, name, v1, v2) — 版本差异
  3. DatabaseLoader 历史追踪
    保存时自动写入 history 记录
    实现 getHistory / rollback / diff
  4. Checksum 实现
    规范化 JSON → SHA-256 校验和
    Checksum 去重(与上一版本相同则跳过 history)
  5. REST API 端点
    GET /api/v1/metadata/:type/:name/history
    POST /api/v1/metadata/:type/:name/rollback
    GET /api/v1/metadata/:type/:name/diff
  6. 历史清理策略
    maxVersions / maxAge 可配置保留策略
    架构对标
    平台 版本控制
    Salesforce Setup Audit Trail, 6 个月变更历史
    ServiceNow Update Sets + Versions 表

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions