Files
break c8052df8eb
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m30s
补充退款列表应当让本店铺的人看见
2026-08-18 11:44:30 +08:00

3.0 KiB
Raw Blame History

MODIFIED Requirements

Requirement: 审计时间线

系统 SHALL 支持按事件、操作者、资源、请求、关联标识和资金维度查询已记录的审计事实。新建的 tb_integration_log 在已取得稳定审计事件时 SHALL 写入其内部 ID 作为 audit_event_id,并且该日志的非空 integration_id SHALL 出现在对应事件列表和事件详情的 investigation_refs.integration_refs 中;关联生成失败时系统 MUST 保留 Integration Log 并记录可排查告警,且 MUST NOT 按名称、时间或摘要推断关联。历史 Integration Log 不在本要求的回填范围内。审计事件的构造、校验或持久化失败 MUST 记录可关联的结构化错误日志和二次失败记录,且 MUST NOT 改变已通过业务校验的业务操作结果或接口响应。尚无完成物理清理记录时,审计调查接口 MUST 继续查询在线审计事实,且返回的留存边界不得将数据标记为已归档。

Scenario: 审计时间线

  • GIVEN 审计事实已存在
  • WHEN 使用对应维度查询
  • THEN 返回匹配的事实与稳定动作编码,不用访问日志替代

Scenario: 事件返回已关联外部交互引用

  • GIVEN 一个在线审计事件有 tb_integration_log.audit_event_id 指向其内部 ID 的外部交互记录
  • WHEN 查询全局审计事件列表或该事件详情
  • THEN 该事件的 investigation_refs.integration_refs 返回该记录的 integration_id

Scenario: 事件没有关联外部交互引用

  • GIVEN 一个在线审计事件没有稳定关联的外部交互记录
  • WHEN 查询全局审计事件列表或该事件详情
  • THEN investigation_refs.integration_refs 返回空数组

Scenario: 新外部交互日志具有稳定审计关联

  • GIVEN 系统即将记录一次新的外部调用、入站回调或未发送裁决
  • WHEN 写入对应 Integration Log
  • THEN 该记录保存非空 audit_event_id,且其目标 Audit Event 已存在

Scenario: 缺少审计关联时保留外部交互日志

  • GIVEN 一次新的外部交互日志没有稳定审计事件关联
  • WHEN 系统尝试写入该 Integration Log
  • THEN 系统持久化该 Integration Log、记录可排查告警并返回空 integration_refs

Scenario: 审计写入失败不阻断业务

  • GIVEN 一个业务操作已通过自身输入、权限和状态校验
  • WHEN 该操作的审计事件构造、校验或持久化失败
  • THEN 系统提交或返回该业务操作原本的结果,并以请求关联标识、动作编码和资源标识记录审计失败

Scenario: 尚无物理清理记录时查询在线审计

  • GIVEN 审计或外部交互日志尚无完成物理清理的归档运行记录
  • WHEN 调用任一依赖留存边界的审计调查接口
  • THEN 系统返回当前在线数据或空列表
  • AND 响应中的 archived_before 为空
  • AND 系统不得因空留存边界返回服务端错误