🏗️ 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 Projets — maî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)
TenantContextalimenté 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¶
- Bibliothèque Projets
- Vision & Architecture
- Multi-tenancy
- Sécurité & Auth
- Observabilité & traçabilité
- Études & travaux en cours
- Documentation source (core)
Dernière mise à jour : 2026-06-18