Export a collection as a ZIP

One-click download of every pinned document in a matter / project / cabinet, plus a manifest.csv with metadata. Caps: 200 documents and 1 GB per call.

Updated 2026-04-26

Open any /collections/[id] page. If the collection has pinned members, a "Download as ZIP ↓" button sits next to the title. Click it and Kodori streams a zip back containing:

- Every pinned document the caller can read (permission-trimmed via canReadDocument — a viewer who could open each doc one-by-one gets exactly that subset, no more) - A manifest.csv with one row per included file: filename in the zip, document id, display name, MIME type, sensitivity, version hash, created-at timestamp - A manifest.json capturing the collection metadata + export timestamp + truncation flags

Use cases:

- **Matter handoff** — lawyer needs to send the client every doc in a matter. Download the matter zip, attach to email or share via the client portal. - **Project bundle** — AEC firm closing out a project. Zip the project collection for the archival drive. - **Compliance backup** — copy out a sensitive cluster of records before a major schema migration or for a regulator request.

Caps:

- 200 documents per call. Larger matters need to be split into sub-collections (or use the public REST API to script a per-collection loop). - 1 GB total bytes. The manifest will note truncation if either cap is hit.

What's NOT in the zip:

- Rule-derived members (only explicit pins are included — same precedent as collection-level access grants; pinning is the explicit signal that a doc travels with the collection). - Documents you don't have read access to. The export goes through canReadDocument, the same gate the search index uses, so a viewer's zip is filtered to what they could already open. - Per-version history. Only the currentVersionHash content is exported. If you need older versions, download them per-doc via /doc/[id]?v=<hash>.

The download is streamed (no buffer to disk on the server), so a 1 GB collection starts arriving immediately. If you close the tab mid-download, the server-side stream aborts cleanly without leaving partial state.