import Link from 'next/link'; import { requireAdmin } from '@/lib/admin/auth'; import { auditLog } from '@/lib/admin/queries'; import { AdminShell, fmtTs } from '@/components/admin/shell'; import { Table, th, td } from '@/components/ui/primitives'; const TYPES = ['', 'sale', 'listing', 'asset', 'connector', 'normalized_record', 'taxonomy_proposal']; export default async function AuditPage({ searchParams }: { searchParams: Promise<{ type?: string }> }) { await requireAdmin(); const sp = await searchParams; const rows = await auditLog({ entityType: sp.type || undefined }); return ( {TYPES.map((t) => {t || 'all'})}}>
{rows.length === 0 ? : null} {rows.map((r) => ( ))}
WhenEntityActionActorReasonDetails
No audit entries.
{fmtTs(r.created_at)} {String(r.entity_type)}
{String(r.entity_id)}
{String(r.action)} {String(r.actor)} {String(r.reason)} {JSON.stringify(r.details)}
); }