Life ConnectLife Connect
Table of contents
Architecture
Services
Swagger Docs
GitHub
Table of contents
Architecture
Services
Swagger Docs
GitHub
  • Backend (Java / Spring Boot)

    • adb (parent Maven + proxy)
    • adb-persons
    • adb-parts
    • adb-contracts
    • adb-accounting
    • adb-files
    • adb-utilities
    • adb-aggregates
    • adb-views
    • adb-reports
  • Frontend

    • adb-ui
    • adb-web
  • Infrastructure & Outillage

    • adb-charts
    • adb-infrastructure
    • adb-tests-artillery
    • adb-doc
  • Services externes (hors monorepo)

    • adb-tickets (externe)
    • adb-notes (déprécié)
    • adb-graph (externe, statut incomplet)

adb-utilities

Rôle

Service de services transverses consommé par tous les autres microservices. Il fournit :

  • Catalogues et traductions (/utilities/catalog, /utilities/i18n) — tables de référence multilingues.
  • Configuration métier (/utilities/configurations) — formats, séries, charges, paramètres.
  • Clés d'allocation (/utilities/allocationkey) — règles de répartition des charges entre lots.
  • Indices INSEE (/utilities/indexes) — indices IRL, ILC, ILAT, ICC pour révision des loyers, mis à jour quotidiennement à midi via un job cron.
  • Notifications (/utilities/notifications, /utilities/notification-definitions) — système de notifications transverses.
  • Logs UI (/utilities/logs) — collecte les logs côté client.
  • Dashboards (/utilities/dashboards) — configuration de dashboards utilisateur.
  • Validations (/utilities/validations) — règles de validation métier réutilisables.

Stack

ÉlémentValeur
Spring Boot3.1.3
Java18
Port8082
DatabaseMongoDB Atlas — base adb-utilities
AuthKeycloak (resource server)
Stack réactiveSpring WebFlux + Reactive MongoDB
State machineSpring Statemachine 2.2.3
IntégrationAPI INSEE (indices bancaires)
Version0.40.0-SNAPSHOT

Architecture interne

flowchart TB
    subgraph Controllers["12 Controllers"]
        CC[CatalogController]
        I18N[I18NController]
        CFC[ConfigurationController]
        AKC[AllocationKeysController]
        IC[IndexController]
        NC[NotificationController]
        NDC[NotificationDefinitionController]
        DC[DashboardController]
        VC[ValidationsController]
        SC[SerialController]
        ULC[UiLogsController]
        INFOC[InfoController]
    end

    subgraph Jobs
        InseeJob[Job INSEE<br/>cron: 0 0 12 * * *]
    end

    Mongo[(adb-utilities)]
    INSEE[API INSEE]

    Controllers --> Mongo
    InseeJob --> INSEE
    InseeJob --> Mongo
    InseeJob -.publish.-> SNS[SNS<br/>onIndexPublished]

Endpoints (12 controllers)

ControllerPathRôle
CatalogController/utilities/catalogCatalogues de valeurs (types, statuts...)
I18NController/utilities/i18nTraductions multilingues
ConfigurationController/utilities/configurationsConfiguration globale
AllocationKeysController/utilities/allocationkeyClés d'allocation
IndexController/utilities/indexesIndices INSEE
NotificationController/utilities/notificationsNotifications utilisateur
NotificationDefinitionController/utilities/notification-definitionsDéfinitions de notifications
DashboardController/utilities/dashboardsDashboards utilisateur
ValidationsController/utilities/validationsRègles de validation
SerialController/utilities/serialsNuméros de série
UiLogsController/utilities/logsLogs UI
InfoController/utilitiesModule info

Modèle de données

erDiagram
    AllocationKeyEntity ||--o{ Configuration : "référence"

    AllocationKeyEntity {
        string _id
        string name
        object rules
    }
    AbstractConfigurationEntity {
        string _id
        string type "format / serial / charge / ..."
        object data
    }
    CatalogValueEntity {
        string _id
        string catalog
        string code
        object translations
    }
    InseeIndexEntity {
        string _id
        string bankId "IRL / ILC / ILAT / ICC"
        date publishedAt
        number value
    }
    NotificationDefinitionEntity {
        string _id
        string type
        string template
    }
    NotificationEntity {
        string _id
        string userId
        string definitionId
        boolean read
    }

Collections : allocationkeys, configurations, dashboards, catalog, indexes, notifications, notification_definitions, serials.

Événements

Émis (SNS)

  • onIndexPublished — quand le job INSEE publie un nouvel indice (consommé par adb-contracts pour ré-indexer les loyers).

Consommés

Aucun listener SQS — adb-utilities est purement producteur ou en lecture.

Dépendances inter-services

flowchart LR
    utilities[adb-utilities]
    insee[API INSEE]

    utilities --> insee

    parts[adb-parts] -->|GET /utilities/allocationkey| utilities
    contracts[adb-contracts] -->|GET /utilities/i18n| utilities
    accounting[adb-accounting] -->|GET /utilities/i18n| utilities
    web[adb-web/bff] --> utilities
    ui[adb-ui] --> utilities

adb-utilities n'appelle aucun autre service métier.

Job INSEE

Job Spring (cron 0 0 12 * * * — chaque jour à midi) qui :

  1. Appelle l'API INSEE avec les credentials insee.consumer.key / insee.consumer.secret.
  2. Récupère les indices IRL, ILC, ILAT, ICC.
  3. Persiste dans la collection indexes.
  4. Publie l'événement onIndexPublished sur SNS.

Désactivable via insee.job.enabled=false.

Configuration & déploiement

Variables d'environnement

VariableRôle
MONGO_DB_URIConnection string MongoDB
SECURITY_ISSUER_URI / SECURITY_TOKEN_URIKeycloak
CLIENT_ID / CLIENT_SECRETOAuth2
insee.consumer.key / insee.consumer.secretAPI INSEE
IRL_bankIds, ILC_bankIds, ILAT_bankIds, ICC_bankIdsIDs INSEE par type d'indice
insee.job.enabledActivation du cron
insee.job.cronExpression cron

Chart Helm

adb-charts/charts/services/templates/adb-utilities.yaml. Image : lifeconnect/adb-utilities.

Liens

  • Code : adb-utilities/
  • Doc allocation keys : functional-epics/utility/allocation-keys.md
  • Doc revision index : functional-epics/utility/revision-index.md
Edit this page
Last Updated:
Contributors: gregory
Prev
adb-files
Next
adb-aggregates