Datentresor: encrypted-vault folder (fallback to whole-backend encryption) #32
Labels
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Cordy/Cairn#32
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Manuel's escape hatch if transparent whole-backend encryption proves too heavy or too entangled with the OIDC/WebDAV pillar: ship without whole-backend encryption and instead offer an encrypted vault — a designated folder/area that is encrypted, rather than the entire tree.
Spike / product decision. Alternative framing of the whole encryption feature.
Decision — rejected (Manuel's review, relayed by Nikola 2026-07-31):
Closing as won't-do per the decision — a separate vault folder is redundant when whole-backend encryption is on.
However, one factual correction must be on record, because the stated premise is half wrong. Cairn does encrypt all files when
storage.encryptionis enabled — but it is server-side at-rest encryption, not client-side E2E. The age decorator encrypts on the server before writing to the backend and decrypts on read; clients (browser, WebDAV) always exchange plaintext with cairnd over TLS. The threat model in ARCHITECTURE.md §4.3 states this explicitly: it protects against storage-provider compromise and medium theft, not against a compromised cairnd, and client-side E2E is a declared non-goal (§1). So the "already client-sided" part of the rationale is not true today.The conclusion still holds on the server-side premise alone (vault folder adds nothing beyond whole-backend encryption). But if client-side encryption was actually an assumption Manuel is relying on elsewhere in his review — particularly for #29/#31 custody design — that should be re-checked against the real model before implementation.