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

Rôle

Service de génération de documents PDF : contrats signés, lettres de résiliation, rapports comptables, notifications. Combine FreeMarker (templates HTML stockés en base) et iTextPDF (rendu HTML → PDF).

C'est le seul consommateur direct de adb-aggregates : il appelle ce dernier pour récupérer des modèles consolidés (contrat + persons + parts) et les injecter dans les templates.

Stack

ÉlémentValeur
Spring Boot3.1.3
Java18
Port8090
DatabaseMongoDB Atlas — base adb-reports
AuthKeycloak (resource server)
Stack réactiveSpring WebFlux + Reactive MongoDB
PDFiTextPDF v4.0.2 (com.itextpdf:html2pdf)
TemplatingFreeMarker (spring-boot-starter-freemarker)
StockageAWS S3 (BUCKET_TEMPLATES)
TracingMicrometer Tracing (Brave)
Version0.18.0-SNAPSHOT

Dépend du module : adb-aggregates-model (consommé en dépendance Maven pour les DTOs d'agrégats).

Architecture interne

flowchart TB
    Client[Client adb-ui<br/>ou adb-web]

    subgraph adb-reports
        RC[ReportsController]
        TC[TemplateController]
        TMC[TemplateMetaDataController]
        NGC[NotificationGeneratorController]

        RS[ReportService]
        TS[TemplateService]
        FM[FreeMarker engine]
        IT[iText html2pdf]
    end

    Mongo[(adb-reports<br/>templates,<br/>template_meta_data)]
    S3[(S3 templates)]
    Aggregates[adb-aggregates]
    Contracts[adb-contracts]

    Client -->|GET /reports/contracts/:id| RC
    Client -->|GET /reports/templates| TC

    RC --> RS
    TC --> TS
    TMC --> TS

    RS -->|fetch enriched data| Aggregates
    RS -->|fetch template values| Contracts
    RS --> TS
    TS --> Mongo
    TS --> S3

    RS --> FM
    FM --> IT
    IT -->|PDF bytes| Client

Endpoints

ControllerPathRôle
ReportsController/reportsGénération de rapports
TemplateController/reports/templatesGestion des templates
TemplateMetaDataController/reports/metadataMétadonnées de templates
NotificationGeneratorController/notificationsGénération de notifications

Endpoints clés

  • GET /reports/contracts/{contractId} → PDF du contrat.
  • GET /reports/contracts/{contractId}/resumptionOfLeasePDF → PDF de résiliation.
  • GET /reports/info → module info.

Modèle de données

erDiagram
    TemplateEntity ||--|| TemplateMetaDataEntity : "métadonnées"

    TemplateEntity {
        string _id
        string name
        string content "HTML + FreeMarker"
        string version
    }
    TemplateMetaDataEntity {
        string _id
        string templateId
        string description
        array variables
    }

Collections : templates, template_meta_data.

Événements

Aucun. adb-reports est purement synchrone (consommé sur demande).

Dépendances inter-services

flowchart LR
    reports[adb-reports]
    aggregates[adb-aggregates]
    contracts[adb-contracts]

    reports -->|GET /aggregates/contracts/:id| aggregates
    reports -->|GET /contracts/.../templateValues| contracts

    ui[adb-ui] -->|GET /reports/...| reports
    web[adb-web/bff] --> reports

Configuration & déploiement

Variables d'environnement

VariableRôle
MONGO_DB_URIConnection string MongoDB
SECURITY_ISSUER_URI / SECURITY_TOKEN_URIKeycloak
CLIENT_ID / CLIENT_SECRETOAuth2
AWS_REGION / AWS_ACCESS_KEY / AWS_SECRET_KEYAWS
BUCKET_TEMPLATESBucket S3 templates

Chart Helm

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

Liens

  • Code : adb-reports/
Edit this page
Last Updated:
Contributors: gregory
Prev
adb-views