● Bureau Central de Coordination · RDC

Kratos — la plateforme SI du BCeCo

Un écosystème de micro-services indépendants — référentiels, modules métier et socle d'infrastructure — réunis derrière une porte d'entrée unique. APIs documentées, sécurité OIDC centralisée, bus d'événements et traçabilité de bout en bout.

13
micro-services métier & socle
1
gateway · point d'entrée unique
v3.3.13
version courante des services
OIDC
authentification centralisée (Keycloak)
Cœur de plateforme

Référentiels & services transverses

Consommés par tous les modules métier : identité, paramètres, journal, fichiers, notifications. Indispensables au démarrage de la plateforme.

🚪

Gateway point d'entrée

kratos-gateway
v3.3.13
Porte d'entrée unique du SI : routage vers les modules, validation JWT en bordure, circuit breakers et rate limiting. Seul service exposé publiquement — tout passe par /api/<module>/….
Spring Cloud GatewayJWT edgeResilience4jCORS
👤

Users

kratos-users · CdC ch. 8
v3.3.13
Référentiel central des utilisateurs, profils et modules. Provisionne et synchronise les comptes dans Keycloak. Source de vérité de l'annuaire (diffusions « par profil »).
PostgreSQLProvisioning KeycloakRBAC profils/modules
API ↗Swagger ↗:8092 · users01
⚙️

Config

kratos-config · CdC ch. 9
v3.3.13
Référentiel central des paramètres typés du SI. Distribue la configuration à tous les services (client + cache local, invalidation à chaud via AMQP, mode dégradé documenté).
Paramètres typésCache + TTLInvalidation AMQP
API ↗Swagger ↗:8090 · config01
📜

Events

kratos-events · CdC ch. 5
v3.3.13
Journalisation et traçabilité du SI : collecte des événements (outbox → RabbitMQ), consultation, exports et politique de rétention. Le journal d'audit transverse de la plateforme.
Outbox patternRabbitMQExportsRétention
API ↗Swagger ↗:8091 · events01
🗂️

Documents

kratos-documents · CdC ch. 10-11
v3.3.13
GED centralisée sur stockage objet MinIO (S3) et moteur d'impression JasperReports. Gère le cycle de vie des fichiers et la génération de documents modèles.
MinIO / S3JasperReportsVersioning fichiers
API ↗Swagger ↗:8093 · documents01
📨

Notifications

kratos-notifications · CdC ch. 12
v3.3.13
Centre de notifications multicanal : e-mail (SMTP), SMS et messages internes. Modèles de notification, diffusion par destinataire ou par profil, fenêtres d'envoi et DLQ.
SMTPAMQPModèlesDLQ
API ↗Swagger ↗:8094 · notifications01
Modules métier

Les domaines fonctionnels du BCeCo

Chaque module est un service autonome (base dédiée, API versionnée), branché sur le socle commun (sécurité, événements, config, documents).

✉️

Courrier

kratos-courrier · CdC ch. 12
v3.3.13
Gestion du courrier, des mémos et documents internes. Circuits de validation (parapheur) pilotés par un moteur de processus BPMN embarqué.
Camunda 7 (embarqué)ParapheurBPMN
API ↗Swagger ↗:8095 · courrier01
👥

GRH

kratos-grh · CdC ch. 13
v3.3.13
Gestion des ressources humaines : consultants, contrats (≤ 1 an), organigramme versionné, congés et missions orchestrés en BPMN.
Camunda 7 (embarqué)Organigramme versionnéCongés / missions
API ↗Swagger ↗:8096 · grh01
🚚

Logistique

kratos-logistique
v3.3.13
Charroi & logistique : gestion des stocks, du magasin et du parc automobile. Entrées/sorties, inventaires et suivi du matériel.
Stock & magasinParc autoInventaires
API ↗Swagger ↗:8097 · logistique01
🧩

Forms Studio

kratos-forms · module FRM
v3.3.13
Registre versionné et éditeur de formulaires dynamiques. Les autres modules consomment ces définitions pour générer leurs écrans et collectes de données.
Formulaires dynamiquesVersioningforms-client (SDK)
API ↗Swagger ↗:8098 · forms01
📁

Projets

kratos-projets
v3.3.13
Projets & contrats : suivi de portefeuille, jalons et échéances, gestion des contrats associés aux projets du Bureau.
PortefeuilleJalonsContrats
API ↗Swagger ↗:8099 · projets01
📑

Passation des marchés

