runmedev / runmedev/web

Bug: jupyter server management is very brittle

Open
#151 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
45
Forks
6
Avg merge
7h 14m
Merged PRs (30d)
51

Description

The initial management of jupyter servers in
branch: dev/jlewi/jupyter
commit: c1b5319f799107f268a922707cf7de9bed10e95a

Is very brittle. The issue is we rely on token auth between the runme server and the jupyter server. The runme server then maintains a cache of the tokens/jupyter server configuration e.g. port. When starting jupyter server we need to write a .json file to the .runme-agent/jupyter directory.

There is all kinds of brittleness in this initial design. A lot of the issues go back to the double hop
runme -> jupyter_server -> ipykernel.

This was discussed in the original design in #63.

Some options are

  1. Get rid of jupyter_server and reimplement websockets -> zmq inside runme.
  2. Get rid of runme and talk to jupyter_server directly

Could we use OIDC with Jupyter server?
https://jupyter-server.readthedocs.io/en/latest/operators/security.html#authentication-and-authorization

I think we'd need an IdentityProvider/Authorizer plugin to validate the JWT and authorize users based on it.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the referenced design in #63 and commit c1b5319f799107f268a922707cf7de9bed10e95a on dev/jlewi/jupyter, then trace the token and configuration flow through .runme-agent/jupyter. Compare the listed Jupyter server alternatives with the proposed OIDC IdentityProvider/Authorizer direction; the issue does not define a concrete implementation or completion test.

Written by the indexing model from the issue text.

Assessment

Tech stack
jupyter, typescript
Domain
authentication, backend
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.