You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The roadmap, issues, and openapi.yaml use inconsistent naming for CloudKit's change-tracking endpoints, which led to #46 and #47 being closed as "completed" against the wrong operations. This issue documents the canonical Apple surface and what MistKit actually implements, so the spec and roadmap can be reconciled.
Apple's four change-tracking endpoints
Per the CloudKit Web Services Reference:
Apple endpoint
Purpose
Status
records/changes
Fetching Record Changes
current
zones/changes
Fetching Zone Changes
deprecated — Apple says use changes/database
changes/database
Fetching Database Changes — returns which zones changed
current (replacement for zones/changes)
changes/zone
Fetching Record Zone Changes — record changes within a zone
current
What MistKit implements today (openapi.yaml @ docs/sync-beta.2)
✅ records/changes → fetchRecordChanges
⚠️zones/changes → fetchZoneChanges — this is the deprecated endpoint
The README roadmap lists both under Backlog / Post-beta using Apple's changes/* names, while the implemented operations use records/changes / zones/changes names — so it's not obvious what's actually shipped.
Proposed resolution
Spec: add changes/database and changes/zone to openapi.yaml (+ regenerate), and mark zones/changes / fetchZoneChanges as deprecated in favor of changes/database.
Service: add CloudKitService wrappers for the two new endpoints; decide whether to deprecate fetchZoneChanges.
Docs/roadmap: in README, list the four endpoints with both Apple names and MistKit method names, and reflect deprecation.
Summary
The roadmap, issues, and
openapi.yamluse inconsistent naming for CloudKit's change-tracking endpoints, which led to #46 and #47 being closed as "completed" against the wrong operations. This issue documents the canonical Apple surface and what MistKit actually implements, so the spec and roadmap can be reconciled.Apple's four change-tracking endpoints
Per the CloudKit Web Services Reference:
records/changeszones/changeschanges/databasechanges/databasezones/changes)changes/zoneWhat MistKit implements today (
openapi.yaml@docs/sync-beta.2)records/changes→fetchRecordChangeszones/changes→fetchZoneChanges— this is the deprecated endpointchanges/database— not in the spec, no wrapper (tracked in Fetching Database Changes (changes/database) #46)changes/zone— not in the spec, no wrapper (tracked in Fetching Record Zone Changes (changes/zone) #47)So no
changes/*endpoint is implemented, and the only zone-level coverage we ship is the deprecatedzones/changes.Why this is confusing
records/changes— a different endpoint.records/changesas well.Backlog / Post-betausing Apple'schanges/*names, while the implemented operations userecords/changes/zones/changesnames — so it's not obvious what's actually shipped.Proposed resolution
changes/databaseandchanges/zonetoopenapi.yaml(+ regenerate), and markzones/changes/fetchZoneChangesas deprecated in favor ofchanges/database.CloudKitServicewrappers for the two new endpoints; decide whether to deprecatefetchZoneChanges.References
Related: #46, #47