Cabinet d’avocats
Une plateforme juridique où le secret professionnel est garanti par PostgreSQL, pas par la discipline du code.

Site institutionnel, espace client et espace avocat pour un cabinet, d’après un cahier des charges de 19 sections. Les données relèvent du secret professionnel : le cloisonnement, l’audit et les règles juridiques sont garantis par la base elle-même.
Le contexte
Un vrai cabinet, un vrai cahier des charges (19 sections) : site institutionnel, espace client, espace avocat (dossiers, agenda, messagerie, facturation, vigilance anti-blanchiment).
Les données traitées relèvent du secret professionnel de l’avocat. Une requête qui oublie un WHERE n’est pas un bug : c’est une fuite.
Un WHERE oublié est une fuite. Une politique de sécurité en base, elle, ne s’oublie pas.
Le principe directeur
La sécurité n’est pas un module ajouté après coup : elle structure l’architecture. Row-Level Security pour qu’un avocat ne voie que ses dossiers, triggers pour rendre le journal d’audit inaltérable, fonctions SECURITY DEFINER pour les seules opérations qui doivent franchir le cloisonnement (ouverture de dossier, détection de conflits d’intérêts).
Le rôle applicatif n’est pas propriétaire des tables, et l’API refuse de démarrer si c’est le cas. Le code métier ne filtre jamais par utilisateur : dupliquer le cloisonnement créerait deux sources de vérité qui divergent.

Ce qui garantit quoi
- Un avocat ne voit que ses dossiers → Row-Level Security PostgreSQL
- Journal d’audit inaltérable → privilèges, triggers et chaînage SHA-256 (la falsification reste détectée même avec les droits superutilisateur)
- Pas de vigilance LCB-FT sur un dossier contentieux → trigger en base
- Pas de double réservation de créneau → contrainte d’exclusion GiST
- Décisions d’architecture documentées en ADR, traçabilité exigence par exigence
Des règles de droit, traduites en code
Certaines règles ont une conséquence juridique directe : une déclaration de soupçon ne part que vers le Bâtonnier, aucun module d’avis clients ne doit exister, un dossier contentieux ne déclenche jamais la vigilance anti-blanchiment. Elles sont inscrites dans la base et vérifiées par un script de sécurité rejoué après chaque modification.

En images



