import { Router } from "express"; import { desc } from "drizzle-orm"; import { db } from "../db/client.js"; import { auditLog } from "../db/schema.js"; import { requireAuth, requireRole } from "../auth/middleware.js"; import { asyncHandler } from "../utils/asyncHandler.js"; export const auditLogRouter = Router(); auditLogRouter.use(requireAuth, requireRole("operator")); auditLogRouter.get("/", asyncHandler(async (req, res) => { const limit = Math.min(Number(req.query.limit ?? 200), 500); // createdAt only has one-second resolution, so entries made within the same second are ordered by id. const rows = await db.select().from(auditLog).orderBy(desc(auditLog.createdAt), desc(auditLog.id)).limit(limit); res.json({ entries: rows }); }));