CSC

Version diffs

Explore added, removed, renamed, moved, and changed location records between releases.

Every data release publishes a machine-readable summary, entity JSON, country JSON shards, and a full CSV. Removed identities are marked breaking unless a versioned migration maps the previous public ID.

Release history

What changed between versions?

Filter real entity changes without losing identity migrations or source context.

Total changes
Added
Moved / renamed
Breaking IDs
Loading version diff…

Schema additions are summarized once per entity type rather than repeated on every row. Record-level changes cover semantic names, parent relationships, coordinates, codes, types, and external IDs.

Subscriptions

  • RSS: subscribe to /changes/feed.xml for all release summaries.
  • Webhook: release events use a stable event ID, HMAC-SHA256 over {timestamp}.{rawBody}, a five-minute replay window, and retry at 1s, 10s, 1m, 10m, and 1h before dead-lettering.
  • Email: the contract requires double opt-in and one-click unsubscribe. Provider selection and production enablement remain separate from the open-data release pipeline.

Webhook consumers should deduplicate X-CSC-Event-Id, verify X-CSC-Timestamp, and compare X-CSC-Signature in constant time before parsing the event.

Release automation

npm run data:version-diff
npm run data:web-version-diffs
npm run test:web-version-diffs

The generator compares the latest Git tag with the current canonical snapshot, applies recorded ID migrations, and writes deterministic version artifacts under data/versions/.