GET /{o}/{p}/catalog-revisionsList catalog revisions
List the append-only apply history for this project (most recent first).
Auth: Bearer token required · Permission:
catalog:read
Path parameters
| Name | Type | Description |
|---|---|---|
o | string | |
p | string |
Query parameters
| Name | Type | Description |
|---|---|---|
limit | integer | Max revisions to return (1-200) |
before | string(date-time) | ISO timestamp; only revisions with appliedAt strictly before this are returned |
cursor | string | Keyset cursor from the previous page |
Responses
| Status | Description | Schema |
|---|---|---|
200 | OK | CatalogRevisionPage |
401 | Unauthorized | Error |
403 | Forbidden | Error |
GET /{o}/{p}/catalog-revisions/{id}Get a catalog revision by id
Auth: Bearer token required · Permission:
catalog:read
Path parameters
| Name | Type | Description |
|---|---|---|
o | string | |
p | string | |
id | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | OK | CatalogRevision |
401 | Unauthorized | Error |
403 | Forbidden | Error |
404 | Not Found | Error |
GET /{o}/{p}/catalog-revisions/{id}/snapshotsList per-item snapshots for a revision
Returns the pre/post images recorded for each item applied in this revision (the rollback substrate).
Auth: Bearer token required · Permission:
catalog:read
Path parameters
| Name | Type | Description |
|---|---|---|
o | string | |
p | string | |
id | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | OK | CatalogRevisionSnapshotList |
401 | Unauthorized | Error |
403 | Forbidden | Error |
404 | Not Found | Error |
GET /{o}/{p}/catalog-revisions/{from}/diff/{to}Structured diff between two catalog revisions
What changed in the catalog between two revisions. Both path segments are revision numbers (the ETag / expectedRevision integer), not row ids.
Auth: Bearer token required · Permission:
catalog:read
Path parameters
| Name | Type | Description |
|---|---|---|
from | string | Revision number to diff from |
to | string | Revision number to diff to |
o | string | |
p | string |
Responses
| Status | Description | Schema |
|---|---|---|
200 | OK | CatalogDiff |
400 | Bad Request | Error |
401 | Unauthorized | Error |
403 | Forbidden | Error |
404 | Not Found | Error |
POST /{o}/{p}/catalog-revisions/{id}/rollbackRoll back a catalog revision
Apply the inverse of a prior revision (or a single hunk via ?hunkId=). Runs the same destructive-check + apply pipeline as POST /apply; returns 207 when some inverse items fail. Requires apply:write.
Auth: Bearer token required · Permission:
apply:write
Path parameters
| Name | Type | Description |
|---|---|---|
o | string | |
p | string | |
id | string |
Query parameters
| Name | Type | Description |
|---|---|---|
hunkId | string | string[] | Single-hunk filter |
Request body (application/json)
| Field | Type | Description |
|---|---|---|
force | boolean | Required if the inverse diff is destructive |
Responses
| Status | Description | Schema |
|---|---|---|
200 | OK | CatalogRevisionRollbackResult |
207 | Status 207 | CatalogRevisionRollbackResult |
401 | Unauthorized | Error |
403 | Forbidden | Error |
404 | Not Found | Error |
409 | Conflict | Error |
CatalogDiff| Field | Type | Description |
|---|---|---|
fromRevision | integer | (required) |
toRevision | integer | (required) |
added | object[] | (required) |
changed | object[] | (required) |
removed | object[] | (required) |
CatalogRevision| Field | Type | Description |
|---|---|---|
id | string | (required) |
projectId | string | null | (required) |
appliedAt | string | (required) |
appliedBy | string | null | (required) |
items | object[] | (required) |
deletions | object[] | (required) |
response | object | (required) |
force | boolean | (required) |
CatalogRevisionListItem| Field | Type | Description |
|---|---|---|
id | string | (required) |
projectId | string | null | (required) |
appliedAt | string | (required) |
appliedBy | string | null | (required) |
force | boolean | (required) |
itemCount | integer | (required) |
deletionCount | integer | (required) |
succeededCount | integer | (required) |
failedCount | integer | (required) |
skippedCount | integer | (required) |
version | integer | (required) |
CatalogRevisionPage| Field | Type | Description |
|---|---|---|
items | CatalogRevisionListItem[] | (required) |
nextCursor | string | null | Cursor for the next page; null on the final page (required) |
CatalogRevisionRollbackResult| Field | Type | Description |
|---|---|---|
revisionId | string | (required) |
rolledBackFrom | string | (required) |
hunkId | string | null | (required) |
succeeded | object[] | (required) |
failed | object[] | (required) |
skipped | object[] | (required) |
CatalogRevisionSnapshotListType: object[]
Error| Field | Type | Description |
|---|---|---|
error | string | (required) |
code | string |