Appearance
Recordings settings
For the instance operator. What has to be in place for people to save recordings, and the three numbers that decide how long they are and how long they are kept. Workspace administrators have nothing to configure: recordings need no group setting, and every member of a workspace can make, watch and delete them.
Letting the Recorder in
The Crosdesk Recorder is a browser extension, and it saves recordings with the person's own Crosdesk sign-in. Crosdesk refuses any change sent from a site that is not itself — that is what stops another site acting with someone's session — so the extension is named as an exception, by its id, in the recorder.extensionIds setting at /super-admin → Settings → Recordings.
The official Recorder is allowed with nothing set. Its id, chiipmbnoikcbdccjeidpnobgjphcmbg, is the same on every machine — the extension carries a fixed key — and is the setting's default. Change the setting only to add a build of your own (a comma-separated list; the official id must stay in it to keep working), or to clear it to turn recording uploads off. A value that is not an extension id is refused on the form, and changes take effect on the next request.
A Chrome Web Store build of the Recorder gets an id of its own from the store; add it to the list beside the official one.
Firefox is allowed by browser, not by id. Firefox gives every installation of an add-on its own random id, so no list could name them. The Firefox Recorder may save recordings unless you turn recorder.allowFirefox off at the same place. Allowing it does not open a way in for websites: no website can claim to be a Firefox add-on, and an add-on able to send someone's Crosdesk sign-in has already been given access to your Crosdesk by that person.
Handing out the Recorder
Get the Recorder on the Recordings page offers the one for the browser in use: for Chrome and the browsers built on it, recorder.zip, which the build places beside the app (/recorder.zip) and people load with Developer mode → Load unpacked; for Firefox, the Crosdesk Recorder on Firefox Add-ons, where Firefox installs it from — as the Recordings page of the manual describes.
Firefox keeps the add-on up to date by itself. Chrome's does not update by itself: a new version of Crosdesk can carry a new Recorder, and New recording tells people theirs is older and offers the download again. There is nothing for you to sign or host for either.
On managed machines, your IT team can install it for everyone with the browser's ExtensionInstallForcelist policy instead. That needs the extension packed as a .crx and served with an update manifest, which Crosdesk does not produce for you; the id above stays the same.
The settings
At /super-admin → Settings → Recordings. Like every setting there, they are read only from the console: a value saved there, else the default. Environment variables are not read for them.
| Setting | Default | What it does |
|---|---|---|
recordings.retentionDays | 90 | The longest any recording is kept, in days from when it was made. |
recordings.doneRetentionDays | 30 | Once all the work a recording is linked to is done, it goes this many days later — if that comes first. |
recordings.maxDurationSeconds | 300 | The longest recording the Recorder makes; it stops itself there. |
recordings.quality | medium | How the Recorder captures — high, medium or low. See below. |
A change applies to recordings already made. A recording's expiry is worked out from these numbers each time it is shown, not stamped when it is made, so lowering retention for a storage or compliance reason does what you expect: the next night's sweep removes whatever the new numbers say has expired. People see the new date as soon as you save.
Quality decides how big a recording is. The Recorder reads it before each recording starts, so a change applies to the next one, in every browser, with nothing to reinstall.
| Quality | Picture | Video, at most | Five minutes, at most |
|---|---|---|---|
high | up to 2560 × 1440, 30 frames a second | 4 Mbit/s — 500 KB a second | about 150 MB |
medium | the tab at its own size, 30 frames a second | 2 Mbit/s — 250 KB a second | about 75 MB |
low | up to 1280 × 720, 10 frames a second | 0.8 Mbit/s — 100 KB a second | about 30 MB |
Those are ceilings: a recording of a page that mostly sits still comes out far smaller, because there is little to encode. low is usually enough to read a form and see an error appear; choose high when people record dense screens — spreadsheets, small type — on large monitors.
The longest recording and the quality bound the upload. A recording may be at most 800, 400 or 200 KB for each second allowed, at high, medium and low — 117 MB at five minutes on medium — checked as it arrives. The Recorder stops itself before reaching it, so nobody makes a recording that is then refused. Lowering the quality while someone is recording can refuse that one recording when it uploads, if it was near the higher limit.
Storage and the nightly sweep
Recordings are stored with attachments — in a directory on the server or an S3 bucket, whichever Settings → Storage says — under each organisation's own folder, and are read back through the API: no bucket address reaches a browser. On a container, use a mounted volume or S3; local files without a volume do not survive a redeploy.
At 02:00 each night the API removes recordings past their date, deleted ones whose files are still in storage, and uploads abandoned for a day — files first, then the rows. To see what the next run would remove, or clear a backlog by hand:
sh
pnpm sweep:recordings # report only
pnpm sweep:recordings --apply # remove them
pnpm sweep:recordings --at 2026-12-31T00:00Z # what would go on that dateRelated
- Recordings — making, watching and linking them
- Audit log — every deleted and downloaded recording is on it