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
Algorithme Quand utiliser
hiérarchique Architecture à plusieurs niveaux, flux de requête, pare-feu → chaînes de serveurs. Coffman-Graham BFS, tri déterministe par niveau
force Réseaux en mosaïque, microservices, topologies organiques. Fruchterman-Reingold, 300 itérations, arêtes critiques tirées 2 fois plus fortement
concentrique Visualisation de la zone d’impact, analyse de dépendance. Nœud focal dans le centre, anneaux 1/6/12/18/24
zone Documentation de conformité, segmentation réseau. Bandes de natation par environnement dans l’ordre fixe (internet → dmz → prod → …)
Type Filtrage
architecture tous les nœuds (par défaut)
network_flow tous les nœuds, arêtes montrées avec direction
dependency 3-hop BFS à partir de l’ID de nœud focal
compliance_zone bandes de natation par environnement, avec rectangles de groupe
blast_radius disposition concentrique à partir du nœud focal
data_flow tous les nœuds avec traffic_profile=continu = animation

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.

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é.

Format Comment
PNG côté client via html-to-image, 2× ratio pixel pour qualité retina
SVG côté client via html-to-image’s toSvg
PDF PNG intégré dans jsPDF en mode paysage 1920×1080
Mermaid côté serveur via /api/v1/topology/export/mermaid
Partage lien 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
Méthode Chemin
GET /api/v1/diagrams liste des diagrammes + comptes de nœuds/edges
POST /api/v1/diagrams/generate disposition + stylage + optionnel auto_save
GET /api/v1/diagrams/templates modèles intégrés + modèles tenant
POST /api/v1/diagrams/from-template/:id cloner un modèle
GET /api/v1/diagrams/:id · PUT · DELETE CRUD avec historique de versions lors du PUT
POST /api/v1/diagrams/:id/share · unshare lien de partage publique toggle
GET /api/v1/diagrams/share/:token lecture seule (pas d’auth)

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.

  • 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.