Files
ctms/docs/audits/storage-persistence-governance.md
T
2026-05-21 15:48:19 +08:00

2.0 KiB
Raw Blame History

全项目重要数据落库治理基线

状态: active 适用范围: storage-persistence 最后更新: 2026-02-27

1. 口径

  • 纳入范围:业务主数据 + 审计数据
  • 排除范围:纯 UI 偏好、登录态会话、跨标签广播等非业务主数据

2. 自动核查入口

backend/scripts/storage_persistence_audit.py --format markdown --output docs/audits/storage-persistence-audit.md
backend/scripts/storage_persistence_audit.py --fail-on-banned
  • docs/audits/storage-persistence-audit.md:当前扫描快照
  • --fail-on-banned:用于阻断禁止项(当前默认禁止 audit_local_*

3. 当前结论(基于 2026-02-27 扫描)

  • 高风险:4 条(均为 ProjectDetail 本地草稿兜底读写)
  • 中风险:0 条
  • 低风险:40 条(会话、偏好等)

4. 已完成整改

4.1 审计链路

  • 关键管理动作改为后端落库(站点、项目成员)
  • 审计页改为服务端唯一数据源
  • 前端本地审计日志通道已下线(不再写 audit_local_*
  • 审计导出事件改为后端写入审计表

4.2 业务链路

  • 设备管理已接入后端并落库
  • 项目里程碑编辑保存已改为调用后端接口并落库
  • 立项配置草稿保留本地兜底,但已增加:
    • SYNCED / LOCAL_ONLY / DIRTY_UNSAVED 状态识别
    • 本地草稿恢复确认(含过期/冲突提示)
    • 发布前 LOCAL_ONLY 阻断
    • 保存失败重试与成功后自动清理本地草稿
  • 发布比对签名已改为后端返回的 published_project_snapshot,不再依赖 localStorage

4.3 门禁与流程

  • 已新增 CI 工作流:.github/workflows/storage-persistence-guard.yml
  • PR / push 到主干时会执行 storage_persistence_audit.py --fail-on-banned

5. 剩余优化项(可选)

  1. 将“高风险清单”阈值从固定 key 规则升级为白名单机制(白名单外一律告警)。
  2. 评估是否把 ProjectDetail 本地草稿从 localStorage 迁移为后端草稿(可选能力,非当前口径强制项)。