19 lines
2.2 KiB
Markdown
19 lines
2.2 KiB
Markdown
# 01 — 交付不可变 Audit Event 写入闭环
|
||
|
||
**What to build:** 业务用例可以通过统一 Audit Writer 写入不可变、多资源、可串联且默认脱敏的审计事件。成功事件能够与业务事实共用事务,失败或拒绝事件使用独立短事务保留;未注册动作、缺少主要资源或审计写入失败时按明确策略阻止错误事实落地。
|
||
|
||
**Blocked by:** `.scratch/tech-public-foundation/issues/01-public-migration-ownership-and-gates.md` — 01 — 建立公共迁移所有权与检查门禁
|
||
|
||
**Status:** ready-for-agent
|
||
|
||
**架构通道:** 主通道为 Application + Port/Adapter,辅助通道为 Infrastructure。
|
||
|
||
**完整业务边界:** 本票收口 Audit Event、事件资源、动作注册表、统一 Sanitizer、内容哈希、大小控制和 Writer 可靠性,并用一个代表性敏感写操作验证公开接缝。明确不迁移其他旧 Service,不提供完整审计查询中心,不用 Audit Event 替代领域流水。
|
||
|
||
- [ ] Audit Event 支持稳定事件 ID、操作者与入口快照、结果、风险、前后数据、请求/关联/父事件 ID、HTTP 摘要、内容哈希和创建时间;事件资源支持 `primary/affected/reference`,且每个事件至少包含一个 `primary`。
|
||
- [ ] 动作注册表集中定义稳定动作编码、中文名称、类别、默认风险、允许资源类型和敏感字段规则;未经注册的动作不能写入生产审计。
|
||
- [ ] 统一 Sanitizer 删除禁止字段;`before_data`、`after_data`、`metadata` 分别执行 16KB 上限,超限后保存截断标志、原字节数、摘要和受控制品引用。
|
||
- [ ] `content_hash` 基于脱敏、标准化后的不可变内容生成,不包含数据库自增 ID;相同内容哈希稳定,Repository 不提供 Update/Delete 能力。
|
||
- [ ] `AppendWithTx` 与业务事实使用同一 GORM 事务,任一步失败整体回滚;已经回滚的 `failed/denied` 使用独立短事务,二次失败保留原业务错误并产生 critical 日志和指标。
|
||
- [ ] 真实 PostgreSQL 集成测试覆盖不可变约束、多资源、动作注册、风险默认值、哈希、截断、禁止字段、重复事件幂等和事务回滚。
|