diff --git a/contracts/v1/server-info.json b/contracts/v1/server-info.json index 041654b..96cd52e 100644 --- a/contracts/v1/server-info.json +++ b/contracts/v1/server-info.json @@ -4,10 +4,12 @@ "title": "Trixie Server Info", "type": "object", "additionalProperties": false, - "required": ["api_version", "server_version", "status"], + "required": ["api_version", "server_version", "minimum_client_version", "maximum_client_version", "status"], "properties": { "api_version": { "type": "string", "const": "v1" }, "server_version": { "type": "string", "minLength": 1 }, + "minimum_client_version": { "type": "string", "minLength": 1 }, + "maximum_client_version": { "type": "string", "minLength": 1 }, "status": { "type": "string", "enum": ["ready"] } } } diff --git a/docs/versioning.md b/docs/versioning.md index 1d99f56..8887373 100644 --- a/docs/versioning.md +++ b/docs/versioning.md @@ -5,4 +5,7 @@ - Clients must tolerate unknown fields and events. - Breaking changes require a new major version, fixtures, migration notes, and coordinated releases. - Each release records minimum compatible client and server versions. +- `GET /api/v1/server/info` publishes `minimum_client_version` and + `maximum_client_version`; clients must use these fields to detect an + incompatible pairing before enabling authenticated controls. diff --git a/fixtures/v1/server-info.ready.json b/fixtures/v1/server-info.ready.json index ff0a099..f97e68c 100644 --- a/fixtures/v1/server-info.ready.json +++ b/fixtures/v1/server-info.ready.json @@ -1,5 +1,7 @@ { "api_version": "v1", "server_version": "0.1.0-dev", + "minimum_client_version": "0.1.0", + "maximum_client_version": "0.x", "status": "ready" }