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 | MermaidAlgorithmes de disposition
| 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 → …) |
Types de diagrammes
| 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 |
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
| 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 |
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 |
API
| 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) |
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.