Messages RabbitMQ — Utilisateurs MVLS
Synchronisation des données utilisateurs entre Inspire et DEMA1N. Voir configuration commune.
Types d'événements
| Nom | Direction | Déclencheur |
|---|---|---|
USER_CREATED |
Inspire → DEMA1N | Création d'un profil MVLS lycéen ou éclaireur |
USER_UPDATED |
Inspire → DEMA1N | Mise à jour du profil, ou propagation d'un changement d'email reçu depuis A1Connect |
USER_DELETED |
Inspire → DEMA1N | Suppression d'un utilisateur MVLS depuis Inspire |
USER_CREATED / USER_UPDATED
{
"header": { "model": "user", "event": "UPDATED", "name": "USER_UPDATED", "producer": "inspire", "..." : "..." },
"body": {
"charte": true,
"notification": true,
"user": {
"gender": "male",
"birthdate": "2005-06-15T00:00:00.000Z",
"firstname": "Jean",
"lastname": "Dupont",
"phoneNumber": "+33612345678",
"zipcode": "75001",
"roles": ["LYCEEN"],
"userJwt": {
"username": "jean.dupont@example.com",
"ssoId": "sso-123456",
"activationToken": "token-abc123"
},
"mvlsLyceens": [{ "formations": ["f1"], "domaines": ["d1"], "statut": "APTE", "state": "Autonome", "..." : "..." }],
"parcoursLyceens": [{ "filiere": "bac_general", "isBoursierSecondaire": "oui" }]
},
"plateformId": "inspire"
}
}
Champs du body
| Champ | Type | Description |
|---|---|---|
charte |
boolean \| null |
Acceptation de la charte |
notification |
boolean \| null |
Préférence de notification |
user |
object |
Obligatoire — données de l'utilisateur |
newEmail |
string \| undefined |
Optionnel — présent uniquement lors d'un changement d'email |
plateformId |
string |
Toujours "inspire" |
Les champs de user.userJwt, user.mvlsLyceens et user.mvlsEclaireurs correspondent aux entités UserJwt, MvlsLyceen et MvlsEclaireur.
Cas spécial : changement d'email (newEmail)
Lorsqu'Inspire reçoit un USER_UPDATED depuis A1Connect avec un champ newEmail et que l'utilisateur est MVLS, il propage un USER_UPDATED vers DEMA1N avec :
user.userJwt.username→ l'ancien email (pour identification)newEmail→ le nouvel email
{
"body": {
"user": { "userJwt": { "username": "ancien.email@example.com" } },
"newEmail": "nouveau.email@example.com",
"plateformId": "inspire"
}
}
USER_DELETED
{
"header": { "model": "user", "event": "DELETED", "name": "USER_DELETED", "producer": "inspire", "..." : "..." },
"body": {
"email": "utilisateur@example.com",
"plateformId": "inspire"
}
}
Envoyé avant l'anonymisation des données pour permettre à DEMA1N d'identifier l'utilisateur. Déclenché par UserService.delete() si user.mvls === 'mvls'.