Synapse 1.66.0rc1 (2022-08-23)
This release removes the ability for homeservers to delegate email ownership
verification and password reset confirmation to identity servers. This removal
was originally planned for Synapse 1.64, but was later deferred until now.
See the upgrade notes for more details.
Features
- Improve validation of request bodies for the following client-server API endpoints:
/account/password
,/account/password/email/requestToken
,/account/deactivate
and/account/3pid/email/requestToken
. (#13188, #13563) - Add forgotten status to Room Details Admin API. (#13503)
- Add an experimental implementation for MSC3852 (Expose user agents on
Device
). (#13549) - Add
org.matrix.msc2716v4
experimental room version with updated content fields. Part of MSC2716 (Importing history). (#13551) - Add support for compression to federation responses. (#13537)
- Improve performance of sending messages in rooms with thousands of local users. (#13522, #13547)
Bugfixes
- Faster room joins: make
/joined_members
block whilst the room is partial stated. (#13514) - Fix a bug introduced in Synapse 1.21.0 where the
/event_reports
Admin API could return a total count which was larger than the number of results you can actually query for. (#13525) - Fix a bug introduced in Synapse 1.52.0 where sending server notices fails if
max_avatar_size
orallowed_avatar_mimetypes
is set and notsystem_mxid_avatar_url
. (#13566) - Fix a bug where the
opentracing.force_tracing_for_users
config option would not apply to/sendToDevice
and/keys/upload
requests. (#13574)
Improved Documentation
- Add
openssl
example for generating registration HMAC digest. (#13472) - Tidy up Synapse's README. (#13491)
- Document that event purging related to the
redaction_retention_period
config option is executed only every 5 minutes. (#13492) - Add a warning to retention documentation regarding the possibility of database corruption. (#13497)
- Document that the
DOCKER_BUILDKIT=1
flag is needed to build the docker image. (#13515) - Add missing links in
user_consent
section of configuration manual. (#13536) - Fix the doc and some warnings that were referring to the nonexistent
custom_templates_directory
setting (instead ofcustom_template_directory
). (#13538)
Deprecations and Removals
- Remove the ability for homeservers to delegate email ownership verification
and password reset confirmation to identity servers. See upgrade notes for more details.
Internal Changes
Faster room joins
- Update the rejected state of events during de-partial-stating. (#13459)
- Avoid blocking lazy-loading
/sync
s during partial joins due to remote memberships. Pull remote memberships from auth events instead of the room state. (#13477) - Refuse to start when faster joins is enabled on a deployment with workers, since worker configurations are not currently supported. (#13531)
Metrics and tracing
- Allow use of both
@trace
and@tag_args
stacked on the same function. (#13453) - Instrument the federation/backfill part of
/messages
for understandable traces in Jaeger. (#13489) - Instrument
FederationStateIdsServlet
(/state_ids
) for understandable traces in Jaeger. (#13499, #13554) - Track HTTP response times over 10 seconds from
/messages
(synapse_room_message_list_rest_servlet_response_time_seconds
). (#13533) - Add metrics to track how the rate limiter is affecting requests (sleep/reject). (#13534, #13541)
- Add metrics to time how long it takes us to do backfill processing (
synapse_federation_backfill_processing_before_time_seconds
,synapse_federation_backfill_processing_after_time_seconds
). (#13535, #13584) - Add metrics to track rate limiter queue timing (
synapse_rate_limit_queue_wait_time_seconds
). (#13544) - Update metrics to track
/messages
response time by room size. (#13545)
Everything else
- Refactor methods in
synapse.api.auth.Auth
to useRequester
objects everywhere instead of user IDs. (#13024) - Clean-up tests for notifications. (#13471)
- Add some miscellaneous comments to document sync, especially around
compute_state_delta
. (#13474) - Use literals in place of
HTTPStatus
constants in tests. (#13479, #13488) - Add comments about how event push actions are rotated. (#13485)
- Modify HTML template content to better support mobile devices' screen sizes. (#13493)
- Add a linter script which will reject non-strict types in Pydantic models. (#13502)
- Reduce the number of tests using legacy TCP replication. (#13543)
- Allow specifying additional request fields when using the
HomeServerTestCase.login
helper method. (#13549) - Make
HomeServerTestCase
load any configured homeserver modules automatically. (#13558)