1. Where the explorer lives
Open the dashboard, choose Developer in the sidebar, and select Sync Explorer from the tile grid (or navigate directly to/developer/sync). The
page is available to owners, admins, and developer roles — the same roles that
hold write permission on the Sync REST surface.
The explorer is a thin shell over four per-kind tabs:
2. Reading a Sync object
Every durable kind — Documents, Maps, and Lists — is fetched by itsunique_name. Type the name into the field at the top of the tab and click
Load. The explorer calls the same GET endpoints a client application
would use, and the response renders in the card below:
- Documents — the current JSON
dataplusrevisionanddate_updated. - Maps — every key with its
dataand per-itemrevision. - Lists — every item with its zero-based
index,data, andrevision.
3. Mutating objects
Below the read card, a data editor lets you compose a JSON object. The editor validates parse on every keystroke and disables the action buttons until the JSON is valid.
Every destructive action prompts a confirmation dialog before the request is
sent.
Revision and CAS
Documents and List/Map items carry a monotonicrevision the explorer
displays. On an Update loaded the explorer sends the form data without an
explicit revision guard — the server compares revisions internally and returns
a 409 if another writer changed the object since you loaded it (see the
failure modes section below).
4. Publishing to a Stream
The Streams tab has a single form: aunique_name, a JSON editor, and a
Publish message button. Clicking it sends POST /streams/:name/messages with your data. The message fan-out is immediate
and fire-and-forget — the explorer does not show a receipt or subscriber
count. Subscribers connected over the WebSocket gateway at publish time
receive the stream.message event; clients that connect later never see it.
5. Per-kind worked examples
Each example below is a concrete pair you can type into the explorer right now and observe the result.Document: presence state
Tab: Documents. Name:agent_presence. Data:
1. Change
the status to busy, click Update loaded, and revision ticks to 2.
Map: order details
Tab: Maps. Name:order_4982. Key: shipping. Data:
billing) with different data. The card
lists both keys with their individual revisions.
List: audit trail
Tab: Lists. Name:queue_audit. Data:
[0] and [1].
Stream: live counter
Tab: Streams. Name:metrics_dashboard. Data:
6. When to use the explorer vs the REST surface
The Sync end-to-end guide covers the full REST API —curl commands, error codes, the WebSocket gateway, and the
programmable integration path. Choose the right surface by who is acting:
- Explorer — a human operator inspecting state, debugging a presence roster, checking a document value, or sending a one-off Stream message from the dashboard. No code, no key management, and the same role gates as REST.
- REST + WebSocket — an application or backend worker that creates, reads, and reacts to Sync objects under application control. It holds an API key, handles retries and rate limits, and subscribes over the WebSocket gateway for live change events.
POST /sync/documents is immediately fetchable in the
explorer, and a Stream message published from the dashboard is delivered to
subscribing clients over the WebSocket gateway.
7. Failure modes
TTL expiry applies to Documents and Maps (and Map items) that were created
with a non-zero
ttl. Once the window elapses the object vanishes silently —
a subsequent Load shows the empty state. Streams have no TTL because they
have no retention.
8. See also
- Sync real-time state end to end — the full REST surface, WebSocket gateway, TTL semantics, and error taxonomy
- Developer console map — every tile in the Developer hub on one page
- Sync API reference — endpoint-by-endpoint shapes