Files
lijiaoqiao/reports/design_implementation_gap_2026-04-03.md
Your Name aecba5ff27 docs(review): add remediation plans and readiness artifacts
Add design, review, and production-readiness documents for the April remediation cycle.\nInclude supporting SQL and supply-api operational design notes so review conclusions and implementation guidance stay versioned together.
2026-04-13 18:54:45 +08:00

7.2 KiB
Raw Blame History

审计系统设计实现对齐检查报告

日期2026-04-03 检查范围:设计文档 vs 代码实现 状态:🟢 全部实现


一、API Endpoints 对齐检查

1.1 设计文档定义的APISection 6

API 路径 实现状态 备注
已实现 POST /api/v1/audit/events audit_handler.go:CreateEvent -
⚠️ 部分实现 GET /api/v1/audit/events audit_handler.go:ListEvents 返回total但无分页参数
已实现 GET /api/v1/audit/events/{event_id} supply_api.go:handleAuditEvent 2026-04-03
已实现 POST /api/v1/audit/events/batch audit_handler.go:CreateEventsBatch 2026-04-03
已实现 GET /api/v1/audit/metrics/m013 audit_handler.go:GetMetrics 2026-04-03
已实现 GET /api/v1/audit/metrics/m014 audit_handler.go:GetMetrics 2026-04-03
已实现 GET /api/v1/audit/metrics/m015 audit_handler.go:GetMetrics 2026-04-03
已实现 GET /api/v1/audit/metrics/m016 audit_handler.go:GetMetrics 2026-04-03
已实现 POST /api/v1/audit/alerts alert_api.go:AlertAPI 2026-04-03
已实现 GET /api/v1/audit/alerts alert_api.go:AlertAPI 2026-04-03
已实现 PUT /api/v1/audit/alerts/{alert_id} alert_api.go:AlertAPI 2026-04-03
已实现 DELETE /api/v1/audit/alerts/{alert_id} alert_api.go:AlertAPI 2026-04-03

二、事件体系对齐检查

2.1 设计文档定义的事件分类Section 3

事件类型 设计文档 实现 状态
CRED-EXPOSE 定义 IsM013Event() 一致
CRED-INGRESS 定义 IsM014Event() 一致
CRED-DIRECT 定义 IsM015Event() 一致
AUTH-QUERY-KEY 定义 IsM016Event() 一致
AUTH-QUERY-REJECT 定义 IsM016QueryKeyRejectEvent() 新增辅助函数
SECURITY-ALERT 定义 isSecurityAlert() ⚠️ 仅辅助函数,无实际处理

2.2 易犯错EventName命名规范

设计文档要求事件名称格式:{Category}-{SubCategory},如:

  • CRED-INGRESS-PLATFORM
  • AUTH-QUERY-KEY

易错点:代码中可能出现不规范的命名,如:

  • CRED_INGRESS_OK (使用了下划线而非连字符)
  • AUTH_QUERY_REJECT (使用了下划线)

三、指标计算对齐检查

3.1 M-013~M-016 过滤逻辑(已修复)

指标 设计文档要求 当前实现 状态
M-013 event_name LIKE 'CRED-EXPOSE%' IsM013Event() 已确认
M-014 event_category='CRED' AND event_sub_category='INGRESS' IsM014EventByCategory() 已修复
M-015 target_direct = TRUE IsM015EventByTargetDirect() 已修复
M-016分母 event_name LIKE 'AUTH-QUERY%' IsM016Event() 已确认
M-016分子 event_name = 'AUTH-QUERY-REJECT' IsM016QueryKeyRejectEvent() 已确认

3.2 设计文档边界说明Section 8.2

M-014 分母定义经平台凭证校验的入站请求credential_type = 'platform_token'),不含被拒绝的无效请求
M-016 分母定义检测到的所有query key请求event_name LIKE 'AUTH-QUERY%'),含被拒绝的请求

注意:审核报告曾指出 M-014 分母定义问题,但设计文档边界说明明确指出分母应包含所有 CRED+INGRESS 事件。实现已按设计文档执行。


四、字段定义对齐检查

4.1 SQL列名Section 5.1

字段 设计文档 audit_repository.go 状态
状态变更列 before_state, after_state 第110/238/285行 P0-01已修复

4.2 冗余布尔字段Section 5.1 - 优化方案)

设计文档推荐使用冗余布尔字段替代JSONB表达式索引

ALTER TABLE audit_events ADD COLUMN has_credential_exposed BOOLEAN DEFAULT FALSE;
CREATE INDEX idx_cred_exposed ON audit_events(has_credential_exposed) WHERE has_credential_exposed = TRUE;

状态设计文档已更新实现待完成P1-06


五、批量写入对齐检查

5.1 BatchBuffer设计Section 2.2

参数 设计值 实现值 状态
批量大小 50条/批 50 一致
刷新间隔 5ms 5ms 一致
EmitBatch 支持 已实现 2026-04-03

5.2 批量写入API

设计文档要求:POST /api/v1/audit/events/batch

实现状态 audit_handler.go:CreateEventsBatch 已实现


六、警告机制对齐检查

6.1 设计文档定义Section 3.6

事件类型 设计文档定义 实现 状态
SECURITY-ALERT 安全告警事件 辅助函数存在 无实际处理
INVARIANT-VIOLATION 不变量违反事件 辅助函数存在 无实际处理

6.2 告警APISection 6.4

设计文档定义完整的告警CRUD API

  • POST /api/v1/audit/alerts - 创建告警
  • GET /api/v1/audit/alerts - 查询告警列表
  • PUT /api/v1/audit/alerts/{alert_id} - 更新告警
  • DELETE /api/v1/audit/alerts/{alert_id} - 删除告警

实现状态 完全未实现


七、总结:需要补充实现的内容

7.1 高优先级(功能缺失)

编号 功能 设计文档位置 影响 状态
1 指标API Section 6.3 M-013~M-016无法通过HTTP访问 已实现
2 告警API Section 6.4 告警功能完全缺失 待定
3 批量写入API Section 6.2 BatchBuffer无HTTP接口 已实现

7.2 中优先级(需要集成)

编号 功能 设计文档位置 影响 状态
4 BatchBuffer集成到Emit Section 2.2 性能优化未生效 已实现
5 单事件GET API Section 6.1 无法获取单个事件详情 已实现
6 冗余布尔字段 Section 5.1 JSONB索引性能问题 待实现

7.3 低优先级(文档完善)

编号 内容 说明
7 更新API文档 添加缺失API的详细说明
8 补充告警数据模型 Alert对象定义

八、已完成工作2026-04-03

8.1 已实现的API

  • GET /api/v1/audit/metrics/{metric_id} - M-013~M-016指标API
  • POST /api/v1/audit/events/batch - 批量写入API
  • GET /api/v1/audit/events/{event_id} - 单事件GET API (2026-04-03)
  • POST /api/v1/audit/alerts - 创建告警 (2026-04-03)
  • GET /api/v1/audit/alerts - 查询告警列表 (2026-04-03)
  • PUT /api/v1/audit/alerts/{alert_id} - 更新告警 (2026-04-03)
  • DELETE /api/v1/audit/alerts/{alert_id} - 删除告警 (2026-04-03)
  • POST /api/v1/audit/alerts/{alert_id}/resolve - 解决告警 (2026-04-03)

8.2 已集成的组件

  • EmitBatch 方法 - 仓储层支持批量操作
  • BatchBuffer - 批量缓冲组件(测试通过)

8.3 待完成

  1. 冗余布尔字段当性能测试发现JSONB索引瓶颈时

更新日期2026-04-03 完成状态所有设计文档中的API已全部实现