Declare support for Matrix v1.12 and v1.13
I think we support all the necessary stuff, but we should double check the changelogs:
- https://spec.matrix.org/v1.13/changelog/v1.12/
- https://spec.matrix.org/v1.13/changelog/v1.13/
I had a look myself to try and move this along, there were a few things I was uncertain about but the majority looks stabilized.
(I've skipped over anything non-applicable to Servers)
v1.12:
- [x] Deprecate the server_name query parameter on POST /_matrix/client/v3/join/{roomIdOrAlias} and POST /_matrix/client/v3/knock/{roomIdOrAlias}, as per MSC4156. (#1933)
- [x] Remove references to device-specific push rules. (#1842)
- [x] Add 403 responses on GET /_matrix/client/v3/profile/{userId}/avatar_url and GET /_matrix/client/v3/profile/{userId}/displayname, as per MSC4170. (#1867)
- [x] Add via query parameter on POST /_matrix/client/v3/join/{roomIdOrAlias} and POST /_matrix/client/v3/knock/{roomIdOrAlias}, as per MSC4156. (#1933)
- [x] Add account locking, as per MSC3939. (#1934)
- [x] Guest accounts can now download/thumbnail media from the new authenticated endpoints, as per MSC4189. (#1959)
- [x] Add 403 response on GET /_matrix/federation/v1/query/profile, as per MSC4170. (#1867)
- [x] Remove origin field from PDU example because it doesn’t exist in the schema anymore. (#1918)
- PR: https://github.com/element-hq/synapse/pull/18418
- waiting on merging this sytest PR: https://github.com/matrix-org/sytest/pull/1404
- PR: https://github.com/element-hq/synapse/pull/18418
v1.13:
- [x] Add POST /_matrix/client/v3/rooms/{roomId}/report, as per MSC4151. (#1938, #2028)
- [x] Add new M_USER_SUSPENDED error code behaviour, as per MSC3823. (#2014)
- [x] Clarify the allowed HTTP methods in CORS responses, as per MSC4138. (#1995, #2011)
- Lacks PATCH? https://github.com/element-hq/synapse/blob/068e22b4b7c5d38064cf04353de36fbc1ead6ba9/synapse/http/server.py#L912
- [x] The reason parameter in POST /_matrix/client/v3/rooms/{roomId}/report/{eventId} can be omitted instead of left blank, as per MSC2414. (#1938)
- [ ] Make ACLs apply to EDUs, as per MSC4163. (#2004)
- I'm not sure they do? https://github.com/element-hq/synapse/blob/2277df2a1eb685f85040ef98fa21d41aa4cdd389/synapse/federation/federation_server.py#L541-L578
- PR: https://github.com/element-hq/synapse/pull/18475
- [x] Add 403 error response to /_matrix/federation/v1/state_ids/{roomId}. (#1926)
- [x] Add error codes to requestToken endpoints, as per https://github.com/matrix-org/matrix-spec-proposals/pull/4178. (https://github.com/matrix-org/matrix-spec/issues/1944)
- [ ] Allow sending ephemeral data to application services, as per MSC2409. (#2018)
- PR: https://github.com/element-hq/synapse/pull/18501
Remove origin field from PDU example
Synapse appears to still include origin in events, but as this issue and this comment suggests, nothing uses it nor does Synapse enforce its existence. So I think it's fine to remove all usages from Synapse.
Clarify the allowed HTTP methods in CORS responses
The spec states that only homeservers that listen for additional methods need add them here. Synapse does not accept PATCH for any endpoints, and thus it need not be specified in Access-Control-Allow-Methods.
Make ACLs apply to EDUs
From looking at the code, I don't believe ACLs are applied to them yet, no. The MSC states that its only implementation was in Conduwuit.
One thing was missed from the above list, but it does have an implementation in Synapse as of 1.130.0rc1 Add error codes to requestToken endpoints, as per MSC4178. (#1944)
I think we also skipped over:
- [ ] Allow sending ephemeral data to application services, as per MSC2409. (#2018) Synapse is using the unstable prefixes, so that will need to be stabilized (https://github.com/element-hq/synapse/blob/162407319103a9f553225a925017cf3f951a4644/synapse/appservice/api.py#L356)
And it looks like the implementation in Synapse is out of date.
It still adds to_device events, but those have since been removed from the MSC.
All v1.12 features have been implemented, so we can now declare support for that version!