os-js / osjs-client

OS.js Client Module
https://manual.os-js.org/
Other
31 stars 31 forks source link

User application installation and discovery support #106

Open andersevenrud opened 4 years ago

andersevenrud commented 4 years ago

As of right now packages are only loaded on the actual server instance. It would be nice to have the ability to install and discover into the VFS making packages available per-user as well as global.

I actually have a branch for this, but it needs to be revised.

Ref: https://github.com/os-js/osjs-server/issues/28 PR: https://github.com/os-js/osjs-server/pull/29 PR: https://github.com/os-js/osjs-client/pull/107

leopck commented 4 years ago

I was thinking if it's possible to create a QR code to create a UID or a URL so that users could rebuild their session?

Since everything is stored into VFS, if they go to another computer or another server instance, I want them to be able to rebuild their session, perhaps a config file that describes their "session" or "OS"

[config]
proxy=....
desktop=....

[app]
hub.registry.com/osjs-client
hub.registry.com/osjs-xterm-application
hub.company.registry.com/osjs-company-application
hub.community.registry.com/osjs-community-app1
hub.community.registry.com/osjs-community-app2

From this config file, it'll rebuild the session by pulling down their apps.

Use case:

  1. For users that moves about from different server instances
  2. For "guest" users that doesn't have a login account to that particular server instance.
  3. This also expands the use case of OS.js as we could reuse this capabilities to create virtual/application specific use cases as we can build OS.js with different application very easily now.
andersevenrud commented 4 years ago

I was thinking if it's possible to create a QR code to create a UID or a URL so that users could rebuild their session?

This would probably require servers to talk to each other (which raises some issues relating to security) since QR can't really store more than 3kb :thinking:

However, this is achievable. User sessions, settings as well as installed package manifests (an array of installed apps) is already stored as plain JSON.

andersevenrud commented 4 years ago

For the first iteration of this I think I'll be limiting support for this to server-side VFS only.

I've done some work on it and now package discovery is supported, as well as launching user installed packages and correct handling of URLs (assets etc.).

Next up is the server installation API, and this is ready for some testing :) Edit: This was added as I edited this comment :)

andersevenrud commented 4 years ago

PRs here: