Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature to make the storage repository-aware #1802

Open
csarven opened this issue Nov 12, 2024 · 3 comments
Open

Feature to make the storage repository-aware #1802

csarven opened this issue Nov 12, 2024 · 3 comments
Labels

Comments

@csarven
Copy link
Member

csarven commented Nov 12, 2024

It'd be really useful to different users and workflows to have the possibility to configure the NSS instance so that the storage synchronises with changes to a repository (e.g., git). For example, remote changes can make its way to the storage, and similarly any changes to the "non-sensitive" resources (such as ACLs) can make their way to shared repository.

Something like this would allow Solid applications to make changes to resources as they normally do but there is the added benefit to those automatically being versioned somewhere away and safe. And, if anyone makes changes to the same resources on the repository, they can also be useful.

(I originally proposed this feature in CommunitySolidServer/CommunitySolidServer#1114 , https://web.archive.org/web/20241112192440/https://github.com/CommunitySolidServer/CommunitySolidServer/issues/1114 )

@CxRes
Copy link
Collaborator

CxRes commented Nov 17, 2024

In principle, I support this request. In practice, this will require substantial engineering, such as writing git implementing middlewares, to implement this request.

@jg10-mastodon-social
Copy link

I currently use two different solutions:

  1. https://github.com/presslabs/gitfs which provides a fuse file system that automatically syncs to a repository
  2. A cron job that does git pull, add, commit and push

I previously also tried an incron task to do automatic commits but found it to be unreliable. Directly tapping into server filesystem operations would be ideal.

I have found that I also often want explicit control over commits. The most natural way of doing this seems to be with the memento pattern, where the app (or server) saves an immutable copy in addition to mutating the main resource. I think of this as a patch and post pattern: If patch is successful, post a memento of the document.
https://jg10.solidcommunity.net/devlog/version%20control.md

@csarven
Copy link
Member Author

csarven commented Dec 2, 2024

As a bonus, this would also pave the way to having things like solid/specification#342

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants