Skip to content

Latest commit

 

History

History

bus

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Description

Le service bus se base sur la brique logicielle RabbitMQ

Cette brique de message broker permet au produit de s'interface avec les SIRH existants back-office des financeurs qu'ils utilisent déjà pour traiter les demandes d'aides à la mobilité. Ainsi, le financeur s'appuiera sur son SI existant pour les gérer et n'utilisera pas le back-office proposé par le produit.

Ci-dessous une vue globale du processus métier :

busHRISprocess

Concernant les échanges entre moB et le bus, le protocol amqp pour échanger des messages via la librairie amqplib. Lien vers la documentation complète.

L'authentification via OAuth2 a été configuré pour les environnements distants permettant ainsi d'utiliser un jeton d'authentification émis par idp pour pouvoir publier ou consommer des messages. Le plugin rabbitmq_auth_backend_oauth2 a été utilisé pour cela, sa configuration est visible dans bus/overlays/config/custom.conf.

busHRISauthentication

L'utilisation du fichier definition.json présent dans le dossier overlays permet de définir les configurations nécessaires au bon fonctionnement de l'échange des messages. Elles correspondent à la solution d'architecture technique détaillée du bus ci-dessous mise en place :

busSolutionArchitecture

busQueueingArchitectureAndExchangeType

Installation en local

docker run -d --name rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_USERNAME=${BUS_ADMIN_USER} -e RABBITMQ_PASSWORD=${BUS_ADMIN_PASSWORD} bitnami/rabbitmq:latest

Récupérer le fichier overlays/definition.json

Variables

Variables Description Obligatoire
BUS_ADMIN_USER Username pour la connexion au portail Oui
BUS_ADMIN_PASSWORD Password pour la connexion au portail Oui
BUS_MCM_CONSUME_USER Username pour la réception des messages Oui
BUS_MCM_CONSUME_PASSWORD Password pour la réception des messages Oui
IDP_API_CLIENT_SECRET Client secret du client confidentiel IDP pour l'API Oui
CAPGEMINI_SECRET_KEY Client secret du client confidentiel CAPGEMINI pour l'API Non

Importer, via l'interface RabbitMQ, le fichier definition.json modifié avec les valeurs de variables mentionnées ci-dessus.

interfaceAdmin

URL / Port

Portail d'admin :

  • URL : localhost
  • Port : 15672

Node port :

  • URL : localhost
  • Port : 5672

Précisions pipelines

Preview

Pas de précisions nécéssaires pour ce service

Testing

Le fichier definition.json n'est pas importé au déploiement. Il faudra l'importer manuellement comme précisé pour l'installation locale.

Le deploiement du bus est de type statefulSet.

Relation avec les autres services

Comme présenté dans le schéma d'architecture détaillée, api possède un child process qui au démarrage de l'application permet d'écouter les messages disponibles sur les queues de consommation.

  • api effectue une requête amqp vers bus pour envoyer les données de souscriptions, messages à destination des HRIS
  • api effectue des requêtes périodiquement vers bus pour récupérer les données de statut des souscriptions, messages publiés par les HRIS

Bilan des relations:

  • Publication de messages sur les queues mob.subscriptions.put.*
  • Consommation des messages sur les queues mob.subscriptions.status.*

Tests Unitaires

Pas de tests unitaires nécéssaires pour ce service