Skip to content

Feature to make the storage repository-aware #1802

Description

@csarven

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 )

Activity

  1. CxRes commented on Nov 17, 2024

    @CxRes
    Collaborator

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

  2. jg10-mastodon-social commented on Nov 21, 2024

    @jg10-mastodon-social

    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

  3. csarven commented on Dec 2, 2024

    @csarven
    MemberAuthor

    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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions