API versioning and deprecation policy

This page explains how KeenAuth versions its APIs, how a removal is announced and how long the SDKs, the CLI, the Terraform/OpenTofu provider and the MCP server receive security fixes. Every announcement is published in the changelog.

API versions

The management API carries its major version in the path (/v1). Within v1 only additive changes are made:

Write your integration so that it accepts these additions.

A breaking change is made only in a new major version (/v2). Breaking changes are: removing or renaming a field, changing a type, adding a required field, changing default behaviour, and changing pagination, sorting or the default limit. v1 stays available for at least 24 months after v2 becomes generally available.

KeenAuth does not use date-based version headers; the major version in the path and the additive-only rule are the whole contract.

Beta and GA operations

Every operation is marked x-idp-stability: beta or x-idp-stability: ga in the OpenAPI document. A beta operation can change during a private or public beta and is not covered by the deprecation rules below; its responses carry the Idp-Stability: beta header. A ga operation is frozen: it changes only under the rules on this page.

Events and token claims

Deprecation and removal

Removing an endpoint, parameter, claim, scope, event type, signature algorithm or other surface is announced in the changelog at least 365 days before the removal date. Every deprecation has an identifier of the form dep-<YYYY>-<NN>, a deprecation date, a removal (sunset) date, a replacement where one exists and a migration guide.

Security exception: to close a security vulnerability, behaviour within v1 can change without the 365-day notice. Such a change is published in the changelog with the security tag, and the affected environments are notified by email.

Signals in API responses

A response from an operation that is being removed carries:

After the removal date the operation answers 410 with the problem code endpoint_sunset. OAuth and OpenID Connect protocol removals (a signature algorithm, a client authentication method, a parameter) cannot carry headers; they are counted per client and go through the same notifications.

Where you see your usage

The official SDKs, the CLI, the provider and the MCP server send Idp-Client: <package>/<version> (<runtime>/<version>) with every request. The header is not authentication; it is used only for counting, and a malformed value is ignored. Usage counts store no IP address, User-Agent or end-user identifier.

SDK and tool support policy

The SDKs, the CLI, the Terraform/OpenTofu provider and the MCP server follow semantic versioning. A major version increases only with a breaking change in the language itself or with a new major version of the API.

Runtime support

The SDKs support the runtime versions that their vendors still support with security fixes: Node.js LTS, Python according to the upstream support schedule, the last two Go releases, Java 17 and 21, .NET LTS, PHP 8.2 and later, Ruby 3.2 and later, iOS 16 and later, Android API 26 and later. The minimum runtime matrix is published with every major version. A runtime that loses its vendor's support is dropped in a minor version, announced in the changelog 90 days in advance.