Graphically Link Repos and Nodes

The objective:

A simpler way to visualize network topology (which Repos are shared with which Nodes) across 1 or more clusters.

At present, using the GUI, the user must open each Repo bar to see the “shared with” field … and must repeat these steps in each Node’s UI to see the big picture. It’s a lot of steps to audit everything.

Would it be possible to visually link Repos and Nodes in the GUI … using the existing colored bars?

For example, what if Syncthing automatically numbered each Repo - 1,2,3,4,… n, and then placed the corresponding numbers right on the Node bar(s) that are “shared with” that Repo. Alternatively, use color stripes, icons, or some other graphic identifier to achieve this.

Any thoughts?

1 Like

I like the idea.

I suggest doing this by mouseover: If i hover with the mouse over the device “BlackDS”:

or if i hover over the folder “Kay”: i can quickly see where my folders are shared, too.

I think this is very useful to quickly check, which nodes will be anounced by the introducer functionallity. (because, as far as i understand, the only the devices which share the same folder are announced over the introducer)

I can even imagine a button next to the introducer - checkbox: “Show the introduced nodes” Which then highlights all the devices introduced, while everything else becomes darker.

2 Likes

Yes!

You captured the functionality I was looking for (connection audit), and you advanced the graphical representation considerably. I really like how your idea activates on both folder (repo) and device (node) sides of the display. Clever.

Connection lines are more concise than the numbering system I proposed, and the mouse hover concept means it all disappears from view when the mouse pointer moves away - so the original uncluttered interface is restored.

Re your additional introducer ideas, I haven’t yet grasped the full capability of this new function. I am not sure how the existing “Share with” checkboxes and your proposed “Show the introduced nodes” would differ or overlap in function.

I like the idea of activating on hover, but, instead of (or in addition to) lines, we could highlight the nodes when a repo is hovered (highlight with color/glow/etc).

1 Like

Looks very cool, though my HTML and CSS is not capable of this witchcraft.

I was thinking about something like this:

and if you click the button: (please excuse the lack of my drawing skills…)

The problem is, that for the introducer, i must see: The device with the introducer function – all folders where this device is registered — all connected devices of all folders where this device is registered

In my example: WhiteDS is connected to Kay and S3_Pics. Black DS is connected to Kay and so can be introduced BigBear is connected to Kay and S3_Pics and WhatPic and will be introduced Upai_S3 is connected only to WhatPic (where WhiteDS is not connected to) and so will not be introduced.

After one more click anywhere, Syncthing goes back to normal state

@AudriusButkevicius: I am not a developer, but i found this. Might this help?

So I realized why this won’t work. If you make the window very narrow, the folders (repos) and devices (nodes) climb on each other since its bootstrap 3.

I understand.

I guess one could still use the highlighting with @hobarrera suggested. Or make something like this:

But i guess, there would be a lot of programming involved, if it is even possible.

Yeah - probably a pain in the behind to code this.

I recently connected ~20 nodes and ~12 repos with a few friends. Not a simple “mesh everything” topology - but a hybrid network. It was difficult to set up and a nightmare to debug.

The ideas discussed here could considerably reduce the setup/audit time for larger clusters. I guess the priority for something like this would depend on what % of Syncthing users will be constructing clusters larger than 3 or 4 nodes.

@calmh mentioned once (i cannot remember where) that he might move / add the folder selection to the device side, too.

But even then, trying to figure out, who can see who if he is selecting the introducer mode can be tricky or even a nightmare if one has larger clusters

Yep.

The highlighting/glowing idea suggested by @hobarrera has some promise, because it doesn’t seem to require re-designing the layout of the GUI.

So the introducer is not selective at the moment. All devices always advertise all their peers and folders. If a device is marked as an introducer, the recipient device adds all the devices and folders the introducer advertises.

The ‘Share with’ has nothing to do with this, as it only influences ‘Who is able to read’ but not ‘Who is this being advertised to’

I am not sure about this. This would mean that any device connected to me can and will, by selecting the “introducer functionallity” connect to all the devices I know, and all the devices these know… and so on. @calmh worte here: v0.9.18 Introducer Nodes

Thats why i think/tought that the devices are announced per folder.

The functionallity i mentioned would show the user, which folders and devices would be introduced, if the other side would select the introducer mode.

Yes, i understand. I meant that this is also adding more visuablity: Which device is added to which folder.

Would anyone here feel offended if I copied this idea to my GTK GUI? Not with linking lines, but color highlighting for related nodes/repos like this and this?

Not in the least, be my guest.

Same here, please use it!

I really like Bob’s idea of hovering over a folder/device and seeing all the interconnections. Has any work been done in that area? Or is it something that is on the horizon at least?

No, nothing has been done and nothing is in the horizon.

It’s been 2 years since this was proposed. As cool as the idea was, it might be a luxury feature considering the html / CSS voodoo required to achieve it.

Also, we now know a LOT more about usage from data.syncthing.net

At the 95th percentile, users have 9 devices and 11 folders connected. The overwhelming majority have simple clusters. So the effort to do this would benefit a tiny % of users.

On the other hand, if someone could demonstrate that implementation is trivial … I might reverse my opinion.

1 Like

I could envision something simpler, like fading out non-shared folders when hovering over a device and vice versa. Should be not super tricky. I’m not going to throw myself on it, but I would probably happily merge it if someone did.

1 Like