Chaque ligne porte son entreprise
Toutes les tables portent l'identifiant de l'entreprise, et la base applique elle-même la règle d'isolation à chaque requête. Un écran mal écrit ne peut pas afficher les données d'une autre entreprise : la base ne les lui rend pas.
Vérifié à chaque migration
Chaque évolution du schéma se termine par une assertion qui échoue si une table publique n'a pas sa règle d'isolation. Ce n'est pas une revue, c'est un test qui bloque.
Des clés qui ne traversent pas
Les liens entre tables sont composés de l'identifiant et de l'entreprise : une ligne ne peut pas référencer le parent d'une autre entreprise, même avec un défaut de code, même avec la clé de service.
Des droits par catégorie et par grade
Dirigeant, bureau, terrain, comptable ; responsable, confirmé, junior, apprenti. Un catalogue de quarante-cinq droits, des défauts par catégorie et grade, des dérogations par membre. Le dirigeant a toujours tout. Le terrain ne voit jamais les marges.
Un journal des actions
Émission, avoir, règlement, verrouillage de paie, export, changement de droits : horodaté, signé, consultable, filtrable. On sait qui a fait quoi, et quand.
Des accès qui expirent
Une invitation vaut sept jours. Un lien de document est personnel et n'expose ni prix interne ni note. Un code d'accès d'immeuble a une date, et n'apparaît jamais sur une page publique.