Synapse v1.22.0.rc1 Release Notes

Release Date: 2020-10-22 // over 3 years ago
  • ๐Ÿ”‹ Features

    • โž• Add a configuration option for always using the "userinfo endpoint" for OpenID Connect. This fixes support for some identity providers, e.g. GitLab. Contributed by Benjamin Koch. (#7658)
    • โž• Add ability for ThirdPartyEventRules modules to query and manipulate whether a room is in the public rooms directory. (#8292, #8467)
    • โž• Add support for olm fallback keys (MSC2732). (#8312, #8501)
    • โž• Add support for running background tasks in a separate worker process. (#8369, #8458, #8489, #8513, #8544, #8599)
    • โž• Add support for device dehydration (MSC2697). (#8380)
    • โž• Add support for MSC2409, which allows sending typing, read receipts, and presence events to appservices. (#8437, #8590)
    • ๐Ÿ”„ Change default room version to "6", per MSC2788. (#8461)
    • โž• Add the ability to send non-membership events into a room via the ModuleApi. (#8479)
    • 0๏ธโƒฃ Increase default upload size limit from 10M to 50M. Contributed by @Akkowicz. (#8502)
    • โž• Add support for modifying event content in ThirdPartyRules modules. (#8535, #8564)

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix a longstanding bug where invalid ignored users in account data could break clients. (#8454)
    • ๐Ÿ›  Fix a bug where backfilling a room with an event that was missing the redacts field would break. (#8457)
    • Don't attempt to respond to some requests if the client has already disconnected. (#8465)
    • ๐Ÿ›  Fix message duplication if something goes wrong after persisting the event. (#8476)
    • ๐Ÿ›  Fix incremental sync returning an incorrect prev_batch token in timeline section, which when used to paginate returned events that were included in the incremental sync. Broken since v0.16.0. (#8486)
    • ๐Ÿ”ฆ Expose the uk.half-shot.msc2778.login.application_service to clients from the login API. This feature was added in v1.21.0, but was not exposed as a potential login flow. (#8504)
    • Fix error code for /profile/{userId}/displayname to be M_BAD_JSON. (#8517)
    • ๐Ÿ›  Fix a bug introduced in v1.7.0 that could cause Synapse to insert values from non-state m.room.retention events into the room_retention database table. (#8527)
    • ๐Ÿ›  Fix not sending events over federation when using sharded event writers. (#8536)
    • ๐Ÿ›  Fix a long standing bug where email notifications for encrypted messages were blank. (#8545)
    • ๐Ÿ›  Fix increase in the number of There was no active span... errors logged when using OpenTracing. (#8567)
    • Fix a bug that prevented errors encountered during execution of the synapse_port_db from being correctly printed. (#8585)
    • ๐Ÿ›  Fix appservice transactions to only include a maximum of 100 persistent and 100 ephemeral events. (#8606)

    โšก๏ธ Updates to the Docker image

    • โž• Added multi-arch support (arm64,arm/v7) for the docker images. Contributed by @maquis196. (#7921)
    • โž• Add support for passing commandline args to the synapse process. Contributed by @samuel-p. (#8390)

    ๐Ÿ‘Œ Improved Documentation

    • โšก๏ธ Update the directions for using the manhole with coroutines. (#8462)
    • ๐Ÿ‘Œ Improve readme by adding new shield.io badges. (#8493)
    • โž• Added note about docker in manhole.md regarding which ip address to bind to. Contributed by @Maquis196. (#8526)
    • Document the new behaviour of the allowed_lifetime_min and allowed_lifetime_max settings in the room retention configuration. (#8529)

    ๐Ÿ—„ Deprecations and Removals

    • Drop unused device_max_stream_id table. (#8589)

    Internal Changes

    • Check for unreachable code with mypy. (#8432)
    • โž• Add unit test for event persister sharding. (#8433)
    • ๐Ÿ‘ Allow events to be sent to clients sooner when using sharded event persisters. (#8439, #8488, #8496, #8499)
    • ๐Ÿ”ง Configure public_baseurl when using demo scripts. (#8443)
    • โž• Add SQL logging on queries that happen during startup. (#8448)
    • โœ… Speed up unit tests when using PostgreSQL. (#8450)
    • โœ‚ Remove redundant database loads of stream_ordering for events we already have. (#8452)
    • โฌ‡๏ธ Reduce inconsistencies between codepaths for membership and non-membership events. (#8463)
    • Combine SpamCheckerApi with the more generic ModuleApi. (#8464)
    • โž• Additional testing for ThirdPartyEventRules. (#8468)
    • โž• Add -d option to ./scripts-dev/lint.sh to lint files that have changed since the last git commit. (#8472)
    • โœ… Unblacklist some sytests. (#8474)
    • ๐ŸŒฒ Include the log level in the phone home stats. (#8477)
    • โœ‚ Remove outdated sphinx documentation, scripts and configuration. (#8480)
    • ๐Ÿ”Œ Clarify error message when plugin config parsers raise an error. (#8492)
    • โœ‚ Remove the deprecated Handlers object. (#8494)
    • ๐Ÿ›  Fix a threadsafety bug in unit tests. (#8497)
    • Add user agent to user_daily_visits table. (#8503)
    • โž• Add type hints to various parts of the code base. (#8407, #8505, #8507, #8547, #8562, #8609)
    • โœ‚ Remove unused code from the test framework. (#8514)
    • ๐Ÿ›  Apply some internal fixes to the HomeServer class to make its code more idiomatic and statically-verifiable. (#8515)
    • Factor out common code between RoomMemberHandler._locally_reject_invite and EventCreationHandler.create_event. (#8537)
    • ๐Ÿ‘Œ Improve database performance by executing more queries without starting transactions. (#8542)
    • ๐Ÿ“‡ Rename Cache to DeferredCache, to better reflect its purpose. (#8548)
    • ๐Ÿšš Move metric registration code down into LruCache. (#8561, #8591)
    • Replace DeferredCache with the lighter-weight LruCache where possible. (#8563)
    • โž• Add virtualenv-generated folders to .gitignore. (#8566)
    • โž• Add get_immediate method to DeferredCache. (#8568)
    • ๐Ÿ›  Fix mypy not properly checking across the codebase, additionally, fix a typing assertion error in handlers/auth.py. (#8569)
    • ๐Ÿ›  Fix synmark benchmark runner. (#8571)
    • Modify DeferredCache.get() to return Deferreds instead of ObservableDeferreds. (#8572)
    • Adjust a protocol-type definition to fit sqlite3 assertions. (#8577)
    • ๐Ÿ‘Œ Support macOS on the synmark benchmark runner. (#8578)
    • โšก๏ธ Update mypy static type checker to 0.790. (#8583, #8600)
    • ๐ŸŒฒ Re-organize the structured logging code to separate the TCP transport handling from the JSON formatting. (#8587)
    • โœ‚ Remove extraneous unittest logging decorators from unit tests. (#8592)
    • Minor optimisations in caching code. (#8593, #8594)

    Synapse 1.21.2 (2020-10-15)

    ๐Ÿ›  Debian packages and Docker images have been rebuilt using the latest versions of dependency libraries, including authlib 0.15.1. Please see bugfixes below.

    ๐Ÿ”’ Security advisory

    • HTML pages served via Synapse were vulnerable to cross-site scripting (XSS) attacks. All server administrators are encouraged to upgrade. (#8444) (CVE-2020-26891)

    This fix was originally included in v1.21.0 but was missing a security advisory.

    This was reported by Denis Kasak.

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix rare bug where sending an event would fail due to a racey assertion. (#8530)
    • โšก๏ธ An updated version of the authlib dependency is included in the Docker and Debian images to fix an issue using OpenID Connect. See #8534 for details.

    Synapse 1.21.1 (2020-10-13)

    ๐Ÿš€ This release fixes a regression in v1.21.0 that prevented debian packages from being built. It is otherwise identical to v1.21.0.

    Synapse 1.21.0 (2020-10-12)

    No significant changes since v1.21.0rc3.

    As noted in ๐Ÿš€ v1.20.0, ๐Ÿš€ a future release will drop support for accessing Synapse's ๐Ÿ“„ Admin API under the /_matrix/client/* endpoint prefixes. At that point, the Admin API will only be accessible under /_synapse/admin.