Allow making a port public in a Workspace
MR: Pending
Description
As a workspace user, I want certain ports in a Workspace to be accessible bypassing the authentication layer provided by the Workspaces proxy to test projects that load JavaScript from a CDN.
Context
I've tried to use Workspaces to work in the Web IDE project. The Web IDE has a complex asset loading architecture where, an extension host web worker hosted in a CDN, requests an Extension's JavaScript assets hosted by the Workspace. In other words, the VSCode Server running in the Workspace requests the extensionHost.js file hosted in the CDN. In turn, the extensionHost.js file hosted in the CDN fetches JavaScript files from the Workspace too.
The HTTP request going from the extensionHost.js to the Workspace fails because the proxy that protects access to the Workspace expects authentication credentials which are not present in the CDN.
This problem wouldn't exist if certain ports in a Workspace weren't protected by the authentication wall provided by the Workspaces Proxy Server.
Additional enhancements
Opening ports in a Workspace and removing the Authentication layer entails security risks. It would be great if we could open and close these ports from the Workspaces UI in VSCode using the "Forwarding ports" panel:
In this way the ports are closed by default, and the user can open a port by setting it up temporarily in the Workspace.
Acceptance Criteria
-
I can open a port in the Workspace and accessing a service in this port won't require providing authentication credentials to the Workspaces proxy. -
Ideally, these ports can be opened/closed via the VSCode's UI.
Impact Assessment
We need this feature to dogfood Workspaces to work in the GitLab Web IDE project. We can't test the Extensions Marketplace in the Web IDE without implementing this capability.


