-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Description
See matrix-org/synapse#11079 for what the server-side changes look like, and for a definition of how the versioning works.
For Element, and other clients, the important detail is that servers will start advertising v1.1 in the /versions response. Clients should check for this and use any per-endpoint versioned endpoints when talking to the homeserver. For Matrix 1.1, all endpoints for the client-server API will be available under /v3 instead of /r0. r0 should still be available for backwards compatibility reasons.
For future versions of Matrix, the endpoint versions might change. The implementation suggestion here is to hardcode use of /v3 in all endpoint calls for now, and when an endpoint changes shape (ie: gets a version bump) then add the if statement to switch between /v3 and /v4 as needed/supported by the server.
To clarify: All endpoints will be /v3 for Matrix 1.1, but Matrix 1.2 may very well introduce a breaking change to an endpoint. When that happens, /v4 will become the new current version for that endpoint with /v3 on its way out through deprecation. If the server advertises support for v1.2, then the client should use the /v4 endpoint. Otherwise, the /v3 endpoint.
In addition to the versioning changes, the following features become stable and should be expected as such on Matrix 1.1 compatible servers.
Identity Servers
- Identity servers now have an
/_matrix/identity/versionsendpoint to version check against. They should be advertisingv1.1as well. See Matrix 1.1 checklist matrix-org/sydent#424 for Sydent's checklist. - The v1 identity service API is now removed. There are only v2 endpoints (authed access) now.
- Case-folding of email addresses is required prior to talking to an identity server.
- Already done ages ago (to my knowledge)
Homeservers
- Knocking support (room version 7)
- Non-essential support
- Added
v1.1to/versionsendpoint - Event bodies are formally declared as untrusted - please validate your inputs
- Identity server validation errors for
.well-knownhas been downgraded toFAIL_PROMPT - A
device_idis now present on/account/whoami - Secret Storage has been added
- Key backup has been added
- Cross-signing has been added
- Social Login (multiple SSO providers) has been added
- Key verification can now happen with in-room messages instead of to-device
-
<details>and<summary>are suggested to be legal HTML in events - QR code verification has been added
- Spoilers have been added, as has a
colorattribute - Guests can now view the members of a room
-
reasonandscoreare now optional on/report - Push rule endpoints can now return 404
M_NOT_FOUND - A
reasonis now possible on all membership events - A
device_idis now present/possible on login fallback - Withholding decryption keys can now (optionally) be an explicit message to other devices. Ie: "I am not sending you this key"
- [BREAKING]
m.key.verification.readyandm.key.verification.doneare now required in the key verification framework. - [BREAKING]
curve25519-hkdf-sha256is the new key agreement method for SAS verification, with other methods being deprecated.
Of note is Spaces: it will not be present in Matrix 1.1 at the moment. Clients can still use the m.space room type as stable, however other aspects such as the summary/hierarchy APIs are not currently eligible for stable usage as of writing. Room versions 8 and 9 will be added if time permits, though this shouldn't affect clients too much beyond knowing that "restricted" rooms exist.