CERNBox is a sync and share collaborative cloud storage solution at CERN used by more than 37K users and storing over 12PB of data. CloudStor, developed by AARNET, provides the research community in Australia with collaboration workspaces and tools for sharing and analysing data. CERNBox and CloudStor are based on the ownCloud open source software, who recently launched their new flagship product codenamed oCIS (ownCloud Infinite Scale).
oCIS relies on the Reva middleware framework, originally developed at CERN to provide interoperability between storage and application providers through the CS3APIs. Reva allows OCIS to connect to arbitrary storages and enable collaborative data services and applications by extending it with plugins.
While the addition of extensions and plugins to the existing ecosystem is trivially supported, the current mechanism requires to re-compile the source code whenever changes are made to generate the static binary. The aim of this project is to add runtime pluggability to the Reva framework to accelerate the development experience at AARNet, ownCloud and CERN for the integration of well-known applications (RootJS, FileSender, Jupyter notebooks, etc.) in the new platform.
We expect that, at the end of GSOC ‘21, plugins could be added to Reva at runtime just by pointing to the source of a Go module hosted as a version-controlled repository. Documentation of the process and the functionality for other developers is also expected.