Moves the cursor — where the next scan starts.
A compare-and-swap on the version the operator read from `GET …/cursor`: a pass that advanced it in between wins and the reset is refused with 409. Moving the cursor never re-runs admitted work (admission collides on the item key); it decides where the next scan begins. Null starts from the door's own horizon.
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
The trigger identifier.
uuidThe tenant identifier
The new position and the version being replaced.
The new position, in the source's own watermark format — or null to start from the door's own horizon.
length <= 4000The version the operator read (GET …/cursor). The write is a compare-and-swap on it, so
a pass that advanced the cursor in between wins and the reset is refused (409) rather than
silently undoing that pass.
int64Response Body
curl -X POST "https://api.fruxon.com/v1/tenants/string/triggers/497f6eca-6276-4993-bfeb-53cbbbba6f08/ledger/cursor:reset" \ -H "Content-Type: application/json" \ -d '{ "expectedVersion": 0 }'{
"ledgerId": "00000000-0000-0000-0000-000000000000",
"value": "string",
"version": 0,
"lastScanStartedAt": 0,
"lastScanCompletedAt": 0,
"lastItemAdmittedAt": 0,
"updatedAt": 0,
"updatedByRunId": "00000000-0000-0000-0000-000000000000",
"stageHolds": [
{
"stageId": "string",
"until": 0,
"reason": "string",
"violationType": "FEATURE_RESTRICTED",
"refusals": 0,
"since": 0,
"heldTurns": 0
}
]
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}The source watermark and its freshness.
Cursor health for the automation card. `lastScanCompletedAt` is the staleness signal, deliberately distinct from `lastItemAdmittedAt`: a healthy source that simply had nothing new still moves the former, so a quiet mailbox does not read as an outage.
Every reason this automation has excluded items for, with counts.
The options a filter-wide re-drive out of IGNORED is chosen from. An exclusion is a judgement a stage made under an instruction, so what an operator holds after revising that instruction is a reason rather than a list of items — and each count here is what `ignoreReason` resolves for that reason, which is what makes it confirmable. Distinct from the funnel, which stops at "1,204 IGNORED": a status is not something anyone can act on, and re-driving all of it would re-run every exclusion the shape has ever made. A reason with no recorded text comes back with a null `reason` — those items exist and cannot be selected by reason at all, and saying so is better than omitting them.