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

interface for switching between jupyter apps #1414

Open
oliver-sanders opened this issue Apr 10, 2024 · 0 comments
Open

interface for switching between jupyter apps #1414

oliver-sanders opened this issue Apr 10, 2024 · 0 comments

Comments

@oliver-sanders
Copy link
Contributor

oliver-sanders commented Apr 10, 2024

Note

By "apps" I mean standalone web applications e.g. Jupyter Lab and NbClassic. Things that have their own root endpoint e.g. /lab. I am not talking about:

  • lab/notebook extensions that fit into existing apps.
  • Jupyter Server extensions that do not directly provide a standalone app of their own.
  • Jupyter Server extension applications (applications meaning traitlets applications).

Hi 👋,

Jupyter Server extensions can use the framework and services provided by Jupyter Server to create apps and services.

You can have multiple extensions providing multiple apps on the same server simultaneously, with each app sitting behind its own root endpoint (e.g. /lab).

When you start Jupyter Server e.g. via the command line or Jupyter Hub, your web browser will open to the root URL of a particular app (e.g. <jupyter-server-root-url>/lab). Which app you get is determined by the command used to launch the server and the Jupyter configuration.

Problem

If you are using Jupyter Server to serve a single app, it's straight forward to access the app, launch the server and you're there.

If you are using Jupyter Server to serve multiple apps, then to switch between them, you must edit the URL e.g. by changing /lab/.* with /myextension. This is a bit cumbersome:

  • How does the user know what apps are available?
  • How does the user know what to change the URL to?

Proposed Solution

It would be great if there was a standardish UI feature (e.g. a menu bar), implemented in extension apps that listed available apps and allowed you to switch app (i.e. change the URL) or open another app in a new browser tab.

This would require:

  1. A Jupter Server API for listing apps (note apps not extensions) with their root endpoints.
  2. Extension applications to implement the interface for switching apps using this interface.
  3. Depending how difficult it is to differentiate between an extension that adds services and one that provides apps automatically, this might require extensions to explicitly declare any apps they provide.

Additional context

Does this make sense to you? Are their any existing APIs that might help? Is there a better way to go about this?

oliver-sanders added a commit to oliver-sanders/jupyter_server that referenced this issue Nov 4, 2024
* Add an interface for listing extension applications that provide a
  default URL (i.e. extensions which provide a web application).
* Add an endpoint for querying this interface.
* Partially addresses jupyter-server#1414 by allowing Jupyter web applications to query
  for the existence of other Jupyter web applications.
oliver-sanders added a commit to oliver-sanders/jupyter_server that referenced this issue Nov 4, 2024
* Add an interface for listing extension applications that provide a
  default URL (i.e. extensions which provide a web application).
* Add an endpoint for querying this interface.
* Partially addresses jupyter-server#1414 by allowing Jupyter web applications to query
  for the existence of other Jupyter web applications.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant