Add visualised node graph feature#8
Conversation
Agent-Logs-Url: https://github.com/privacyint/headscale-admin/sessions/6b9112be-3cb0-4c7a-9985-dda143dffc82 Co-authored-by: CJFWeatherhead <6923098+CJFWeatherhead@users.noreply.github.com>
|
@copilot resolve the merge conflicts in this pull request |
Resolved and pushed in commit No UI files were changed as part of this merge-conflict fix, so there is no UI screenshot to attach. |
0383318 to
edf93a8
Compare
|
@copilot While this is a great initial implementation, its usability is poor, many of the lines intersect and it make is difficult to actually make any inferences from the data. I think that the nodes should be more fluid, they should avoid intersecting with on another, its okay to put limits to achieve the (e.g only 10 nodes at a time can be visualised). I think at the presentation level everything is a little small, I think it might also be worth using mdi icons rather than dots, to align with the rest of the application's design language. |
…, larger nodes Agent-Logs-Url: https://github.com/privacyint/headscale-admin/sessions/d5febefb-cfb0-4150-8d59-1d08dbcd4770 Co-authored-by: CJFWeatherhead <6923098+CJFWeatherhead@users.noreply.github.com>
Addressed in commit MDI icons — circles replaced with coloured background discs containing proper MDI icon shapes ( Reduced intersections (Y-force simulation) — Node size / presentation — node radius increased from 10 → 20 px (selected: 26 px), default row spacing from 56 → 90 px, padding from 40 → 60 px, font size 12 → 13 px, arrow markers widened. Edge lines now terminate at the node circumference rather than the centre. Per-kind cap — a Here is the graph rendering with the full mock dataset: Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|

Adds an experimental Visualise page that renders the Headscale ACL policy and node/user data as an interactive graph.
Features
mdi:account,mdi:account-group,mdi:tag,mdi:laptop,mdi:server,mdi:asterisk) inside a coloured background circle, matching the application's existing design language.user → group → tag → node → host → wildcard) is preserved; connected nodes are attracted to the same vertical level, substantially reducing edge crossings.trimGraphhelper limits each entity kind to 10 nodes. When the graph exceeds the limit a "Note" banner prompts the user to narrow their search or apply filters.mdi:graph-outlineicon.trimGraph, and endpoint resolution.