From 2669fb98654dd8c8a3ac954d9a5a5be604b564f9 Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Fri, 27 Feb 2026 17:01:32 +0100 Subject: [PATCH] docs: update plan optim --- docs/plan-optimisation.md | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/docs/plan-optimisation.md b/docs/plan-optimisation.md index e9e975d..1f88431 100644 --- a/docs/plan-optimisation.md +++ b/docs/plan-optimisation.md @@ -19,16 +19,14 @@ ### ⚡ Problèmes de Performance -#### 🔴 Critique - N+1 API Calls dans getLibraries -**Impact:** Fort | **Fichiers:** `src/lib/services/library.service.ts:22-46` - -Les appels pour récupérer le count des livres sont parallèles (Promise.all), mais on pourrait utiliser l'endpoint Komga `expand=booksCount` si disponible. - #### 🟡 Cache préférences (IMPACT: MOYEN) **Symptôme:** Chaque lecture de préférences = 1 query DB **Fichier:** `src/lib/services/preferences.service.ts` +#### 🟢 N+1 API Calls - résolu avec cache +Les appels pour récupérer le count des livres sont parallèles (Promise.all) + cache Next.js (0-2ms). Plus critique qu'avant. + --- ### 🔒 Problemes de Securite @@ -48,21 +46,18 @@ const authHeader: string = Buffer.from(`${data.username}:${data.password}`).toSt **Solution:** Ajouter `rate-limiter-flexible` pour limiter les requêtes par IP/user -#### 🟡 Pas de sanitization des inputs -**Impact:** MEDIUM | **Fichiers:** `library.service.ts`, `series.service.ts` - --- ### ⚠️ Autres Problemes +#### 🟡 Appels doublons (architecture Next.js) +**Impact:** Moyen | **Fichier:** `layout.tsx` + +Le layout + les pages font des appels séparés → appels doublons. Résolu en partie par le cache. + #### Service Worker double-cache (IMPACT: FAIBLE) **Symptôme:** Conflit entre cache SW et navigateur -**Fichier:** `public/sw.js` (ligne 528-536) - -#### RequestDeduplicationService non utilise -**Impact:** Moyen | **Fichier:** `src/lib/services/request-deduplication.service.ts` - #### getHomeData echoue completement si une requete echoue **Impact:** Fort | **Fichier:** `src/app/api/komga/home/route.ts` @@ -73,13 +68,13 @@ const authHeader: string = Buffer.from(`${data.username}:${data.password}`).toSt ### ✅ Phase 2: Performance (COMPLETEE) - **Cache serveur API via fetchFromApi avec option `revalidate`** - Fichiers modifiés: - - `src/lib/services/base-api.service.ts` - ajout option `revalidate` dans fetch + - `src/lib/services/base-api.service.ts` - ajout option `revalidate` dans fetch + CACHE_DEBUG - `src/lib/services/library.service.ts` - CACHE_TTL = 300s (5 min) - `src/lib/services/home.service.ts` - CACHE_TTL = 120s (2 min) - `src/lib/services/series.service.ts` - CACHE_TTL = 120s (2 min) - `src/lib/services/book.service.ts` - CACHE_TTL = 60s (1 min) -### Phase 1: Securite (Priorite HAUTE) +### Phase 1: Securite (PRIORITE SUIVANTE) 1. **Chiffrer les identifiants Komga** ```typescript