Synapse 1.47.0 (2021-11-17)
No significant changes since 1.47.0rc3.
Synapse 1.47.0rc3 (2021-11-16)
Bugfixes
- Fix a bug introduced in 1.47.0rc1 which caused worker processes to not halt startup in the presence of outstanding database migrations. (#11346)
- Fix a bug introduced in 1.47.0rc1 which prevented the 'remove deleted devices from
device_inbox
column' background process from running when updating from a recent Synapse version. (#11303, #11353)
Synapse 1.47.0rc2 (2021-11-10)
This fixes an issue with publishing the Debian packages for 1.47.0rc1.
It is otherwise identical to 1.47.0rc1.
Synapse 1.47.0rc1 (2021-11-09)
Deprecations and Removals
- The
user_may_create_room_with_invites
module callback is now deprecated. Please refer to the upgrade notes for more information. (#11206) - Remove deprecated admin API to delete rooms (
POST /_synapse/admin/v1/rooms/<room_id>/delete
). (#11213)
Features
- Advertise support for Client-Server API r0.6.1. (#11097)
- Add search by room ID and room alias to the List Room admin API. (#11099)
- Add an
on_new_event
third-party rules callback to allow Synapse modules to act after an event has been sent into a room. (#11126) - Add a module API method to update a user's membership in a room. (#11147)
- Add metrics for thread pool usage. (#11178)
- Support the stable room type field for MSC3288. (#11187)
- Add a module API method to retrieve the current state of a room. (#11204)
- Calculate a default value for
public_baseurl
based onserver_name
. (#11210) - Add support for serving
/.well-known/matrix/server
files, to redirect federation traffic to port 443. (#11211) - Add admin APIs to pause, start and check the status of background updates. (#11263)
Bugfixes
- Fix a long-standing bug which allowed hidden devices to receive to-device messages, resulting in unnecessary database bloat. (#10097)
- Fix a long-standing bug where messages in the
device_inbox
table for deleted devices would persist indefinitely. Contributed by @dklimpel and @JohannesKleine. (#10969, #11212) - Do not accept events if a third-party rule
check_event_allowed
callback raises an exception. (#11033) - Fix long-standing bug where verification requests could fail in certain cases if a federation whitelist was in place but did not include your own homeserver. (#11129)
- Allow an empty list of
state_events_at_start
to be sent when using the MSC2716/batch_send
endpoint and the author of the historical messages is already part of the current room state at the given?prev_event_id
. (#11188) - Fix a bug introduced in Synapse 1.45.0 which prevented the
synapse_review_recent_signups
script from running. Contributed by @samuel-p. (#11191) - Delete
to_device
messages for hidden devices that will never be read, reducing database size. (#11199) - Fix a long-standing bug wherein a missing
Content-Type
header when downloading remote media would cause Synapse to throw an error. (#11200) - Fix a long-standing bug which could result in serialization errors and potentially duplicate transaction data when sending ephemeral events to application services. Contributed by @Fizzadar at Beeper. (#11207)
- Fix a bug introduced in Synapse 1.35.0 which made it impossible to join rooms that return a
send_join
response containing floats. (#11217) - Fix long-standing bug where cross signing keys were not included in the response to
/r0/keys/query
the first time a remote user was queried. (#11234) - Fix a long-standing bug where all requests that read events from the database could get stuck as a result of losing the database connection. (#11240)
- Fix a bug preventing Synapse from being rolled back to an earlier version when using workers. (#11255, #11276)
- Fix a bug introduced in Synapse 1.37.1 which caused a remote event being processed by a worker to not get processed on restart if the worker was killed. (#11262)
- Only allow old Element/Riot Android clients to send read receipts without a request body. All other clients must include a request body as required by the specification. Contributed by @rogersheu. (#11157)
Updates to the Docker image
- Avoid changing user ID when started as a non-root user, and no explicit
UID
is set. (#11209)
Improved Documentation
- Improve example HAProxy config in the docs to properly handle HTTP
Host
headers with port information. This is required for federation over port 443 to work correctly. (#11128) - Add documentation for using Authentik as an OpenID Connect Identity Provider. Contributed by @samip5. (#11151)
- Clarify lack of support for Windows. (#11198)
- Improve code formatting and fix a few typos in docs. Contributed by @sumnerevans at Beeper. (#11221)
- Add documentation for using LemonLDAP as an OpenID Connect Identity Provider. Contributed by @l00ptr. (#11257)
Internal Changes
- Add type annotations for the
log_function
decorator. (#10943) - Add type hints to
synapse.events
. (#11098) - Remove and document unnecessary
RoomStreamToken
checks in application service ephemeral event code. (#11137) - Add type hints so that
synapse.http
passesmypy
checks. (#11164) - Update scripts to pass Shellcheck lints. (#11166)
- Add knock information in admin export. Contributed by Rafael Gonçalves. (#11171)
- Add tests to check that
ClientIpStore.get_last_client_ip_by_device
andget_user_ip_and_agents
combine database and in-memory data correctly. (#11179) - Refactor
Filter
to check different fields depending on the data type. (#11194) - Improve type hints for the relations datastore. (#11205)
- Replace outdated links in the pull request checklist with links to the rendered documentation. (#11225)
- Fix a bug in unit test
test_block_room_and_not_purge
. (#11226) - In
ObservableDeferred
, run observers in the order they were registered. (#11229) - Minor speed up to start up times and getting updates for groups by adding missing index to
local_group_updates.stream_id
. (#11231) - Add
twine
andtowncrier
as dev dependencies, as they're used by the release script. (#11233) - Allow
stream_writers.typing
config to be a list of one worker. (#11237) - Remove debugging statement in tests. (#11239)
- Fix MSC2716 historical messages backfilling in random order on remote homeservers. (#11244)
- Add an additional test for the
cachedList
method decorator. (#11246) - Make minor correction to the type of
auth_checkers
callbacks. (#11253) - Clean up trivial aspects of the Debian package build tooling. (#11269, #11273)
- Blacklist new SyTest that checks that key uploads are valid pending the validation being implemented in Synapse. (#11270)