- export_topology.py: edges now carry the exact port name on both ends
(pulled directly from Cable/CableTermination, not inferred from the
trace chain), so the diagram can label each connector.
- generate_drawio.py: patch panels are now a small rack-unit shape
(header strip + port ticks, parented to the panel body so they move
together) instead of a plain box; connectors show 'porta <-> portb'
and no longer carry a directional arrowhead (these are physical
cables, not directed links); switches keep the network-switch icon.
- render_png.js + render_host.html: headless Puppeteer driver for
embed.diagrams.net's postMessage export protocol -- an actual
render of the .drawio file, not an approximation. Field-Switch-
Topology.png is the committed output, for anyone who wants a look
without opening draw.io.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NM3nivbufxEWiKKmatEtEe
- export_topology.py: dumps switch + patch-panel cable graph from NetBox
(Django shell, read-only)
- generate_drawio.py: renders topo_full.json as a draw.io diagram with
natively-glued connectors (source/target by shape id, no hand-rolled
glue formulas)
- topo_full.json + Field-Switch-Topology.drawio: current snapshot
Replaces the earlier hand-built .vsdx approach: plain-text format diffs
meaningfully in git, no Visio license needed to view/edit, and edges glue
natively instead of needing point-to-point formula hacks.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NM3nivbufxEWiKKmatEtEe