Modélisation · Architecture technique

Architecture technique

Briques applicatives et outillage retenus · télécharger le SVG

Architecture technique du SI FGA Briques applicatives et outillage retenus · socle Java / Quarkus pour les lots métier · Odoo pour l'ERP · déclinaison de l'architecture cible OIDC JSON-RPC / REST Odoo connecteurs source / sink télémétrie OTLP OTLP Frontaux · React + TypeScript (Vite), design system commun Services métier · Java / Quarkus · REST (OpenAPI) + événements (SmallRye Reactive Messaging) ERP · Odoo, jamais de modification du core Données et pilotage Services transverses (produits) Décisions à acter avant développement Variante allégée (équipe réduite) Observabilité · OpenTelemetry · chaque brique développée ou opérée émet vers le collecteur : frontaux, Traefik, services Quarkus, adaptateur ERP, Kafka, Odoo, bases, transverses Chaîne d'ingénierie et exécution · du commit au déploiement, identique pour les six lots Portail e-services React · TypeScript · Vite exposition publique derrière WAF Back-offices métier PR1, PR2, PR3, recouvrement même socle React, thème interne Application terrain (PWA) Workbox · IndexedDB mode hors ligne, synchronisation Traefik (Ingress) · routage, quotas, journalisation · authentification OIDC via Keycloak Prise en charge Quarkus · Java LTS Gradle · config YAML Panache · Liquibase PostgreSQL dédié Indemnisation Quarkus · Java LTS moteur de calcul : règles versionnées, tests DJGS PostgreSQL dédié Production Quarkus · Java LTS imports ASACI (API / SFTP) contrôles d'assiette PostgreSQL dédié Recouvrement Quarkus · Java LTS échéanciers, relances, courriers PDF PostgreSQL dédié Adaptateur ERP Quarkus · même socle consomme / produit Kafka ↔ JSON-RPC / REST Odoo base minimale : rejeu + mapping tiers Apache Kafka · dorsale d'événements, rejeu · Schema Registry (Avro) · topics par domaine Sage transition à acter Odoo édition et version à trancher (Community / Enterprise) modules custom par héritage · conventions OCA PostgreSQL (base Odoo) Kafka Connect + Debezium CDC des bases PostgreSQL, déversement vers l'entrepôt PostgreSQL entrepôt modèle en étoile, alimenté par flux, jamais de lecture des bases métier Power BI Keycloak OIDC · MFA realm agents : fédération Entra ID realm usagers : victimes, prestataires SharePoint O365 bureautique & collaboratif · API Graph GED applicative : MinIO (ADR-0008) SAE à valeur probante exigence des CDC, solution à instruire Signature électronique PSC accrédité ARTCI, candidat à instruire Notifications agrégateur SMS local (contrat à part) email : SMTP M365 Redis cache applicatif · verrous distribués rate limiting Traefik · files légères · hébergement cible : on-premise FGA ou cloud · édition et version d'Odoo, licences · sort de Sage : remplacement ou interface · solution SAE, prestataire de signature (ARTCI) · agrégateur SMS, contrats opérateurs · front confirmé après audit équipe (React par défaut) · dimensionnement : volumétrie absente des CDC Si l'équipe d'exploitation est réduite : · Docker Compose par environnement, Kubernetes en cible différée · Kafka KRaft acté (ADR-0006) : un seul système, sans ZooKeeper — pas de variante Collecteur OpenTelemetry réception OTLP · instrumentation native Quarkus, agents ailleurs stockage télémétrie Prometheus métriques Loki logs centralisés Tempo traces distribuées Grafana tableaux de bord, alerting, suivi des SLA (délai 60 j) alertes exploitables → email, SMS (brique Notifications) GitHub · Actions dépôts Git, pull requests pipelines CI/CD SonarQube qualité de code, couverture, dette Nexus artefacts Maven / npm, registre d'images Tests automatisés JUnit 5 · Testcontainers · REST Assured Playwright (front) · k6 (charge) Helm + ArgoCD paquets versionnés, déploiement GitOps Kubernetes conteneurs Docker, environnements dev · recette · prod Ansible provisioning des VM (Odoo, bases, broker) « rien ne se perd, tout se rejoue » « le core reste intact » « pas mesuré, pas en prod » « du commit à la prod » Conventions de développement : projets Java construits avec Gradle, configuration applicative en YAML · aucun développement dans le core Odoo, héritage de modules uniquement. Les versions des produits tiers (Odoo, Sage, Traefik, Keycloak, Kafka, PostgreSQL…) seront arrêtées au démarrage et figées dans le DAT, pas dans ce schéma.

Stockage des documents : deux briques, deux usages

Le schéma fait apparaître SharePoint O365, cité explicitement par le CDC ERP. Ce n'est pas la cible des pièces de dossiers. Les deux briques coexistent et ne se recouvrent pas :

MinIO / S3GED applicative — pièces des dossiers produites et consommées par les services (scans, bons, lettres, rapports). Buckets par service, checksums, versioning, chiffrement au repos (ADR-0008). svc-documents en détient les métadonnées et références ; seule cible de la reprise documentaire.
SharePoint O365Bureautique et collaboratif — documents de travail, plans de classement, partage interne, dans le périmètre Microsoft 365 du FGA (Outlook, Teams, Power BI) attendu par le lot ERP. Accès par API Microsoft Graph, hors chaîne de traitement des dossiers.
Pourquoi la distinction compte. Une pièce de dossier engage le FGA : elle doit être immuable, horodatée, adressable par le service qui l'a produite et reprise avec son empreinte. C'est un rôle de stockage objet applicatif, pas de bibliothèque bureautique. Confondre les deux ferait dépendre le cœur métier d'un tenant Microsoft 365 et de ses quotas d'API. Voir Reprise des données legacy et Schémas de données · svc-documents.