3.9 KiB
Migration Production - Corrections Appliquées
✅ Corrections Complétées
1. Remplacement de fetch() par fetchWithTimeout()
Fichiers modifiés:
-
✅ lib/services/n8n-service.ts
triggerMissionCreation()- Timeout 30striggerMissionDeletion()- Timeout 30striggerMissionRollback()- Timeout 30s
-
✅ app/api/missions/[missionId]/generate-plan/route.ts
- Appel N8N webhook - Timeout 30s
-
✅ app/api/users/[userId]/route.ts
- Appels Leantime API - Timeout 10s
- Appels Keycloak API - Timeout 10s
- Forward delete request - Timeout 30s
-
✅ app/api/rocket-chat/messages/route.ts
getUserToken()- Timeout 10susers.list- Timeout 10susers.createToken- Timeout 10ssubscriptions.get- Timeout 10s- Messages fetch - Timeout 10s
-
✅ app/api/leantime/tasks/route.ts
getLeantimeUserId()- Timeout 10s- Fetch tasks - Timeout 10s
-
✅ app/api/news/route.ts
- News API fetch - Timeout 10s (remplace AbortSignal.timeout)
2. Remplacement de console.log par logger
Fichiers modifiés:
-
✅ lib/services/rocketchat-call-listener.ts (35 occurrences)
- Tous les
console.log→logger.debugoulogger.info - Tous les
console.error→logger.error - Tous les
console.warn→logger.warn
- Tous les
-
✅ app/api/users/[userId]/route.ts
- Tous les
console.log/error→logger.debug/error
- Tous les
-
✅ app/api/rocket-chat/messages/route.ts
- Tous les
console.error→logger.error
- Tous les
3. Configuration DATABASE_URL
Documentation créée:
- ✅
DATABASE_URL_UPDATE.md- Instructions pour modifier le .env - ✅
scripts/update-database-url.sh- Script automatique
Action requise:
Modifier manuellement le fichier .env :
# Avant
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/calendar_db?schema=public"
# Après
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/calendar_db?schema=public&connection_limit=10&pool_timeout=20&connect_timeout=10"
Ou exécuter le script :
bash scripts/update-database-url.sh
📊 Statistiques
- Fichiers modifiés: 7 fichiers
- fetch() remplacés: 15+ occurrences
- console.log remplacés: 40+ occurrences
- Timeouts ajoutés: 15+ requêtes HTTP
🔍 Fichiers Restants (Optionnel)
Il reste quelques fichiers avec console.log qui peuvent être migrés plus tard :
lib/services/microsoft-oauth.tslib/services/caldav-sync.tslib/services/email-service.tslib/services/token-refresh.tslib/services/refresh-manager.tslib/services/prefetch-service.ts- Divers fichiers dans
app/api/(moins critiques)
Ces fichiers peuvent être migrés progressivement selon les besoins.
✅ Tests Recommandés
-
Tester les timeouts:
# Vérifier que les requêtes timeout correctement # Simuler une API lente et vérifier les logs -
Tester la connexion DB:
npm run validate:env npx prisma db execute --stdin <<< "SELECT 1" -
Vérifier les logs:
- S'assurer que tous les logs utilisent maintenant
logger - Vérifier que les logs sont structurés correctement
- S'assurer que tous les logs utilisent maintenant
📝 Notes
- Tous les timeouts sont configurés selon le contexte :
- 10 secondes pour les API rapides (Leantime, Keycloak, RocketChat)
- 30 secondes pour les webhooks N8N (peuvent être plus longs)
- Les logs sont maintenant structurés avec des objets au lieu de strings concaténées
- Les erreurs incluent maintenant le contexte nécessaire pour le debugging
🚀 Prochaines Étapes
- ✅ Modifier le
.envavec les paramètres de pool DB - ✅ Tester l'application en développement
- ✅ Vérifier que tous les timeouts fonctionnent correctement
- ✅ Déployer en staging pour tests
- ✅ Monitorer les performances en production
Date de migration: $(date) Statut: ✅ Complété pour les fichiers critiques