← all adapters

cloudkit-style

simulates CloudKit Web Services API 1

restadapter v0.1.05 routes

verification

VMVM tier — no SDK suite yet· surface 5 · not implemented 6 · differs 2

use it

# add to stunt.yaml
services:
  cloudkit:
    adapter: embedded:cloudkit-style

# then
$ stunt up

The 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.