Orphan space folders: the row menu offers only Details — no path to deactivate and clean them up in-app #717

Closed
opened 2026-09-24 04:21:58 +00:00 by Cordy · 0 comments
Owner

Follow-up to #715 (v0.6.264, screenshots from Nikola's cleanup session). Orphan rows ("Folder in storage — no managing group found") show only Details in the three-dot menu, while app-owned rows show Details + Deactivate. There is no in-app path to clean an orphan up.

Why the menu is empty: an orphan has no spacestore record, so the existing lifecycle endpoints (deactivate → delete) would 404 on it — the UI hides what the backend would refuse.

Fix: the orphan menu gains "Take over and deactivate": it claims the folder through the existing space-create API (record owned by the acting admin; the directory already exists) and immediately deactivates it. From there the row is a normal app-owned space — Reactivate or the type-the-name Delete (contents to Deleted files, tombstone) apply as usual. A tombstoned name (recently deleted space) surfaces the existing "reserved" refusal.

IdP-verified managed rows deliberately stay Details-only — they are directory-managed.

Follow-up to #715 (v0.6.264, screenshots from Nikola's cleanup session). Orphan rows ("Folder in storage — no managing group found") show only **Details** in the three-dot menu, while app-owned rows show Details + Deactivate. There is no in-app path to clean an orphan up. **Why the menu is empty:** an orphan has no spacestore record, so the existing lifecycle endpoints (deactivate → delete) would 404 on it — the UI hides what the backend would refuse. **Fix:** the orphan menu gains **"Take over and deactivate"**: it claims the folder through the existing space-create API (record owned by the acting admin; the directory already exists) and immediately deactivates it. From there the row is a normal app-owned space — Reactivate or the type-the-name Delete (contents to Deleted files, tombstone) apply as usual. A tombstoned name (recently deleted space) surfaces the existing "reserved" refusal. IdP-verified managed rows deliberately stay Details-only — they are directory-managed.
Cordy closed this issue 2026-09-24 04:32:09 +00:00
Sign in to join this conversation.
No labels
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Cordy/Cairn#717
No description provided.