Releases: matrix-org/sydent
v2.6.1
No significant changes since 2.6.0; the only changes are to CI config, which should fix
an error in building the Docker image.
As mentioned in the 2.6.0 release notes, Sydent will soon be forked by Element
under an AGPLv3.0 licence (with CLA, for proprietary dual licensing). We expect
this to be the last release of Sydent under the current Apache 2 licence.
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 in Sydent's changelog, but we are
striving to make this as seamless as possible.
Internal Changes
v2.6.0
Sydent will soon be forked by Element under an AGPLv3.0 licence (with CLA, for
proprietary dual licensing). We expect this to be the last release of Sydent
under the current Apache 2 licence.
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 in Sydent's changelog, but we are
striving to make this as seamless as possible.
Features
Improved Documentation
- Fix installation documentation for Debian based systems. (#549)
v2.5.6
Sydent 2.5.6 (2023-07-31)
Bugfixes
- Fix a long-standing issue where Sydent would not verify the configured SMTP server's certificates. See GHSA-p6hw-wm59-3q5q and CVE-2023-38686. Reported by Martin Schobert, Pentagrid AG. (#574)
v2.5.5
v2.5.4
v2.5.3
Sydent 2.5.3 (2023-03-02)
Features
- Add ratelimiting to MSISDN request token endpoint. (#521, #522)
- Add
email.third_party_invite_homeserver_blocklist
andemail.third_party_invite_room_blocklist
config options to block invites from a list of homeservers or for a list of rooms. (#530) - Support Matrix v1.1. (#542)
Bugfixes
- Respond with a 429 instead of 500 when exceeding invite rate limit. (#529)
- Fix a bug where Sydent would not retry attempts to inform homeservers of a successful bind after an initial failure. (#552)
Updates to the Docker image
- Add prometheus-client and sentry-sdk into the Docker image. (#519)
Improved Documentation
- Document a way to serve identity service APIs over HTTPS. (#518)
Internal Changes
- Update README to describe how to install from source with poetry. (#505)
- Fix a typechecking error introduced in #501. (#506)
- Ensure CI runs tests on main branch. (#507)
- Bump twisted from 22.1.0 to 22.2.0. (#508)
- Add a 'tests-done' Github Actions job. (#509)
- Allow the newsfile job to be skipped. (#514)
- Remove support for the unstable identifier from MSC3288. (#515)
- Avoid spurious warnings in tests. (#516)
- (Dependabot) Bump Twisted to 22.4.0. (#517)
- Add ratelimiting to email sending. (#526)
- Add some prometheus metrics and make
prometheus_client
dependency mandatory. (#527) - Limit length of room names in third party invites. (#528)
- Limit length of sender display name in third party invites. (#531)
- Add a config option to drop emails if user-supplied content contains a given keyword. (#535, #536)
- (Dependabot) Bump certifi to 2022.12.7. (#537)
- Fix a typo to properly allow the newsfile job to be skipped. (#538)
- Refactor creation of servlets. (#541)
- Use ruff instead of flake8. (#543, #544)
- Don't block invites containing
web_client_location
when using "http" in the keyword block list. (#545) - Build using Poetry 1.2.2, for better dependabot compatability. (#548)
v2.5.2: Sydent 2.5.2 (2022-04-04)
This release of Sydent is the first to use poetry
to maintain a locked set of dependency versions. The use of poetry
is optional: administrators can continue to install from a wheel or using their own virtualenv.
Bugfixes
- Fix a bug where federation requests would fail early if a
.well-known/matrix/server
response contains an invalid type form.server
. Instead, try finding an SRV record, as mandated by the spec. (#473) - Fix a bug in the casefolding script that would cause some deletions to be skipped if e-mail sending was enabled. (#489)
- Fix a bug introduced in Sydent 2.4.6 where errors communicating with OpenMarket's SMS API would be logged as successes, and all successes would be logged twice. (#490)
Improved Documentation
- Added a link to
#sydent:matrix.org
in the README so users know where to discuss sydent. Contributed by @clmnin. (#479)
Internal Changes
- Add a test to ensure that a bad response from the OpenMarket SMS API raises an exception. (#471)
- Add missing dependencies to
setup.py
. (#474) - Cache the lookup pepper in the
HashingMetadataStore
. (#475, #477) - Update type annotations to ensure Sydent typechecks with recent mypy versions. (#481)
- Fix type errors caused by an update to PyNaCl. (#484)
- Add aggressive logging to
casefoldb.py
for debugging purposes. (#486) - Use poetry to manage dependencies. (#488)
- Build and publish a docker image on the
main
branch and tagged releases. (#492) - Update Dockerfile to use a fixed poetry environment, rather than
pip install
ing the latest dependencies. (#493) - Bump twisted from 21.7.0 to 22.1.0. (#495)
- Use matrix-common util to get a git-aware version number. (#497)
- Publish releases to PyPI using GitHub Actions. (#499)
- Mark
sentry-sdk
andprometheus-client
as optional dependencies. (#501) - Add poetry entrypoint for running sydent. (#502)
v2.5.1
Sydent 2.5.1 (2021-11-17)
This release fixes a bug in handling verification for third party IDs if requested via the deprecated /api/v1/
endpoint. The other changes are all designed to improve error handling, and make Sydent's logging have a higher signal-to-noise ratio.
Features
- Return HTTP 400 Bad Request rather than HTTP 500 Internal Server Error if
/store-invite
is given an invalid email address. (#464)
Bugfixes
- Fix a bug introduced in Sydent 2.5.0 where requests to validate an email or phone number would fail with an HTTP 500 Internal Server Error if arguments were given as a query string or as a www-form-urlencoded body. (#461, #462)
Internal Changes
- Improve exception logging in
asyncjsonwrap
for better Sentry reports. (#455) - Handle federation request failures in
/request
explicitly, to reduce Sentry noise. (#456) - Log a warning (not an error) when we refuse to send an SMS to an unsupported country. (#459)
- Demote a failure to parse JSON from homeservers in
/register
from an error to a warning. (#463) - Handle errors to contact homeservers in
/unbind
. This returns a better error message and reduces Sentry spam. (#466) - Log failures to send SMS as exceptions, not errors (to better debug in Sentry). (#467)
v2.5.0
Sydent 2.5.0 (2021-11-03)
This release deprecates .eml
templates in favour of Jinja 2 .eml.j2
templates. See the documentation for more details.
Features
Bugfixes
- Fix a bug which could cause SMS sending to fail silently. (#412)
- Fix a bug introduced in v2.4.0 that caused association unbindings to fail with an internal server error. (#397)
- Fix an issue which could cause new local associations to be replicated multiple times to peers. (#400)
- Fix an issue where
obey_x_forwarded_for
was not being honoured. (#403) - Fix misleading logging and potential TypeErrors related to replication ports in Sydent's database. (#420)
- Fix a bug introduced in v2.0.0 where requesting
GET
from/identity/api/v1/validate/msisdn/submitToken
or/identity/v2/validate/msisdn/submitToken
would fail with an internal server error. (#445) - Fix
/v2/account/logout
to return HTTP 400 BAD REQUEST instead of 200 OK if a token was not provided. (#447) - Fix a long-standing spec compliance bug where the response to
POST /identity/{api/v1,v2}/3pid/unbind
wasnull
, not{}
. (#449)
Improved Documentation
- Fix the documentation around the command line arguments for the email address migration script. (#392)
- Add documentation on writing templates. Deprecate .eml templates. (#395)
Internal Changes
- Improve type annotations throughout Sydent. Sydent now passes
mypy --strict
. (#414 and others). - Extend the changelog check so that it checks for the correct pull request number being used. (#382)
- Move the configuration file handling code into a separate module. (#385, #405)
- Add a primitive contributing guide and tweak the pull request template. (#393)
- Run mypy on the sydent package as part of CI. (#416)
- Configure @matrix-org/synapse-core to be the code owner for the repository. (#436)
- Run linters over stub files. (#441, #450)
- Include Sydent's version number (and git commit hash if available) when reporting to Sentry. (#453, #454)