S5 — Bulk compress to zip archive #7

Closed
opened 2026-08-31 22:00:03 +00:00 by brian · 0 comments
Owner

Epic: #1 — Click & double-click actions / multi-select in Filux

Story: S5 — Bulk compress to zip archive

As a user I want to compress multiple selected items into a zip archive saved into Filux, with progress feedback.

Acceptance criteria

  • The action prompts the user for the zip archive name.
  • A new background job creates a .zip of the selected items and saves it as an item in Filux storage.
  • Feedback is provided for: archive started, progress, completed, and errors.
  • Progress is polled via a status endpoint (analogous to the existing extraction-status polling).
  • Quota is respected (HTTP 507 when the new archive would exceed the user quota).
  • RBAC/enumeration checks are applied to each selected item before compressing.

Notes

  • Backend: new POST /items/compress + status endpoint in server/src/routes/items.ts, logic in a new server/src/services/bulk.ts using yazl.
  • Client: name prompt modal + progress indicator/toast in FolderView.tsx.
  • Mirrors the existing extractStatus / waitForExtraction pattern in client/src/services/api.ts.
**Epic:** #1 — Click & double-click actions / multi-select in Filux ## Story: S5 — Bulk compress to zip archive As a user I want to compress multiple selected items into a zip archive saved into Filux, with progress feedback. ### Acceptance criteria - [ ] The action prompts the user for the zip archive name. - [ ] A new background job creates a `.zip` of the selected items and saves it as an item in Filux storage. - [ ] Feedback is provided for: archive started, progress, completed, and errors. - [ ] Progress is polled via a status endpoint (analogous to the existing extraction-status polling). - [ ] Quota is respected (HTTP 507 when the new archive would exceed the user quota). - [ ] RBAC/enumeration checks are applied to each selected item before compressing. ### Notes - Backend: new `POST /items/compress` + status endpoint in `server/src/routes/items.ts`, logic in a new `server/src/services/bulk.ts` using `yazl`. - Client: name prompt modal + progress indicator/toast in `FolderView.tsx`. - Mirrors the existing `extractStatus` / `waitForExtraction` pattern in `client/src/services/api.ts`.
brian closed this issue 2026-09-01 17:01:42 +00:00
Sign in to join this conversation.
No labels
epic
No milestone
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
brian/Filux#7
No description provided.