Remote Access¶
Remote access lets desktop IDEs (e.g. VS Code) connect directly to a workspace without going through the browser.
How it works¶
User creates a Connection with a non-web type (e.g.
vscode-remote).Extension API looks up the access strategy’s
createConnectionHandlerMapfor that type.Extension API invokes the plugin handler (e.g.
aws:createSession).The plugin returns connection details — typically a session ID or tunnel endpoint.
The user’s local IDE connects using those details.
Example: VS Code Remote via AWS SSM¶
kubectl create -f - <<EOF
apiVersion: connection.workspace.jupyter.org/v1alpha1
kind: WorkspaceConnection
metadata:
namespace: team-alice
spec:
workspaceName: alice-workspace
workspaceConnectionType: vscode-remote
EOF
The response contains a URL that the workspace user can paste in their web browser, which redirects them to their desktop IDE.
For example, VS Code desktop remote-SSH extension will then connect to the workspace without needing direct network access to the cluster.
Plugin dispatch¶
The access strategy maps connection types to plugin handlers:
spec:
createConnectionHandlerMap:
vscode-remote: "aws:createSession"
The format is plugin:action — in this example, the controller resolves aws to the plugin’s HTTP endpoint and calls the createSession action. See Plugin Architecture for details.
Pod lifecycle events¶
Some remote access methods require pod-level setup (e.g. registering with a session manager). The access strategy’s podEventsHandler field triggers plugin actions on pod start/stop:
spec:
podEventsHandler: "aws:ssm-remote-access"