verification
use it
# add to stunt.yaml
services:
cloudkit:
adapter: embedded:cloudkit-style
# then
$ stunt upThe embedded: source extracts this adapter from the binary — no git clone, fully offline.
how to mock the CloudKit Web Services API locally
Install stunt, paste the service block above into stunt.yaml, run stunt up — then point your client at localhost instead of CloudKit Web Services API. It works offline, keeps state across requests and restarts, and every response is synthetic: the route shapes, status codes, pagination, and webhook delivery follow the real CloudKit Web Services API 1 surface — the data is fake, the behavior is real.
backing stores
recordszones
api surface (5)
generated from the adapter manifest — exactly what boots, nothing more
5 routes
GET/database/1/{container}/{env}/public/users/current
GET/database/1/{container}/{env}/public/zones/list
GET/database/1/{container}/{env}/public/records/lookup
GET/database/1/{container}/{env}/public/records/query
POST/database/1/{container}/{env}/public/records/modify
VM-verified behaviors (6)
- ✓the s2s signature gate rejects unsigned tampered stale and foreign-key requests
- ✓users current returns the s2s owner identity
- ✓zones list seeds defaults filters by prefix and pages
- ✓records lookup returns the seeded shape with inline NOT_FOUND
- ✓records query filters sorts and pages on a numeric resultsLimit
- ✓records modify creates updates and deletes round-trip
Not implemented (6)
- No private or shared database surfaces (/database/1/.../private|shared)
- No assets: no /assets/upload endpoint or asset field handling
- No /users/discover (find users by email or address)
- No zone mutations (/zones/modify); zones cannot be created or deleted
- No subscriptions: /subscriptions/list, /subscriptions/modify (push)
- No web-user token auth; server-to-server key signatures only
Differs from the real API (2)
- records/lookup and records/query are GET-with-body; real CloudKit specifies POST
- query comparators are a limited subset; FULL_TEXT, LIKE, and list variants missing
want more of the CloudKit Web Services API surface? adapters are YAML + Starlark — the authoring guide covers adding routes, fixtures, and state machines. Open an issue for anything big first, or just file a PR — merged routes ship in the next release.