Skip to main content
The cabinets resource on the Figranium Kotlin SDK is the typed client for the Cabinets API. Cabinets are durable, installation-wide download queues. Tasks can route intercepted browser downloads into a selected Cabinet, and later actions can upload the newest unuploaded item from that queue.
main.kt

Supported operations

cabinets covers the Cabinet lifecycle and item-management API.

Cabinet lifecycle

List, create, rename, migrate, clear, and delete Cabinets.

Item management

List Cabinet items, update upload status, and remove one or many items.

Archives

Create ZIP archives and safely extract compatible archives.

Downloads

Build item download URLs for files stored in a Cabinet.

Methods

List all Cabinets.
  • HTTP endpoint: GET /api/cabinets
  • Signature: cabinets.list(options: RequestOptions = RequestOptions()): List<Cabinet>
list_cabinets.kt
Create a new Cabinet.
  • HTTP endpoint: POST /api/cabinets
  • Signature: cabinets.create(name: String, options: RequestOptions = RequestOptions()): Cabinet
create_cabinet.kt
Rename an existing Cabinet.
  • HTTP endpoint: PATCH /api/cabinets/{cabinetId}
  • Signature: cabinets.rename(id: String, name: String, options: RequestOptions = RequestOptions()): Cabinet
rename_cabinet.kt
Delete a Cabinet. You can optionally migrate its items to another Cabinet first.
  • HTTP endpoint: DELETE /api/cabinets/{cabinetId}
  • Signature: cabinets.delete(id: String, targetCabinetId: String? = null, migrate: Boolean = false, options: RequestOptions = RequestOptions()): JsonObject
delete_cabinet.kt
When migrate is true, items are moved to targetCabinetId before the Cabinet is removed.
List the items inside a Cabinet.
  • HTTP endpoint: GET /api/cabinets/{cabinetId}/items
  • Signature: cabinets.listItems(id: String, options: RequestOptions = RequestOptions()): List<CabinetItem>
list_items.kt
Remove every item from a Cabinet.
  • HTTP endpoint: POST /api/cabinets/{cabinetId}/clear
  • Signature: cabinets.clear(id: String, options: RequestOptions = RequestOptions()): JsonObject
clear_cabinet.kt
Update the status of one or more Cabinet items.
  • HTTP endpoint: PATCH /api/cabinets/{cabinetId}/items/status
  • Signature: cabinets.setItemStatus(cabinetId: String, itemIds: List<String>, status: String, options: RequestOptions = RequestOptions()): List<CabinetItem>
set_status.kt
Valid statuses are "pending" and "uploaded".
Remove specific items from a Cabinet.
  • HTTP endpoint: DELETE /api/cabinets/{cabinetId}/items
  • Signature: cabinets.removeItems(cabinetId: String, itemIds: List<String>, options: RequestOptions = RequestOptions()): JsonObject
remove_items.kt
Create a ZIP archive from selected Cabinet items.
  • HTTP endpoint: POST /api/cabinets/{cabinetId}/zip
  • Signature: cabinets.zipItems(cabinetId: String, itemIds: List<String>, name: String? = null, options: RequestOptions = RequestOptions()): CabinetItem
zip_items.kt
Extract a ZIP archive that is stored as a Cabinet item.
  • HTTP endpoint: POST /api/cabinets/{cabinetId}/items/{itemId}/unzip
  • Signature: cabinets.unzipItem(cabinetId: String, itemId: String, options: RequestOptions = RequestOptions()): List<CabinetItem>
unzip_item.kt
Build a download URL for a Cabinet item. This method does not make an HTTP request. It returns a String synchronously.
  • Signature: cabinets.downloadUrl(cabinetId: String, itemId: String): String
download_url.kt

Use a Cabinet from a task

Tasks can set cabinetId to select where intercepted browser downloads are stored:
task_with_cabinet.kt
If a task omits cabinetId, Figranium uses the instance’s default Cabinet. An individual Upload action can override the task-level selection with its own cabinetId.

Upload status

Cabinet items track whether they have been uploaded. The upload action normally selects the newest unuploaded item. You can mark an item uploaded immediately with markAsUploaded, or keep finalization separate and call finalizeUploads later in the workflow.
Keep finalization separate when attaching a file and successfully submitting it are two different steps. That lets the workflow consume the Cabinet item only after the later step succeeds.

Models

Cabinet

CabinetItem

Action helpers

Build Upload and Finalize Uploads actions.

Tasks resource

Save and run tasks that select a Cabinet with cabinetId.

File downloads

Understand Cabinets, intercepted downloads, and the upload lifecycle.