mirror of
https://github.com/MaksTinyWorkshop/_Assistant_Lead_Tech
synced 2026-04-27 23:08:16 +02:00
capitalisation: intégration 28 entrées knowledge + 2 CLAUDE.md RL799_V2 (triage branche mcp_v1)
28 nouvelles sections intégrées dans 12 fichiers knowledge (backend risques/patterns, frontend risques/patterns, workflow risques). Couvre rate limiting, RGPD, CSP Next.js, refresh token TOCTOU, catch-all Prisma, distinction 401/403, tests E2E Playwright, etc. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -120,3 +120,47 @@ return buildLocalizedPath(locale, "home");
|
||||
- **Règle** : `os.tmpdir()` est interdit pour les fichiers qui seront renommés vers un volume Docker bind-mounté.
|
||||
|
||||
- Contexte technique : Node.js / Docker / fichiers media — app-template-resto 31-03-2026
|
||||
|
||||
---
|
||||
|
||||
<a id="risque-csp-strict-routes-html-api"></a>
|
||||
## CSP strict casse les routes HTML dans une API Next.js
|
||||
|
||||
### Risques
|
||||
|
||||
- Appliquer un CSP strict (`default-src 'self'`) via `headers()` dans `next.config.ts` sur toutes les routes `/api/*` casse les routes qui servent du HTML avec des dépendances externes (Swagger UI, pages de documentation, etc.)
|
||||
|
||||
### Symptômes
|
||||
|
||||
- La page HTML se charge mais reste blanche — les scripts et styles externes sont bloqués silencieusement par le navigateur
|
||||
|
||||
### Bonnes pratiques / mitigations
|
||||
|
||||
- Quand on ajoute des headers de sécurité via un pattern global, vérifier s'il existe des routes qui servent du HTML (pas uniquement du JSON)
|
||||
- Si oui, ajouter une règle dédiée plus spécifique **en premier** dans le tableau `headers()` (Next.js matche dans l'ordre de déclaration) avec un CSP adapté
|
||||
- Factoriser les headers communs dans une constante partagée
|
||||
|
||||
- Contexte technique : Next.js / CSP — RL799_V2 08-04-2026
|
||||
|
||||
---
|
||||
|
||||
<a id="risque-middleware-faux-argument-edge"></a>
|
||||
## Middleware Next.js — faux argument "Edge Runtime incompatible" pour éviter les imports
|
||||
|
||||
### Risques
|
||||
|
||||
- Dupliquer la logique métier dans `middleware.ts` au lieu d'importer depuis `src/lib/` sous prétexte que "Edge Runtime ne supporte pas les imports cross-boundary"
|
||||
- C'est faux pour les modules purs (pas de `fs`, `child_process`, `crypto` Node-only, etc.)
|
||||
|
||||
### Symptômes
|
||||
|
||||
- Logique dupliquée entre middleware et utilitaires, dérive garantie à la prochaine modification
|
||||
- Commentaire dans le code justifiant la duplication par une incompatibilité Edge non vérifiée
|
||||
|
||||
### Bonnes pratiques / mitigations
|
||||
|
||||
- Le middleware Next.js peut importer n'importe quel module local tant que celui-ci n'utilise que des API compatibles Edge (Web APIs, `process.env`, opérations JS pures)
|
||||
- Factoriser la logique partagée dans un module commun et l'importer depuis le middleware
|
||||
- **Signal review** : logique dupliquée dans `middleware.ts` avec un commentaire "Edge incompatible"
|
||||
|
||||
- Contexte technique : Next.js / middleware — RL799_V2 08-04-2026
|
||||
|
||||
Reference in New Issue
Block a user