Aller au contenu

🏗️ Architecture SI DYNORS

Architecture des systèmes d'information DYNORS — Communication inter-services, patterns, mécanismes


🎯 Vue d'Ensemble

Cette section documente l'architecture globale du système d'information DYNORS, incluant :

  • Les communications entre services
  • Les mécanismes métier (facturation, PDF, media)
  • Les patterns architecturaux
  • Les flux de données

📚 Documents d'Architecture

Mécanismes Métier

Document Description
Mécanisme Facturation → PDF → Media Flux complet de génération de factures avec RAGNAR → FISCAL → dynors-pdf → dynors-media
FISCAL — Architecture cible vs existant Note d'architecte : état réel de FISCAL avec preuves, vrais gaps, TaxAuthorityAdapter, résilience DGI, backlog priorisé, décisions assumées
FISCAL — Roadmap 12 mois Plan d'exécution complet sur 12 mois — 5 phases, sprints, livrables, chemin critique, registre des risques, gates de décision, métriques de succès
Besoins Architecture Apps Synthèse des besoins architecturaux (fiscal, elisa, dawalale)

Services Centraux et Infrastructure

Service Documentation
SelebeYone (SLY) Gateway carrefour — entrée unique, routage interne + B2B, HMAC transit, logs
dynors-auth Service d'authentification — émission JWT minimal (identité), providers email/LDAP, cookies HttpOnly ; route SLY /auth/**
dynors-entitlements Moteur d'autorisation runtime — rôles, droits produits, packs B2C ; route SLY /entitlements/**
Observabilité Observabilité & traçabilité — Loki, Prometheus, P2 corrélation bus, paliers P3–P6
DYNORS PAIEMENT Hub PSP — Wave, Orange Money ; route SLY /paiement/**
FISCAL Bibliothèque Projets
dynors-pdf Génération PDF multi-formats — core/GUIDE_INTEGRATION_DYNORS_PDF.md
dynors-media Bibliothèque Projets
dynors-billing Bibliothèque Projetsmaître B2B SaaS récurrent uniquement (contrats, plans, dunning) — publie des events vers dynors-entitlements
SN Adresse API interne (géocodage, adresses provisoires) — core/API_CONSOMMATION_INTERNE_ADRESSE.md

🔄 Diagramme d'Architecture Globale

┌─────────────────────────────────────────────────────────────────┐
│                        ÉCOSYSTÈME DYNORS                         │
└─────────────────────────────────────────────────────────────────┘

                ┌──────────────────────────────┐
                │   SelebeYone (SLY) — gateway  │
                │   Entrée unique — toutes apps  │
                └──────┬────────────────────────┘
                       │
         ┌─────────────┼──────────────┬──────────────────┐
         ▼             ▼              ▼                   ▼
  /auth/**        /fiscal/**    /paiement/**         /elisa/**…
  dynors-auth       FISCAL     DYNORS PAIEMENT         Apps métier
  (JWT émission)  (facturation)  (Wave, OM, PSP)
         │
         │  JWT cookie HttpOnly
         ▼
  Toutes les apps (dynors-security valide le JWT)

🔐 Flux d'authentification

L'authentification est centralisée dans dynors-auth (dynors-platform), accessible via SLY sur /auth/**. Toutes les applications reçoivent un JWT sous forme de cookie HttpOnly — elles ne gèrent plus leur propre login.

Utilisateur
    │ email + password
    ▼
SLY /auth/login
    │
    ▼
dynors-auth → vérifie credentials → émet JWT
    │
    │ Set-Cookie: cookie host-only (ex. `sid`) ; HttpOnly ; Secure — ADR-0014
    ▼
App Angular (SuperGest, Mediconnect, RAGNAR…)
    │ cookie envoyé automatiquement
    ▼
App Spring Boot — dynors-security valide JWT → TenantContext alimenté

Voir la documentation complète : dynors-auth et Sécurité & Auth.


🔄 Appels inter-app

Tous les appels HTTP entre applications DYNORS passent par SLY via InterAppCallService. Aucun appel direct entre apps.

De Via SLY Vers Utilisation
Toute app /fiscal/** FISCAL Certification DGI, numérotation
Toute app /books/** DYNORS BOOKS Écritures comptables
Toute app /paiement/** DYNORS PAIEMENT Encaissements PSP (Wave, OM…)
Toute app /notify/** dynors-notify Email / SMS
Toute app /auth/** dynors-auth Login / refresh / me
Toute app /jaraaf/** JARAAF RH, paie, masse salariale

Voir la table complète : Routage inter-app.


📊 Tableau de Communication SI

De Vers Pour Auth
RAGNAR FISCAL via SLY Créer facture InterApp HMAC + tenant
FISCAL dynors-pdf Générer PDF SDK direct
FISCAL dynors-media Stocker PDF InterApp HMAC + tenant
SuperGest DYNORS PAIEMENT via SLY Encaisser Wave/OM InterApp HMAC + tenant
JARAAF DYNORS PAIEMENT via SLY Masse salariale bulk InterApp HMAC + tenant
Mediconnect FISCAL via SLY Facturation soins InterApp HMAC + tenant
Toute app dynors-auth via SLY Refresh JWT Cookie refresh HttpOnly

💪 Points Forts Architecturaux

Séparation des responsabilités

Chaque service a une responsabilité claire et non chevauchante : - dynors-auth émet les tokens — dynors-security les valide - SLY route — les apps traitent - DYNORS PAIEMENT orchestre les PSP — les apps ne parlent jamais aux PSP directement - FISCAL certifie — les apps ne connaissent pas la DGI

Sécurité par défaut

  • Cookies HttpOnly partout — jamais de tokens en localStorage
  • HMAC-SHA256 sur chaque appel inter-app (via SLY)
  • TenantContext alimenté uniquement depuis JWT validé — jamais depuis des headers ou body libres
  • Vault comme source de vérité pour tous les secrets

Multi-tenant natif

Chaque appel inclut le code tenant. dynors-db assure l'isolation automatique des données sans code métier supplémentaire.


📚 Documentation Complémentaire


Dernière mise à jour : 2026-06-18