// Consultation du journal d'audit (onglet Réglages / outils de conformité). Lecture seule, sous // l'auth globale. Pagination par curseur `before` (ts décroissant). import type { FastifyInstance } from 'fastify'; import type { AuditLogsResponse } from '@arboretum/shared'; import type { Db } from '../db/index.js'; import { listAudit } from '../core/audit-log.js'; export function registerAuditRoutes(app: FastifyInstance, db: Db): void { app.get('/api/v1/audit-logs', async (req): Promise => { const q = req.query as { limit?: string; before?: string }; const limit = Math.min(Math.max(Math.trunc(Number(q.limit) || 50), 1), 200); const entries = listAudit(db, { limit, before: q.before ?? null }); // s'il reste potentiellement des entrées (page pleine), expose le curseur suivant. const nextBefore = entries.length === limit ? entries[entries.length - 1]!.ts : null; return { entries, nextBefore }; }); }