docs: update plan optim
Some checks failed
Deploy with Docker Compose / deploy (push) Failing after 2s
Some checks failed
Deploy with Docker Compose / deploy (push) Failing after 2s
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user