Skip to content

borg2: replacing "append-only" #8823

@ThomasWaldmann

Description

@ThomasWaldmann

In 2.0.0b16, the remainders of "--append-only" were removed.

Some features like append-only repositories rely on a server-side component that enforces them (because that shall only be controllable server-side, not client-side).

So, that can only work, if such a server-side component exists, which is the case for borg 1.x ssh: repositories (but not for borg 1.x non-ssh: repositories).

For borg2, we currently have:

  • fs repos
  • sftp: repos
  • rclone: repos (enabling many different cloud providers)
  • s3/b3: repos
  • ssh: repos using client/server rpc code similar as in borg 1.x

So, only for the last method we have a borg server-side process that could enforce some features, but not for any of the other repo types.

Also, a-o depended on how borg 1.x dealt with the segment-files (always appending new stuff at the end, transactional behavior with commit or rollback). borg2 neither uses segment files nor transactions.

For an "append-only replacement" (let's call it simply "no-delete" for now) the current idea is that this should not be done within borg, but solved by a not-granted repo object delete/overwrite permission enforced by the storage.

borg create could then use credentials that miss permission to delete/overwrite existing repo objects in archives/* and data/*, so nothing can get removed or damaged in the repo, but a new backup archive can be added.

borg delete and borg prune would need permissions to do the soft-delete in archives/*.

borg compact would use credentials that include permission to delete.

borg repo-compress would need overwrite permissions (because the chunk ID is based on H(plaintext) and stays the same if data gets compressed differently).

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions