用途:为 TypeScript/JavaScript 应用添加或评审审计追踪(audit trail)。审计日志回答“谁在何时对哪项资源做了什么、结果如何”,与可观测性日志不同:不做采样、保留期更长(1–7 年)、只追加且需防篡改。技能假设审计逻辑位于应用内;若要扩展 evlog 包本身,需查阅贡献者技能。
主要能力:log.audit() / audit() / withAudit() 设置 event.audit 并强制保留事件;auditEnricher() 自动填充 context(requestId、traceId、ip、userAgent、tenantId);auditOnly(drain) 只保留带审计的事件;signed(drain, { strategy: 'hmac' | 'hash-chain' }) 提供防篡改;auditRedactPreset 对凭证字段脱敏;mockAudit() 在测试中捕获审计事件。AuditFields 必填 action、actor、outcome,推荐 target。
使用方式:先在框架中注册 auditEnricher 与主/审计双 drain;用 defineAuditCatalog 或 defineAuditAction 集中定义动作词表;调用点优先用 withAudit() 包裹纯审计动作,或在处理器内手写 log.audit(),拒绝路径调用 log.audit.deny();用 auditDiff(before, after) 记录状态变更。多租户需为每个事件设置 tenantId 并按租户分区查询。保留期在 drain 层执行(FS maxFiles、Postgres DELETE 任务、数据集策略)。GDPR 场景可用加密擦除:加密 PII,删除密钥使审计行不可读而链仍有效。
适用场景:退款、删除、角色变更、密码重置等特权操作;合规评审(SOC2、HIPAA、PCI DSS);现存审计体系的四轮检查。限制:内置 cryptoShredding 仅在其资料中标注为路线图功能;hash-chain 多进程需自行持久化 state;未提供具体托管平台、定价或效果数据。