完善公共基础接入与全局审计闭环
This commit is contained in:
13
AGENTS.md
13
AGENTS.md
@@ -321,13 +321,14 @@ queueClient.EnqueueTask(ctx, constants.TaskTypeXxx, payloadBytes)
|
||||
|
||||
### 审计日志规范
|
||||
|
||||
**适用场景**:任何敏感操作(账号管理、权限变更、数据删除等)
|
||||
**适用场景**:整个系统中的状态变更、敏感读取以及关键拒绝和失败,不限于七月迭代。实现前必须查阅并增量维护 `.scratch/tech-global-audit/审计覆盖基线.md`;选择不审计必须登记 N/A 理由,禁止留空。
|
||||
|
||||
- 旧模块在 Service 层、新 DDD 模块在 Application UseCase 中注入审计能力,操作成功后调用 `LogOperation()`
|
||||
- 必填字段:`OperatorID`、`OperationType`、`OperationDesc`、`BeforeData`、`AfterData`
|
||||
- 异步写入(Goroutine),写入失败不影响业务,失败时记录 Error 日志
|
||||
|
||||
**示例参考**:`internal/service/account/service.go`
|
||||
- Access Log 只负责 HTTP 调试,Audit Event 负责业务审计,Domain Ledger 负责金额和状态等领域事实,Integration Log 负责外部交互;四者不得混用或合并。
|
||||
- 旧模块在 Service/Application 事务脚本中、新 DDD 模块在 Application UseCase 中通过统一 Audit Writer Port/Adapter 接入;禁止新增裸 goroutine 审计写入。
|
||||
- 成功的资金、权限、关键配置、人工状态变更和其他高风险操作必须与业务事实同一 GORM 事务,审计失败则业务回滚。
|
||||
- 业务已回滚后的 `failed/denied` 审计使用独立短事务;二次失败保留原业务错误,并记录 critical 日志和指标。
|
||||
- Audit Event 至少记录稳定动作编码、操作者、来源、主要资源、前后数据、结果、风险及 request/correlation 标识;敏感值按统一 Sanitizer 删除或摘要化。
|
||||
- 新增或修改 PRD、Ticket 时必须明确 Audit Event、Domain Ledger、Integration Log、Outbox 的使用决定或 N/A 理由,并在最终发布门禁引用具体公共基础票。
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user