Skip to content

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.usernamel'ancien email (pour identification)
  • newEmaille 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'.