Skip to content

client.revisions

Bases: SyncResource

Sync annotation-revisions namespace (client.revisions).

list_for_asset

list_for_asset(project_id: UUID | str, asset_id: UUID | str, *, limit: int | None = None, cursor: str | None = None) -> Page[RevisionSummary]

List an asset's commits, newest first (cursor-paginated; iterate for all pages). One entry per submit/approve/reject boundary.

Raises:

Type Description
BadRequestError

malformed cursor (INVALID_CURSOR).

ForbiddenError

caller is not a project member (AUTH_FORBIDDEN).

get_for_asset

get_for_asset(project_id: UUID | str, asset_id: UUID | str, seq: int) -> RevisionDetail

The full annotation snapshot at one commit — a complete snapshot, not a page.

Parameters:

Name Type Description Default
seq int

the per-asset commit number (submit_seq, >= 1).

required

Raises:

Type Description
NotFoundError

no such commit for this asset (UNCATEGORIZED).

ForbiddenError

caller is not a project member (AUTH_FORBIDDEN).

list_for_annotation

list_for_annotation(project_id: UUID | str, annotation_id: UUID | str, *, limit: int | None = None, cursor: str | None = None) -> Page[AnnotationBlameEntry]

One shape's state at each commit it appeared in, newest first — the blame timeline for a single annotation (cursor-paginated).

Raises:

Type Description
BadRequestError

malformed cursor (INVALID_CURSOR).

ForbiddenError

caller is not a project member (AUTH_FORBIDDEN).

Response models

Models returned by client.revisions methods (fields, types, and what each means).

Annotation-revision (blame / diff) domain models (ADR-0071).

The revision surface is read-only: rows are written server-side at workflow commit boundaries (submit / approve / reject), one row per annotation per commit. A commit is identified by submit_seq (the per-asset commit number); rows that share (asset_id, submit_seq) form one commit.

Depends only on common (enums + the read-side geometry union) — a leaf module in the type dependency graph.

RevisionSummary

Bases: BaseModel

One commit in an asset's history (the editor's revision list) — who committed it, why, and how many annotations the snapshot captured.

RevisionAnnotation

Bases: BaseModel

One annotation's state as captured in a commit. annotation_id is nullable — a snapshot can outlive its annotation under hard-delete (ADR-0091). geometry is the constraint-free READ union from common (None for a classification shape); data is loose attribute/classification passthrough.

data class-attribute instance-attribute

data: dict = {}

Free-form class-attribute values and annotation metadata (deliberate dict).

RevisionDetail

Bases: BaseModel

A single commit plus the full annotation snapshot at that point — what the editor renders to view or diff a past state. A complete snapshot, not a page.

AnnotationBlameEntry

Bases: BaseModel

One shape's state at one commit — an entry in the per-annotation blame timeline (the GitHub-blame view for a single annotation).

data class-attribute instance-attribute

data: dict = {}

Free-form class-attribute values and annotation metadata (deliberate dict).