Hey all,
At this year’s Matrix Conference we said we were aiming for this very spec release to be 2.0 proper. It looks like the MSCs still need a little bit more time to get over the line though, but they’re extremely close — one of the next few releases is expected to be Matrix 2.0.
Today we’re releasing Matrix 1.17 while the 2.0 MSCs continue to make forward progress. This release is smaller than some, with four MSCs merged, but as normal also includes a number of clarifications.
Improvements to the spec website include a dropdown to get at old spec versions more easily, and an index of HTTP endpoints at the top of each page.
This release of the spec also sees the incorporation of the specifications for the Olm and Megolm cryptographic ratchets. Olm and Megolm themselves haven’t changed, but we did want them to be on the spec site :)
Thanks especially to Johannes and Kévin for continuing to improve the quality of the spec with features, clarifications, and MSC text!
🔗The full changelog
🔗Client-Server API
Removed Endpoints
Backwards Compatible Changes
- Allow application services to masquerade as specific devices belonging to users, as per MSC4326. (#2221)
- Add the
m.oauthauthentication type for User-Interactive Authentication, as per MSC4312. (#2234) - Allow application services to manage devices and register users without the legacy authentication API, as per MSC4190. (#2267)
Spec Clarifications
- Push rule IDs are globally unique within their kind. (#2214)
- Don't advertise
creatorfield in description of room creation. (#2215) room_idis required for peeking via/_matrix/client/v3/events. (#2216)- The
server-namesegment of MXC URIs is sanitised differently from themedia-idsegment. (#2217) - Add note to each endpoint that uses capability negotiation. (#2223)
- Additional OpenGraph properties can be present in URL previews. (#2225)
- Clarify the special casing of membership events and redactions in power levels. (#2231)
M_RESOURCE_LIMIT_EXCEEDEDis now listed as a common error code. (#2232)- Add
m.login.termsto enumeration of authentication types. (#2233) - Clarify how to use
state_afterahead of declaring full support for its spec version. (#2240) device_one_time_keys_countis only optional if no unclaimed one-time keys exist. (#2245)- Clarify that servers may choose not to use
M_USER_DEACTIVATEDat login time, for example for privacy reasons when they can't authenticate deactivated users. (#2246) - Usage of the
event_id_onlyformat for push notifications is not mandatory. (#2255) - Fix various typos throughout the specification. (#2224, #2227, #2250)
🔗Server-Server API
No significant changes.
🔗Application Service API
Backwards Compatible Changes
- Allow application services to masquerade as specific devices belonging to users, as per MSC4326. (#2221)
- Allow application services to manage devices and register users without the legacy authentication API, as per MSC4190. (#2267)
Spec Clarifications
- Fix JSON formatting in the "Server admin style permissions" examples. (#2213)
🔗Identity Service API
No significant changes.
🔗Push Gateway API
No significant changes.
🔗Room Versions
Spec Clarifications
- In room versions 8 through 12, clarify that "sufficient permission to invite users" on restricted joins also includes being a joined member of the room. (#2220)
- In room versions 3 through 12, clarify that when you have the power to redact, it is possible to redact events that you don't have the power to send. (#2249)
🔗Appendices
No significant changes.
🔗Internal Changes/Tooling
Spec Clarifications
- Swapped icon for X (fka. twitter) to updated logo in footer. (#2219)
- Inline Olm & Megolm specifications. (#2226, #2241, #2242)
- Silence failing redocly-cli rule. (#2238)
- Use NPM Trusted Publishers for publishing
@matrix-org/specto npm. (#2239) - Add version picker in the navbar. (#2256, #2258, #2259, #2260, #2261, #2264, #2268)
- Add a list of endpoints to the top of each spec page. (#2262)
The Foundation needs you
The Matrix.org Foundation is a non-profit and only relies on donations to operate. Its core mission is to maintain the Matrix Specification, but it does much more than that.
It maintains the matrix.org homeserver and hosts several bridges for free. It fights for our collective rights to digital privacy and dignity.
Support us