docs: create Bell task #20 acceptance archive
@@ -0,0 +1,46 @@
|
||||
# 20 Bell-Alert并发处置与审计时间线
|
||||
|
||||
- 类型:需求
|
||||
- 所属 Epic:#7
|
||||
- 所属 MVP / 版本:#8
|
||||
- 状态:待验收
|
||||
- 日期:2026-08-12
|
||||
- Gitea 工单:https://git.ilapage.cn/ila/yovision/issues/20
|
||||
- Wiki 页面:Task-20-Bell-Alert并发处置与审计时间线
|
||||
- Wiki revision:见本地镜像头
|
||||
|
||||
## 背景与目标
|
||||
|
||||
实现并发安全、责任清晰、可审计的 Alert ack/close 处置状态机。
|
||||
|
||||
## 最终方案
|
||||
|
||||
PostgreSQL 条件更新选择唯一 ack 获胜者,后来者看到真实处置人。只有处置人或管理员可 close,且必须记录四种现场结果之一;同一重复 close 幂等。成功事实进入不可变生命周期时间线,失败/重复/拒绝尝试进入安全审计。
|
||||
|
||||
## 修改文件
|
||||
|
||||
- `Bell/server/app/alert/lifecycle/`:ack/close 服务、HTTP 与并发测试。
|
||||
- `Bell/server/migrations/2026081205_alert_lifecycle.sql`:生命周期事实、审计和不可变约束。
|
||||
- `Bell/web/src/views/alert/list/Alerts.vue`:两步处置、结果表单与时间线。
|
||||
- `Bell/web/src/layout/AppLayout.vue`:对齐已确认的导航顺序。
|
||||
|
||||
## 验收结果
|
||||
|
||||
| 验收标准 | 结果 |
|
||||
|---|---|
|
||||
| 并发 ack 仅一个处置人 | 通过 |
|
||||
| 后来者得到真实处置人且不能覆盖 | 通过 |
|
||||
| close 要求结果且受所有者/管理员约束 | 通过 |
|
||||
| 相同重复 close 幂等 | 通过 |
|
||||
| 重启后状态与只追加时间线保留 | 通过 |
|
||||
|
||||
## 测试
|
||||
|
||||
- 执行:20 并发 ack PostgreSQL 集成测试;API ack/冲突/结果必填/close/重复 close;重启持久性;Vue lint/build。
|
||||
- 结果:全部通过,时间线含 ack 与 close 两条成功事实。
|
||||
- **未验证部分**:多人真实浏览器并发、生产规模压测和通知/升级流程。
|
||||
|
||||
## 相关提交
|
||||
|
||||
- `10225f4` 并发安全的 Alert 生命周期(PR #35)。
|
||||
- `9ee06e3` 对齐正式页面导航顺序(PR #35)。
|
||||
Reference in New Issue
Block a user