Retention management
Use stable media primitives when you need to inspect retention metadata, lock media, or delete unused uploads.
Inspect retention​
const media = await conduitClient.primitives.media.get("media_123")
console.log(media.retention)
// {
// expiresAt: "2026-07-17T12:00:00.000Z",
// daysRemaining: 181,
// locked: false
// }
Lock important media​
await conduitClient.primitives.media.setRetentionLock("media_123", true)
Use locks for:
- training or QA reference recordings
- compliance-sensitive recordings
- long-lived assets you know you must retain
Unlock when no longer needed​
await conduitClient.primitives.media.setRetentionLock("media_123", false)
Delete unused media​
await conduitClient.primitives.media.delete("media_123")
Audit expiring media​
conduitClient.primitives.media.list(...) uses cursor pagination with latests first ordering.
const page = await conduitClient.primitives.media.list({
limit: 100,
includeDeleted: false,
})
const expiringSoon = page.files.filter((file) => {
if (file.retention.locked) return false
return file.retention.daysRemaining !== null && file.retention.daysRemaining < 30
})
Best practices​
- lock only what you truly need to retain
- review
daysRemainingfor important media - reuse
mediaIdinstead of re-uploading when possible - keep your own business metadata in your database, not in media labels alone