TrashItem

One soft-deleted row in the cross-entity trash list. `id` carries the entity's prefixed ID (use `detectEntityType(id)` if you need the type without reading `type`). `purgeAt` is the wall-clock at which the cleanup worker will hard-delete this row, computed server-side from `deletedAt + RETENTION_DURATIONS[retentionTier]`. Null when the tier is `none` (compliance hold) or unset.

Definition

TypeScript
interface TrashItem {
  id: string;
  type: string;
  name: string;
  workspaceId: string;
  deletedAt: string;
  deletedBy: string | null;
  retentionTier: "short" | "medium" | "long" | "none" | null;
  purgeAt: string | null;
}

Fields

FieldTypeNotes
idstringreadonly required — Prefixed ID of the soft-deleted entity.
typestringrequired — Entity type (matches the ID's prefix).
namestringrequired — Display label — name / title / subject depending on entity. Falls back to id when the entity has no display field set.
workspaceIdstringrequired — Workspace the entity belongs to.
deletedAtstringrequired — ISO timestamp when the row was soft-deleted.
deletedBystring | nullrequired — User who soft-deleted the row, or null if unknown.
retentionTier"short" | "medium" | "long" | "none" | nullrequired — Retention tier snapshotted at delete time.
purgeAtstring | nullrequired — ISO timestamp at which the cleanup worker will hard-delete this row. Null when retention tier is none (or unset).