Audit de la Dette Technique — Infrastructure PaaS (v3.0)
Dernière Mise à Jour : 25 Avril 2026 Statut global : 🏗️ Transition PaaS (Architecture Stable, Optimisations Requises)
🚦 Résumé des Risques Actuels
| Priorité | Sujet | État | Impact |
|---|---|---|---|
| 🔴 Critique | Performance du Bridge (Requêtes Prisma) | ⚠️ À RISQUE | Latence accrue à chaque message reçu |
| 🟠 Haute | Duplication d'Extraction WhatsApp | 🔄 DUPLIQUÉ | Risque d'incohérence entre Gateway et Worker |
| 🟠 Haute | Résilience des Webhooks Clients | ❌ MANQUANT | Perte de messages si le client est offline |
| 🟡 Moyenne | Validation JSON FlowConfig | ✅ FIXED | Sécurisé côté API, à renforcer côté Worker |
| 🟡 Moyenne | Gestion des Secrets (Shared Keys) | 🔐 STATIQUE | Risque de compromission sur le long terme |
1. Performance & Évolutivité (Scalability)
- Problème : Chaque message entrant dans le bridge du Worker (
index.ts) déclenche une requête SQL synchrone pour récupérer lemodede l'organisation. - Risque : Saturation de la pool de connexions Prisma lors de pics de trafic.
- Action requise : Implémenter un cache Redis pour les métadonnées des organisations (TTL: 1h).
- Statut : ⚠️ À surveiller.
2. Maintenabilité : Duplication de Logique
- Problème : La logique d'extraction du
phoneet dutextdepuis le payload Meta est copiée entreapps/apietapps/whatsapp-worker. - Risque : Un changement dans l'API WhatsApp (ex: nouveau type de bouton) doit être reporté à deux endroits, multipliant les chances d'erreur.
- Action requise : Créer un helper
extractWhatsAppPayloaddanspackages/shared-typesou un nouveau package@repo/whatsapp-utils. - Statut : 🔄 Dette active.
3. Fiabilité des Webhooks (Phase 2)
- Problème : Le routage vers les clients externes en mode
WEBHOOKutilise un simplefetchavec un log d'erreur en cas d'échec. - Risque : Aucun mécanisme de retry (tentatives de renvoi). Si le serveur du client redémarre, le message est définitivement perdu.
- Action requise : Utiliser une file d'attente BullMQ dédiée (
webhook-retry-queue) pour garantir la livraison avec exponential backoff. - Statut : ❌ Manquant.
4. Intégrité des Données (Zod)
- Problème : Le Worker lit le champ
flowConfig(JSON) et le parse sans re-validation. - Risque : Si un administrateur injecte un JSON corrompu via un script direct (hors API), le Worker peut crasher en tentant de lire des propriétés inexistantes.
- Action effectuée : ✅ Validation Zod ajoutée sur la route
PUT /organizations. - Action restante : Re-valider le schéma lors de la lecture dans
OnboardingHandler.ts. - Statut : 🟡 Partiellement résolu.
5. Intelligence Artificielle (RAG)
- Problème : Le champ
knowledgeBaseUrln'est qu'un lien vers un fichier. L'AIAgentHandlersimule l'injection. - Risque : Pour des fichiers volumineux (> 10 pages), l'injection directe dans le prompt va exploser les limites de tokens et les coûts.
- Action requise : Implémenter une pipeline d'indexation vectorielle (Vector DB) pour les clients en mode
AI_AGENT. - Statut : 🏗️ En cours de conception.
📅 Historique des Corrections (v2.x)
- ✅ [FIXED] Sécurisation du bridge interne via
ADMIN_API_KEY. - ✅ [FIXED] Dé-hardcodage des secteurs EdTech.
- ✅ [FIXED] Isolation des tenants via
runWithTenant(Context API). - ✅ [FIXED] Centralisation des logs Pino.