|
|
The [Interactive Analysis service category](/Service-Categories/Interactive-Analysis-Service-Category) within ESAP makes it possible for users to select and run a [Jupyter](https://jupyter.org) notebook (referred to as a “workflow” in some ESAP documentation).
|
|
|
Notebooks are executed on [BinderHub](https://binderhub.readthedocs.io/en/latest/) services.
|
|
|
BinderHub services need to be registered with the ESAP system; see [Add a BinderHub IDA Facility](Tutorials/Add-a-BinderHub-IDA-Facility) for details.
|
|
|
|
|
|
This guide describes how to expose a [Jupyter](https://jupyter.org) notebook through ESAP.
|
|
|
|
|
|
First, the notebook must be stored in a [Git](https://git-scm.com) repository that fulfils the BinderHub requirements.
|
|
|
A tutorial introduction is available in the [BinderHub documentation](https://mybinder.readthedocs.io/en/latest/introduction.html#how-can-i-prepare-a-repository-for-binder).
|
|
|
Note that ESAP can talk to multiple different versions of BinderHub, and sometimes they have divergent requirements for repository formatting; it is best to test and make sure yours works as intended.
|
|
|
|
|
|
Next, your published repository must be registered with ESAP.
|
|
|
This can be done in one of two places:
|
|
|
|
|
|
1. **The Open-source scientific Software and Service Repository (OSSR)**, which has been implemented by ESCAPE Work Package 3 as a curated community in Zenodo.
|
|
|
ESAP filters the OSSR entries selecting only those containing the string `jupyter-notebook` among their keywords[^1].
|
|
|
Therefore, you just need to onboard your scientific software to the OSSR following [the tutorial](https://escape2020.pages.in2p3.fr/wp3/ossr-pages/page/contribute/onboarding/) and your workflow will automatically be listed in ESAP.
|
|
|
Note that it is _essential_ to include the keyword `jupyter-notebook` in the file `codemeta.json` during the onboarding process.
|
|
|
|
|
|
2. **ESAP internal database**.
|
|
|
ESAP keeps an internal database to include additional Jupyter notebooks as well as other analytical software.
|
|
|
This internal database provides further flexibility, allowing ESAP administrators to add new metadata thus augmenting or overriding the contents of the OSSR as required.
|
|
|
The Jupyter notebooks and the analytical software are first added to the [YAML](https://yaml.org) file [esap_ida_config.yaml](https://git.astron.nl/astron-sdc/esap-api-gateway/-/blob/master/esap/esap/esap_ida_config.yaml)[^2]; the ESAP database may then be reloaded from source to pick up your changes.
|
|
|
|
|
|
When the notebook has been successfully registered, it should immediately appear in the ESAP interface.
|
|
|
|
|
|

|
|
|
|
|
|
[^1]: You can see this in the script [harvester.py](https://git.astron.nl/astron-sdc/esap-api-gateway/-/blob/master/esap/ida/api/services/harvester.py).
|
|
|
[^2]: Technically, this file provides Django fixtures which are used to populate ESAP's internal database. |