diff --git a/modules/audit-logger/audit.ts b/modules/audit-logger/audit.ts index 9ed2f6d..aa7ee46 100644 --- a/modules/audit-logger/audit.ts +++ b/modules/audit-logger/audit.ts @@ -11,15 +11,18 @@ export function auditLogPath(env: NodeJS.ProcessEnv = process.env): string { return env.AUDIT_LOG ?? "/var/lib/audit-logger/audit.log"; } -/** Append an event to the trail as one JSON line, keeping the metadata an audit needs first. */ +/** Append an event to the trail as one JSON line, keeping the metadata an audit needs first. The id + * is the event's own x-event-id (ADR 0047) — the handle a reader dedups the at-least-once trail on. */ export async function record(event: Event, path: string): Promise { const line = JSON.stringify({ - id: event.type + "@" + event.at, // a stable-ish key until x-event-id headers land (ADR 0047) + id: event.id, type: event.type, source: event.source, node: event.node, at: event.at, + ...(event.causationId ? { causationId: event.causationId } : {}), + ...(event.schema ? { schema: event.schema } : {}), body: event.body, }) + "\n"; await mkdir(dirname(path), { recursive: true }).catch(() => {});