Code/docs/FabNum v2/architecture-vue3.dot
Stéphan Peccini e6ff714fca
docs(evolution): réorganisation docs/FabNum v2/ + points 13-14 + vues progressives
- Déplacement de toute la documentation v2 dans docs/FabNum v2/
- Ajout points 13 (bus d'impact, mémoire situationnelle, IA) et 14 (combinatoire)
- Architecture structurel/situationnel, IVC dynamique inter-sectoriel
- 4 vues architecturales progressives (vue1→vue4) pour présentation
- Génération PNG de tous les diagrammes
- .gitignore : docs/**/*.dot au lieu de docs/*.dot

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

90 lines
3.7 KiB
Plaintext

digraph architecture_vue3 {
rankdir=TB;
fontname="Arial";
fontsize=18;
label="FabNum — Vue 3 : Veille stratégique 360°\nLe monde extérieur interagit avec FabNum\n";
labelloc=t;
splines=true;
nodesep=0.7;
ranksep=0.9;
node [fontname="Arial", fontsize=10, style="filled,rounded", shape=box, penwidth=1.5];
edge [fontname="Arial", fontsize=9, penwidth=1.2];
// Ligne 1 : utilisateurs (4 colonnes fixes)
admin [
label="Administrateur\n\nGère le graphe,\nles sources, les tiers\nde confiance"
fillcolor="#FFE082" shape=house
];
expert [
label="Expert\n\nAnalyse les risques,\nqualifie les données,\nsimule des scénarios\nd'impact,\nvalide les sources"
fillcolor="#A5D6A7" shape=house
];
client [
label="Client\n(COMEX, Métiers, DSI)\n\nConsulte les analyses,\nles fiches, les alertes.\nPeut contextualiser\nses requêtes."
fillcolor="#EF9A9A" shape=house
];
ecosysteme [
label="Écosystème\nveille 360°\n\nDétecte les événements,\npropose des sources,\nrequête FabNum"
fillcolor="#CE93D8" shape=house
];
{ rank=same; admin; expert; client; ecosysteme; }
// Ligne 2 : API + placeholder bus
api [
label="API\n\nPoint d'accès unique\nAuthentification, rôles,\nprofils de visibilité"
fillcolor="#B39DDB" penwidth=2
];
// Placeholder bus (invisible)
ph_bus [label="" shape=point width=0.01 style=invis];
{ rank=same; api; ph_bus; }
// Ligne 3 : Moteur + placeholder IA + veille
moteur [
label="Moteur FabNum\n\nCalcul des indices\n(IHH, ICS, IVC, ISG)\nRequêtage du graphe\nChemins critiques\nGénération fiches (templates)\nArbitrage des sources\nPropagation d'impact"
fillcolor="#90CAF9" penwidth=2
];
// Placeholder IA (invisible)
ph_ia [label="" shape=point width=0.01 style=invis];
veille [
label="Veille sources\n\nSurveillance des sources\n(huginn)\nVérification des citations\nAlertes (variations)"
fillcolor="#FFAB91" penwidth=1.5
];
{ rank=same; veille; moteur; ph_ia; }
// Ligne 4 : BDD + sources
bdd [
label="Base de données\n(graphe)\n\nNœuds, relations, indices\nSources rattachées\nHistorique des données"
fillcolor="#80CBC4" penwidth=2
];
sources [
label="Sources externes\n\nUSGS, Statista, BRGM,\nScholar Gateway, Consensus,\nWRI Aqueduct, ND-GAIN..."
fillcolor="#E0E0E0" shape=cylinder
];
{ rank=same; bdd; sources; }
// Relations utilisateurs
expert -> api [label="consulte, analyse\net simule", color="#2E7D32"];
client -> api [label="consulte\nles résultats", color="#C62828"];
admin -> moteur [label="administre\n(scripts)", color="#E65100", style=bold, penwidth=2];
// Écosystème 360° — deux points d'interaction
ecosysteme -> api [label="requête\nanalyses", color="#6A1B9A", penwidth=2];
ecosysteme -> expert [label="propose\ndes sources", color="#6A1B9A", style=dashed, penwidth=2];
expert -> sources [label="valide et\nalimente", color="#2E7D32", style=bold];
// API ↔ Moteur
api -> moteur [label="transmet\nles requêtes", color="#4527A0", dir=both];
// Moteur ↔ BDD
moteur -> bdd [label="lit et écrit\nles données", color="#00695C", dir=both];
// Veille
sources -> veille [label="surveille\nles MAJ", color="#BF360C"];
veille -> bdd [label="met à jour\nles sources", color="#E65100", style=dashed];
veille -> moteur [label="signale les\nchangements\net vérifie\nles citations", color="#E65100"];
sources -> bdd [label="alimente\nles données", color="#546E7A", style=dashed];
// Liens invisibles pour stabiliser
ph_bus -> ph_ia [style=invis];
}