Automatically loading external data into Jupyterhub instances

Good day everyone,

We’re integrating Jupyterhub with a web-based platform with the purpose of exploring a file resulting from an experiment launched by a user.

Typically, they’ll access the hub by following a link from a web page that contains an ID of the result they want to have loaded. Ideally, the ID would be embedded into a query parameter in the URL.

What I’d like to learn is, are there options for reading a query param from the URL when accessing the hub (following a successful authentication ofc), then using that value to make an HTTP request to download a file into the file-system?

Thank you.

There are some possibly related things out there, such as nbgitpuller, which lets you “distribute content in a git repository to your students by having them click a simple link”. So this could be used to pull files into a notebook environment.

There’s also @manicsjupyter-notebookparams that “takes query parameters from a url to update a parameter cell of a jupyter notebook”. So you can use that to pass a reference into a notebook.

See also this related discussion thread: Pass parameters to a notebook on jupyterhub/binderhub

Things like tljh-repo2docker and yuvipanda/repo2dockerspawner or ideonate/repo2dockerspawner also provide repo2docker spawners that let you build and spawn environments in JupyterHub from a Github or other archive repo.

3 Likes

Thank you, using jupyter-notebookparams is what we needed!