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-aggregates

Rôle

Service read-only qui agrège des données provenant de plusieurs microservices pour fournir des vues consolidées : un contrat enrichi avec les détails de ses parts/persons/files, une recherche cross-service, des agrégations par part ou par personne.

Il ne possède aucune collection MongoDB : c'est un orchestrateur d'appels HTTP qui assemble les réponses en mémoire et les retourne au client. C'est aussi le seul service qui expose un module Maven public (adb-aggregates-model) consommé par adb-reports.

Stack

ÉlémentValeur
Spring Boot3.1.3
Java18
Port8086
DatabaseMongoDB Atlas (connecté mais aucune écriture)
AuthKeycloak (resource server)
Stack réactiveSpring WebFlux + WebClient
Version0.37.0-SNAPSHOT

Modules Maven internes

  • adb-aggregates-model — DTOs des agrégats. Publié comme dépendance consommée par adb-reports pour générer des rapports basés sur ces structures.
  • adb-aggregates-app — application Spring Boot exécutable.

Architecture interne

flowchart TB
    Client[Client adb-*<br/>ou frontend]

    subgraph adb-aggregates
        SAC[SearchAggregateController]
        CAC[ContractAggregateController]
        PAC[PartAggregateController]
        PeAC[PersonAggregateController]
        MIC[ModuleInfoAggregateController]

        AS[AggregateService]
        RC[RestClientImpl<br/>WebClient wrapper]
    end

    Persons[adb-persons]
    Parts[adb-parts]
    Contracts[adb-contracts]
    Files[adb-files]
    Utilities[adb-utilities]
    Tickets[adb-tickets<br/>externe]

    Client --> SAC
    Client --> CAC
    Client --> PAC
    Client --> PeAC

    SAC --> AS
    CAC --> AS
    PAC --> AS
    PeAC --> AS

    AS --> RC

    RC -.GET.-> Persons
    RC -.GET.-> Parts
    RC -.GET.-> Contracts
    RC -.GET.-> Files
    RC -.GET.-> Utilities
    RC -.GET.-> Tickets

Endpoints

ControllerPathRôle
ContractAggregateController/aggregates/contractsContrats enrichis
PartAggregateController/aggregates/partsParts enrichis
PersonAggregateController/aggregates/personsPersonnes enrichies
SearchAggregateController/aggregates/searchRecherche cross-service
ModuleInfoAggregateController/aggregates/modules/infoModule info

Modèle de données

Aucune collection persistée. Le service orchestre des appels HTTP et compose des DTOs en mémoire à partir des modèles partagés (adb-aggregates-model, adb-model).

Événements

Aucun. adb-aggregates est purement synchrone et stateless.

Dépendances inter-services

flowchart LR
    aggregates[adb-aggregates]
    persons[adb-persons]
    parts[adb-parts]
    contracts[adb-contracts]
    files[adb-files]
    utilities[adb-utilities]
    tickets[adb-tickets]

    aggregates -->|GET /persons| persons
    aggregates -->|GET /parts| parts
    aggregates -->|GET /contracts| contracts
    aggregates -->|GET /files/metadata/list| files
    aggregates -->|GET /utilities| utilities
    aggregates -->|GET /tickets?q=...| tickets

    reports[adb-reports] -->|GET /aggregates| aggregates

Configuration & déploiement

Variables d'environnement

VariableRôle
SECURITY_ISSUER_URI / SECURITY_TOKEN_URIKeycloak
CLIENT_ID / CLIENT_SECRETOAuth2 (pour appels sortants)

Configuration Jackson : dateFormat: yyyy-MM-dd HH:mm:ss, WRITE_DATES_AS_TIMESTAMPS: false.

Chart Helm

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

Liens

  • Code : adb-aggregates/
  • Module model : adb-aggregates/adb-aggregates-model/
Edit this page
Last Updated:
Contributors: gregory
Prev
adb-utilities
Next
adb-views