Files: allow removal of file spaces #23

Closed
opened 2026-07-11 03:46:36 +02:00 by zemion · 1 comment
Owner

Context

File spaces can be created/configured, but there is no clear removal flow.

Requested behavior

Allow users/admins with the right permissions to remove file spaces.

Acceptance criteria

  • The UI exposes a remove/delete action for file spaces where allowed.
  • The backend enforces permission checks and safety checks.
  • The confirmation clearly states what happens to files, metadata, shares, connector links, and remote references.
  • If a space cannot be removed because it contains data or active references, the API returns a useful blocker reason.
  • Tests cover successful removal and blocked removal.
## Context File spaces can be created/configured, but there is no clear removal flow. ## Requested behavior Allow users/admins with the right permissions to remove file spaces. ## Acceptance criteria - The UI exposes a remove/delete action for file spaces where allowed. - The backend enforces permission checks and safety checks. - The confirmation clearly states what happens to files, metadata, shares, connector links, and remote references. - If a space cannot be removed because it contains data or active references, the API returns a useful blocker reason. - Tests cover successful removal and blocked removal.
zemion added the area/apicodex/readymodule/files
priority
p2
status
ready
type
task
labels 2026-07-29 14:15:08 +02:00
Author
Owner

Implemented and pushed in a9c7a7a (feat(files): add safe connector space removal).

Files now exposes a permission-gated Remove space action only for removable connector spaces. The destructive confirmation states the full consequence boundary: the local connector-space link is retired, while provider content, imported managed files, metadata, shares, profiles, credentials, and remote references remain untouched. Intrinsic user/group managed spaces remain non-removable. Existing tenant/owner lookup and files:file:organize checks protect the backend; focused tests cover successful soft deletion and denied access without mutation. The DELETE/PATCH route contract, module handbook, and manifest-driven admin documentation were also updated.

Verification: Ruff; full Files backend suite (141 tests); focused connector-space UI structure check; 68/68 manifest-shape validation; manifest documentation tests; full composed Core WebUI production build including structural i18n, theme/interface contracts, TypeScript, Vite, and bundle budget. One unrelated pre-existing standalone Files interface-pattern assertion remains red because the unchanged stylesheet lacks its expected 1050px media query; the composed interface/build gates pass.

Implemented and pushed in a9c7a7a (feat(files): add safe connector space removal). Files now exposes a permission-gated Remove space action only for removable connector spaces. The destructive confirmation states the full consequence boundary: the local connector-space link is retired, while provider content, imported managed files, metadata, shares, profiles, credentials, and remote references remain untouched. Intrinsic user/group managed spaces remain non-removable. Existing tenant/owner lookup and files:file:organize checks protect the backend; focused tests cover successful soft deletion and denied access without mutation. The DELETE/PATCH route contract, module handbook, and manifest-driven admin documentation were also updated. Verification: Ruff; full Files backend suite (141 tests); focused connector-space UI structure check; 68/68 manifest-shape validation; manifest documentation tests; full composed Core WebUI production build including structural i18n, theme/interface contracts, TypeScript, Vite, and bundle budget. One unrelated pre-existing standalone Files interface-pattern assertion remains red because the unchanged stylesheet lacks its expected 1050px media query; the composed interface/build gates pass.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-files#23