# 全项目重要数据落库治理基线 状态: `active` 适用范围: `storage-persistence` 最后更新: `2026-02-27` ## 1. 口径 - 纳入范围:业务主数据 + 审计数据 - 排除范围:纯 UI 偏好、登录态会话、跨标签广播等非业务主数据 ## 2. 自动核查入口 ```bash 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 条 - 低风险:42 条(会话、偏好、工作台本地待办等) ## 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 迁移为后端草稿(可选能力,非当前口径强制项)。