This commit is contained in:
@@ -100,18 +100,18 @@
|
||||
- [x] 10.1 交付 Audit Event + Event Resource 每日归档纵向切片:新增无外键 `tb_log_archive_run`、按 `Asia/Shanghai` 前一完整自然日读取、事件携带完整 resources 的 JSONL+gzip、manifest/SHA-256、对象 metadata 复核、稳定对象 Key 与重复任务幂等;复用现有对象存储和 Asynq,不阻塞业务 Writer。【主:Infrastructure + Application/Asynq|边界:Audit 每日冷归档完整闭环|不迁移:Integration、Access、清理与归档查询|验证:迁移 up/down、空日/大日、事件资源计数、对象损坏、重复投递、存储故障和业务写入隔离核对通过,LSP 无诊断】
|
||||
- [x] 10.2 交付 Integration Log 每日归档及月度最终 revision 纵向切片:每日保存创建日快照,月初按数据库当前内容复核可变记录,内容变化时创建不可变新 revision,pending 或不一致阻止清理,不覆盖旧对象。【主:Infrastructure + Application/Asynq|边界:Integration 冷归档最终性|不迁移:Integration Writer 语义、恢复和对象存储查询|验证:pending→success/unknown、跨月更新、hash 变化、重复复核、无法终结和对象版本核对通过,LSP 无诊断】
|
||||
- [x] 10.3 交付月初整月数据库物理删除纵向切片:先完成上月最后一天归档,再校验全部日期的 Audit/Integration manifest、Audit 事件与资源数、Integration 最终 revision、对象大小和 SHA-256;通过后使用 GORM、索引和有界批次按先 Event Resource 后 Event、再 Integration 的受控流程物理 `DELETE` PostgreSQL 上月数据,任务可从 ledger 断点继续,并写当前月 `retention_worker` Audit Event;审计 Model 不含 `gorm.DeletedAt`,不写归档状态、不迁移数据库历史表、不删除对象存储备份。【主:Application + Infrastructure/Asynq|边界:归档门禁与 PostgreSQL 上月数据物理删除|不迁移:Access Log、Domain Ledger、Outbox、旧 operation log、对象存储生命周期、分区改造和人工清表|验证:缺日/hash 不一致/部分对象/pending 全部阻断,物理行数归零、批次中断续跑、窗口隔离、对象长期保留、清理事件和数据库膨胀指标核对通过,LSP 无诊断】
|
||||
- [ ] 10.4 为平台 Audit/Integration 及代理/企业活动 DTO 增加 `retention{online_from,archived_before,timezone}`,显式时间范围早于或跨越在线边界时返回稳定已归档错误;默认只查在线窗口,ID-only 不存在仍按资源不存在处理,不访问对象存储,也不新增下载或恢复路由。【主:Query/API|边界:在线查询留存语义|不迁移:冷热联合查询和前端页面实现|验证:在线、已归档、跨边界、默认范围、空在线月、路由/OpenAPI 无归档读写能力核对通过,LSP 无诊断】
|
||||
- [ ] 10.5 先以“只归档、不清理”开关运行并验收一个完整自然月,记录每日成功率、积压、对象大小、压缩率、hash/计数差异、Integration revision、清理预估耗时和告警;只有月度演练全部通过后才启用清理开关。【主:Release/Observability|边界:留存能力灰度启用|不迁移:Access Log、自动恢复和分区改造|验证:完整月 manifest、故障重试、月度 dry-run、监控阈值、操作手册和启停回滚证据齐全】
|
||||
- [x] 10.4 为平台 Audit/Integration 及代理/企业活动 DTO 增加 `retention{online_from,archived_before,timezone}`,显式时间范围早于或跨越在线边界时返回稳定已归档错误;默认只查在线窗口,ID-only 不存在仍按资源不存在处理,不访问对象存储,也不新增下载或恢复路由。【主:Query/API|边界:在线查询留存语义|不迁移:冷热联合查询和前端页面实现|验证:在线、已归档、跨边界、默认范围、空在线月、路由/OpenAPI 无归档读写能力核对通过,LSP 无诊断】
|
||||
- [x] 10.5 先以“只归档、不清理”开关对隔离测试环境中构造的完整自然月执行逐日归档和月度 dry-run,记录成功率、积压、对象大小、压缩率、hash/计数差异、Integration revision、清理预估批次和告警;无需等待现实时间流逝。dry-run 全部通过后,仅在显式确认的测试数据库执行物理清理演练,验证只删除目标月 Audit Event、Event Resource 和 Integration Log,月前/月后边界、其他业务事实及对象归档不受影响;生产清理开关仍保持关闭,直到发布启用决策。【主:Release/Observability|边界:留存能力灰度启用|不迁移:Access Log、自动恢复和分区改造|验证:完整月 manifest、故障重试、月度 dry-run、目标月归零、边界哨兵保留、监控阈值、操作手册和启停回滚证据齐全】
|
||||
|
||||
## 11. 旧 Writer Contract 与发布门禁
|
||||
|
||||
- [ ] 11.1 完成账号、资产及借用旧 account audit 的充值/套餐/支付配置等调用清单逐项归零,删除生产组合根对旧 Writer 的注入和所有裸/双重 goroutine 审计写入;旧表原样保留且不接入新审计 Query,既有旧资产历史入口与手动轮询运行写入显式白名单。【主:Infrastructure/Governance|边界:旧 operation log contract|不迁移:旧数据回填/转换、删除旧表和历史数据|验证:静态扫描、生产装配、统一 Query 无旧表依赖、真实业务写入和旧表无新增核对通过,LSP 无诊断】
|
||||
- [ ] 11.2 执行最终 Action/Resource Registry 与当前代码覆盖比对并增量更新 `.scratch/tech-global-audit/审计覆盖基线.md`,确认所有非查询写入口和 Registry 标记的敏感读取均登记、普通查询/N/A 有理由,多资源/设备卡槽/换货/批量/资金/自动入口无遗漏,未注册动作或资源使门禁失败。【主:治理|边界:全仓当前入口|不迁移:未来未提交功能|验证:覆盖门禁、Registry 清单、基线文件和业务/研发/安全签字证据齐全】
|
||||
- [ ] 11.3 执行安全与身份发布门禁:平台接口仅 SuperAdmin/Platform、代理店铺层级、企业有效授权、internal_only 不泄露、业务字段平台完整、所有系统安全凭据在库和响应中均不存在、无用户审计导出、对象存储查询/恢复或业务删除路由。【主:Security/API|边界:第一阶段访问与字段契约|不迁移:细粒度权限码|验证:敌对 HTTP 场景、数据库抽样、路由/OpenAPI 扫描全部 PASS】
|
||||
- [ ] 11.4 执行事务、幂等与跨链路发布门禁:关键成功审计失败回滚、失败短事务保留原错、批量根子计数一致、correlation/parent/series 正确、Audit/Integration/Domain Ledger/Outbox 边界没有混用。【主:Verification|边界:高风险和代表性流程|不迁移:业务规则优化|验证:代表性业务流程的接口、数据库与日志证据核对通过,已知错误为零】
|
||||
- [ ] 11.5 执行迁移、性能、OpenAPI、归档留存和回滚演练:增量迁移可在无事实环境 down;业务回滚保留在线窗口内事实,归档失败阻止清理,清理后不恢复旧 Writer或伪造在线历史;记录监控阈值和操作手册。【主:Release/Infrastructure|边界:一次 contract 发布|不迁移:数据库分区、冷热联合查询与自动恢复|验证:迁移演练、性能目标、归档 dry-run、两份文档生成、构建、监控和回滚演练全部 PASS】
|
||||
- [x] 11.1 完成账号、资产及借用旧 account audit 的充值/套餐/支付配置等调用清单逐项归零,删除生产组合根对旧 Writer 的注入和所有裸/双重 goroutine 审计写入;旧表原样保留且不接入新审计 Query,既有旧资产历史入口与手动轮询运行写入显式白名单。【主:Infrastructure/Governance|边界:旧 operation log contract|不迁移:旧数据回填/转换、删除旧表和历史数据|验证:静态扫描、生产装配、统一 Query 无旧表依赖、真实业务写入和旧表无新增核对通过,LSP 无诊断】
|
||||
- [x] 11.2 执行最终 Action/Resource Registry 与当前代码覆盖比对并增量更新 `.scratch/tech-global-audit/审计覆盖基线.md`,确认所有非查询写入口和 Registry 标记的敏感读取均登记、普通查询/N/A 有理由,多资源/设备卡槽/换货/批量/资金/自动入口无遗漏,未注册动作或资源使门禁失败。【主:治理|边界:全仓当前入口|不迁移:未来未提交功能|验证:覆盖门禁、Registry 清单、基线文件和业务/研发/安全签字证据齐全】
|
||||
- [x] 11.3 执行安全与身份发布门禁:平台接口仅 SuperAdmin/Platform、代理店铺层级、企业有效授权、internal_only 不泄露、业务字段平台完整、所有系统安全凭据在库和响应中均不存在、无用户审计导出、对象存储查询/恢复或业务删除路由。【主:Security/API|边界:第一阶段访问与字段契约|不迁移:细粒度权限码|验证:敌对 HTTP 场景、数据库抽样、路由/OpenAPI 扫描全部 PASS】
|
||||
- [x] 11.4 执行事务、幂等与跨链路发布门禁:关键成功审计失败回滚、失败短事务保留原错、批量根子计数一致、correlation/parent/series 正确、Audit/Integration/Domain Ledger/Outbox 边界没有混用。【主:Verification|边界:高风险和代表性流程|不迁移:业务规则优化|验证:代表性业务流程的接口、数据库与日志证据核对通过,已知错误为零】
|
||||
- [x] 11.5 执行迁移、性能、OpenAPI、归档留存和回滚演练:增量迁移可在无事实环境 down;业务回滚保留在线窗口内事实,归档失败阻止清理,清理后不恢复旧 Writer或伪造在线历史;记录监控阈值和操作手册。【主:Release/Infrastructure|边界:一次 contract 发布|不迁移:数据库分区、冷热联合查询与自动恢复|验证:迁移演练、性能目标、归档 dry-run、两份文档生成、构建、监控和回滚演练全部 PASS】
|
||||
|
||||
## 12. 最终文档与交付确认
|
||||
|
||||
- [ ] 12.1 在 `docs/feature-504-multi-view-audit-center/` 编写中文总结,包含四类事实边界、字段字典、当前领域/资源/动作矩阵、各资源快照、所有查询视角与 DTO、平台和主体可见性、多卡设备/换货/资金/批量样例、每日归档与月度清理、在线窗口、异常闭环、发布回滚、监控和明确未实现项,并更新 README 索引。【主:Documentation|边界:本 Change 完整交付|不迁移:旧历史评审文档|验证:文档逐项引用实现、OpenAPI 和验收证据,无过时字段或路径】
|
||||
- [ ] 12.2 汇总静态扫描、LSP、迁移、构建、OpenAPI、数据库性能、API P95/P99、身份隔离、凭据抽样、旧写归零、归档完整性、月度清理 dry-run 和业务流程证据,逐条核对 proposal/design/specs/tasks,只有全部完成且无已知错误时才标记 Change 可归档。【主:最终验收|边界:全部能力|不迁移:后续权限码、用户导出、对象存储历史查询/恢复、分区、风险处置和自动恢复|验证:制品与人工/数据证据核对通过 + OpenSpec strict validate PASS】
|
||||
- [x] 12.1 在 `docs/feature-504-multi-view-audit-center/` 编写中文总结,包含四类事实边界、字段字典、当前领域/资源/动作矩阵、各资源快照、所有查询视角与 DTO、平台和主体可见性、多卡设备/换货/资金/批量样例、每日归档与月度清理、在线窗口、异常闭环、发布回滚、监控和明确未实现项,并更新 README 索引。【主:Documentation|边界:本 Change 完整交付|不迁移:旧历史评审文档|验证:文档逐项引用实现、OpenAPI 和验收证据,无过时字段或路径】
|
||||
- [x] 12.2 汇总静态扫描、LSP、迁移、构建、OpenAPI、数据库性能、API P95/P99、身份隔离、凭据抽样、旧写归零、归档完整性、月度清理 dry-run 和业务流程证据,逐条核对 proposal/design/specs/tasks,只有全部完成且无已知错误时才标记 Change 可归档。【主:最终验收|边界:全部能力|不迁移:后续权限码、用户导出、对象存储历史查询/恢复、分区、风险处置和自动恢复|验证:制品与人工/数据证据核对通过 + OpenSpec strict validate PASS】
|
||||
|
||||
Reference in New Issue
Block a user