I am fairly new to the SOLID project and I have a specific question regarding the different components of SOLID.
I have a server which gathers a wide range of sensor data and stores it in a context server, which then can make decisions based on that data.
For example calling an ambulance or giving relatives a message about the health status.
In SOLID, you would store the data in a Pod, but I am courios if I can only change “the data store” and retain the access control, authentication etc.
So in short, is it possible just to change the underlying data store in SOLID?
Some possibly relevant things to know about. CSS and I believe Nextcloud are solid servers that can be used (or are planned to be used) against multiple backends e.g. a file system, a database, a cloud storage, IFPS. There are also projects to have the data stored in CRDTs. Those approaches require installing one of the Solid servers. Another approach is my Solid-Rest library which is entirely client based or browser based. It receives Solid requests (GET,PUT, etc. as per Solid spec), translates them into a backend request, accesses the stored data,packages the response as a Solid header (link relationships, etc) and sends it back. For most purposes, it operates like a Solid server. Currently the file system backend is fully functional and backends on Dropbox and SSH are in development. There is also a BrowserFS plugin for Solid-Rest that handles indexedDB, localStorage, Native File API and other browser accessible storages as if they were a Solid Pod. Writing Solid-Rest plugins is fairly simple so if you have a different backend in mind and need some help with it, ping me.
Thanks @jeffz for your answer, helped me a lot!
I looked into your Solid-Rest project and it seems almost a perfect fit for my usecase.
My server has a REST-API to retrieve and save data in a databse (MySQL).
For me, there are two things I can imagine doing with your Solid-Rest library.
I could replace my REST-API layer with your Solid-Rest library.
I can expose a Solid-Rest API which hides my API. So instead of a file path, I would have another URL which then delivers a json file in my case. The Solid-Rest API would manage all the access and authorization.
In both cases, you could say that my “pod” would be a MySQL database.
If you think your library could be used for that, I would try to write a plugin that implements that behavior.
A Solid-Rest plugin for MySQL would be fantastic. On reading over your initial post though , I am not sure it would do what you want. Solid-Rest is able to read and write access control files and to work with other libraries to send authentication requests but it does not provide any access control or authentication. If you give it a shot anyway, ping me here or in the gitter chat as jeff-zucker anytime.