Merge pull request #1786 from matrix-org/travis/spec/exp-caps
Add support for unstable feature advertising via /versions
This commit is contained in:
commit
84a4ca62c3
2 changed files with 28 additions and 1 deletions
|
@ -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
|
||||||
|
|
1
changelogs/client_server/newsfragments/1786.feature
Normal file
1
changelogs/client_server/newsfragments/1786.feature
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Add support for advertising experimental features to clients.
|
Loading…
Add table
Add a link
Reference in a new issue