zone.stratos.sync.listRepoOps
Incremental pull sync of a repo's operation log (oplog), mirroring com.atproto.space.listRepoOps semantics. Returns record operations after the `since` revision, with current record values inlined by default. Boundary-gated: the caller only observes operations for records within its enrolled boundaries. The response reaches the head of the oplog when `cursor` is absent; the repo's current signed commit is then included (unless the repo has no commits yet), consistent with the operations returned. When a concurrent write is detected, a cursor is returned instead of the commit; that response can carry no operations and repeat the cursor you sent, so poll again while a cursor is present and do not read an unchanged cursor as a stall. A write that commits after the head probe is not detected; it falls outside this snapshot and arrives on a later poll. Callers must authenticate with a signed service JWT via the Authorization: Bearer header. The oplog is a droppable transport optimization; if `since` predates retained history the OplogTruncated error is returned (stricter than upstream, which silently restarts) so the caller falls back to full-state recovery (listRecordPaths).
Details · query
| Kind | query |
|---|---|
| Authority | sync.stratos.zone |
| Indexed |
Query
query · GETParameters
query stringcursor
stringOpaque pagination cursor from a previous response. Takes precedence over `since` when both are supplied.
The DID of the repo to sync.
excludeValues
booleanWhen true, record values are omitted and only operation metadata is returned.
default: false
limit
integerMaximum number of operations to return in this page.
minimum: 1maximum: 1000default: 100
since
string · tidA revision (TID): the caller's own sync position. Only operations after this revision are returned. Omit to start from the beginning of retained history. Use `cursor` to continue a paginated response.
Output
application/jsoncommit
refThe repo's current signed MST commit. Included when the response reaches the head of the oplog; omitted on backfill responses and when the repo has no commits yet (no writes) - in that case there is nothing to sign and also no ops to sync.
cursor
stringOpaque pagination cursor to fetch the next page. Absent once the response reaches the head of the oplog. Can repeat the cursor you sent when a concurrent write was detected.
Errors
OplogTruncated
The requested `since` revision falls outside retained history: it predates the oldest retained event (compacted), postdates the newest (not a rev this repo issued), or there is no retained log to check it against. Also returned for an unusable `cursor`: malformed, predating retained history (compacted between pages), or beyond the newest retained event. The caller must fall back to full-state recovery. Stricter than upstream, which restarts from the beginning of retained history instead of erroring.
RepoNotFound
The requested repo does not exist.
AuthRequired
Service authentication is required.
#repoOp
objectA single record operation in the oplog. `cid` null means delete; `prev` null means create.
Properties
The CID (string form) of the current record value. Null for a delete.
nullable
The record collection.
The CID (string form) of the record value this operation superseded. Null for a create, or when the superseded value predates the returned window.
nullable
The revision of the commit that produced this operation. Atomic multi-writes share one rev.
The record key.
value
unknownThe current record value, inlined by default for create/update ops. Omitted when excludeValues is true, for a delete, or when the value has been superseded by a later operation.
#signedCommit
objectA signed MST v3 commit, as persisted (read verbatim, not re-signed).
Properties
The CID (string form) of the MST root node.
The DID of the repo.
prev
string · cidThe CID (string form) of the previous commit. Absent for the first commit.
The commit revision.
The commit signature, base64-encoded (the exact persisted bytes).
The commit version (3).
Similar lexicons
semantic matchLexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
Full-state recovery: enumerate a repo's record paths and their current CIDs, mirroring listRecords semantics. Record values are inlined by default; excludeValues returns metadata only. Boundary-gated: the caller only observes records within its enrolled boundaries. Intended as the fallback when the oplog (listRepoOps) returns OplogTruncated: the caller enumerates paths, diffs locally, and fetches misses. Callers must authenticate with a signed service JWT via the Authorization: Bearer header.
-
Export the full repository as a CAR file. Returns all record blocks, MST nodes, and the signed commit.
-
List blob CIDs for an account, since some repo revision. Does not require auth; implemented by PDS.
-
page.corvus.getOps
queryPaginated forward read of an op log scoped to an explicit block set. Pull-based alternative to opening a `page.corvus.subscribeOps` WebSocket at `cursor: 0` — same op shape, same cursor semantics, just delivered as a query page instead of a live tail. Each entry is a `page.corvus.subscribeOps#op` so live and historical paths feed the same applier. Like `subscribeOps`, this query does NOT walk graph relations. Callers fetch ops for the blocks they care about and follow refs explicitly with subse