kratos-passation-marches
v3.3.13
Passation des marchés publics : plan de passation (PPM), dossiers d'appel d'offres (DAO), réception des offres et attribution.
PPMDAOOffres & attribution
API ↗Swagger ↗:8100 · marches01
💰

Finances

kratos-finances
v3.3.13
Finances & comptabilité : notes de frais, remboursements et workflows financiers associés aux agents et missions.
Notes de fraisRemboursementsComptabilité
API ↗Swagger ↗:8102 · finances01
🛡️

Audit interne

kratos-audit
v3.3.13
Audit interne : univers d'audit, cartographie des risques, planification et conduite des missions d'audit.
Univers d'auditCartographie des risquesMissions
API ↗Swagger ↗:8103 · audit01
Infrastructure & outils

Socle technique, bibliothèques et clients

Les briques partagées et transverses : sécurité, bus, stockage, librairies communes et applications consommatrices.

🔐

Keycloak (IAM)

auth.bceco.dev · realm bceco
OIDC
Fournisseur d'identité central. Émet les jetons OIDC consommés par tous les services ; chaque API valide les jetons en tant que resource server.
OpenID ConnectRealm bcecoOTP e-mail
🧷

Keycloak Extensions

kratos-keycloak-extensions
v0.1.0
Extensions maison de Keycloak : event listener vers RabbitMQ (provisioning & audit), OTP par e-mail et thème aux couleurs de la RDC.
Event listener → AMQPOTP e-mailThème RDC
📦

Commons

kratos-commons (bibliothèques)
v0.5.5
Bibliothèques partagées : conventions web, sécurité, événements, config-client, forms-client, BPMN et insights. Publiées au registry Maven du groupe (par tag).
websecurityeventsconfig-clientforms-clientbpmninsights
🧱

Infra & CI/CD

kratos-infra
DevOps
Template GitLab CI commun (verify → test → package → publish → deploy), composition Docker (Postgres, RabbitMQ, Keycloak, MinIO) et déploiement VPS. Source de cette page.
GitLab CIDocker ComposeTestcontainersKaniko
🧪

Service Template

kratos-service-template
v3.3.13
Squelette de référence pour démarrer un nouveau micro-service Kratos avec toutes les conventions (sécurité, events, config, tests) déjà câblées.
BootstrapConventionsSpring Boot 3
📊

Reporting

kratos-reporting
RPT
Reporting transverse : read-model événementiel alimenté par le bus, avec un front maison à widgets dynamiques (tableaux de bord configurables).
Read-modelÉvénementielWidgets dynamiques
🖥️

Web

kratos-web
Front
Application web du SI BCeCo — client du gateway. Interface d'administration et de saisie pour les agents du Bureau.
SPAOIDCAPI Gateway
📱

Mobile

kratos-mobile
Flutter
Application mobile Flutter pour les agents : authentification via auth.bceco.dev, accès aux modules via le gateway bceco.dev.
Flutter / DartiOS & AndroidOIDC
Architecture

Comment tout s'articule

Clients → gateway unique → micro-services autonomes, le tout sur un socle partagé (identité, bus, stockage).

Clients
🖥️ Web📱 Mobile (Flutter)📊 Reporting
Bordure
🚪 Gateway · bceco.dev🔐 Keycloak · auth.bceco.dev JWT validé en bordure, routage /api/<module>/…
Services
usersconfigeventsdocumentsnotifications courriergrhlogistiqueformsprojetsmarchésfinancesaudit
Socle
🐘 PostgreSQL (1 base/service)🐇 RabbitMQ (bus d'événements) 🗄️ MinIO (stockage objet)📦 kratos-commons
Stack technique

Technologies & conventions communes

Chaque service partage le même socle, ce qui garantit cohérence, sécurité et exploitabilité.

☕ Java 17
LTS, commun à tous les services.
🍃 Spring Boot 3.3.13
Web, Data JPA, Validation, Actuator.
🔐 OAuth2 / OIDC
Resource server, jetons émis par Keycloak.
🐘 PostgreSQL + Flyway
Une base par service, migrations versionnées.
🐇 RabbitMQ (AMQP)
Bus d'événements, outbox, notifications.
🗄️ MinIO (S3)
Stockage objet des documents.
⚙️ Camunda 7
BPMN embarqué (courrier, GRH).
📘 OpenAPI / Swagger
Doc agrégée via le gateway.
🧪 Testcontainers
IT réels (Postgres, RabbitMQ, MailHog) en CI.
🦊 GitLab CI/CD
Pipeline commun, déploiement VPS automatisé.
🐳 Docker
Conteneurisation & composition d'infra.
📦 kratos-commons
Conventions partagées (v0.5.5).