Таблица audit_log, recordAudit на CRUD, GET /api/v1/audit и dual-write source_app=cfdm. Co-authored-by: Cursor <cursoragent@cursor.com>
23 lines
694 B
TypeScript
23 lines
694 B
TypeScript
import type { FastifyInstance } from "fastify";
|
|
import { listAudit } from "@cfdm/db";
|
|
import { auditListQuerySchema } from "@cfdm/shared";
|
|
import { AppError } from "../errors.js";
|
|
|
|
export async function auditRoutes(app: FastifyInstance): Promise<void> {
|
|
app.get("/audit", async (request) => {
|
|
const parsed = auditListQuerySchema.safeParse(request.query);
|
|
if (!parsed.success) {
|
|
throw AppError.validation("Некорректные параметры запроса");
|
|
}
|
|
|
|
const q = parsed.data;
|
|
return listAudit(app.db, {
|
|
action: q.action,
|
|
severity: q.severity,
|
|
userId: q.user_id,
|
|
sourceApp: q.source_app,
|
|
limit: q.limit,
|
|
});
|
|
});
|
|
}
|