NeahStable/MIGRATION_COMPLETED.md
2026-01-16 21:11:50 +01:00

3.9 KiB

Migration Production - Corrections Appliquées

Corrections Complétées

1. Remplacement de fetch() par fetchWithTimeout()

Fichiers modifiés:

  1. lib/services/n8n-service.ts

    • triggerMissionCreation() - Timeout 30s
    • triggerMissionDeletion() - Timeout 30s
    • triggerMissionRollback() - Timeout 30s
  2. app/api/missions/[missionId]/generate-plan/route.ts

    • Appel N8N webhook - Timeout 30s
  3. app/api/users/[userId]/route.ts

    • Appels Leantime API - Timeout 10s
    • Appels Keycloak API - Timeout 10s
    • Forward delete request - Timeout 30s
  4. app/api/rocket-chat/messages/route.ts

    • getUserToken() - Timeout 10s
    • users.list - Timeout 10s
    • users.createToken - Timeout 10s
    • subscriptions.get - Timeout 10s
    • Messages fetch - Timeout 10s
  5. app/api/leantime/tasks/route.ts

    • getLeantimeUserId() - Timeout 10s
    • Fetch tasks - Timeout 10s
  6. app/api/news/route.ts

    • News API fetch - Timeout 10s (remplace AbortSignal.timeout)

2. Remplacement de console.log par logger

Fichiers modifiés:

  1. lib/services/rocketchat-call-listener.ts (35 occurrences)

    • Tous les console.loglogger.debug ou logger.info
    • Tous les console.errorlogger.error
    • Tous les console.warnlogger.warn
  2. app/api/users/[userId]/route.ts

    • Tous les console.log/errorlogger.debug/error
  3. app/api/rocket-chat/messages/route.ts

    • Tous les console.errorlogger.error

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.ts
  • lib/services/caldav-sync.ts
  • lib/services/email-service.ts
  • lib/services/token-refresh.ts
  • lib/services/refresh-manager.ts
  • lib/services/prefetch-service.ts
  • Divers fichiers dans app/api/ (moins critiques)

Ces fichiers peuvent être migrés progressivement selon les besoins.

Tests Recommandés

  1. Tester les timeouts:

    # Vérifier que les requêtes timeout correctement
    # Simuler une API lente et vérifier les logs
    
  2. Tester la connexion DB:

    npm run validate:env
    npx prisma db execute --stdin <<< "SELECT 1"
    
  3. Vérifier les logs:

    • S'assurer que tous les logs utilisent maintenant logger
    • Vérifier que les logs sont structurés correctement

📝 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

  1. Modifier le .env avec les paramètres de pool DB
  2. Tester l'application en développement
  3. Vérifier que tous les timeouts fonctionnent correctement
  4. Déployer en staging pour tests
  5. Monitorer les performances en production

Date de migration: $(date) Statut: Complété pour les fichiers critiques