The Interactive Analysis service category within ESAP makes it possible for users to select and run a Jupyter notebook (referred to as a “workflow” in some ESAP documentation). Notebooks are executed on BinderHub services. BinderHub services need to be registered with the ESAP system; see Add a BinderHub IDA Facility for details.
This guide describes how to expose a Jupyter notebook through ESAP.
First, the notebook must be stored in a Git repository that fulfils the BinderHub requirements. A tutorial introduction is available in the BinderHub documentation. 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:
-
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 keywords1. Therefore, you just need to onboard your scientific software to the OSSR following the tutorial and your workflow will automatically be listed in ESAP. Note that it is essential to include the keywordjupyter-notebook
in the filecodemeta.json
during the onboarding process. -
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 file esap_ida_config.yaml2; 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.
-
You can see this in the script harvester.py. ↩
-
Technically, this file provides Django fixtures which are used to populate ESAP's internal database. ↩