All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m38s
1.5 KiB
1.5 KiB
Context
统一审计 Writer 当前被业务事务直接调用;其错误由调用方返回,导致事务回滚。审计规则要求内部可见资源不携带主体投影,但个人客户绑定关联资源违反了该规则。
Goals / Non-Goals
Goals:
- 统一将审计写入失败降级为结构化诊断,不影响业务事务和接口结果。
- 修复个人客户资产绑定的无效审计资源。
Non-Goals:
- 不改变已成功写入审计与业务事实同事务提交的行为。
- 不新增队列、表、重试机制或迁移。
Decisions
- 在统一
Writer的业务审计入口吞掉写入错误并记录失败;所有既有 86 个调用者由此共享行为,无需逐一改造。备选的逐调用者处理会遗漏路径且重复。 - 失败诊断复用现有
auditfailure.RecordSecondaryWriteFailure,同时用 Zap 写结构化日志,保留动作、资源、请求与关联标识。 - 删除内部关联卡/设备资源上的主体摘要;主体投影只保留在主个人客户资源。
Risks / Trade-offs
- [审计记录可能缺失] → 写入结构化日志与二次失败记录,供告警和补偿处理。
- [调用方继续假定写入失败可回滚业务] → 统一入口保证实际行为一致,并通过构建与静态调用点复核。
Migration Plan
- 发布代码后,首次 C 端登录及所有既有审计调用路径自动采用不阻断行为。
- 回滚时恢复原 Writer 行为;不存在数据迁移。