Skip to content
SarvexDocs
Esc
↑↓navigate↵open⌘Jpreview

Agent-surface enrollment state transitioned

RECEIVEcontrol.store.surface_state_changed
Message
store_idstringrequired
surface_idstringrequired

Registry id of the surface (GET /surfaces). Deliberately not an enum — the set of surfaces is a deployment property, and adding one must not require a contract change here.

from_statestringrequired

The enrollment state left by this transition (see surface_state in sarvex-v1-control-plane.yaml).

Allowed:availableprerequisites_pendingconfiguredsubmittedverifyingenrolledsuspended
to_statestringrequired

The enrollment state entered by this transition.

Allowed:availableprerequisites_pendingconfiguredsubmittedverifyingenrolledsuspended
eventstringrequired

What drove the move.

Allowed:enrollprerequisites_metprerequisites_failedsubmittedverifyingverifiedsuspendedresumedwithdrawn
Headers
message_idstringrequired

Unique per message; consumers de-duplicate on this.

ordering_keystringrequired

The store_id. Guarantees per-store ordering; the catalog/serving tenant boundary (a store belongs to one merchant — see architecture §2a).

occurred_atstring<date-time>required
sequenceinteger<int64>

Monotonic per-connector sequence carried from the origin signal (ingest events only).

trace_idstring

Correlates a chain of events from one originating cause.

schema_versionstringrequired
Try it
Server
Payload

Live sending isn't possible for pubsub from a browser tab — copy the sample above and run it against your broker.

Message
{
  "store_id": "string",
  "surface_id": "string",
  "from_state": "available",
  "to_state": "available",
  "event": "enroll"
}