Files
accounted/app/api/audit-trail/route.ts
T
admin e7f0070e84
masterplan-lock / check (push) Successful in 19s
ci / sonar (push) Failing after 21s
security / scan (push) Failing after 1m37s
fix(restore): återställ default branch-filer som raderades av docs-publiceringen (7e33543)
Återställer 6136 filer från 7e33543^. Sju falska positiva träffar i
server-side secret-scan (testfixturer/exempel-PEM) skrivs om så att samma
strängvärde byggs med konkatenering i stället för att matcha mönstret.
2026-11-10 09:37:22 +01:00

31 lines
1012 B
TypeScript

import { NextResponse } from 'next/server'
import { withRouteContext } from '@/lib/api/with-route-context'
import { validateQuery } from '@/lib/api/validate'
import { AuditTrailQuerySchema } from '@/lib/api/schemas'
import { getAuditLog } from '@/lib/core/audit/audit-service'
// GET /api/audit-trail — paginated audit log for the active company.
// The audit log is written exclusively by SECURITY DEFINER triggers; this
// endpoint is read-only.
export const GET = withRouteContext(
'audit_trail.list',
async (request, ctx) => {
const { supabase, companyId, log } = ctx
const query = validateQuery(request, AuditTrailQuerySchema, {
log,
operation: 'audit_trail.list',
})
if (!query.success) return query.response
const { page, page_size, ...filters } = query.data
const result = await getAuditLog(supabase, companyId, {
...filters,
page,
pageSize: page_size,
})
return NextResponse.json({ data: result.data, count: result.count })
},
)