操作审计(audit log) 安全与工程

别名: 操作审计 · 审计日志

记录「谁批了什么、为什么、什么时候」的日志:每个审批决策(requestId/工具/参数/风险/决定/理由/时间)落事件流 + 服务端 `GET /approvals` 落库副本。`approval_result` 本身就是审计事件,不需要单独的审计模块。

它是什么

操作审计(audit log)记录「谁批了什么、为什么、什么时候」:每个审批决策(requestId/工具/参数/风险/决定/理由/时间)落事件流 + 服务端 GET /approvals 落库副本。设计要点是——approval_result 本身就是审计事件,不需要单独的审计模块:谁批的、批的什么、理由是什么,已经天然落在事件流里,服务端再做一份可查询的副本即可。

为什么理由不能丢

getApproval 回调的签名是 Promise<{ approved, reason? }>——决策和理由一起回来,一起进事件流、一起进审计。如果回调只返回 true/false,审计里就只剩一行没有灵魂的 true/false,被拒的模型也不知道「为什么」、无法恢复。拒绝必须是可见、可解释的:tool_resultdenied 标记 + 人类理由,既是模型的恢复依据,也是审计的一部分。

审计的工程要求

审计日志本身要防篡改、防泄露:不记录敏感数据(token、密钥)、追加式存储、日志编码正确防注入——这些是 OWASP 日志规范与「安全日志与监控失效」(A09)的常识,本教程的 GET /approvals 是它的最小雏形。真产品里,审批审计会变成第 20 章可观测性看板上的指标。

在本教程的位置

第 18 章「服务端:审批中枢」一节:createApprovalHublog 数组 + approvals()approval_result 落事件流(GET /events 可回放),GET /approvals 落库副本(可查询)。相关词条:审批双向流

相关词条

出现在这些章节