Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSC3860: Media Download Redirects #3860

Merged
merged 16 commits into from
May 9, 2023

Conversation

Fizzadar
Copy link
Contributor

@Fizzadar Fizzadar commented Aug 4, 2022

Rendered.

Signed off by Nick @ Beeper (@Fizzadar) [email protected].

Server implementation: added in beeper/matrix-media-repo@32051bf & flag in beeper/matrix-media-repo@d75aa32.

We have also implemented this on our hard fork of the media repo in a similar manner. The only difference is we have extended this to generate public URLs for buckets we have defined as public (ie so cache headers can be set on redirect).

FCP tickyboxes

@Fizzadar Fizzadar marked this pull request as ready for review August 4, 2022 15:40
@Fizzadar Fizzadar changed the title Add media download redirect proposal MSC3860: Add media download redirect proposal Aug 4, 2022
@turt2live turt2live added proposal A matrix spec change proposal client-server Client-Server API kind:maintenance MSC which clarifies/updates existing spec needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. labels Aug 4, 2022
@turt2live
Copy link
Member

For sign off: We will need an email address, or the form completed with [email protected]

@Fizzadar
Copy link
Contributor Author

Fizzadar commented Aug 23, 2022

Ok this is now confirmed working on all platforms, so implementation is done? See description!

@Fizzadar Fizzadar requested a review from turt2live August 23, 2022 06:53

+ `/_matrix/media/v3/download/{serverName}/{mediaId}?allow_redirect=true`
+ `/_matrix/media/v3/download/{serverName}/{mediaId}/{fileName}?allow_redirect=true`
+ `/_matrix/media/v3/thumbnail/{serverName}/{mediaId}?allow_redirect=true`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The next versioned media endpoints after this MSC gets accepted (e.g. if MSC3911 gets accepted) should drop the allow_redirect parameter and clients that call it should handle redirects..

Signed-off-by: Sumner Evans <[email protected]>
Copy link
Contributor

@sumnerevans sumnerevans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If Beeper's current media repo is sufficient for proving this out, I think that we might be ready for FCP.

proposals/3860-media-download-redirect.md Show resolved Hide resolved
@turt2live
Copy link
Member

@matrix-org/spec-core-team the author believes this is ready for FCP, though I'm not seeing a whole lot of technical review on this. Please review the MSC, and if it looks ready for FCP, send it :)

@turt2live turt2live removed the needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. label Mar 31, 2023
@turt2live turt2live changed the title MSC3860: Add media download redirect proposal MSC3860: Media Download Redirects Apr 10, 2023
@turt2live turt2live merged commit a3778b3 into matrix-org:main May 9, 2023
@turt2live turt2live added spec-pr-missing Proposal has been implemented and is being used in the wild but hasn't yet been added to the spec and removed finished-final-comment-period labels May 9, 2023
KitsuneRal added a commit to quotient-im/libQuotient that referenced this pull request May 11, 2023
@Fizzadar Fizzadar deleted the media-download-redirect branch May 16, 2023 18:07
@turt2live
Copy link
Member

Spec PR: matrix-org/matrix-spec#1529

@turt2live
Copy link
Member

Merged 🎉

@turt2live turt2live added merged A proposal whose PR has merged into the spec! and removed spec-pr-missing Proposal has been implemented and is being used in the wild but hasn't yet been added to the spec labels May 17, 2023
yingziwu added a commit to yingziwu/synapse that referenced this pull request Dec 17, 2023
Synapse 1.98.0 will be the last Synapse release in 2023; the regular release cadence will resume in January 2024.

Synapse will soon be forked by Element under an AGPLv3.0 licence (with CLA, for
proprietary dual licensing). You can read more about this here:

 - https://matrix.org/blog/2023/11/06/future-of-synapse-dendrite/
 - https://element.io/blog/element-to-adopt-agplv3/

The Matrix.org Foundation copy of the project will be archived. Any changes needed
by server administrators will be communicated via our usual announcements channels,
but we are striving to make this as seamless as possible.

No significant changes since 1.98.0rc1.

