69 lines
4.4 KiB
Markdown
69 lines
4.4 KiB
Markdown
# 自动化版本历史与安全恢复验收
|
||
|
||
## 结论
|
||
|
||
自动化从“只能看到当前 vN”补齐为可审计、可比较、可安全恢复的版本工作流。恢复不会覆盖旧记录,而是生成新版本;恢复配置时始终保持当前启停状态,避免历史版本意外启动或停止真实自动化。
|
||
|
||
## 审计步骤
|
||
|
||
1. **入口与可发现性**:桌面详情头新增“版本历史”;移动列表新增独立 42 × 42 px 历史按钮,未挤占规则主点击区。
|
||
2. **信息层级**:侧栏先给出当前版本、运行状态、历史数量,再按时间倒序展示版本、动作、操作人、时间、范围和执行动作。
|
||
3. **差异与决策**:每个历史版本标明与当前配置的实质差异数;配置相同的版本显示“无需恢复”,不提供无效操作。
|
||
4. **高风险确认**:恢复前明确目标版本、新版本号、变更数和“保持启用/停用”;说明确认前不会写入事件或发送真实通知。
|
||
5. **结果连续性**:恢复成功后列表、详情和版本侧栏原位更新,新产生的 `rollback` 版本出现在时间线顶部。
|
||
|
||
## 实现边界
|
||
|
||
- 后端新增版本列表与恢复 API,并继续复用乐观锁;当前版本变化时拒绝过期恢复请求。
|
||
- 审计快照兼容既有 create/update/enable/disable 记录,新增 rollback 动作。
|
||
- 恢复只复制规则配置,启停状态取当前线上状态。
|
||
- 管理员可以查看和恢复;恢复路由显式保持管理员权限。
|
||
- 桌面侧栏与移动 bottom sheet 共用一套数据和操作语义。
|
||
|
||
## 截图证据
|
||
|
||
### 改造前
|
||
|
||
- `audit-before/01-automation-detail-desktop.jpg`:桌面仅显示当前版本号,无历史入口。
|
||
- `audit-before/02-automation-list-mobile.jpg`:移动端仅有复制与启停入口。
|
||
|
||
### 改造后
|
||
|
||
- `audit-after/01-version-history-desktop.jpg`:桌面版本时间线与差异状态。
|
||
- `audit-after/02-rollback-confirm-desktop.jpg`:恢复影响确认。
|
||
- `audit-after/03-rollback-success-desktop.jpg`:恢复后生成新版本并原位刷新。
|
||
- `audit-after/04-version-history-mobile.jpg`:移动端全高版本工作区。
|
||
|
||
## 视觉保真检查(5 点)
|
||
|
||
1. **结构**:保持事件中心原有“列表 + 常驻详情”,版本能力作为右侧任务层叠加,不改主导航。
|
||
2. **布局**:桌面 560 px 侧栏;移动使用 94dvh bottom sheet、固定底部操作区和单一内容滚动区。
|
||
3. **样式**:复用平台蓝、现有边框、8–10 px 圆角、Semi 图标和 Workspace 组件,没有引入第二套视觉语言。
|
||
4. **交互**:桌面和移动均可查看、选择版本、确认恢复、看到结果;相同版本不显示恢复按钮。
|
||
5. **响应式**:1440 × 900 与 390 × 844 均无横向溢出;移动触控入口和主要按钮不小于 42 px。
|
||
|
||
## 首屏文案差异
|
||
|
||
- 保留:`事件中心`、`自动化列表`、规则名称、运行状态与创建/编辑入口。
|
||
- 新增:桌面详情头的 `版本历史`;移动端使用图标按钮并提供完整可访问名称 `查看版本历史:{规则名}`。
|
||
- 未新增冗余说明卡;审计和风险文案只在版本工作区与确认步骤出现。
|
||
|
||
## 验证
|
||
|
||
- Go 全量测试:`go test ./...` 通过。
|
||
- Web 正式测试集:75 个文件、455 个测试通过。
|
||
- Web 生产构建与发布资产门禁通过。
|
||
- 真实浏览器完成桌面与移动入口、版本列表、恢复确认、恢复成功回写检查。
|
||
- 额外运行的旧版 `src/test/App.test.tsx` 存在 14 个与本次改动无关的既有里程/旧路由断言失败;正式测试脚本按项目配置排除该旧版套件。
|
||
|
||
## 无障碍检查与限制
|
||
|
||
- 版本面板、摘要、时间线、确认框和所有按钮均有角色与可访问名称;移动图标按钮不依赖图标含义。
|
||
- 状态不是只靠颜色表达,同时提供“当前版本”“差异”“无需恢复”“保持启用/停用”等文本。
|
||
- 浏览器 DOM 验证确认对话框焦点与关闭入口可达。
|
||
- 本轮未使用实体屏幕阅读器或硬件触控设备;语义、焦点与 390 px 模拟触控尺寸已验证,实体设备朗读顺序仍应在发布前抽检。
|
||
|
||
## 健康度
|
||
|
||
**健康,可发布(有已知非阻塞限制)**:核心任务链、并发保护、角色权限、桌面/移动布局、空/错/成功状态均已验证;剩余限制是实体辅助技术抽检,以及平台审计队列中的历史批量操作、差异批量处置和账号深链,继续放入下一轮。
|