Skip to content

Manager for proxied apps and ability to configure proxied apps CLI args via JupyterLab UI interface #383

Open
@mahendrapaipuri

Description

@mahendrapaipuri

Proposed change

We use jupyter-server-proxy to give access to applications like tensorboard, mlflow, etc to our users via our JupyterHub deployment. These applications (certainly many more) needs CLI args (for instance logdir for tensorboard) to be able to work well. This can be tackled by using custom env vars or config files that users need to configure before launching the app. But it would be better if users can set these CLI args directly from the JupyterLab UI before launching the app.

When user clicks the proxy app on the JupyterLab launcher, it shows an input dialog as below
labappargs
and then user can simply setup CLI args and/or env vars needed to launch that app. We will send these args to the backend, sanitize them and append to the proxy app command.

Another feature is the ability to launch multiple instances of a given app. This can be achieved by adding one more config option, say num_instances, and then registering the handlers with suffix app_{instance_num}. This way user can have multiple instances of a given app and it is admins who decide how many instances to allow.

With current implementation of jupyter server proxy, there is no way to terminate the app via UI (user can always send a SIGTERM to process pid "manually"). The idea is to add a manager to the proxied apps that can be managed as kernels, terminals in the JupyterLab sidebar as below
labapprunning
The users can terminate apps here, which will send a SIGTERM signal to the PID that we got from simpervisor.

Who would use this feature?

All the users that use jupyter server proxy to get UI access to the applications running on a platform. This will be very useful particularly for HPC platforms where JupyterHub/JupyterLab is most common way to provide web access on the compute nodes.

(Optional): Suggest a solution

We have already implemented these for our platform and it has running well for almost a year. If the developers of jupyter server proxy are interested, we would be happy to open a PR.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions