initial commit

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
BOHA
2026-03-23 08:46:51 +01:00
commit 4608494a3f
130 changed files with 40361 additions and 0 deletions

34
src/services/audit.ts Normal file
View File

@@ -0,0 +1,34 @@
import { FastifyRequest } from 'fastify';
import prisma from '../config/database';
import { AuditAction, EntityType, AuthData } from '../types';
export async function logAudit(params: {
request: FastifyRequest;
authData?: AuthData | null;
action: AuditAction;
entityType?: EntityType;
entityId?: number;
description?: string;
oldValues?: Record<string, unknown>;
newValues?: Record<string, unknown>;
}): Promise<void> {
try {
await prisma.audit_logs.create({
data: {
user_id: params.authData?.userId ?? null,
username: params.authData?.username ?? null,
user_ip: params.request.ip,
action: params.action,
entity_type: params.entityType ?? null,
entity_id: params.entityId ?? null,
description: params.description ?? null,
old_values: params.oldValues ? JSON.stringify(params.oldValues) : null,
new_values: params.newValues ? JSON.stringify(params.newValues) : null,
user_agent: params.request.headers['user-agent'] ?? null,
session_id: null,
},
});
} catch (err) {
console.error('Failed to write audit log:', err);
}
}