Aller au contenu

Générateur de diagrammes

/diagrams génère des diagrammes d’architecture visuels à partir des données de topologie sans utiliser Visio ou draw.io. La chaîne de traitement :

nœuds de topologie + arêtes + zones
▼ filtre de portée (env / type / id / seuls les éléments gérés)
▼ moteur de disposition (hiérarchique | force | concentrique | zone)
▼ stylage (couleur par environnement pour chaque nœud, couleur d'encodage pour chaque arête)
▼ optionnel : analyse AI Ollama → résumé + risques
▼ canevas React Flow (drag-to-edit, sauvegarder avec historique de versions)
▼ exporter PNG | SVG | PDF | Mermaid

Algorithmes de disposition

AlgorithmeQuand utiliser
hiérarchiqueArchitecture à plusieurs niveaux, flux de requête, pare-feu → chaînes de serveurs. Coffman-Graham BFS, tri déterministe par niveau
forceRéseaux en mosaïque, microservices, topologies organiques. Fruchterman-Reingold, 300 itérations, arêtes critiques tirées 2 fois plus fortement
concentriqueVisualisation de la zone d’impact, analyse de dépendance. Nœud focal dans le centre, anneaux 1/6/12/18/24
zoneDocumentation de conformité, segmentation réseau. Bandes de natation par environnement dans l’ordre fixe (internet → dmz → prod → …)

Types de diagrammes

TypeFiltrage
architecturetous les nœuds (par défaut)
network_flowtous les nœuds, arêtes montrées avec direction
dependency3-hop BFS à partir de l’ID de nœud focal
compliance_zonebandes de natation par environnement, avec rectangles de groupe
blast_radiusdisposition concentrique à partir du nœud focal
data_flowtous les nœuds avec traffic_profile=continu = animation

Modèles

5 modèles intégrés prêts à être clonés :

  • 3-Tier Web Application — Internet → Pare-feu → LB → Serveurs Web → DB
  • Microservices — API Gateway avec 4 services backend + DB
  • Réseau Hub & Spoke — hub centrale avec 4 emplacements de branche via IPsec
  • Architecture Zero Trust — Provider d’identité + IAP + applications + SIEM
  • Configuration DR/Backup — Production + Réplica DR + stockage S3 à distance + monitoring

POST /api/v1/diagrams/from-template/:id clone un modèle en nouveau diagramme.

Analyse AI (Ollama)

Lorsque include_ai: true, le générateur effectue une seule appelle Ollama avec la liste complète de nœuds et d’arêtes plus des statistiques (arêtes non cryptées, arêtes critiques, lacunes de conformité). Le modèle LLM fournit :

{
"résumé": "2-3 phrases résumant l'architecture",
"risques": [
{ "gravité": "élevée", "description": "", "remédiation": "" }
]
}

Timeout 60 sec, modèle llama3.1:8b, exécuté localement dans la même stack Docker (pas de fournisseur AI externe). En cas d’erreur de parsing de la réponse LLM, le système revient à l’extrait brut en tant que résumé.

Export

FormatComment
PNGcôté client via html-to-image, 2× ratio pixel pour qualité retina
SVGcôté client via html-to-image’s toSvg
PDFPNG intégré dans jsPDF en mode paysage 1920×1080
Mermaidcôté serveur via /api/v1/topology/export/mermaid
Partagelien de lecture seule publique via POST /api/v1/diagrams/:id/share — token 32 caractères sécurisé, pas d’expiration, ID tenant supprimé de la réponse

API

MéthodeChemin
GET /api/v1/diagramsliste des diagrammes + comptes de nœuds/edges
POST /api/v1/diagrams/generatedisposition + stylage + optionnel auto_save
GET /api/v1/diagrams/templatesmodèles intégrés + modèles tenant
POST /api/v1/diagrams/from-template/:idcloner un modèle
GET /api/v1/diagrams/:id · PUT · DELETECRUD avec historique de versions lors du PUT
POST /api/v1/diagrams/:id/share · unsharelien de partage publique toggle
GET /api/v1/diagrams/share/:tokenlecture seule (pas d’auth)

Historique de version

Chaque PUT /diagrams/:id snapshot la version précédente vers diagram_versions avec un résumé de changement. Pas d’interface pour afficher des diff (sur la feuille de route), mais les données sont là pour le retraitement forensique.

Limites

  • Pas de collaboration en temps réel — plusieurs éditeurs surchargent les modifications les uns des autres. Travail par personne, utilisez les snapshots comme points de synchronisation.
  • Pas d’export XML draw.io — Mermaid est disponible ; draw.io peut importer Mermaid.
  • Annotions AI par nœud ne sont pas encore disponibles — seul le résumé tenant et les risques.
  • Minimisation des passages — disposition hiérarchique ne fait pas d’optimisation de passage Sugiyama. Pour les diagrammes avec 50+ nœuds, nous recommandons la disposition zone ou force.