-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Description
[PRD] 物模型快照生命周期与回滚管理
子仓库实现 Issue
| 仓库 | Issue | 说明 |
|---|---|---|
rymcu/mortise-aiot |
#19 | 快照回滚、删除、生命周期规则、权限与测试 |
rymcu/admin-aiot |
#5 | 版本历史管理 UI、回滚 / 删除交互、生命周期提示 |
问题陈述
当前 Mortise AIoT 模块已经具备物模型快照、版本列表和 diff 对比能力,但快照能力仍停留在“可查看”阶段,尚未形成完整的版本生命周期管理。
从用户视角看,主要问题有:
- 管理员可以查看历史快照和版本差异,但无法把某个历史快照恢复为可编辑草稿。
- 快照没有删除与保护规则,无法形成清晰的生命周期边界。
- 当前版本历史更像只读查看器,而不是可运营的版本管理工具。
这意味着物模型快照虽然已经“能记录、能对比”,但还不能真正支撑版本回滚、审计和长期演进管理。
解决方案
在现有快照列表和 diff 能力基础上,补齐一轮“生命周期与回滚管理”:
- 后端新增快照回滚与删除能力。
- 明确快照生命周期规则,例如关键版本保护和删除限制。
- 前端在现有版本历史基础上补充回滚、删除和风险提示入口。
- 回滚后恢复为草稿状态,再由用户确认后重新发布,避免直接覆盖线上版本。
本期目标不是重写版本历史界面,而是把快照从“查看能力”升级为“可管理能力”。
用户故事
- 作为物模型管理员,我希望查看完整的版本历史,以便追踪每次发布的演变。
- 作为物模型管理员,我希望将某个快照恢复为草稿,以便快速回滚到已知稳定版本。
- 作为物模型管理员,我希望删除不再需要的历史快照,但系统能保护关键版本不被误删。
- 作为技术支持,我希望在回滚前先对比版本差异,以便确认恢复范围。
- 作为产品经理,我希望回滚后的流程仍然经过重新发布,而不是直接覆盖线上版本。
- 作为运维人员,我希望快照管理和 OTA / 告警等上下游能力形成可追溯的版本基础。
实现决策
一、模块范围
mortise-aiot-domain:沿用现有快照实体模型。mortise-aiot-application:新增回滚、删除和生命周期规则。mortise-aiot-admin:补充管理接口与权限控制。admin-aiot:在现有版本历史 UI 上增加管理能力。
二、回滚策略
- 回滚目标不是直接恢复线上版本,而是把选中的快照恢复为当前草稿。
- 回滚后仍需用户确认并重新发布,避免无审计地覆盖线上定义。
三、生命周期规则
- 首期支持基础删除与保护规则。
- 对关键版本或最近版本加入删除限制,降低误操作风险。
- 更复杂的保留策略和自动清理不在本期范围内。
四、前端策略
- 复用现有版本历史 Modal 与 diff 结果展示。
- 补充回滚 / 删除操作入口、确认弹窗和风险提示。
- 不重做整个物模型详情页。
测试决策
- 后端覆盖回滚、删除、关键版本保护和权限边界。
- 前端覆盖回滚 / 删除交互、错误提示和 diff 辅助确认流程。
- 至少保留一条端到端链路:查看版本历史 → 比较差异 → 回滚为草稿 → 重新进入编辑态。
垂直切片拆分
切片 1:快照回滚后端能力
覆盖的用户故事:2、5
验收标准:
- 提供回滚接口。
- 回滚结果恢复为草稿,不直接发布。
- 回滚后可继续编辑并重新发布。
切片 2:快照删除与生命周期规则
覆盖的用户故事:3
验收标准:
- 提供删除接口。
- 支持基础保护规则,避免误删关键版本。
切片 3:版本历史管理 UI
覆盖的用户故事:1、2、3、4
验收标准:
- 在现有版本历史基础上增加回滚 / 删除操作。
- 回滚前可以配合 diff 结果确认恢复范围。
- 删除与回滚都有明确提示。
切片 4:权限与操作审计
覆盖的用户故事:6
验收标准:
- 补充快照生命周期相关权限。
- 回滚 / 删除操作进入审计日志。
范围外
- 设备批量导入增强
- 快照自动清理平台化
- 多租户快照隔离
- 基于快照的自动兼容性评分
补充说明
这是跨仓库需求,提交后请保留本 PRD Issue 作为 Parent PRD,子仓库实现 Issue 统一引用本 Issue。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels