Trash / file versioning — strategic spike #23
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#23
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?
Nextcloud/ownCloud offer a trash bin and file version history. Both are parity expectations but brush hard against the "storage backend is the source of truth / no DB index" non-goal.
Spike:
.trash/prefix move (no DB) — feasible.Decision record (closes the spike):
Trash — implemented (PR #38). Per-user
/.trash/<username>/prefix move with a JSON sidecar per entry; backend stays the single source of truth, no DB index. REST surface:GET /api/v1/trash,POST /api/v1/trash/{id}/restore,DELETE /api/v1/trash/{id}. Opt-in viastorage.trash.enabled. Hidden from non-admins on the raw storage surface; admin deletes inside/.trashare real (that's the "empty trash" path). Retention/auto-purge deferred — no background jobs in cairnd yet; revisit if trash growth becomes real.Versioning — delegated to the storage layer, out of scope for the app (v0.4 and likely beyond). Rationale: