CERNBox is a sync and share collaborative cloud storage solution used at CERN, the home of the LHC and the birthplace of the web. Used by more than 37K users, and storing over 15PB of data, it has been responding to the high demands of our diverse user community. CERNBox has responded to the high demand in our diverse community for an easily and accessible cloud storage solution, which provides integrations with other CERN services for Big Science: visualization tools, interactive data analysis and real-time collaborative editing. For the latter, a number of applications have already been integrated, by leveraging the WOPI open specifications. ScienceMesh is an emerging pan-European federated cloud infrastructure, which aims at bringing together several sync and share platforms across Europe. In the context of ScienceMesh the integration of CodiMD has been demonstrated through WOPI bridge extensions.
The goal of this proposal is to implement an Etherpad plugin that would leverage on the CS3 WOPI server bridge extensions and allow storing Etherpad files in sync & share storages connected in ScienceMesh. Particular focus is to be put on collaborative scenarios across federated sharing. Etherpad is a popular real-time collaborative editor that features an API and a rich ecosystem of plugins. As the project is expected to deal with the CS3 WOPI server, it could be extended to include unit-testing the bridge extensions as well as integrating the WOPI validator test suite provided by Microsoft.
ep_demo, wherein there was not much of a functionality associated with it. As the name suggests, it was just a demo plugin to demonstrate basic Etherpad API calls and hooks (functions that are emitted on some specific events). (The documents in Etherpad are referred to as pads, which will be referenced to henceforth).
The Etherpad application serves all pads at a URL like -
POSTrequest to the WOPI server endpoint, fetching the above data from the DB and passing it as parameters in the request headers.
This implementation served well for the project which meant that the metadata can now be passed down to a custom endpoint like
http://ETHERPAD_URL/sciencemesh/p/padId?metadata=some_data without interacting with the in-app UI and then be retrieved back to pass in as a header argument to the WOPI server.
Currently, I am investigating the WOPI server functionality for receiving the metadata and handling it, after which, I will move towards testing the complete workflow.
So far it has been an enriching experience with a great learning curve that I have enjoyed, and am looking forward to make more meaningful contributions. I am extremely grateful for all the support and guidance I have been receiving from my mentors especially Giuseppe to familiarise me upon great software engineering practices that I never knew of before. Project repository - https://github.com/waridrox/ep_sciencemesh Link to Project idea - https://hepsoftwarefoundation.org/gsoc/2022/proposal_CERNBox-Etherpad.html