每日清理
This commit is contained in:
@@ -101,6 +101,25 @@
|
||||
- **WHEN** 富友主扫统一下单返回失败或请求结果未知
|
||||
- **THEN** 系统返回项目稳定错误且已接入外部交互日志的调用记录脱敏结果
|
||||
|
||||
### Requirement: 外部交互日志逐日物理留存
|
||||
|
||||
系统 SHALL 以 Asia/Shanghai 已结束的自然日为单位物理留存 `tb_integration_log`。删除某日在线外部交互日志前,系统 MUST 为该日生成最终归档版本,确认不存在待完成记录,并验证归档对象、清单、日期范围、记录数量和校验摘要可作为恢复凭证。每次执行 SHALL 从最早尚未完成清理的归档日连续处理至昨天;任一日期不能形成或验证最终归档时,系统 MUST 不删除该日及更晚日期的在线外部交互日志。
|
||||
|
||||
#### Scenario: 最终归档通过后清理在线外部交互日志
|
||||
- **GIVEN** 某已结束自然日的外部交互日志均已进入终态,且该日最终归档对象和清单校验成功
|
||||
- **WHEN** 日留存任务处理该日期
|
||||
- **THEN** 系统分批删除该日的在线外部交互日志并将该归档日标记为已清理,归档对象保持可用
|
||||
|
||||
#### Scenario: 存在待完成外部交互日志
|
||||
- **GIVEN** 某归档日仍存在待完成的外部交互日志
|
||||
- **WHEN** 日留存任务尝试处理该日期
|
||||
- **THEN** 系统不删除该日及更晚日期的在线外部交互日志,并在独立日留存日志中记录该日期未形成最终归档的原因
|
||||
|
||||
#### Scenario: 历史积压按日期连续补清
|
||||
- **GIVEN** 存在多个昨天及更早日期尚未完成物理清理
|
||||
- **WHEN** 日留存任务执行且这些日期依次通过最终归档和完整性校验
|
||||
- **THEN** 系统按日期从早到晚清理全部连续合格日期
|
||||
|
||||
## 可达操作索引
|
||||
|
||||
本节只用于入口导航,不是行为 Requirement;业务义务以上述 Requirements 为准。
|
||||
|
||||
@@ -46,6 +46,49 @@
|
||||
- **WHEN** 该操作的审计事件构造、校验或持久化失败
|
||||
- **THEN** 系统提交或返回该业务操作原本的结果,并以请求关联标识、动作编码和资源标识记录审计失败
|
||||
|
||||
### Requirement: 审计在线数据逐日物理留存
|
||||
|
||||
系统 SHALL 以 Asia/Shanghai 已结束的自然日为单位处理统一审计事件及其资源快照的在线留存。每次留存执行 SHALL 从最早尚未完成清理的归档日开始,连续处理至昨天;任一归档日未通过完整性校验时,系统 MUST 保留该日及其后续日期的在线审计数据,且不得将它们标记为已清理。系统 MUST 先删除该日的审计资源快照,再删除该日的审计事件,并保留对象存储归档对象及清单作为恢复凭证。
|
||||
|
||||
#### Scenario: 已验证日期完成物理清理
|
||||
- **GIVEN** 某已结束自然日的审计归档成功,归档对象和清单可读取且与在线记录范围、数量和校验摘要一致
|
||||
- **WHEN** 日留存任务处理该日期
|
||||
- **THEN** 系统分批删除该日在线审计资源快照和审计事件,并将该归档日标记为已清理
|
||||
|
||||
#### Scenario: 归档校验失败阻断连续清理
|
||||
- **GIVEN** 某尚未清理的归档日缺少归档、归档校验失败或清单与在线数据不一致
|
||||
- **WHEN** 日留存任务处理该日期
|
||||
- **THEN** 系统不删除该日或更晚日期的在线审计数据,并将失败信息写入独立日留存日志
|
||||
|
||||
#### Scenario: 失败后从未完成日期续跑
|
||||
- **GIVEN** 日留存任务在某个归档日失败,较早日期已经标记为已清理
|
||||
- **WHEN** 后续日留存任务再次执行
|
||||
- **THEN** 系统从最早未完成清理的归档日继续处理,不重复删除已完成日期的数据
|
||||
|
||||
### Requirement: 日留存独立运行日志
|
||||
|
||||
系统 SHALL 将日留存的日期推进、清理成功和阻断失败写入独立轮转日志。该日志 MUST 位于 Worker 工作目录下配置的 `logs/audit-retention.log`,每条失败记录 MUST 包含归档日期、数据来源、失败分类和安全错误摘要。日留存和日归档路径 MUST NOT 将失败详情写入 `tb_log_archive_run.error_summary`。
|
||||
|
||||
#### Scenario: 留存日期被阻断
|
||||
- **GIVEN** 日留存处理某个归档日时发生缺失账本、pending 记录、归档校验或删除错误
|
||||
- **WHEN** 系统停止该日期推进
|
||||
- **THEN** `logs/audit-retention.log` 记录该日期、来源、失败分类和错误摘要
|
||||
- **AND** 对应账本记录的 `error_summary` 不写入该失败详情
|
||||
|
||||
#### Scenario: 留存日期清理成功
|
||||
- **GIVEN** 某归档日通过全部校验并完成在线数据物理删除
|
||||
- **WHEN** 系统完成该日期处理
|
||||
- **THEN** `logs/audit-retention.log` 记录归档日期、各来源清理数量和耗时
|
||||
|
||||
### Requirement: 审计调查留存边界连续
|
||||
|
||||
系统 SHALL 仅将连续完成物理清理的审计归档日期间公开为已归档边界。在线审计调查接口 MUST 继续允许查询任何尚未物理清理的较早日期,且不得因某个较晚日期已归档而将仍在线的日期错误标记为已归档。
|
||||
|
||||
#### Scenario: 清理链存在未完成日期
|
||||
- **GIVEN** 某较早归档日尚未完成清理
|
||||
- **WHEN** 后续日期的归档已成功生成
|
||||
- **THEN** 审计调查接口仍将较早未清理日期视为在线可查询数据
|
||||
|
||||
## 可达操作索引
|
||||
|
||||
本节只用于入口导航,不是行为 Requirement;业务义务以上述 Requirements 为准。
|
||||
|
||||
Reference in New Issue
Block a user