Life ConnectLife Connect
Wiki index
Architecture
Services
Concepts
Runbooks
Infra
Swagger Docs
GitHub
Wiki index
Architecture
Services
Concepts
Runbooks
Infra
Swagger Docs
GitHub
  • Backend (Java / Spring Boot)

    • adb
    • adb-persons
    • adb-parts
    • adb-contracts
    • adb-accounting
    • adb-files
    • adb-utilities
    • adb-aggregates
    • adb-views
    • adb-reports
  • Frontend

    • adb-ui
    • adb-web
  • Infrastructure & tooling

    • adb-charts
    • adb-infrastructure
    • adb-tests-artillery
    • adb-doc
  • External services (out-of-monorepo)

    • adb-tickets
    • adb-notes
    • adb-graph
Last updated 2026-05-21

adb (parent Maven + proxy)

AI-generated content

This document was generated by an AI assistant. Verify accuracy before relying on the details.

Role

adb/ is the parent project of the Java backend. It provides:

  1. A parent POM that centralizes Spring Boot, Spring Cloud, common dependency (MapStruct, Lombok, Apache POI, etc.) and Maven plugin versions.
  2. Nine shared modules consumed by every microservice: adb-common, adb-model, adb-test, adb-actions, adb-action-logs, adb-descriptor, adb-messaging, adb-openapi, adb-communication, adb-security.
  3. The Nginx reverse proxy (proxy/) that acts as the platform's API gateway.

No runnable service is defined here: it is exclusively shared libraries and configuration.

Tech stack

ItemVersion
Java18
Spring Boot3.1.3
Spring Cloud2022.0.4
Maven3.6+
MapStruct1.5.5.Final
Lombok1.18.28
Logstash Logback6.6
SpringDoc OpenAPI2.2.0
Apache POI5.2.3
Commons Validator1.8.0
Spring Cloud AWS3.0.4

Current parent version: 0.3.116.

Module architecture

flowchart TB
    parent[adb<br/>parent POM]

    subgraph Modules
        common[adb-common<br/>FQDN, RequestContext]
        model[adb-model<br/>shared DTOs]
        test[adb-test<br/>test helpers]
        actions[adb-actions<br/>action processor]
        actionlogs[adb-action-logs<br/>traceability]
        descriptor[adb-descriptor<br/>metadata]
        messaging[adb-messaging<br/>SQS/SNS abstractions]
        openapi[adb-openapi<br/>specs + codegen]
        communication[adb-communication<br/>WebClient helpers]
        security[adb-security<br/>delegation models]
    end

    proxy[proxy<br/>Nginx]

    parent --> Modules
    parent --> proxy

    Services[adb-persons<br/>adb-parts<br/>adb-contracts<br/>...]

    common -.dependency.-> Services
    model -.dependency.-> Services
    messaging -.dependency.-> Services
    actions -.dependency.-> Services
    actionlogs -.dependency.-> Services

adb-common

Core of the module: the FQDN enum (fr.lifeconnect.adb.client.FQDN), a directory of all internal services:

ConstantURL
PERSONShttp://adb-persons
ORGANIZATIONShttp://adb-persons
PARTShttp://adb-parts
CONTRACTShttp://adb-contracts
ACCOUNTINGhttp://adb-accounting
FILEShttp://adb-files
UTILITIEShttp://adb-utilities
AGGREGATEShttp://adb-aggregates
VIEWShttp://adb-views
REPORTShttp://adb-reports
TICKETShttp://adb-tickets
NOTEShttp://adb-notes
GRAPHhttp://adb-graph
NOTIFICATIONShttp://adb-notifications
UIhttp://adb-ui
UI_EXThttp://adb-ui-ext

Also contains: RequestContextData (user-context propagation), client interfaces (NotesClient, TicketsClient, ...), and various utilities.

adb-model

DTOs shared between services to avoid duplicating business data structures.

adb-messaging

Abstractions on top of Spring Cloud AWS to publish (SnsTemplate) and consume (@SqsListener) events. Configures regions, JSON serializers, and DLQs.

adb-actions / adb-action-logs

  • adb-actions: framework to trigger and trace business actions (modifications, validations).
  • adb-action-logs: persistence of action logs in MongoDB (one dedicated collection per service).

Used by adb-persons, adb-parts, adb-contracts, adb-accounting, adb-utilities.

adb-openapi

Generates OpenAPI specs from Spring annotations (SpringDoc). Acts as the source for the TypeScript client in adb-web/packages/api-client.

adb-security

Cross-cutting delegation module. Provides the model and service layer for access delegation between entities (e.g. a person delegating scoped access on a contract to another person):

  • Delegation — persisted record: delegatee, resource (TargetObject), validity window, set of delegated scopes.
  • DelegateePort / DelegationPort — reactive repository interfaces implemented per-service.
  • DelegationService.hasAccess(contextData, resource, requester, scope) — reactive check used in controllers.

Services that need delegation import this module and implement the port interfaces.

adb-test, adb-descriptor, adb-communication

  • adb-test: integration test helpers (TestContainers, Mongo fixtures).
  • adb-descriptor: module metadata (version, dependencies).
  • adb-communication: reactive WebClient helpers (RestClientImpl, retry, error mapping).

proxy/ — Nginx gateway

Nginx configuration (proxy/default.conf) that routes external requests to internal services:

PathTarget
/personsadb-persons
/partsadb-parts
/contractsadb-contracts
/accountingadb-accounting
/filesadb-files
/filemetadatasadb-files (file metadata alias)
/utilitiesadb-utilities
/aggregatesadb-aggregates
/viewadb-views
/reportsadb-reports
/ticketsadb-tickets
/notesadb-tickets (redirected — adb-notes deprecated)
/graphadb-graph
/organizationsadb-persons (organization sub-resource)
/authKeycloak (proxied to hephaestus.life-connect.fr)
/oauth/Keycloak OAuth2 endpoints

Configuration / deployment

  • Build: mvn clean install -pl adb-common,adb-model,adb-messaging,... or mvn install at the root.
  • Versioning: SNAPSHOT during development, releases handled via the script adb/doc/release.md.
  • Proxy deployment: Helm chart adb-charts/charts/ingress-route/ and Docker image built from proxy/Dockerfile.

Links

  • Code: adb/
  • Parent POM: adb/pom.xml
  • FQDN enum: adb/adb-common/src/main/java/fr/lifeconnect/adb/client/FQDN.java
Edit this page
Last Updated:
Contributors: Yevhenii Khudolii
Next
adb-persons