Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Declare support for Matrix 1.6 #15089

Closed
5 of 8 tasks
clokep opened this issue Feb 17, 2023 · 6 comments · Fixed by #15559
Closed
5 of 8 tasks

Declare support for Matrix 1.6 #15089

clokep opened this issue Feb 17, 2023 · 6 comments · Fixed by #15559
Assignees
Labels
A-Spec-Compliance places where synapse does not conform to the spec S-Major Major functionality / product severely impaired, no satisfactory workaround. T-Enhancement New features, changes in functionality, improvements in performance, or user-facing enhancements.

Comments

@clokep
Copy link
Contributor

clokep commented Feb 17, 2023

See https://matrix.org/blog/2023/02/14/matrix-v-1-6-release

Client-Server API

Server-Server API

  • Remove keyId from the server /keys endpoints, as per MSC3938.

Application Service API

  • Add information on standard error responses for unknown endpoints/methods, as per MSC3743.
    • We would only care about this for calling out to AS, but I don't think we call any potentially unknown endpoints so maybe nothing to do? Could future proof by using the same code we do for federation though.

Identity Service API

  • Add information on standard error responses for unknown endpoints/methods, as per MSC3743.
    • We would only care about this for calling out to IS, but I don't think we call any potentially unknown endpoints so maybe nothing to do? Could future proof by using the same code we do for federation though.

Push Gateway API

  • Add information on standard error responses for unknown endpoints/methods, as per MSC3743.
    • We would only care about this for calling out to PG, but I don't think we call any potentially unknown endpoints so maybe nothing to do? Could future proof by using the same code we do for federation though.

Room Versions

@clokep
Copy link
Contributor Author

clokep commented Feb 17, 2023

I've attempted to add some notes about what I think is done, but likely could use double checking. See #14486 for a previous iteration.

@MatMaul MatMaul added A-Spec-Compliance places where synapse does not conform to the spec S-Major Major functionality / product severely impaired, no satisfactory workaround. T-Enhancement New features, changes in functionality, improvements in performance, or user-facing enhancements. labels Feb 17, 2023
MadLittleMods added a commit to matrix-org/matrix-react-sdk that referenced this issue Mar 17, 2023
…upported on a homeserver (#10398)

Add stable unstable version (`org.matrix.msc3030.stable`) for jump to date [before `v1.6` is fully supported on a homeserver](matrix-org/synapse#15089).

Related to element-hq/element-web#24362 but does not solve immediately because Synapse does not supply `org.matrix.msc3030.stable` yet

Also refactored `ServerSupportUnstableFeatureController` to support multiple feature groups where any one of them will enable the setting. All features in a feature group are required. This way having either `org.matrix.msc3030` or `org.matrix.msc3030.stable` will enable the jump to date feature flag with a config of `[["org.matrix.msc3030"], ["org.matrix.msc3030.stable"]]`
MadLittleMods added a commit that referenced this issue Mar 17, 2023
…ported on Synapse

Related to #15089

Element Web PR to honor `org.matrix.msc3030.stable`: matrix-org/matrix-react-sdk#10398
toomore pushed a commit to moda-gov-tw/matrix-org.matrix-react-sdk that referenced this issue Apr 6, 2023
…upported on a homeserver (#10398)

Add stable unstable version (`org.matrix.msc3030.stable`) for jump to date [before `v1.6` is fully supported on a homeserver](matrix-org/synapse#15089).

Related to element-hq/element-web#24362 but does not solve immediately because Synapse does not supply `org.matrix.msc3030.stable` yet

Also refactored `ServerSupportUnstableFeatureController` to support multiple feature groups where any one of them will enable the setting. All features in a feature group are required. This way having either `org.matrix.msc3030` or `org.matrix.msc3030.stable` will enable the jump to date feature flag with a config of `[["org.matrix.msc3030"], ["org.matrix.msc3030.stable"]]`
@clokep
Copy link
Contributor Author

clokep commented Apr 25, 2023

Define hkdf-hmac-sha256.v2 MAC method for SAS verification

The legacy. method (hkdf-hmac-sha256) doesn't appear in the Synapse repo at all, so I'm going to assume there's nothing to do here.

@clokep
Copy link
Contributor Author

clokep commented Apr 25, 2023

Application Service API / Identity Service API / Push Gateway API

  • Add information on standard error responses for unknown endpoints/methods

#15317 ended up using this for appservices, will need to split this into three tasks. I think.

@clokep
Copy link
Contributor Author

clokep commented Apr 25, 2023

Remove keyId from the server /keys endpoints, as per MSC3938.

Up until #14525, which landed in v1.74.0rc1, Synapse sent the key ID when requesting keys. MSC3938 notes that this is a breaking change. Making it such that the key ID / trailing slash is invalid means that Synapse < 1.74.0 will be unable to request keys from Synapse >= 1.xx (whenever this lands). This seems pretty awful, @richvdh did you have any thoughts on how we were hoping to roll this out? I'm not getting a good feel of how much this would break if we just did it now.

@richvdh
Copy link
Member

richvdh commented Apr 26, 2023

Yeah, it's probably premature to rip out support.

I think my intention here was that servers that support only spec v1.6 do not need to allow the trailing slash (and of course, they should not include the trailing slash, or the key ID, in outgoing requests), but servers that want to maintain support for earlier versions of the spec still need to permit it.

My suggestion would be to continue to permit key ID or trailing slash, but log a warning. Strictly speaking that makes Synapse non-spec-compliant for v1.6, but I think it's the best we can do for now.

@clokep
Copy link
Contributor Author

clokep commented Apr 26, 2023

My suggestion would be to continue to permit key ID or trailing slash, but log a warning. Strictly speaking that makes Synapse non-spec-compliant for v1.6, but I think it's the best we can do for now.

That seems reasonable. Looking back, we maybe should have revved the endpoint version. 🤷

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A-Spec-Compliance places where synapse does not conform to the spec S-Major Major functionality / product severely impaired, no satisfactory workaround. T-Enhancement New features, changes in functionality, improvements in performance, or user-facing enhancements.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants