Feature #17229

Updated by Peter Amstutz 2 months ago

Webshell in Workbench has two main pieces:

1. Shell in a box Javascript. This is the main implementation of the terminal emulator and communication with the server. It is lightly modified from the original upstream code. Specifically, there are a few references to a static asset loaded from /webshell/enabled.gif

arvados/apps/workbench/lib/assets/javascripts/webshell/shell_in_a_box.js

2. The webshell page. This creates a "ShellInABox" object with the appropriate URL. It also has hooks that check for "username:" and "password:" prompts to automatically send the correct username and token:

arvados/apps/workbench/app/views/virtual_machines/webshell.html.erb

For Workbench 2 integration we probably want it to behave the same way as Workbench 1:

# Go to the virtual machines page
# Click on "Webshell" link
# Load webshell in a new tab

It probably makes sense to have the webshell exist on a static HTML page separate from the react app, and just do a handoff of the the webshell server URL, username and token.

Back