White Area - CERN-Solid PoC completion === Maria Dimou (CERN) & Jan Schill (IT University Copenhagen) Presentation for the [31st May 2021 event](https://indico.cern.ch/event/1092335/) --- ## Overview * **Solid terms' reminder** 1. What Is Solid? 3. What Is a Solid Pod 4. What Is a Solid server * The CERN-Solid Proof of Concept (PoC) 1. _Comments_ in Indico events 2. Indico Conference _egistration_ from pod data. --- ### Solid * **So**cial **Li**nked **D**ata, is a project, a standard, an ecosystem, a movement and a community initiated by Sir Tim Berners-Lee. * Allows people to control _where_ their own data are stored and _who_ has access to them. * It combines existing W3C standards and is built on top of the existing Web. --- ### The Solid pod A decentralised data store for one’s personal data. A pod (*) is like a secure personal Web server for all kinds of data. * Data is stored as _Linked Data_, i.e. the resource gets its own HTTP URI on the Web. * The pod is described by a unique WebID. WebID examples: * https://timbl.inrupt.net/profile/card#me * https://dimou.solidcommunity.net/profile/card#me * https://janschill.net/profile/card#me (*) Pod: a protective container (from the Webster dictionary). --- ### The Solid server A Web server that stores users’ pods, with support for access control. Reminder of some Solid server implementations in the appendix. --- ### Ideally Solid is about escaping from this situation ![](https://codimd.web.cern.ch/uploads/upload_50196f49ba7d0c4698c6fa16fde91d4d.png) _Taken from: [https://www.w3.org/DesignIssues/CloudStorage.html](https://www.w3.org/DesignIssues/CloudStorage.html)_ --- ## The CERN-Solid code investigation project 1. Review Solid specifications 2. Evaluate Solid implementations 3. Enrich Indico with Solid principles Comments in Indico events via Solid pod authentication. Registration in Indico conferences with personal data taken from the Solid pod. 4. Make Recommendations on Solid adoption in CERN applications 5.Document challenges, advantages, gaps --- ### Points 1 & 2 * Done in the September-December 2020 period. * Presented at the January 2021 White Area. * Slides [here](https://indico.cern.ch/event/979381/) * Detailed report [here](https://indico.cern.ch/event/979244/attachments/2150378/3668572/JanSchill_20201225-Solid-specs-and-implemenations-report.pdf) --- ## Details on the Proof of Concept (PoC) --- ### Comments to Indico events via Solid pod authentication ![](https://codimd.web.cern.ch/uploads/upload_a1aeae89ac40e33af08f22fda4f321e8.png) --- ### What you see in your pod ![](https://codimd.web.cern.ch/uploads/upload_43756b69fc349d881b768cb9c8192dff.png) --- ### Details on the code for _Comments_ * Client-side developed JavaScript application * Self-contained, can be re-used in other applications * Stores one comment in one file on data pod * Communicates with data pod directly * Needs authenticated Indico session * Indico holds the reference to the location of comment --- ### Indico conference registration via Solid pod data - prompt ![](https://codimd.web.cern.ch/uploads/upload_bcfae0e3771587f3ca0179a6b17b084b.png =600x) --- ### Indico conference registration via Solid pod data - list of registrations ![](https://codimd.web.cern.ch/uploads/upload_30b59e52289c6b683e885da70fb812f9.png =850x) --- ### Indico conference registration via Solid pod data - Linked Data | LD: Subject | LD: Predicate | LD: Object | Indico form | | ----------- | ------------- | ----------------------- | ----------------- | | #me | ns:fn | "Jan Schill" | name="first_name" | | #me | ns:fn | "Jan Schill" | name="last_name" | | #me | ns:hasEmail | <mailto:schill@hey.com> | name="email" | | #me | ns:gender | "Male" | Label="Gender" | *ns = http://www.w3.org/2006/vcard/ns#* --- ### Details on the code for _Conference Registrations_ * **Design of implemented module**: retrieve personal information **for** an Indico conference registration **from** data pod * Original idea to store personal information **of** conference registration **in** data pod abandoned due to: * Sensitivity of payment details requiring reliable data retrieval * Archival of events need the data at Indico * Management of events/conference need performant data retrieval --- ## Challenges with Solid status today * Few applications using Solid pods so far * Very old-fashion pod UI * No formal support for the open source solutions. * A great enthusiasm in gitter though! * Solid being a living standard, the specifications also evolve, especially in the Access Control area, leading to varying server implementations. ==> Impact on test-suite results. --- ## Strategic decisions for CERN Despite the challenges the Solid project has: * Government agencies that embrace it officially (UK NHS, Flanders' administration) * At least four start-ups per month showing Solid pod interfaces. * Almost 2K members in [the Solid gitter chat](https://gitter.im/solid/chat) * It is strategically and ideologically important for CERN to be engaged with Solid. --- ## Conclusions For the above-explained reasons we recommend that: * we install the Community Solid Server (CSS). * integrate it with the new CERN SSO. * develop our own UI with open source tools. **OR** * investigate the usage of CERNBox as a Solid server through [solid-nextcloud plugin](https://github.com/pdsinterop/solid-nextcloud). See [the Policy document](https://codimd.web.cern.ch/1VLKK_rYQYixHmwOuGL2fg#) for details. --- ## Appendix: Solid Servers today A Solid server is a Web server that stores users’ pods, with support for access control. 1. **Node Solid Server (NSS):** _Open Source_ server by the MIT Solid team since 2016. 2. **Enterprise Solid Server (ESS):** inrupt’s commercial _Closed Source_ alternative, based on [Trellis](https://www.trellisldp.org/). Launched in November 2020. [Article](https://sdtimes.com/data/inrupt-launches-enterprise-solid-server-to-restore-trust-in-data/). 3. **Community Solid Server (CSS):** _Open Source_ project by Ghent University, paid for by inrupt, to write a Solid Server from scratch in [TypeScript](https://www.typescriptlang.org/). 4. More servers like PHP or Ruby are in the making. --- ## Thank You Jan Schill for fantastic work Adrian Moennich for expert Indico advice Pedro Ferreira for encouragement Tim Berners-Lee for guidance Michiel de Jong for Solid expertise Ruben Verborgh for reading the Policy note Thomas Baron & Tim Smith for approving this work --- ## References * [The Solid project website](https://solidproject.org) * [CERN-Solid entry point](http://solid.cern.ch) * [CERN-Solid chat](https://gitter.im/cern-solid/community) * [The PoC Project description](https://it-student-projects.web.cern.ch/projects/cern-solid-code-investigation) * [The PoC Project repo](https://gitlab.cern.ch/cern-solid) * [Follow-on project](https://it-student-projects.web.cern.ch/projects/cern-solid-and-slides-app) * [Policy document for a CERN Solid server](https://codimd.web.cern.ch/1VLKK_rYQYixHmwOuGL2fg#) ---