ReboFilesDocs
Start3
What is ReboFiles
Getting started
Demos to run
Put it in your app6
React component
Headless: your own UI
Without a framework
Styling and themes
Keyboard and accessibility
Languages
Files9
Uploads
Previews and the viewer
Search
Live changes and large folders
Comments
Starred and fields
Versions, trash and space
Download as .zip
Word documents
The server14
The route
Frameworks and sign-in
Who may do what
Storage: S3, GCS, Azure and disk
Checking uploads
Metadata: SQLite and Postgres
Database schema
Sharing and links
Activity and notifications
Hooks, logs and limits
Retention, holds and export
Desktop and other origins
Sync a folder
Going to production
Together1
AI assistants (MCP)
Reference5
Packages
Components and hooks
Client API
HTTP routes
Status and roadmap
↑↓ to move↵ to openEsc to close38 pages

The server Retention, holds and export

Retention, holds and export

Three things a company asks before it keeps its files in a drive: that nothing goes too soon, that what a case needs stays, and that a person can take what is theirs.
Retention

A minimum of days

retentionDays of the drive’s settings (Settings → Storage, for who may configure): nothing made fewer days ago is deleted for good, by anyone or by the trash emptying itself. It may still go to the trash, and come back; emptying the trash leaves it there, and deleting it says 409 retained.

// Nothing deleted for good before seven years, by anyone or by the trash.
await client.saveSettings({ retentionDays: 7 * 365 });

// A case: this folder and all in it out of reach of the trash until released.
await client.hold(folder.id, 'Case 2026-114');
await client.release(folder.id);
Hold
  • Put on hold, in the details, for who may configure: neither it nor anything in it may go to the trash or be deleted, by anyone, until it is released. Asked to, the answer is 409 on-hold.
  • New versions may still come: the ones before stay, as they always do.
  • The details say who held it and why; the activity has held and released, and onChange is told them.
Export

Everything of a person

Settings → Language → Download my data makes a .zip of what one owns, at its places, and a rebofiles-export.json beside it: every entry of theirs, what is shared with them, their comments, what they did, their settings. GET /export gives the same; ?user= another person’s, for who may configure.

import { downloadZip } from '@rebofiles/drive';

const exported = await client.exportPerson(); // one's own; another's for who may configure
const { pack, ...rest } = exported;
await downloadZip({ pack: async () => pack, urls: client.urls }, [], {
  name: 'my-data',
  extra: [{ path: 'rebofiles-export.json', text: JSON.stringify(rest, null, 2) }],
});

Of another person, the export gives what they own and did, as the drive keeps it; their bytes are read from the storage by your server, as byRoles lets no one but them download them.