Code/docs/FabNum v2/macro-dat.dot
Stéphan Peccini 29a85bdcf7
docs(evolution): intégration revue critique + réorganisation complète
Revue critique (claude.ai) intégrée :
- Point 3 : versionnage formules indices + date disponibilité effective
- Point 4 : critères sélection amorçage (stresser les mécanismes)
- Point 6 : réversibilité dans le spike technique
- Point 7 : SCOR/ISO en contrepoint, axes validation complémentaires
- Point 8 : interface concrète IRON (3 cas d'usage)
- Point 12 : projection qualitative/chiffrée selon confiance, rétro-analyse calibration
- Point 13 : deux sorties bus (situationnelle/structurelle), coût IA différé
- Contraintes transversales : décisions différées avec signaux déclencheurs

Réorganisation document :
- Vue 1 en en-tête (principe fondamental)
- Ordre de réalisation aligné sur les 4 vues
- Progression architecturale (Vue 1→4) en fin de document
- DAF et DAT mis à jour (8 fonctions, bus d'impact, structurel/situationnel)
- Vue 4 corrigée (veille propose, ne injecte pas ; flèche API restaurée ;
  sortie structurelle du bus)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 13:08:27 +02:00

183 lines
8.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

digraph macro_dat {
rankdir=TB;
fontname="Arial";
node [fontname="Arial", fontsize=10, style="filled,rounded", shape=box, penwidth=1.5];
edge [fontname="Arial", fontsize=9, penwidth=1.2];
label="FabNum — Macro-DAT (Dossier d'Architecture Technique)\n\n";
labelloc=t;
fontsize=16;
compound=true;
// ==================== COUCHE STOCKAGE ====================
subgraph cluster_stockage {
label="COUCHE STOCKAGE";
style=filled; color="#E3F2FD"; fontsize=13; fontcolor="#1565C0";
bdd_struct [
label="Graphe structurel\n\nCapacités nominales\nActeurs, pays, parts de marché\nIndices structurels\nMise à jour trimestrielle"
fillcolor="#BBDEFB"
];
bdd_situa [
label="Graphe situationnel\n\nImpacts actifs\nCapacités réelles\nIndices situationnels\nHistorique des situations"
fillcolor="#90CAF9"
];
historisation [
label="Historisation\n\nSnapshots horodatés\nVersions données + indices\nAudit trail\nRétro-analyse"
fillcolor="#BBDEFB"
];
sources_db [
label="Référentiel sources\n\nSources catégorisées\nTiers de confiance (par domaine)\nLiens source ↔ donnée\nIndice de fiabilité"
fillcolor="#BBDEFB"
];
}
// ==================== COUCHE MOTEUR ====================
subgraph cluster_moteur {
label="COUCHE MOTEUR (Python)";
style=filled; color="#E8F5E9"; fontsize=13; fontcolor="#2E7D32";
subgraph cluster_calcul {
label="Calcul";
style=filled; color="#C8E6C9";
calcul_indices [label="Calcul indices\n\nIHH, ICS, IVC, ISG\n+ futurs (eau, énergie)\nStructurels ET situationnels\nPré-calcul à chaque MAJ", fillcolor="#A5D6A7"];
meta_indices [label="Méta-indices\n\nCalcul dynamique\nsur sous-graphe\nsélectionné", fillcolor="#A5D6A7"];
propagation [label="Propagation\nd'impact\n\nSimulation manuelle\nou via bus\nProjection temporelle\n(stocks)", fillcolor="#A5D6A7"];
}
subgraph cluster_qualite {
label="Qualité données";
style=filled; color="#C8E6C9";
arbitrage [label="Arbitrage sources\n\nTier 1 par défaut\nConvergence → alerte\nSeuils variation", fillcolor="#A5D6A7"];
qualification [label="Qualification\n\nFiltres qualité\nIndice fiabilité\nPérimètre mesuré", fillcolor="#A5D6A7"];
}
subgraph cluster_requetage {
label="Requêtage";
style=filled; color="#C8E6C9";
chemins [label="Traversée graphe\n\nChemins critiques\nFiltrage multi-critères\nSous-graphes", fillcolor="#A5D6A7"];
projection_client [label="Contextualisation\nclient\n\nMapping contexte client\nsur graphe FabNum\n(stateless)", fillcolor="#A5D6A7"];
scenarios [label="Scénarios\nmulti-impacts\n\nCombinatoire N événements\nComparaison scénarios\nContextualisé client", fillcolor="#A5D6A7"];
}
subgraph cluster_generation {
label="Génération";
style=filled; color="#C8E6C9";
templates [label="Templates fiches\n\nNiveau × usage\nExpertise / Synthèse\nAPI / JSON", fillcolor="#A5D6A7"];
import_export [label="Import / Export\n\nDOT (legacy)\nJSON\nPDF\nBackup / Restore", fillcolor="#A5D6A7"];
}
}
// ==================== BUS D'IMPACT ====================
subgraph cluster_bus {
label="BUS D'IMPACT";
style=filled; color="#FBE9E7"; fontsize=13; fontcolor="#BF360C";
memoire [
label="Mémoire situationnelle\n\nImpacts actifs\nHistorique événements\nAccumule, met à jour, archive"
fillcolor="#FFCCBC"
];
traducteur [
label="Traducteur IA\n\nÉvénement → impacts chiffrés\nNœuds impactés, % réduction\nDurée estimée"
fillcolor="#FFAB91"
];
validation [
label="Validation expert\n\nPropose → valide\nPas d'injection automatique"
fillcolor="#FFCCBC"
];
traducteur -> validation -> memoire;
}
// ==================== SERVICES INTERNES ====================
subgraph cluster_services_internes {
label="SERVICES INTERNES (non exposés)";
style=filled; color="#FFF3E0"; fontsize=13; fontcolor="#E65100";
veille [label="Veille sources\n(huginn)\n\nDétection MAJ\nNouvelles sources\nDisparitions", fillcolor="#FFE0B2"];
verif_citations [label="Vérification\ncitations\n\nverify-citations", fillcolor="#FFE0B2"];
recalcul [label="Recalcul indices\n\nDéclenché par MAJ\nstructurel + situationnel", fillcolor="#FFE0B2"];
alertes [label="Alertes\n\nVariations anormales\nConvergence sources", fillcolor="#FFE0B2"];
}
// ==================== API REST ====================
subgraph cluster_api {
label="API REST (point d'accès unique)";
style=filled; color="#F3E5F5"; fontsize=13; fontcolor="#6A1B9A";
subgraph cluster_securite {
label="Sécurité";
style=filled; color="#E1BEE7";
auth [label="Auth + Rôles\n(user / API key)", fillcolor="#CE93D8"];
profils [label="Profils visibilité", fillcolor="#CE93D8"];
rate_limit [label="Rate limiting\nMonitoring", fillcolor="#CE93D8"];
}
subgraph cluster_endpoints {
label="Endpoints";
style=filled; color="#E1BEE7";
ep_graphe [label="/graphe/*\nstructurel + situationnel", fillcolor="#CE93D8"];
ep_fiches [label="/fiches/*\ntous formats", fillcolor="#CE93D8"];
ep_analyse [label="/analyse/*\nvulnérabilités, scénarios", fillcolor="#CE93D8"];
ep_indices [label="/indices/*\nstructurels + situationnels", fillcolor="#CE93D8"];
ep_export [label="/export/*\nPDF, JSON, DOT", fillcolor="#CE93D8"];
ep_admin [label="/admin/*\nCRUD, sources", fillcolor="#CE93D8"];
}
}
// ==================== CONSOMMATEURS ====================
frontend [label="Frontend expert\n\nAnalyse, simulation,\nqualification", fillcolor="#CFD8DC", shape=house];
client_app [label="Client\n\nCOMEX, Métiers, DSI\nContextualisé", fillcolor="#CFD8DC", shape=house];
ecosysteme [label="Écosystème 360°\n\nVeille stratégique\nIRON, alertes", fillcolor="#CFD8DC", shape=house];
// Admin
admin [label="Admin (scripts)\n\nCRUD graphe structurel\nGestion sources\nTiers, arbitrage", fillcolor="#FFCC80", shape=hexagon];
// Veille 360°
veille360 [label="Veille 360°\n\nÉvénements géopolitiques\nclimatiques, économiques\nSignaux faibles", fillcolor="#CE93D8", shape=house];
// ==================== LIENS ====================
// Stockage → Moteur
bdd_struct -> chemins [color="#1565C0"];
bdd_struct -> calcul_indices [color="#1565C0"];
bdd_situa -> propagation [color="#1565C0"];
bdd_situa -> scenarios [color="#1565C0"];
sources_db -> arbitrage [color="#1565C0"];
// Bus → Stockage + Moteur
memoire -> bdd_situa [label="MAJ\nsituationnel", color="#BF360C"];
memoire -> propagation [label="impacts\nchiffrés", color="#BF360C", penwidth=2];
// Veille 360° → Bus
veille360 -> traducteur [label="événements", color="#6A1B9A", penwidth=2];
// Moteur → Services internes
calcul_indices -> recalcul [color="#E65100"];
arbitrage -> alertes [color="#E65100"];
// Moteur → API
chemins -> ep_graphe [color="#6A1B9A"];
meta_indices -> ep_indices [color="#6A1B9A"];
templates -> ep_fiches [color="#6A1B9A"];
import_export -> ep_export [color="#6A1B9A"];
propagation -> ep_analyse [color="#6A1B9A"];
scenarios -> ep_analyse [color="#6A1B9A"];
// API → Consommateurs
ep_graphe -> frontend [color="#37474F"];
ep_analyse -> frontend [color="#37474F"];
ep_fiches -> client_app [color="#37474F"];
ep_analyse -> client_app [color="#37474F"];
ep_graphe -> ecosysteme [color="#37474F"];
ep_indices -> ecosysteme [color="#37474F"];
// Admin
admin -> bdd_struct [color="#E65100", penwidth=2, label="accès\ndirect"];
// Services internes → Stockage
veille -> sources_db [color="#E65100", style=dashed, label="MAJ sources"];
recalcul -> bdd_struct [color="#E65100", style=dashed];
recalcul -> bdd_situa [color="#E65100", style=dashed];
alertes -> admin [color="#E65100", style=dashed, label="notification"];
}