Aller au contenu

Modules — Transverses

Modules de support et préoccupations transverses, utilisés par les domaines métier.

Module app/ · web/ · adapters/ Rôle
notifications notifications/ Notifications in-app, envoi d'email associé, historique.
mailing mailing/ · adapters/email/ Envoi d'emails (SMTP), templates, emails de masque staff depuis CSV.
storage storage/ · adapters/storage/ Stockage de fichiers (local disque ou Garage/S3), URLs signées.
queue queue/ · adapters/queue/ File de jobs en arrière-plan (mémoire ou BullMQ/Redis).
analytics analytics/ Métriques de tableau de bord, statistiques par workspace.
geocoding geocoding/ · adapters/geocoding/ Services basés sur la localisation (géocodage inverse).
ai ai/ · adapters/ai/ Intégration IA (génération de formulaires, analyse de leads).
admin admin/ Réglages de plateforme (mode d'inscription, feature flags), superutilisateur.
waitlist waitlist/ Liste d'attente pré-lancement, statut des demandes.
health web/health/ Health check, endpoints de debug, test d'intégration Sentry.
webhooks web/webhooks/ Webhooks des prestataires de paiement, validation de signature.

notifications

Crée des notifications in-app et déclenche l'email correspondant via mailing. Conserve un historique. Typiquement déclenché par des événements métier (affectation d'un lead, changement de statut, paiement reçu).

mailing

Envoi d'emails via SMTP, encapsulé dans adapters/email/ (le service dépend d'une interface, pas du SDK). Utilise des templates (templates/, EJS). Inclut l'envoi d'emails de masse côté staff à partir d'un CSV avec sujet/corps templatés. Configuration via les variables SMTP_*.

storage

Stockage de fichiers avec deux backends sélectionnables par STORAGE_BACKEND :

  • local (défaut, dev/test) — adossé au disque, URLs /_storage/... signées (HMAC via STORAGE_SIGNING_SECRET).
  • s3 (prod) — Garage / S3-compatible, URLs présignées. Voir le runbook Garage S3.

queue

File de jobs en arrière-plan, sélectionnable par QUEUE_BACKEND :

  • memory (défaut) — en-process, synchrone, sans persistance (dev/test/CI).
  • bull — adossé à Redis, durable, workers cross-process (prod/preprod doivent l'utiliser).

analytics

Métriques et statistiques agrégées par workspace pour le tableau de bord.

geocoding, ai

  • geocoding — géocodage inverse via une API HTTP encapsulée dans adapters/geocoding/.
  • ai — intégration IA (OpenRouter) pour la génération de formulaires et l'analyse de project-leads. Encapsulée dans adapters/ai/ ; sans clé, fallback stub.

admin

Réglages de plateforme : mode d'inscription, feature flags, opérations de superutilisateur. Les méthodes d'admin sont isolées dans des *AdminService dédiés avec des permissions suffixées _admin.

webhooks & health

  • webhooks — reçoit les callbacks des prestataires de paiement et valide la signature (une signature invalide → 401 invalid_signature). Voir Finance › payments.
  • health — health check et endpoints de debug, dont un test d'intégration Sentry.