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).