Aller au contenu

Invariants globaux ProbatioVault

Ce document liste les règles non négociables qui s'appliquent à l'ensemble du projet.

Invariants de sécurité

Zero-Knowledge

  • INV-SEC-01 : Le serveur ne voit jamais les données en clair
  • INV-SEC-02 : Le password utilisateur ne quitte jamais le device client
  • INV-SEC-03 : K_master_user n'est jamais transmise en clair au serveur
  • INV-SEC-04 : Tout chiffrement/déchiffrement se fait côté client

Cryptographie

  • INV-CRYPTO-01 : SHA3-256 pour tous les hash probatoires (FIPS 202)
  • INV-CRYPTO-02 : AES-256-GCM pour tout chiffrement (NIST SP 800-38D)
  • INV-CRYPTO-03 : Argon2id pour dérivation password (RFC 9106, 64 MiB minimum)
  • INV-CRYPTO-04 : HKDF-SHA3-256 pour dérivation de clés documentaires
  • INV-CRYPTO-05 : Clés RSA 4096 bits minimum pour HSM

Données

  • INV-DATA-01 : Un document = un hash unique (contrainte DB)
  • INV-DATA-02 : RLS activé sur toutes les tables utilisateur
  • INV-DATA-03 : Pas de suppression physique de documents certifiés (soft delete)
  • INV-DATA-04 : Hash complet jamais loggé (RGPD)

Invariants d'architecture

Backend

  • INV-ARCH-01 : API RESTful avec versioning /api/v1/
  • INV-ARCH-02 : TypeORM pour toutes les opérations DB
  • INV-ARCH-03 : NestJS pour le framework backend
  • INV-ARCH-04 : PostgreSQL comme base de données principale

Frontend

  • INV-ARCH-05 : Expo/React Native pour l'application mobile
  • INV-ARCH-06 : TypeScript strict sur tous les projets
  • INV-ARCH-07 : Secure Store pour stockage sensible côté client

Infrastructure

  • INV-ARCH-08 : Terraform pour tout provisioning infrastructure
  • INV-ARCH-09 : AWS CloudHSM pour opérations HSM
  • INV-ARCH-10 : S3 avec Object Lock pour stockage WORM
  • INV-ARCH-11 : VPN site-to-site pour accès HSM

Invariants de qualité

Tests

  • INV-QA-01 : Coverage minimum 70% sur nouveau code
  • INV-QA-02 : Tests unitaires obligatoires pour services crypto
  • INV-QA-03 : Vecteurs de test RFC pour fonctions normalisées

Documentation

  • INV-DOC-01 : Toute User Story = 4 fichiers (spec, plan, accept, rex)
  • INV-DOC-02 : JIRA n'est jamais la source de vérité documentaire
  • INV-DOC-03 : Documentation en français

CI/CD

  • INV-CI-01 : Pipeline : lint → test → sonar → build
  • INV-CI-02 : Quality gate Sonar obligatoire
  • INV-CI-03 : Pas de déploiement sans tests passants

Invariants de conformité

  • INV-COMPL-01 : Conformité RGPD pour données personnelles
  • INV-COMPL-02 : Conformité eIDAS pour signatures électroniques
  • INV-COMPL-03 : Conformité FIPS pour algorithmes crypto