Skip to content

V2 - Log des actions — Instrumentation des actions utilisateurs #3191

@Viczei

Description

@Viczei

Sous-tâche du parent #3174. Dépend de #3190 (infrastructure d'audit logging).

Objectif

Brancher l'infrastructure d'audit (livrée par #3190) aux points d'action existants. Une fois cette tâche mergée, les actions utilisateurs commencent à s'écrire en base.

Contenu

tRPC pipeline

  • Plug du middleware auditMiddleware sur publicProcedure et protectedProcedure dans server/api/trpc.ts — log automatique de toutes les mutations
  • Lectures sensibles loguées explicitement via la table de mapping : profile.get, declaration.getOrCreate (renvoie GIP MDS)

Auth (NextAuth)

  • Event signIn → log auth.login (success)
  • logger.error → log auth.login_failed avec whitelist OAuth-safe (évite la fuite de tokens / state / code_verifier)
  • Custom logout route → log auth.logout avec capture de l'identité avant invalidation du cookie

Route handlers (9 routes wrappées via withAuditedRoute)

  • Lectures sensibles (rétention 180j) : /api/declaration-pdf, /api/transmitted-pdf, /api/no-sanction-pdf
  • Mutations (rétention 365j) : /api/upload
  • Exports / API SUIT (rétention 365j) : /api/export/download, /api/export/generate, /api/v1/export/declarations, /api/v1/files
  • Système (rétention 365j) : /api/gip-mds/import

Sécurité

  • /api/v1/files : validation du siren query param via parseSiren avant écriture en base (évite l'injection de varchar arbitraire)
  • Sanitize récursif : les clés sensibles (token, password, secret, apikey, authorization) sont stripées à toute profondeur dans metadata

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

In review

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions