Aller au contenu

PD-15 — Acceptabilité


📚 Navigation User Story | Document | | | ---------- | -- | | 📋 [Spécification](PD-15-specification.md) | | | 🛠️ [Plan d'implémentation](PD-15-plan.md) | | | ✅ **Critères d'acceptation** | *(ce document)* | | 📝 [Retour d'expérience](PD-15-rex.md) | | [← Retour à backend-core](../PD-186-epic.md) · [↑ Index User Story](index.md)

Objectif

Vérifier que l’implémentation est conforme à la spécification, respecte l’ensemble des invariants ProbatioVault et ne présente aucune incohérence ou oubli critique.


Périmètre de vérification

La revue d’acceptabilité vérifie explicitement :

  • la conformité stricte à la spécification fonctionnelle
  • le respect de tous les invariants applicables
  • la couverture des scénarios de test définis
  • l’absence d’incohérences, oublis ou régressions

Écarts identifiés

Chaque écart constaté doit être documenté et classé selon sa gravité.

Classification des écarts

Niveau Définition
BLOQUANT Violation d’un invariant, faille de sécurité, non-conformité majeure à la spec
MAJEUR Fonction incomplète, comportement non conforme mais sans rupture de sécurité
MINEUR Détail, dette acceptable, amélioration non critique

Détail des écarts

ID Description Référence Gravité
E-01 RLS incohérent pour les lectures : les policies SELECT exigent app.current_user_id, mais aucune mise en contexte n’est faite pour les requêtes de lecture (login SRP ou consultation profil) — RlsSubscriber ne couvre que INSERT/UPDATE/DELETE et AuthService utilise directement Repository.findOne. Résultat : soit les requêtes sont bloquées (login impossible), soit on dépend d’un rôle qui bypass RLS, ce qui viole l’isolement attendu. Spec §RLS / AC3-AC5 ; TA-2/TA-3 ; src/database/subscribers/rls.subscriber.ts, src/modules/auth/auth.service.ts MAJEUR
E-02 Suppression utilisateur impossible même pour un rôle admin : la policy DELETE est USING (false) sans exception contrôlée, contrairement à AC6 qui prévoit une suppression réservée à un rôle probatoire/administrateur. Spec §RLS / AC6 ; src/database/migrations/1731888050000-CreateVaultSecureUsersTable.ts MAJEUR
E-03 Normalisation email absente : l’API ne lowercase/trim pas l’email avant stockage, l’unicité est sensible à la casse et aux espaces, en contradiction avec « email normalisé ». Risque de doublons fonctionnels (User@x vs user@x). Spec §Règles API Création de compte ; AC4 ; src/modules/auth/auth.service.ts, register.dto.ts MINEUR
E-04 Documentation livrable manquante : le fichier attendu /docs/db/vault_secure/users.md n’est pas présent. Spec §Livrables ; arborescence docs/ MINEUR

Conclusion d’acceptabilité

⚠️ ACCEPTÉ AVEC RÉSERVES — écarts MAJEURS/MINEURS documentés (E-01 à E-04).