Files
_Assistant_Lead_Tech/knowledge/backend/risques
MaksTinyWorkshop b3417ad77b capitalisation: intégration ~60 entrées RL799_V2 (triage 2026-05-02)
Triage du 95_a_capitaliser.md (~75 propositions) :
- 60 entrées intégrées dans knowledge/ (backend, frontend, workflow)
- 4 nouveaux fichiers : backend/patterns/tests.md, backend/risques/tests.md,
  frontend/patterns/general.md, workflow/patterns/general.md
- 6 doublons rejetés
- Mise à jour des READMEs index pour refléter les nouvelles entrées
- 95_a_capitaliser.md restauré à sa structure initiale
- 40_decisions_et_archi.md : décision mono-tenant déployable vs SaaS multi-tenant
- 90_debug_et_postmortem.md : sub-agents Write indisponible, effet iceberg CI,
  prisma migrate diffs cosmétiques

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 22:12:44 +02:00
..
2026-03-25 08:34:19 +01:00
2026-03-25 08:34:19 +01:00

Backend — Risques & vigilance — Index

Risques backend susceptibles de provoquer des incidents prod, failles de sécurité, bugs non diagnostiquables, ou régressions coûteuses.

Avant toute proposition backend, identifie le fichier dont le nom et la description matchent le domaine traité, puis lis-le.


Fichier Domaine Entrées clés
auth.md Auth, sessions, guards, accès AuthN/AuthZ dispersée, guard global manquant, null-check request.user, AdminRoleGuard sans @RequireAdminRole, GET sans contrôle accès, cookie après révocation, mock session sans expiresAt, buildApp partagé e2e, champ absent JWT, email login vs contact
contracts.md Contrats, validation, codes erreur Contrats implicites, erreurs non standardisées, duplication constantes, schema orphelin, code erreur générique 409, ForbiddenException pour validation, process.env direct, statut métier non propagé
prisma.md Prisma, DB, transactions, migrations @unique nullable, TOCTOU transaction, OR tenantId null, nextOrder race condition, tenantId sans FK, schema divergence spec, getter manquant, init module build, clearAllMocks imbriqué, cursor non validé, enum-like String, migration manuelle hors git, relation 1:1 sans unique
stripe.md Stripe, paiements, webhooks, subscriptions billing_cycle_anchor vs current_period_end, list() sans has_more, concurrence trial→payant, non-idempotence, 200 pendant processing
nestjs.md NestJS, controllers, providers TooManyRequestsException NestJS 11, controller corrompu insertions, repository dead layer, interface provider incomplète
redis.md Redis, cache, quotas, TTL Thrash connexion sous charge, entitlements TTL > SLA, compteurs in-memory, TTL heure locale ±12h
nextjs.md Next.js, build, routing Prisma init au chargement module, server-only dans repositories, redirect boucle infinie feature flags, dossiers _* exclus du routing App Router
general.md Observabilité, migrations, performance, architecture Observabilité insuffisante, migrations non reproductibles, upsert N+1, authorize-after-fetch, valeur sentinelle DTO, idempotence endpoint, fichier orphelin, mélange Date UTC/locale, champ fantôme Zod, catch vide, params non validés, cast TS brut, chevauchement temporel, TOCTOU, biais agrégation, couplage types erreur, service HTTP-aware, count sans filtre, env top-level, dérive DTO liste vs détail, notification linkUrl rôle-aware, matrice documentée vs code, format User.id mixte, Web Push topic > 32 chars, lib npm types non embarqués, form HTML POST dans un mail, env vars frontend-facing fail-fast
tests.md Isolation des tests d'intégration vi.stubEnv sans restauration, maxWorkers: 1 masque l'isolation, flakiness inter-fichiers DB partagée