shlinkio / shlink-web-client

A React-based client application for Shlink
https://app.shlink.io
MIT License
303 stars 81 forks source link

Add support for servers sync on third party storage #169

Closed the-hotmann closed 3 years ago

the-hotmann commented 5 years ago

I love this App but somehow I just found out, that the WebClient is a universal Webclient which stores its data in the Session. But as I use my own Shlink WebClient from different Devices I would love to just log me in and having all my Servers which I already connected to there. But everyone else without account should not be able to see them.

Do you guys think that is possible? Also is there a change to manage the Shlink installation directly from the WebClient? Like updating the App or backing it up, if you are Admin.

acelaya commented 5 years ago

Hello @MartinH0

On regards to the "managing shlink" part, I guess it got answered here https://github.com/shlinkio/shlink/issues/531

On regards to the "sharing servers between devices" thing, would it work to have some kind of syncing capability on shlink-web-client?

Some kind of synchronization via Dropbox/GDrive or similar would still let you keep the ownership of the data without making shlink-web-client architecture change.

the-hotmann commented 5 years ago

What I was thinking is:

WebClient should have a DB where it can store Users and the added Servers. So when I go to my own WebClient I login and add a Server. Next time I want to login from any other device I just have to Login (User and Password) and it shows me all my Servers again.

This is not possible atm. Everytime I loose my Cookies I have to get my API Key again, but who is seriously keeping his API Key in mind?

If I can store my Server-Credentials in a DB and just have to remind my Login to access it everything would be much easier

acelaya commented 5 years ago

Currently, shlink-web-client is a fully static client-side only app, which makes it super simple to configure.

Adding a database would require to add a backend, which would make the whole architecture drastically more complex, so I'm afraid is not a viable option.

Instead, adding a third party sync system would bring the feature on a much more simple way.

Instead of logging into shlink-web-client, you would need to log into Dropbox (for example), and after adding your credentials, you would get the list of servers you previously configured on a different device.

You would have the same experience and from a technical point if view it's way easier.

the-hotmann commented 5 years ago

Ok thank you.

Is there a example how to do this?

acelaya commented 5 years ago

Not on shlink itself, because it's not implemented yet 😅

But there are plenty of projects using this approach.

For example, I use this password manager called keeweb.

It's a static web app that can be installed as an electron desktop app, and they let you sync your passwords database using Dropbox and similars.

I would implement it in a similar way on shlink-web-client.

the-hotmann commented 5 years ago

Ok I have not understood exactly what you mean. But hey I like suprises ;) If you implemented it could you write it in this ticket, so I do get informed?

acelaya commented 5 years ago

Of course! I will let you know.

acelaya commented 4 years ago

I have been working lately on trying to get this done, but it adds a lot of unrelated complexity to the project (mostly related with comparibng, syncing and diffing files from a remote storage).

I will not close this, but I will deprioritize it for now.

acelaya commented 3 years ago

This proved to be easy too complex to be with the effort.

The future of "synced" servers is in Shlink dashboard, so I'll close this one.