Runbooks/Api Versioning

API Versioning

The IdentityMesh Admin API has two path prefixes that return the same responses:

PrefixStatusExample
/api/v1/Stable — forward-compatibleGET /api/v1/connectors
/api/Legacy — in place for the Angular UI, the relay agent, and pre-v1 integrations. Kept working indefinitely for now.GET /api/connectors

A path-rewrite middleware strips the /v1/ segment before endpoint routing, so both forms resolve to the same handler and produce the same response — bodies, status codes, headers, rate-limiting partition keys, admin-audit rows. There is no separate registration for the v1 prefix; one handler serves both.

When to use which prefix

What v1 is committed to

While the v1 designation is in effect, IdentityMesh treats these as breaking changes requiring a v2 (i.e. a second prefix plus a deprecation window on v1):

These are fair game within v1 and don’t require a new prefix:

Operational notes

Future v2

When a breaking change is ready:

  1. The new route shape is published under /api/v2/....
  2. The v1 routes stay in place — they are not removed in the same release that ships v2. A typical deprecation window is two minor versions; operators get at least one release to migrate.
  3. A Deprecation response header (RFC 9745) is stamped on v1 calls during the window so callers discover the cutover without reading changelogs.
  4. At the end of the deprecation window, the v1 routes and the v1-to-legacy path mapping are removed in the same release.