As an APP developer, I don’t have control of SoLiD POD. However, I need some server-side feature that is not part of current specification.
For example, my subscriber app needs a corn-job that run 4 times a day on the server to crawl some certain websites and save the result to user POD.
And there may be a middleware that does some postprocessing on user files, that do some NLP parsing on server side.
And some application may want to cache data into the DGraph database and perform graph pattern search.
Node-Solid-Server can’t meet of those demands by itself.
I think there are two ways to support third-party services:
- allow server plugins and middlewares, though this will cause customized solid-servers to have lots of non-standard POST API, make Solid App works on these servers can’t work on other standard solid servers. But in this way, we can add things like IPFS cache to solid-server. And ass support for Zapier.
Personal access tokensas Github App does. A user can generate a token on POD admin, and every token is associated with a set of ACL, so third-party services can easily be integrated into user POD.
These two potions have their own drawback, so it’s better to support them all. So we can use server plugin to support custom DB backend for scaling up (storage layer), and use
Personal access tokens to support custom pre and post-processing (application layer).
Hoping NSS can expose more internal lifecycle hooks to the config. In this way, custom DB support will be easier.
And currently, the only way to access data is through OIDC, which only works for the web app. If there were a Personal Access Token system which allows a 3rd-party server-side app to access user data with ACL control, complex app likes cronjob-crawler may become possible.