Aller au contenu

Configuration dynors-notify — librairie vs applications

dynors-notify (com.dynors:dynors-notify, dépôt dynors-extensions) est une bibliothèque embarquée dans chaque application Spring Boot qui déclare la dépendance. Il n’existe pas de « serveur NOTIFY » unique : chaque app configure son fournisseur d’envoi, ses secrets et ses profils (dev, recette, prod).

!!! note "Source et dépôt principal" Contenu aligné sur le dépôt agrégé dynors : docs/CONFIGURATION_DYNORS_NOTIFY.md.
Résolution Maven / registry : Versions et dépendances (core) ; accès token : CONFIGURATION_ACCES_DEPENDANCES.md.

SLY (SelebeYone) et applications tierces

  • dynors.interapp.gateway-url (SLY) et InterAppCallService = appels entre apps DYNORS. La config dynors.notify.* cible les fournisseurs (SMTP, Brevo, Resend…), sans signature de transit SLY sur ces envois.
  • App tierce : assouplir avec stub, base-url si proxy, sans imposer le contrat inter-app — voir le paragraphe homonyme dans CONFIGURATION_DYNORS_NOTIFY.md.

1. Rôles

Couche Responsabilité
dynors-notify Contrat Java (NotificationService, NotificationRequest), auto-config Spring, implémentations SMTP, Brevo, Resend, SendGrid, Mailgun, SMS Orange, construction des payloads API (TransactionalEmailPayloads, pièces jointes EmailMetadataAttachments).
Chaque application Dépendance Maven + entrée dans application.yml / variables d’environnement / Vault : choix du provider, clés API, SMTP, stub ou non, expéditeur par défaut.
Code métier Contenu des messages, templateId / templateVars par cas d’usage, appels à NotificationService.send(...).

Deux apps différentes peuvent donc utiliser Brevo et Resend avec des comptes, domaines et templates distincts.


2. Propriétés principales (dynors.notify.*)

Préfixe commun : dynors.notify.

Clé Rôle
dynors.notify.email.provider smtp · brevo · resend · sendgrid · mailgunun seul actif par app (bean conditionnel).
dynors.notify.email.enabled Active le provider email (true en général si vous envoyez des mails).
dynors.notify.email.stub true : pas d’appel réseau (logs uniquement) — pratique en dev sans secrets.
dynors.notify.email.from Adresse expéditeur par défaut (souvent surchargée par le template côté Brevo/Resend).
dynors.notify.email.brevo.api-key Clé API Brevo (préférer ${BREVO_API_KEY}).
dynors.notify.email.brevo.base-url Défaut https://api.brevo.com/v3.
dynors.notify.email.resend.api-key Clé Resend (${RESEND_API_KEY}).
dynors.notify.email.mailgun.* Domaine, URL de base, clé — voir javadoc MailgunEmailProvider.
dynors.notify.email.sendgrid.* Idem SendGrid.

SMTP : en plus, configurer spring.mail.* (host, port, username, password, TLS) — classique Spring Boot.

Les clés exactes et les javadoc sont dans les classes *EmailProvider sous le module notify dans dynors-extensions (packages/extensions/notify/.../providers/email/).


3. Secrets et environnements

  • Ne pas commiter les clés dans Git : utiliser variables d’environnement, Vault (stratégie DYNORS), ou fichiers locaux ignorés (.env).
  • En CI/CD : variables masquées dans GitLab / pipeline ; le GITLAB_TOKEN sert au registry Maven (read_registry), pas aux APIs Brevo/Resend (tokens distincts).

4. Templates distants vs HTML inline

Définis sur NotificationRequest : templateId, templateVars.

  • Brevo : templateId doit être l’ID numérique du template dans Brevo (chaîne "42"). Payload JSON : templateId, paramstemplateVars, sans htmlContent.
  • Resend : templateId = id ou alias du template (ex. order-confirmation). Payload : template: { id, variables }, sans html.
  • SMTP : pas de rendu de template distant ; seul le corps (body) est envoyé. Les champs templateId / templateVars ne sont pas interprétés par le serveur SMTP (éventuellement enrichissement métier avant l’appel à NOTIFY).

Voir TransactionalEmailPayloads et les tests TransactionalEmailPayloadsTest dans le module notify (repo dynors-extensions).


5. Pièces jointes

Métadonnées standardisées : attachmentPdfBase64, attachmentFilename, attachmentContentType (voir EmailMetadataAttachments). Utilisées par exemple par FISCAL pour joindre un PDF de facture.


6. Politique métier et distinction events


7. Références code

Élément Emplacement
README module dynors-extensions packages/extensions/notify/README.md
Payloads Brevo / Resend .../notify/email/TransactionalEmailPayloads.java
PJ depuis métadonnées .../notify/email/EmailMetadataAttachments.java
Registry Maven Projet GitLab 76017499Versions et dépendances

Dernière mise à jour : 2026-04-12 — alignée sur les providers et tests du module notify.