Agent-surface enrollment state transitioned
RECEIVE
control.store.surface_state_changedMessage
store_idstringrequiredsurface_idstringrequiredRegistry 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_statestringrequiredThe enrollment state left by this transition (see surface_state in sarvex-v1-control-plane.yaml).
Allowed:
availableprerequisites_pendingconfiguredsubmittedverifyingenrolledsuspendedto_statestringrequiredThe enrollment state entered by this transition.
Allowed:
availableprerequisites_pendingconfiguredsubmittedverifyingenrolledsuspendedeventstringrequiredWhat drove the move.
Allowed:
enrollprerequisites_metprerequisites_failedsubmittedverifyingverifiedsuspendedresumedwithdrawnHeaders
message_idstringrequiredUnique per message; consumers de-duplicate on this.
ordering_keystringrequiredThe store_id. Guarantees per-store ordering; the catalog/serving tenant boundary (a store belongs to one merchant — see architecture §2a).
occurred_atstring<date-time>requiredsequenceinteger<int64>Monotonic per-connector sequence carried from the origin signal (ingest events only).
trace_idstringCorrelates a chain of events from one originating cause.
schema_versionstringrequired