TypeScript 97.4%
SQL 1%
JavaScript 0.9%
CSS 0.6%
1import "server-only";2import { getDb, auditEvents } from "@/db";3import { ids } from "@/lib/ids";4import { log } from "@/lib/log";56export async function writeAudit(input: {7 userId?: string | null;8 action: string;9 ipAddress?: string | null;10 userAgent?: string | null;11 meta?: Record<string, unknown>;12}) {13 try {14 await getDb()15 .insert(auditEvents)16 .values({17 id: ids.audit(),18 userId: input.userId ?? null,19 action: input.action,20 ipAddress: input.ipAddress ?? null,21 userAgent: input.userAgent?.slice(0, 300) ?? null,22 meta: input.meta ?? {},23 });24 } catch (e) {25 log.warn("audit write failed", { action: input.action, error: (e as Error).message });26 }27}28