# Plan d'Implémentation : Résolution de la Dette Technique Ce plan détaille les étapes pour résoudre les problèmes identifiés dans l'audit du 08/05/2026. ## Phase 1 : Sécurité & Isolation (Priorité Immédiate) ### 1.1 Hardening de l'Isolation Multi-Tenant - **Tâche** : Mettre à jour `packages/database/src/extension.ts` pour inclure l'opération `upsert` dans les filtres automatiques. - **Vérification** : Test unitaire simulant un `upsert` avec un ID d'un autre tenant. ### 1.2 Découpage du Middleware d'Authentification - **Tâche** : Extraire la logique de `index.ts` vers des middlewares dédiés : - `validateApiKey.ts` - `verifyJwt.ts` - `enforceOrgIsolation.ts` - **Vérification** : Les routes protégées doivent toujours retourner 401/403 sans les bons headers. --- ## Phase 2 : Optimisation Backend & IA ### 2.1 Mise en cache des Prompts - **Tâche** : Modifier `PromptLoader` pour utiliser un cache mémoire (`Map`) afin d'éviter les lectures disque répétitives. - **Tâche** : Déplacer les prompts codés en dur de `AIService.ts` vers `packages/prompts/src/templates`. ### 2.2 Refactorisation des Contrôleurs Admin - **Tâche** : Extraire la logique métier de `admin.ts` vers des services dédiés (ex: `ExcelService`, `AnalyticsService`). - **Objectif** : Réduire la taille des fichiers de routes à moins de 10KB. --- ## Phase 3 : Refactorisation Frontend (App Web) ### 3.1 Dé-monolithisation de `apps/web` - **Tâche** : Créer une structure de dossiers standard dans `apps/web/src` : - `components/` (Navbar, Hero, Features, StudentPortal, etc.) - `hooks/` (useStudentData) - `lib/` (api.ts - mutualisé avec l'admin si possible) - **Tâche** : Migrer les appels `fetch()` vers le client `api.ts`. --- ## Phase 4 : Qualité & Automatisation ### 4.1 Unification du Package Management - **Tâche** : Supprimer `package-lock.json`. Configurer `pnpm-workspace.yaml` pour garantir l'usage exclusif de pnpm. - **Tâche** : Ajouter un script `preinstall` pour bloquer npm/yarn. ### 4.2 Socle de Tests - **Tâche** : Installer `vitest` dans le package `api`. - **Tâche** : Écrire des tests d'intégration pour les flux critiques (Login, Inbound Message, Org Creation). ## 📅 Estimation de l'effort | Phase | Durée Estimée | Complexité | | :--- | :--- | :--- | | Phase 1 (Sécurité) | 1 jour | 🟡 Moyenne | | Phase 2 (Backend/IA) | 2 jours | 🟡 Moyenne | | Phase 3 (Frontend) | 3 jours | 🔴 Élevée | | Phase 4 (Qualité) | 2 jours | 🟢 Faible | **Total estimé : 8 jours de développement.**