Export what a legal hold keeps, from the Legal holds page #31

Merged
jcoffey-dev merged 1 commits from feature/hold-export into main 2026-09-28 04:48:10 +00:00
1 Commits
Author SHA1 Message Date
jcoffey-dev 67acffbe4f Export what a legal hold keeps, from the Legal holds page
ci / build (pull_request) Successful in 1m18s
ci / publish (pull_request) Skipped
Each active hold gets an Export... action for people with
sysLegalHoldExport: pick some of the people it covers, or none for all
of them, and give a reason for the audit log. The server collects the
ZIP in the background (inbuxa:HoldExport, LH-12); the hold's card lists
its exports, newest first, polls while one is collecting, and shows the
item count, size and SHA-256 once it's ready.

Download follows the audit log export: the session's downloadUrl, for
the signed-in person's own account, since the file is the blob of
whoever started it. It's a temporary upload, so the list says only
that person can download it and that the file goes after the upload
time-to-live while the record stays.

Tested: unit tests for the client (status mapping, the create call,
refusals, file names); typecheck and lint; and end to end in headless
Chrome against a local server on the export branch: a hold over a demo
domain exported 173 items, and the downloaded file was a 178,798-byte
ZIP whose SHA-256 matched the one shown.
2026-09-27 21:10:24 -07:00