For Developers
This is a draft version of this page.
This page references some of the key documentation pages for notebook programmers, as well as tool and service developers.
For notebook programmers
Notebook programmers can choose to program in the Collaboratory Lab using one of the available kernels (interpreters for one of the supported language interpreters): Python 3 is already installed and R should soon be available. EBRAINS tools are preinstalled for the end-user in the Lab. Releases are expected every few months with updates of tools. The user can choose to use the latest release (activated by default and recommended), one of several past releases (to run notebooks developed in the past), or the latest build of any of the tools (at the user's own risk). Users can activate and deactivate specific module versions to select among a number of versions available for each tool.
Users each get their personal container for running their notebooks. Notebooks of a user share the same container so they can see each others' data stored in the file system of the container. All that storage is lost when the container is reset. So users are encouraged to store their data in the Drive instead. The Drive is mounted in the container so notebooks can directly access the Drive (i.e. not though API calls).
For tool developers
Tools can access resources in a variety of EBRAINS services, including the storage services (Drive and Bucket) of the Collaboratory. Those services are available through their respective APIs. As for notebooks, tools running inside the Lab environment can also access the Drive directly.
Tool developers are responsible for preparing builds of their tools for the spack package manager and for contacting EBRAINS Tech Coordination to release new versions of their tools to the Lab environment.
For service developers
Users developing EBRAINS services should authenticate their users with the EBRAINS IAM service. For your service to access IAM, it needs an OIDC client.
Users having developed services can convert them into community services which end users can instantiate in their collabs.
Service developers can request computing resources from the OpenShift or OpenStack servers to run their services. Requests should be addressed respectively from EBRAINS Support and from the EBRAINS Infrastructure Allocation Committee (IAC). Supercomputing and storage resources can also be requested from the IAC.