CognxSafeTrack
feat: backlog P0→P3 — toast system, payments, tenant isolation, feedback handler, i18n parity
6dd9bad | # 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.** | |