Une instance dédiée par client
Chaque client a sa propre instance ProveStack, sur un VPS OVHcloud en Europe, déployée et mise à jour par nos soins. Aucune base, aucun stockage, aucun processus n'est partagé avec un autre client. Les instances active et de secours dans deux centres de données sont en développement.
une instance par clientOVHcloud, Europe
Isolation dans la base de données
Chaque table qui contient des données d'organisation a la sécurité au niveau des lignes de PostgreSQL activée et forcée. Une requête ne voit que les lignes de l'organisation pour laquelle elle s'exécute, même en cas de bogue applicatif.
PostgreSQL row-level securitytoutes les tables
Un rôle qui ne peut pas la contourner
L'API se connecte avec un rôle qui ne possède pas les tables et ne peut pas contourner cette sécurité. Les migrations s'exécutent à part, avec le rôle propriétaire.
rôle d'exécution ≠ propriétaire
Isolation dans l'application aussi
L'application limite aussi chaque lecture et chaque écriture à l'organisation courante : l'isolation ne repose jamais sur une seule couche.
base + application
Connexion et rôles
La connexion passe par OpenID Connect avec Keycloak et PKCE. L'appartenance à l'organisation et le rôle sont vérifiés côté serveur à chaque requête ; le rôle n'est jamais lu dans le jeton.
OpenID Connectappartenances côté serveur
Relectures liées à une preuve précise
Une relecture porte sur une version exacte de preuve. Personne ne peut approuver une preuve qu'il a lui-même déposée, et une nouvelle version demande une nouvelle relecture.
pas d'auto-approbationliée à la version
Journal en ajout seul
Les actions importantes (imports, décisions, relectures, clôtures) sont écrites dans un journal en ajout seul, avec leur auteur et leur date. Le journal fait partie de chaque dossier exporté.
auteuractionhorodatage
Taille des requêtes limitée
L'API refuse les requêtes trop volumineuses, sur la taille annoncée comme sur les octets reçus, avant de les analyser. Les imports ont leurs propres limites.
appliqué avant l'analyse
Intégrité des dossiers de preuves
Chaque dossier exporté est figé et identifié par l'empreinte SHA-256 de son manifeste ; le retélécharger donne les mêmes octets. Une empreinte prouve que les octets n'ont pas changé, pas que le contenu est vrai.
manifeste SHA-256octets identiques
Ce site
Servi par Cloudflare Pages avec une Content-Security-Policy stricte, sans mesure d'audience ni traceur ; les polices sont servies par le site lui-même. Le seul cookie est celui de la session d'administration. Les messages de contact sont conservés dans Cloudflare D1 et supprimés après 36 mois.
sans mesure d'audienceun cookie d'administration