feat: Owner column via per-folder owner manifests (#315, D1–D7) #388
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "owner-column"
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?
Implements the ratified #315 owner design.
Backend: new
internal/storage/ownermetadecorator between trash and quota — records the creator on Write/Mkdir/Copy in a per-directory.cairn-meta.json({owner, at}per child), moves records on Rename, drops them on Delete/rename-into-trash, and stampsFileInfo.Owneron List with exactly ONE extra read per listing (test-guarded). Manifests pass through encrypt (ciphertext at rest) and are invisible/unwritable on every user surface. Trash sidecars gainowner; user and admin restores put the original owner back.GET /api/v1/filesfills blanks by structural inference only — homes → their user, app-owned spaces → the space owner (60s-cached), IdP-managed spaces stay honestly ownerless. Manifest writes are best-effort: a failed update never fails the user's operation.UI: Owner column live in space contexts (avatar initial + name, muted em dash when unknown);
data-spacenow set per navigation inload(), retiring the #311-erapersonaldefault.Tests: full ownermeta lifecycle suite incl. concurrent-upload serialisation, manifest unreachability, and the single-read-per-listing guard (mutation-checked); pure inference table test;
go vet ./...+ full Go/web suites green.