docs: capitaliser les patterns valides du 16 mars

This commit is contained in:
MaksTinyWorkshop
2026-03-16 15:36:17 +01:00
parent 019a6d2787
commit 0fe41269e8
4 changed files with 413 additions and 7 deletions

View File

@@ -8,7 +8,7 @@ Ce fichier recense des risques back-end susceptibles de provoquer :
- régressions coûteuses,
- incohérences de données.
Dernière mise à jour : 10-03-2026
Dernière mise à jour : 16-03-2026
---
@@ -44,6 +44,8 @@ Dernière mise à jour : 10-03-2026
- [Stripe `list()` sans gestion de `has_more`](#risque-stripe-list-has-more)
- [Concurrence entre activation locale et webhook sur transition trial → payant](#risque-trial-payant-concurrence)
- [`jest.clearAllMocks()` dans des `beforeEach` imbriqués avec mocks Prisma](#risque-jest-clearallmocks-imbrique)
- [Suppression du cookie après révocation DB sur logout](#risque-cookie-apres-revocation-db)
- [Repository layer non branché (dead layer)](#risque-repository-dead-layer)
---
@@ -503,3 +505,51 @@ if (!user?.userId) {
- Éviter les `clearAllMocks()` concurrents à plusieurs niveaux de nesting
- Préférer un setup explicite et local par scénario quand les mocks Prisma sont structurants
- Contexte technique : Jest / Prisma / tests NestJS — 10-03-2026
---
<a id="risque-cookie-apres-revocation-db"></a>
## Suppression du cookie après révocation DB sur logout
### Risques
- Si la révocation DB échoue avant la suppression du cookie, lutilisateur garde un cookie local devenu incohérent
- Lutilisateur peut rester bloqué dans un état où il ne peut plus se déconnecter proprement
- Le comportement diffère selon la disponibilité de la base
### Symptômes
- Logout qui échoue par intermittence quand la DB est instable
- Cookie de session toujours présent côté navigateur après erreur serveur
- Réessais de logout qui produisent des états difficiles à diagnostiquer
### Bonnes pratiques / mitigations
- Toujours supprimer le cookie en premier, même si la révocation DB échoue ensuite
- Traiter la suppression côté DB en best-effort ou avec gestion didempotence adaptée
- Vérifier en test quun échec DB ne laisse pas laccès browser actif
- Contexte technique : Next.js / auth par cookie / session persistée — 16-03-2026
---
<a id="risque-repository-dead-layer"></a>
## Repository layer non branché (dead layer)
### Risques
- Donner une impression de sécurité alors que le code métier continue dappeler lORM directement
- Multiplier les chemins daccès aux données avec des règles différentes
- Payer le coût dune abstraction qui na aucun effet réel
### Symptômes
- Un repository est créé mais les anciens call sites Prisma restent en place
- Les nouvelles règles de scoping ou de sécurité ne sappliquent pas partout
- La review montre des fichiers de repository peu ou jamais importés
### Bonnes pratiques / mitigations
- Vérifier quune nouvelle couche dabstraction est réellement branchée dans les call sites existants
- Rechercher explicitement les appels directs restants lors de la review
- Refuser lintroduction dune couche repository tant que la migration effective nest pas faite
- Contexte technique : TypeScript / Prisma / refactor daccès aux données — 16-03-2026