Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[electron] Connection to a remote backend #2056

Closed
1 of 3 tasks
paul-marechal opened this issue Jun 6, 2018 · 6 comments
Closed
1 of 3 tasks

[electron] Connection to a remote backend #2056

paul-marechal opened this issue Jun 6, 2018 · 6 comments
Labels
epic epic issues consisting of multiple smaller issues

Comments

@paul-marechal
Copy link
Member

paul-marechal commented Jun 6, 2018

Goal

Being able to use the Theia desktop version running in electron to connect to a remote backend.

Approaches

  1. Load an electron specific frontend from the remote backend
  2. Use the local Electron frontend and redirect the websocket connections on the remote backend

While (2) was prototyped, we could foresee problems with mismatching Theia's versions: the JSON-RPC protocol transfered over the Websocket might break because of some changes made between the versions.

On the other hand (1) makes the browser dependent on Electron. But part of the work will be to maybe make this remote connection feature an extension that could be supported or not based on the needs of both the host and the client.

To be done

  • Add an extension for the "Browser version" to enable the backend to serve Electron's frontend.
  • Add an extension for the Electron version to add the UI elements to connect to a remote.
  • Change the way the Electron version manages its windows in order to deactivate the Node integration and other options in regards to security concerns raised by the loading of remote content.
@Ten0
Copy link

Ten0 commented Nov 25, 2019

What's the current state of this issue?
Is there an ETA for the feature? What would be the next steps? Is it very hard?

@paul-marechal
Copy link
Member Author

paul-marechal commented Nov 25, 2019

I did realize a prototype, but we decided to not go forward with it at the moment. The main issue is security: loading remote content inside an electron browser window is not recommended when using electron's api + node integration. On the other hand, the electron frontend code doesn't work really well out of the box without electron + node apis, and some monkey patching needs to be made so that some components don't try to use require dynamically, for example.

Closed PR: #2340

TL;DR: Can be done, but it feels sketchy to me for now. A lot of care needs to be taken in regards to security when doing this.

@frank-dspeed
Copy link

@JonasHelming
Copy link
Contributor

We have SSH remot support now, can we close this? @paul-marechal

@msujew
Copy link
Member

msujew commented Oct 9, 2024

@JonasHelming Yes, I'll close this. For everyone still interested in this issue. Please see #12390.

@msujew msujew closed this as completed Oct 9, 2024
@paul-marechal
Copy link
Member Author

@JonasHelming yes this can be closed thanks to the amazing work by @msujew on the SSH support :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic epic issues consisting of multiple smaller issues
Projects
None yet
Development

No branches or pull requests

5 participants