- Synapse now declares support for Matrix v1.7, v1.8, and v1.9. ([\matrix-org#16707](matrix-org#16707))
- Add `on_user_login` [module API](https://matrix-org.github.io/synapse/latest/modules/writing_a_module.html) callback for when a user logs in. ([\matrix-org#15207](matrix-org#15207))
- Support [MSC4069: Inhibit profile propagation](matrix-org/matrix-spec-proposals#4069). ([\matrix-org#16636](matrix-org#16636))
- Restore tracking of requests and monthly active users when delegating authentication via [MSC3861](matrix-org#16672) to an OIDC provider. ([\matrix-org#16672](matrix-org#16672))
- Add an autojoin setting for server notices rooms, so users may be joined directly instead of receiving an invite. ([\matrix-org#16699](matrix-org#16699))
- Follow redirects when downloading media over federation (per [MSC3860](matrix-org/matrix-spec-proposals#3860)). ([\matrix-org#16701](matrix-org#16701))

- Enable refreshable tokens on the admin registration endpoint. ([\matrix-org#16642](matrix-org#16642))
- Consistently bypass rate limits when using the server notice admin API. ([\matrix-org#16670](matrix-org#16670))
- Fix a bug introduced in Synapse 1.7.2 where rooms whose power levels lacked an `events` field could not be upgraded. ([\matrix-org#16725](matrix-org#16725))
- Fix `GET /_synapse/admin/v1/federation/destinations` [admin API](https://matrix-org.github.io/synapse/latest/usage/administration/admin_api/index.html) returning null (instead of 0) for `retry_last_ts` and `retry_interval`. ([\matrix-org#16729](matrix-org#16729))

- Add schema rollback information to documentation. ([\matrix-org#16661](matrix-org#16661))
- Fix poetry version typo in the [contributors' guide](https://matrix-org.github.io/synapse/latest/development/contributing_guide.html). ([\matrix-org#16695](matrix-org#16695))
- Switch the example UNIX socket paths to `/run`. Add HAProxy example configuration for UNIX sockets. ([\matrix-org#16700](matrix-org#16700))
- Add documentation for how to validate the configuration file with `synapse.config` script. ([\matrix-org#16714](matrix-org#16714))

- Clean-up unused tables. ([\matrix-org#16522](matrix-org#16522))
- Reduce a little database load while processing state auth chains. ([\matrix-org#16552](matrix-org#16552))
- Reduce database load of pruning old `user_ips`. ([\matrix-org#16667](matrix-org#16667))
- Reduce DB load when forget on leave setting is disabled. ([\matrix-org#16668](matrix-org#16668))
- Ignore `encryption_enabled_by_default_for_room_type` setting when creating server notices room, since the notices will be send unencrypted anyway. ([\matrix-org#16677](matrix-org#16677))
- Correctly read the to-device stream ID on startup using SQLite. ([\matrix-org#16682](matrix-org#16682))
- Reoranganise test files. ([\matrix-org#16684](matrix-org#16684))
- Remove old full schema dumps which are no longer used. ([\matrix-org#16697](matrix-org#16697))
- Raise poetry-core upper bound to <=1.8.1. This allows contributors to import Synapse after `poetry install`ing with Poetry 1.6 and above. Contributed by Mo Balaa. ([\matrix-org#16702](matrix-org#16702))
- Add a workflow to try and automatically fixup linting in a PR. ([\matrix-org#16704](matrix-org#16704))

* Bump cryptography from 41.0.5 to 41.0.6. ([\matrix-org#16703](matrix-org#16703))
* Bump cryptography from 41.0.6 to 41.0.7. ([\matrix-org#16721](matrix-org#16721))
* Bump idna from 3.4 to 3.6. ([\matrix-org#16720](matrix-org#16720))
* Bump jsonschema from 4.19.1 to 4.20.0. ([\matrix-org#16692](matrix-org#16692))
* Bump matrix-org/netlify-pr-preview from 2 to 3. ([\matrix-org#16719](matrix-org#16719))
* Bump phonenumbers from 8.13.23 to 8.13.26. ([\matrix-org#16722](matrix-org#16722))
* Bump prometheus-client from 0.18.0 to 0.19.0. ([\matrix-org#16691](matrix-org#16691))
* Bump pyasn1 from 0.5.0 to 0.5.1. ([\matrix-org#16689](matrix-org#16689))
* Bump pydantic from 2.4.2 to 2.5.1. ([\matrix-org#16663](matrix-org#16663))
* Bump pyo3 (0.19.2→0.20.0), pythonize (0.19.0→0.20.0) and pyo3-log (0.8.1→0.9.0). ([\matrix-org#16673](matrix-org#16673))
* Bump pyopenssl from 23.2.0 to 23.3.0. ([\matrix-org#16662](matrix-org#16662))
* Bump ruff from 0.1.4 to 0.1.6. ([\matrix-org#16690](matrix-org#16690))
* Bump sentry-sdk from 1.32.0 to 1.35.0. ([\matrix-org#16666](matrix-org#16666))
* Bump serde from 1.0.192 to 1.0.193. ([\matrix-org#16693](matrix-org#16693))
* Bump sphinx-autodoc2 from 0.4.2 to 0.5.0. ([\matrix-org#16723](matrix-org#16723))
* Bump types-jsonschema from 4.19.0.4 to 4.20.0.0. ([\matrix-org#16724](matrix-org#16724))
* Bump types-pillow from 10.1.0.0 to 10.1.0.2. ([\matrix-org#16664](matrix-org#16664))
* Bump types-psycopg2 from 2.9.21.15 to 2.9.21.16. ([\matrix-org#16665](matrix-org#16665))
* Bump types-setuptools from 68.2.0.0 to 68.2.0.2. ([\matrix-org#16688](matrix-org#16688))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client-server Client-Server API kind:maintenance MSC which clarifies/updates existing spec merged A proposal whose PR has merged into the spec! proposal A matrix spec change proposal
Projects
Status: Done to some definition
Development

Successfully merging this pull request may close these issues.

8 participants