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 viaSTORAGE_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.