Merge pull request #1786 from matrix-org/travis/spec/exp-caps

Add support for unstable feature advertising via /versions
This commit is contained in:
Travis Ralston 2019-01-23 19:15:50 -07:00 committed by GitHub
commit 84a4ca62c3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 1 deletions

View file

@ -33,13 +33,29 @@ paths:
Only the latest ``Z`` value will be reported for each supported ``X.Y`` value. Only the latest ``Z`` value will be reported for each supported ``X.Y`` value.
i.e. if the server implements ``r0.0.0``, ``r0.0.1``, and ``r1.2.0``, it will report ``r0.0.1`` and ``r1.2.0``. i.e. if the server implements ``r0.0.0``, ``r0.0.1``, and ``r1.2.0``, it will report ``r0.0.1`` and ``r1.2.0``.
The server may additionally advertise experimental features it supports
through ``unstable_features``. These features should be namespaced and
may optionally include version information within their name if desired.
Features listed here are not for optionally toggling parts of the Matrix
specification and should only be used to advertise support for a feature
which has not yet landed in the spec. For example, a feature currently
undergoing the proposal process may appear here and eventually be taken
off this list once the feature lands in the spec and the server deems it
reasonable to do so. Servers may wish to keep advertising features here
after they've been released into the spec to give clients a chance to
upgrade appropriately. Additionally, clients should avoid using unstable
features in their stable releases.
operationId: getVersions operationId: getVersions
responses: responses:
200: 200:
description: The versions supported by the server. description: The versions supported by the server.
examples: examples:
application/json: { application/json: {
"versions": ["r0.0.1"] "versions": ["r0.0.1"],
"unstable_features": {
"org.example.my_feature": true
}
} }
schema: schema:
type: object type: object
@ -50,5 +66,15 @@ paths:
items: items:
type: string type: string
description: The supported versions description: The supported versions
unstable_features:
type: object
description: |-
Experimental features the server supports. Features not listed here,
or the lack of this property all together, indicate that a feature is
not supported.
additionalProperties:
type: boolean
description: Whether or not the namespaced feature is supported.
required: ['versions']
tags: tags:
- Server administration - Server administration

View file

@ -0,0 +1 @@
Add support for advertising experimental features to clients.