Richard van der Hoff
3070af4809
remote join processing: get create event from state, not auth_chain ( #12039 )
...
A follow-up to #12005 , in which I apparently missed that there are a bunch of other places that assume the create event is in the auth chain.
2022-02-21 19:27:35 +00:00
Richard van der Hoff
a85dde3445
Minor typing fixes ( #12034 )
...
These started failing in
https://github.com/matrix-org/synapse/pull/12031 ... I'm a bit mystified by how
they ever worked.
2022-02-21 18:37:04 +00:00
Dirk Klimpel
7c82da27aa
Add type hints to synapse/storage/databases/main
( #11984 )
2022-02-21 16:03:06 +00:00
Travis Ralston
99f6d79fe1
Advertise Matrix 1.2 in /_matrix/client/versions
( #12022 )
...
Co-authored-by: Patrick Cloke <patrickc@matrix.org>
2022-02-21 08:59:29 -07:00
Patrick Cloke
444b04058b
Document why auth providers aren't validated in the admin API. ( #12004 )
...
Since it is reasonable to give a future or past auth provider,
which might not be in the current configuration.
2022-02-18 17:24:25 +00:00
reivilibre
284ea2025a
Track and deduplicate in-flight requests to _get_state_for_groups
. ( #10870 )
...
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2022-02-18 17:23:31 +00:00
Sean Quah
e6acd3cf4f
Upgrade mypy to version 0.931 ( #12030 )
...
Upgrade mypy to 0.931, mypy-zope to 0.3.5 and fix new complaints.
2022-02-18 15:57:26 +00:00
reivilibre
eb609c65d0
Fix bug in StateFilter.return_expanded()
and add some tests. ( #12016 )
2022-02-18 14:54:31 +00:00
Travis Ralston
31a298fec7
Advertise Matrix 1.1 in /_matrix/client/versions
( #12020 )
2022-02-18 07:49:53 -05:00
Travis Ralston
19bd9cff1a
Use stable MSC3069 is_guest
flag on /whoami
. ( #12021 )
...
Keeping backwards compatibility with the unstable flag for now.
2022-02-18 07:48:23 -05:00
Eric Eastwood
5a6911598a
Fix 500 error with Postgres when looking backwards with the MSC3030 /timestamp_to_event
endpoint ( #12024 )
2022-02-18 12:11:18 +00:00
Brendan Abolivier
40e256e7aa
Update the olddeps CI check to use an old version of markupsafe ( #12025 )
2022-02-18 11:38:48 +00:00
Erik Johnston
3f4d25a48b
Remove unstable MSC3283 flags ( #12018 )
...
Fixes #11962
2022-02-17 17:22:55 +00:00
Brendan Abolivier
707049c6ff
Allow modules to set a display name on registration ( #12009 )
...
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2022-02-17 16:54:16 +00:00
Richard van der Hoff
da0e9f8efd
Faster joins: parse msc3706 fields in send_join response ( #12011 )
...
Part of my work on #11249 : add code to handle the new fields added in MSC3706.
2022-02-17 16:11:59 +00:00
Richard van der Hoff
6127c4b9f1
Configure tox
to use venv
( #12015 )
...
As the comment says, virtualenv is a pile of fail.
2022-02-17 15:55:14 +00:00
Patrick Cloke
e69f8f0a8e
Remove support for the legacy structured logging configuration. ( #12008 )
2022-02-17 13:32:18 +00:00
Richard van der Hoff
696acd3515
send_join
response: get create event from state
, not auth_chain
(#12005 )
...
msc3706 proposes changing the `/send_join` response:
> Any events returned within `state` can be omitted from `auth_chain`.
Currently, we rely on `m.room.create` being returned in `auth_chain`, but since
the `m.room.create` event must necessarily be part of the state, the above
change will break this.
In short, let's look for `m.room.create` in `state` rather than `auth_chain`.
2022-02-17 11:59:26 +00:00
lukasdenk
4077177390
Prevent duplicate push notifications for room reads ( #11835 )
2022-02-17 10:23:54 +00:00
David Robertson
73fc488783
Explain the meaning of spam checker callbacks' return values ( #12003 )
...
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2022-02-16 12:25:43 +00:00
Brendan Abolivier
130fd45393
Limit concurrent AS joins ( #11996 )
...
Initially introduced in matrix-org-hotfixes by e5537cf
(and tweaked by later commits).
Fixes #11995
See also #4826
2022-02-16 11:16:48 +00:00
Erik Johnston
2b5643b3af
Optimise calculating device_list changes in /sync
. ( #11974 )
...
For users with large accounts it is inefficient to calculate the set of
users they share a room with (and takes a lot of space in the cache).
Instead we can look at users whose devices have changed since the last
sync and check if they share a room with the syncing user.
2022-02-15 15:01:00 +00:00
Richard van der Hoff
bab2394aa9
_auth_and_persist_outliers
: drop events we have already seen (#11994 )
...
We already have two copies of this code, in 2/3 of the callers of
`_auth_and_persist_outliers`. Before I add a third, let's push it down.
2022-02-15 14:33:28 +00:00
Erik Johnston
0dbbe33a65
Track cache invalidations ( #12000 )
...
Currently we only track evictions due to size or time constraints.
2022-02-15 14:31:04 +00:00
Erik Johnston
dc9fe61050
Fix incorrect get_rooms_for_user
for remote user ( #11999 )
...
When the server leaves a room the `get_rooms_for_user` cache is not
correctly invalidated for the remote users in the room. This means that
subsequent calls to `get_rooms_for_user` for the remote users would
incorrectly include the room (it shouldn't be included because the
server no longer knows anything about the room).
2022-02-15 14:26:28 +00:00
Richard van der Hoff
5598556b77
Docker: remove VOLUME
directive ( #11997 )
...
The driver for this is to stop Complement complaining about it, but as far as I can tell it was pointless and needed to go away anyway.
I'm a bit unclear about what exactly VOLUME does, but I think what it means is that, if you don't override it with an explicit -v argument, then docker run will create a temporary volume, and copy things into it. The temporary volume is then deleted when the container finishes.
That only sounds useful if your image has something to copy into it (otherwise you may as well just use the default root filesystem), and our image notably doesn't copy anything into /data.
So... this wasn't doing anything, except annoying Complement?
2022-02-15 13:59:15 +00:00
Patrick Cloke
e44f91d678
Refactor search code to reduce function size. ( #11991 )
...
Splits the search code into a few logical functions instead of a single
unreadable function.
There are also a few additional changes for readability.
After refactoring it was clear to see there were some unused and
unnecessary variables, which were simplified.
2022-02-15 13:47:05 +00:00
Patrick Cloke
45f45404de
Fix incorrect thread summaries when the latest event is edited. ( #11992 )
...
If the latest event in a thread was edited than the original
event content was included in bundled aggregation for
threads instead of the edited event content.
2022-02-15 08:26:57 -05:00
Sean Quah
85e24d9d2b
Synapse 1.53.0rc1 (2022-02-15)
...
==============================
Features
--------
- Add experimental support for sending to-device messages to application services, as specified by [MSC2409](https://github.com/matrix-org/matrix-doc/pull/2409 ). ([\#11215](https://github.com/matrix-org/synapse/issues/11215 ), [\#11966](https://github.com/matrix-org/synapse/issues/11966 ))
- Remove account data (including client config, push rules and ignored users) upon user deactivation. ([\#11655](https://github.com/matrix-org/synapse/issues/11655 ))
- Experimental support for [MSC3666](https://github.com/matrix-org/matrix-doc/pull/3666 ): including bundled aggregations in server side search results. ([\#11837](https://github.com/matrix-org/synapse/issues/11837 ))
- Enable cache time-based expiry by default. The `expiry_time` config flag has been superseded by `expire_caches` and `cache_entry_ttl`. ([\#11849](https://github.com/matrix-org/synapse/issues/11849 ))
- Add a callback to allow modules to allow or forbid a 3PID (email address, phone number) from being associated to a local account. ([\#11854](https://github.com/matrix-org/synapse/issues/11854 ))
- Stabilize support and remove unstable endpoints for [MSC3231](https://github.com/matrix-org/matrix-doc/pull/3231 ). Clients must switch to the stable identifier and endpoint. See the [upgrade notes](https://matrix-org.github.io/synapse/develop/upgrade#stablisation-of-msc3231 ) for more information. ([\#11867](https://github.com/matrix-org/synapse/issues/11867 ))
- Allow modules to retrieve the current instance's server name and worker name. ([\#11868](https://github.com/matrix-org/synapse/issues/11868 ))
- Use a dedicated configurable rate limiter for 3PID invites. ([\#11892](https://github.com/matrix-org/synapse/issues/11892 ))
- Support the stable API endpoint for [MSC3283](https://github.com/matrix-org/matrix-doc/pull/3283 ): new settings in `/capabilities` endpoint. ([\#11933](https://github.com/matrix-org/synapse/issues/11933 ), [\#11989](https://github.com/matrix-org/synapse/issues/11989 ))
- Support the `dir` parameter on the `/relations` endpoint, per [MSC3715](https://github.com/matrix-org/matrix-doc/pull/3715 ). ([\#11941](https://github.com/matrix-org/synapse/issues/11941 ))
- Experimental implementation of [MSC3706](https://github.com/matrix-org/matrix-doc/pull/3706 ): extensions to `/send_join` to support reduced response size. ([\#11967](https://github.com/matrix-org/synapse/issues/11967 ))
Bugfixes
--------
- Fix [MSC2716](https://github.com/matrix-org/matrix-doc/pull/2716 ) historical messages backfilling in random order on remote homeservers. ([\#11114](https://github.com/matrix-org/synapse/issues/11114 ))
- Fix a bug introduced in Synapse 1.51.0 where incoming federation transactions containing at least one EDU would be dropped if debug logging was enabled for `synapse.8631_debug`. ([\#11890](https://github.com/matrix-org/synapse/issues/11890 ))
- Fix a long-standing bug where some unknown endpoints would return HTML error pages instead of JSON `M_UNRECOGNIZED` errors. ([\#11930](https://github.com/matrix-org/synapse/issues/11930 ))
- Implement an allow list of content types for which we will attempt to preview a URL. This prevents Synapse from making useless longer-lived connections to streaming media servers. ([\#11936](https://github.com/matrix-org/synapse/issues/11936 ))
- Fix a long-standing bug where pagination tokens from `/sync` and `/messages` could not be provided to the `/relations` API. ([\#11952](https://github.com/matrix-org/synapse/issues/11952 ))
- Require that modules register their callbacks using keyword arguments. ([\#11975](https://github.com/matrix-org/synapse/issues/11975 ))
- Fix a long-standing bug where `M_WRONG_ROOM_KEYS_VERSION` errors would not include the specced `current_version` field. ([\#11988](https://github.com/matrix-org/synapse/issues/11988 ))
Improved Documentation
----------------------
- Fix typo in User Admin API: unpind -> unbind. ([\#11859](https://github.com/matrix-org/synapse/issues/11859 ))
- Document images returned by the User List Media Admin API can include those generated by URL previews. ([\#11862](https://github.com/matrix-org/synapse/issues/11862 ))
- Remove outdated MSC1711 FAQ document. ([\#11907](https://github.com/matrix-org/synapse/issues/11907 ))
- Correct the structured logging configuration example. Contributed by Brad Jones. ([\#11946](https://github.com/matrix-org/synapse/issues/11946 ))
- Add information on the Synapse release cycle. ([\#11954](https://github.com/matrix-org/synapse/issues/11954 ))
- Fix broken link in the README to the admin API for password reset. ([\#11955](https://github.com/matrix-org/synapse/issues/11955 ))
Deprecations and Removals
-------------------------
- Drop support for `webclient` listeners and configuring `web_client_location` to a non-HTTP(S) URL. Deprecated configurations are a configuration error. ([\#11895](https://github.com/matrix-org/synapse/issues/11895 ))
- Remove deprecated `user_may_create_room_with_invites` spam checker callback. See the [upgrade notes](https://matrix-org.github.io/synapse/latest/upgrade.html#removal-of-user_may_create_room_with_invites ) for more information. ([\#11950](https://github.com/matrix-org/synapse/issues/11950 ))
- No longer build `.deb` packages for Ubuntu 21.04 Hirsute Hippo, which has now EOLed. ([\#11961](https://github.com/matrix-org/synapse/issues/11961 ))
Internal Changes
----------------
- Enhance user registration test helpers to make them more useful for tests involving application services and devices. ([\#11615](https://github.com/matrix-org/synapse/issues/11615 ), [\#11616](https://github.com/matrix-org/synapse/issues/11616 ))
- Improve performance when fetching bundled aggregations for multiple events. ([\#11660](https://github.com/matrix-org/synapse/issues/11660 ), [\#11752](https://github.com/matrix-org/synapse/issues/11752 ))
- Fix type errors introduced by new annotations in the Prometheus Client library. ([\#11832](https://github.com/matrix-org/synapse/issues/11832 ))
- Add missing type hints to replication code. ([\#11856](https://github.com/matrix-org/synapse/issues/11856 ), [\#11938](https://github.com/matrix-org/synapse/issues/11938 ))
- Ensure that `opentracing` scopes are activated and closed at the right time. ([\#11869](https://github.com/matrix-org/synapse/issues/11869 ))
- Improve opentracing for incoming federation requests. ([\#11870](https://github.com/matrix-org/synapse/issues/11870 ))
- Improve internal docstrings in `synapse.util.caches`. ([\#11876](https://github.com/matrix-org/synapse/issues/11876 ))
- Do not needlessly clear the `get_users_in_room` and `get_users_in_room_with_profiles` caches when any room state changes. ([\#11878](https://github.com/matrix-org/synapse/issues/11878 ))
- Convert `ApplicationServiceTestCase` to use `simple_async_mock`. ([\#11880](https://github.com/matrix-org/synapse/issues/11880 ))
- Remove experimental changes to the default push rules which were introduced in Synapse 1.19.0 but never enabled. ([\#11884](https://github.com/matrix-org/synapse/issues/11884 ))
- Disable coverage calculation for olddeps build. ([\#11888](https://github.com/matrix-org/synapse/issues/11888 ))
- Preparation to support sending device list updates to application services. ([\#11905](https://github.com/matrix-org/synapse/issues/11905 ))
- Add a test that checks users receive their own device list updates down `/sync`. ([\#11909](https://github.com/matrix-org/synapse/issues/11909 ))
- Run Complement tests sequentially. ([\#11910](https://github.com/matrix-org/synapse/issues/11910 ))
- Various refactors to the application service notifier code. ([\#11911](https://github.com/matrix-org/synapse/issues/11911 ), [\#11912](https://github.com/matrix-org/synapse/issues/11912 ))
- Tests: replace mocked `Authenticator` with the real thing. ([\#11913](https://github.com/matrix-org/synapse/issues/11913 ))
- Various refactors to the typing notifications code. ([\#11914](https://github.com/matrix-org/synapse/issues/11914 ))
- Use the proper type for the `Content-Length` header in the `UploadResource`. ([\#11927](https://github.com/matrix-org/synapse/issues/11927 ))
- Remove an unnecessary ignoring of type hints due to fixes in upstream packages. ([\#11939](https://github.com/matrix-org/synapse/issues/11939 ))
- Add missing type hints. ([\#11953](https://github.com/matrix-org/synapse/issues/11953 ))
- Fix an import cycle in `synapse.event_auth`. ([\#11965](https://github.com/matrix-org/synapse/issues/11965 ))
- Unpin `frozendict` but exclude the known bad version 2.1.2. ([\#11969](https://github.com/matrix-org/synapse/issues/11969 ))
- Prepare for rename of default Complement branch. ([\#11971](https://github.com/matrix-org/synapse/issues/11971 ))
- Fetch Synapse's version using a helper from `matrix-common`. ([\#11979](https://github.com/matrix-org/synapse/issues/11979 ))
-----BEGIN PGP SIGNATURE-----
iQGzBAABCgAdFiEEWMTnW8Z8khaaf90R+84KzgcyGG8FAmILmzYACgkQ+84Kzgcy
GG8e7gwAsbDeek7v14ezJwETabXpw957fOe2CVA9DfU1yrORrATy38dIe1ppbzEQ
OzSPehykBg7+z+eDRQ1b8tjfTfDlOSuBmjfBm1qdYYPTPwc1LP5K62uOG3QDbOVw
YlxNB21Yp3m+yhp4VhSZzx2b5H+noYyll9rlamQ1tW3EOruJEdwAXyhlXfx2azLC
qHVn1UF+q2htD65VaoF3XQSP6cmzWtEG7BFtmDCwIGCTdc+WENN9HJuWp1axwBs6
V6lVosiHxQzo38dk6ZYwsnHO5ObcuYsPzhuLgJVt9X9sE03YAXLknmQdizIJBy0f
nz1GESZ1osuokU8v88k5Y5Z5RiCeauD/75RdORk9070sPyedY2rFVdyWcq42pjpP
mWJ7DpQsGZQG5c2tPJTyfMpPg+KcXY02WpIvmUvced5iT/FGfCx7xSaA3JOsFrtp
2s8LWanaIKhU0XZ2MkXoH3ZdZPfQmzyVSCwIQOE04kio/3tmbRE90Fn1DAK9a+O6
WVOTWMGK
=8tcJ
-----END PGP SIGNATURE-----
Merge tag 'v1.53.0rc1' into develop
Synapse 1.53.0rc1 (2022-02-15)
==============================
Features
--------
- Add experimental support for sending to-device messages to application services, as specified by [MSC2409](https://github.com/matrix-org/matrix-doc/pull/2409 ). ([\#11215](https://github.com/matrix-org/synapse/issues/11215 ), [\#11966](https://github.com/matrix-org/synapse/issues/11966 ))
- Remove account data (including client config, push rules and ignored users) upon user deactivation. ([\#11655](https://github.com/matrix-org/synapse/issues/11655 ))
- Experimental support for [MSC3666](https://github.com/matrix-org/matrix-doc/pull/3666 ): including bundled aggregations in server side search results. ([\#11837](https://github.com/matrix-org/synapse/issues/11837 ))
- Enable cache time-based expiry by default. The `expiry_time` config flag has been superseded by `expire_caches` and `cache_entry_ttl`. ([\#11849](https://github.com/matrix-org/synapse/issues/11849 ))
- Add a callback to allow modules to allow or forbid a 3PID (email address, phone number) from being associated to a local account. ([\#11854](https://github.com/matrix-org/synapse/issues/11854 ))
- Stabilize support and remove unstable endpoints for [MSC3231](https://github.com/matrix-org/matrix-doc/pull/3231 ). Clients must switch to the stable identifier and endpoint. See the [upgrade notes](https://matrix-org.github.io/synapse/develop/upgrade#stablisation-of-msc3231 ) for more information. ([\#11867](https://github.com/matrix-org/synapse/issues/11867 ))
- Allow modules to retrieve the current instance's server name and worker name. ([\#11868](https://github.com/matrix-org/synapse/issues/11868 ))
- Use a dedicated configurable rate limiter for 3PID invites. ([\#11892](https://github.com/matrix-org/synapse/issues/11892 ))
- Support the stable API endpoint for [MSC3283](https://github.com/matrix-org/matrix-doc/pull/3283 ): new settings in `/capabilities` endpoint. ([\#11933](https://github.com/matrix-org/synapse/issues/11933 ), [\#11989](https://github.com/matrix-org/synapse/issues/11989 ))
- Support the `dir` parameter on the `/relations` endpoint, per [MSC3715](https://github.com/matrix-org/matrix-doc/pull/3715 ). ([\#11941](https://github.com/matrix-org/synapse/issues/11941 ))
- Experimental implementation of [MSC3706](https://github.com/matrix-org/matrix-doc/pull/3706 ): extensions to `/send_join` to support reduced response size. ([\#11967](https://github.com/matrix-org/synapse/issues/11967 ))
Bugfixes
--------
- Fix [MSC2716](https://github.com/matrix-org/matrix-doc/pull/2716 ) historical messages backfilling in random order on remote homeservers. ([\#11114](https://github.com/matrix-org/synapse/issues/11114 ))
- Fix a bug introduced in Synapse 1.51.0 where incoming federation transactions containing at least one EDU would be dropped if debug logging was enabled for `synapse.8631_debug`. ([\#11890](https://github.com/matrix-org/synapse/issues/11890 ))
- Fix a long-standing bug where some unknown endpoints would return HTML error pages instead of JSON `M_UNRECOGNIZED` errors. ([\#11930](https://github.com/matrix-org/synapse/issues/11930 ))
- Implement an allow list of content types for which we will attempt to preview a URL. This prevents Synapse from making useless longer-lived connections to streaming media servers. ([\#11936](https://github.com/matrix-org/synapse/issues/11936 ))
- Fix a long-standing bug where pagination tokens from `/sync` and `/messages` could not be provided to the `/relations` API. ([\#11952](https://github.com/matrix-org/synapse/issues/11952 ))
- Require that modules register their callbacks using keyword arguments. ([\#11975](https://github.com/matrix-org/synapse/issues/11975 ))
- Fix a long-standing bug where `M_WRONG_ROOM_KEYS_VERSION` errors would not include the specced `current_version` field. ([\#11988](https://github.com/matrix-org/synapse/issues/11988 ))
Improved Documentation
----------------------
- Fix typo in User Admin API: unpind -> unbind. ([\#11859](https://github.com/matrix-org/synapse/issues/11859 ))
- Document images returned by the User List Media Admin API can include those generated by URL previews. ([\#11862](https://github.com/matrix-org/synapse/issues/11862 ))
- Remove outdated MSC1711 FAQ document. ([\#11907](https://github.com/matrix-org/synapse/issues/11907 ))
- Correct the structured logging configuration example. Contributed by Brad Jones. ([\#11946](https://github.com/matrix-org/synapse/issues/11946 ))
- Add information on the Synapse release cycle. ([\#11954](https://github.com/matrix-org/synapse/issues/11954 ))
- Fix broken link in the README to the admin API for password reset. ([\#11955](https://github.com/matrix-org/synapse/issues/11955 ))
Deprecations and Removals
-------------------------
- Drop support for `webclient` listeners and configuring `web_client_location` to a non-HTTP(S) URL. Deprecated configurations are a configuration error. ([\#11895](https://github.com/matrix-org/synapse/issues/11895 ))
- Remove deprecated `user_may_create_room_with_invites` spam checker callback. See the [upgrade notes](https://matrix-org.github.io/synapse/latest/upgrade.html#removal-of-user_may_create_room_with_invites ) for more information. ([\#11950](https://github.com/matrix-org/synapse/issues/11950 ))
- No longer build `.deb` packages for Ubuntu 21.04 Hirsute Hippo, which has now EOLed. ([\#11961](https://github.com/matrix-org/synapse/issues/11961 ))
Internal Changes
----------------
- Enhance user registration test helpers to make them more useful for tests involving application services and devices. ([\#11615](https://github.com/matrix-org/synapse/issues/11615 ), [\#11616](https://github.com/matrix-org/synapse/issues/11616 ))
- Improve performance when fetching bundled aggregations for multiple events. ([\#11660](https://github.com/matrix-org/synapse/issues/11660 ), [\#11752](https://github.com/matrix-org/synapse/issues/11752 ))
- Fix type errors introduced by new annotations in the Prometheus Client library. ([\#11832](https://github.com/matrix-org/synapse/issues/11832 ))
- Add missing type hints to replication code. ([\#11856](https://github.com/matrix-org/synapse/issues/11856 ), [\#11938](https://github.com/matrix-org/synapse/issues/11938 ))
- Ensure that `opentracing` scopes are activated and closed at the right time. ([\#11869](https://github.com/matrix-org/synapse/issues/11869 ))
- Improve opentracing for incoming federation requests. ([\#11870](https://github.com/matrix-org/synapse/issues/11870 ))
- Improve internal docstrings in `synapse.util.caches`. ([\#11876](https://github.com/matrix-org/synapse/issues/11876 ))
- Do not needlessly clear the `get_users_in_room` and `get_users_in_room_with_profiles` caches when any room state changes. ([\#11878](https://github.com/matrix-org/synapse/issues/11878 ))
- Convert `ApplicationServiceTestCase` to use `simple_async_mock`. ([\#11880](https://github.com/matrix-org/synapse/issues/11880 ))
- Remove experimental changes to the default push rules which were introduced in Synapse 1.19.0 but never enabled. ([\#11884](https://github.com/matrix-org/synapse/issues/11884 ))
- Disable coverage calculation for olddeps build. ([\#11888](https://github.com/matrix-org/synapse/issues/11888 ))
- Preparation to support sending device list updates to application services. ([\#11905](https://github.com/matrix-org/synapse/issues/11905 ))
- Add a test that checks users receive their own device list updates down `/sync`. ([\#11909](https://github.com/matrix-org/synapse/issues/11909 ))
- Run Complement tests sequentially. ([\#11910](https://github.com/matrix-org/synapse/issues/11910 ))
- Various refactors to the application service notifier code. ([\#11911](https://github.com/matrix-org/synapse/issues/11911 ), [\#11912](https://github.com/matrix-org/synapse/issues/11912 ))
- Tests: replace mocked `Authenticator` with the real thing. ([\#11913](https://github.com/matrix-org/synapse/issues/11913 ))
- Various refactors to the typing notifications code. ([\#11914](https://github.com/matrix-org/synapse/issues/11914 ))
- Use the proper type for the `Content-Length` header in the `UploadResource`. ([\#11927](https://github.com/matrix-org/synapse/issues/11927 ))
- Remove an unnecessary ignoring of type hints due to fixes in upstream packages. ([\#11939](https://github.com/matrix-org/synapse/issues/11939 ))
- Add missing type hints. ([\#11953](https://github.com/matrix-org/synapse/issues/11953 ))
- Fix an import cycle in `synapse.event_auth`. ([\#11965](https://github.com/matrix-org/synapse/issues/11965 ))
- Unpin `frozendict` but exclude the known bad version 2.1.2. ([\#11969](https://github.com/matrix-org/synapse/issues/11969 ))
- Prepare for rename of default Complement branch. ([\#11971](https://github.com/matrix-org/synapse/issues/11971 ))
- Fetch Synapse's version using a helper from `matrix-common`. ([\#11979](https://github.com/matrix-org/synapse/issues/11979 ))
2022-02-15 13:14:52 +00:00
Andrew Morgan
87f2005713
Add some tests for propagation of device list changes between local users ( #11972 )
2022-02-15 11:27:56 +00:00
Sean Quah
7c05599041
1.53.0rc1
2022-02-15 10:44:24 +00:00
Pascal Bach
c4c98c7518
Revert "Pin to frozendict<2.1.2 ( #11625 )" and allow frozendict>2.1.2 ( #11969 )
...
This reverts commit 2bf31f7807
.
Signed-off-by: Pascal Bach <pascal.bach@nextrem.ch>
2022-02-14 21:18:01 +00:00
Michael Telatynski
54e74f8bde
Fix M_WRONG_ROOM_KEYS_VERSION error not including current_version
field ( #11988 )
...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2022-02-14 19:28:00 +00:00
Andrew Morgan
7812fe9edd
Note when unstable MSC3283 prefixes will be removed ( #11989 )
2022-02-14 19:07:59 +00:00
H. Shay
9c4563c5cd
remove empty file, reword/rename newsfragment, and add line to upgrade doc
2022-02-14 10:21:00 -08:00
Patrick Cloke
738e569ed2
Require that modules register their callbacks using keyword arguments. ( #11975 )
...
To allow for easier backwards/forwards compatibility by making
it easier to add/remove callbacks.
2022-02-14 09:18:44 -05:00
David Robertson
4ae956c8bb
Use version string helper from matrix-common ( #11979 )
...
* Require latest matrix-common
* Use the common function
2022-02-14 13:12:22 +00:00
Andrew Morgan
55113dd5e8
Notify users, rather than rooms, of device list updates ( #11905 )
...
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2022-02-12 09:33:49 -05:00
Richard van der Hoff
63c46349c4
Implement MSC3706: partial state in /send_join
response ( #11967 )
...
* Make `get_auth_chain_ids` return a Set
It has a set internally, and a set is often useful where it gets used, so let's
avoid converting to an intermediate list.
* Minor refactors in `on_send_join_request`
A little bit of non-functional groundwork
* Implement MSC3706: partial state in /send_join response
2022-02-12 10:44:16 +00:00
Shay
b2b971f28a
Enable cache time-based expiry by default ( #11849 )
2022-02-11 11:05:20 -08:00
Patrick Cloke
4d7e74b2e5
Support the MSC3715 for /relations
. ( #11941 )
...
This adds an unstable org.matrix.msc3715.dir parameter
which acts like dir on /mesages.
2022-02-11 11:20:27 -05:00
Patrick Cloke
b65acead42
Fetch thread summaries for multiple events in a single query ( #11752 )
...
This should reduce database usage when fetching bundled aggregations
as the number of individual queries (and round trips to the database) are
reduced.
2022-02-11 09:50:14 -05:00
Richard van der Hoff
bb98c593a5
Prepare for rename of default complement branch ( #11971 )
...
use `HEAD` rather than hardcoding `master`
2022-02-11 14:43:34 +00:00
Brendan Abolivier
0171fa5226
Remove deprecated user_may_create_room_with_invites callback ( #11950 )
...
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2022-02-11 13:58:11 +00:00
Erik Johnston
086d1d6d0b
Fix Newsfile
...
\#11966 fixes a bug introduced by #11215 , which isn't in a released
version.
2022-02-11 13:51:26 +00:00
Erik Johnston
705a439972
Fix Newsfile
...
\#11966 fixes a bug introduced by #11215 , which isn't in a released
version.
2022-02-11 13:49:40 +00:00
Erik Johnston
79fb64e417
Fix to-device being dropped in limited sync in SQLite. ( #11966 )
...
If ther are more than 100 to-device messages pending for a device
`/sync` will only return the first 100, however the next batch token was
incorrectly calculated and so all other pending messages would be
dropped.
This is due to `txn.rowcount` only returning the number of rows that
*changed*, rather than the number *selected* in SQLite.
2022-02-11 13:38:05 +00:00
Richard van der Hoff
4ef39f3353
fix import cycle ( #11965 )
2022-02-11 13:07:55 +00:00
Patrick Cloke
a121507cfe
Adds misc missing type hints ( #11953 )
2022-02-11 07:20:16 -05:00
Richard van der Hoff
c3db7a0b59
Tests: replace mocked Authenticator with the real thing ( #11913 )
...
If we prepopulate the test homeserver with a key for a remote homeserver, we
can make federation requests to it without having to stub out the
authenticator. This has two advantages:
* means that what we are testing is closer to reality (ie, we now have
complete tests for the incoming-request-authorisation flow)
* some tests require that other objects be signed by the remote server (eg,
the event in `/send_join`), and doing that would require a whole separate
set of mocking out. It's much simpler just to use real keys.
2022-02-11 12:06:02 +00:00
Dirk Klimpel
d36943c4df
Support the stable API endpoint for MSC3283: new settings in /capabilities
endpoint ( #11933 )
2022-02-11 09:32:11 +00:00
Shay
1e12efa1b2
Drop support for EOL Ubuntu 21.04 ( #11961 )
2022-02-10 13:59:42 -08:00
Patrick Cloke
df36945ff0
Support pagination tokens from /sync and /messages in the relations API. ( #11952 )
2022-02-10 10:52:48 -05:00
Denis Kasak
337f38cac3
Implement a content type allow list for URL previews ( #11936 )
...
This implements an allow list for content types for which Synapse will attempt URL preview. If a URL resolves to a resource with a content type which isn't in the list, the download will terminate immediately.
This makes sense given that Synapse would never successfully generate a URL preview for such files in the first place, and helps prevent issues with streaming media servers, such as #8302 .
Signed-off-by: Denis Kasak dkasak@termina.org.uk
2022-02-10 15:43:01 +00:00
Alexander Mnich
06e5a76322
Fix broken link in README to admin API. ( #11955 )
...
From when the documentation was converted from rst -> md.
2022-02-10 14:18:27 +00:00
Patrick Cloke
e4fdf459e2
Basic documentation for the release cycle. ( #11954 )
2022-02-10 13:15:10 +00:00
Brad Jones
3914576b2b
Fix example for structured logging. ( #11946 )
...
The StreamHandler takes a stream parameter, not location.
2022-02-09 20:56:33 +00:00
Patrick Cloke
0408d694ee
Update changelog from #11867 to be a single line.
2022-02-09 11:32:20 -05:00
Patrick Cloke
d0e78af35e
Add missing type hints to synapse.replication. ( #11938 )
2022-02-08 11:03:08 -05:00
Patrick Cloke
8c94b3abe9
Experimental support to include bundled aggregations in search results (MSC3666) ( #11837 )
2022-02-08 09:21:20 -05:00
Patrick Cloke
6c0984e3f0
Remove unnecessary ignores due to Twisted upgrade. ( #11939 )
...
Twisted 22.1.0 fixed some internal type hints, allowing Synapse
to remove ignore calls for parameters to connectTCP.
2022-02-08 09:15:59 -05:00
Patrick Cloke
63d90f10ec
Add missing type hints to synapse.replication.http. ( #11856 )
2022-02-08 07:44:39 -05:00
Patrick Cloke
8b309adb43
Fetch edits for multiple events in a single query. ( #11660 )
...
This should reduce database usage when fetching bundled aggregations
as the number of individual queries (and round trips to the database) are
reduced.
2022-02-08 07:43:30 -05:00
Patrick Cloke
380c3d40f4
Return JSON errors for unknown resources under /matrix/client. ( #11930 )
...
Re-applies the changes from 3e0cfd447e
(#11602 ),
reverting d93ec0a0ba
(#11764 ) now that the conflict
with the webclient listener was fixed in 119edf51eb
(#11895 ).
2022-02-08 07:06:25 -05:00
Andrew Morgan
3655585e85
Add a docstring to add_device_change_to_streams
and fix some nearby types ( #11912 )
2022-02-08 10:52:22 +00:00
Brendan Abolivier
0640f8ebaa
Add a callback to allow modules to deny 3PID ( #11854 )
...
Part of the Tchap Synapse mainlining.
This allows modules to implement extra logic to figure out whether a given 3PID can be added to the local homeserver. In the Tchap use case, this will allow a Synapse module to interface with the custom endpoint /internal_info.
2022-02-08 11:20:32 +01:00
Eric Eastwood
fef2e792be
Fix historical messages backfilling in random order on remote homeservers (MSC2716) ( #11114 )
...
Fix https://github.com/matrix-org/synapse/issues/11091
Fix https://github.com/matrix-org/synapse/issues/10764 (side-stepping the issue because we no longer have to deal with `fake_prev_event_id`)
1. Made the `/backfill` response return messages in `(depth, stream_ordering)` order (previously only sorted by `depth`)
- Technically, it shouldn't really matter how `/backfill` returns things but I'm just trying to make the `stream_ordering` a little more consistent from the origin to the remote homeservers in order to get the order of messages from `/messages` consistent ([sorted by `(topological_ordering, stream_ordering)`](https://github.com/matrix-org/synapse/blob/develop/docs/development/room-dag-concepts.md#depth-and-stream-ordering )).
- Even now that we return backfilled messages in order, it still doesn't guarantee the same `stream_ordering` (and more importantly the [`/messages` order](https://github.com/matrix-org/synapse/blob/develop/docs/development/room-dag-concepts.md#depth-and-stream-ordering )) on the other server. For example, if a room has a bunch of history imported and someone visits a permalink to a historical message back in time, their homeserver will skip over the historical messages in between and insert the permalink as the next message in the `stream_order` and totally throw off the sort.
- This will be even more the case when we add the [MSC3030 jump to date API endpoint](https://github.com/matrix-org/matrix-doc/pull/3030 ) so the static archives can navigate and jump to a certain date.
- We're solving this in the future by switching to [online topological ordering](https://github.com/matrix-org/gomatrixserverlib/issues/187 ) and [chunking](https://github.com/matrix-org/synapse/issues/3785 ) which by its nature will apply retroactively to fix any inconsistencies introduced by people permalinking
2. As we're navigating `prev_events` to return in `/backfill`, we order by `depth` first (newest -> oldest) and now also tie-break based on the `stream_ordering` (newest -> oldest). This is technically important because MSC2716 inserts a bunch of historical messages at the same `depth` so it's best to be prescriptive about which ones we should process first. In reality, I think the code already looped over the historical messages as expected because the database is already in order.
3. Making the historical state chain and historical event chain float on their own by having no `prev_events` instead of a fake `prev_event` which caused backfill to get clogged with an unresolvable event. Fixes https://github.com/matrix-org/synapse/issues/11091 and https://github.com/matrix-org/synapse/issues/10764
4. We no longer find connected insertion events by finding a potential `prev_event` connection to the current event we're iterating over. We now solely rely on marker events which when processed, add the insertion event as an extremity and the federating homeserver can ask about it when time calls.
- Related discussion, https://github.com/matrix-org/synapse/pull/11114#discussion_r741514793
Before | After
--- | ---
![](https://user-images.githubusercontent.com/558581/139218681-b465c862-5c49-4702-a59e-466733b0cf45.png ) | ![](https://user-images.githubusercontent.com/558581/146453159-a1609e0a-8324-439d-ae44-e4bce43ac6d1.png )
#### Why aren't we sorting topologically when receiving backfill events?
> The main reason we're going to opt to not sort topologically when receiving backfill events is because it's probably best to do whatever is easiest to make it just work. People will probably have opinions once they look at [MSC2716](https://github.com/matrix-org/matrix-doc/pull/2716 ) which could change whatever implementation anyway.
>
> As mentioned, ideally we would do this but code necessary to make the fake edges but it gets confusing and gives an impression of “just whyyyy” (feels icky). This problem also dissolves with online topological ordering.
>
> -- https://github.com/matrix-org/synapse/pull/11114#discussion_r741517138
See https://github.com/matrix-org/synapse/pull/11114#discussion_r739610091 for the technical difficulties
2022-02-07 15:54:13 -06:00
Andrew Morgan
cf06783d54
Remove optional state of ApplicationService.is_interested
's store
parameter ( #11911 )
2022-02-07 18:26:42 +00:00
Patrick Cloke
314ca4c86d
Pass the proper type when uploading files. ( #11927 )
...
The Content-Length header should be treated as an int, not
a string. This shouldn't have any user-facing change.
2022-02-07 10:06:52 -05:00
Andrew Morgan
e03dde259b
Clean up an indirect reference to the homeserver datastore ( #11914 )
2022-02-07 13:25:09 +00:00
Andrew Morgan
0c4878caf2
Add a unit test for users receiving their own device list updates ( #11909 )
2022-02-07 13:21:19 +00:00
Dirk Klimpel
65ef21b1c7
Clarify that users' media are also preview images ( #11862 )
2022-02-04 14:39:14 +00:00
kegsay
a3865ed525
Run Complement tests sequentially ( #11910 )
...
Since #11811 there has been general Complement flakiness around networking.
It seems like tests are hitting the wrong containers. In an effort to diagnose
the cause of this, as well as reduce its impact on this project, set the
parallelsim to 1 (no parallelism) when running tests.
If this fixes the flakiness then this indicates the cause and I can diagnose
this further. If this doesn't fix the flakiness then that implies some kind
of test pollution which also helps to diagnose this further.
2022-02-04 13:04:57 +00:00
Jonathan de Jong
02632b3504
Stabilise MSC3231 (Token Based Registration) ( #11867 )
2022-02-04 12:15:13 +00:00
Richard van der Hoff
b3d155a749
Delete MSC1711_certificates_FAQ.md ( #11907 )
...
This document isn't really relevant any more, and its existence is more confusing than helpful.
2022-02-04 11:27:00 +00:00
Patrick Cloke
119edf51eb
Remove support for the webclient listener. ( #11895 )
...
Also remove support for non-HTTP(S) web_client_location.
2022-02-03 18:36:49 +00:00
Christian Paul
6b1c265c21
Fix typo: unpind -> unbind ( #11859 )
...
Co-authored-by: reivilibre <olivier@librepush.net>
2022-02-03 17:20:44 +00:00
Brendan Abolivier
d80d39b035
Add a ratelimiter for 3pid invite ( #11892 )
2022-02-03 14:28:15 +01:00
reivilibre
833247553f
Allow specifying the application service-specific user_id
parameter in the join
test helper. ( #11616 )
2022-02-03 13:09:22 +00:00
Richard van der Hoff
964f5b9324
Improve opentracing for federation requests ( #11870 )
...
The idea here is to set the parent span for incoming federation requests to the
*outgoing* span on the other end. That means that you can see (most of) the
full end-to-end flow when you have a process that includes federation requests.
However, in order not to lose information, we still want a link to the
`incoming-federation-request` span from the servlet, so we have to create
another span to do exactly that.
2022-02-03 12:29:16 +00:00
Richard van der Hoff
31b554c297
Fixes for opentracing scopes ( #11869 )
...
`start_active_span` was inconsistent as to whether it would activate the span
immediately, or wait for `scope.__enter__` to happen (it depended on whether
the current logcontext already had an associated scope). The inconsistency was
rather confusing if you were hoping to set up a couple of separate spans before
activating either.
Looking at the other implementations of opentracing `ScopeManager`s, the
intention is that it *should* be activated immediately, as the name
implies. Indeed, the idea is that you don't have to use the scope as a
contextmanager at all - you can just call `.close` on the result. Hence, our
cleanup has to happen in `.close` rather than `.__exit__`.
So, the main change here is to ensure that `start_active_span` does activate
the span, and that `scope.close()` does close the scope.
We also add some tests, which requires a `tracer` param so that we don't have
to rely on the global variable in unit tests.
2022-02-02 22:41:57 +00:00
Patrick Cloke
a8da046907
Invalidate the get_users_in_room{_with_profile} caches only when necessary. ( #11878 )
...
The get_users_in_room and get_users_in_room_with_profiles
are now only invalidated when the membership of a room changes,
instead of during any state change in the room.
2022-02-02 12:24:07 -05:00
reivilibre
41818cda1f
Fix type errors introduced by new annotations in the Prometheus Client library. ( #11832 )
...
Co-authored-by: David Robertson <davidr@element.io>
2022-02-02 16:51:00 +00:00
David Robertson
dd7f825118
Fix losing incoming EDUs if debug logging enabled ( #11890 )
...
* Fix losing incoming EDUs if debug logging enabled
Fixes #11889 . Homeservers should only be affected if the
`synapse.8631_debug` logger was enabled for DEBUG mode.
I am not sure if this merits a bugfix release: I think the logging can
be disabled in config if anyone is affected? But it is still pretty bad.
2022-02-02 16:25:17 +00:00
Richard van der Hoff
23a698f5e6
Disable coverage calculation for olddeps build. ( #11888 )
...
We disabled coverage calculation for most of CI in #11017 , but the olddeps
build uses a separate script and got forgotten.
2022-02-02 15:59:33 +00:00
David Robertson
f510fba4ba
Describe prune_unread_entries
in docstrings ( #11876 )
...
Should have been caught in #10826 .
2022-02-02 15:11:23 +00:00
Patrick Cloke
acda9f07c8
Revert experimental push rules from #7997 . ( #11884 )
...
Manually reverts the merge from cdbb8e6d6e
.
2022-02-02 09:49:31 -05:00
reivilibre
af795173be
Add a background database update to purge account data for deactivated users. ( #11655 )
2022-02-02 11:37:18 +00:00
reivilibre
513913cc6b
Expose the registered device ID from the register_appservice_user
test helper. ( #11615 )
2022-02-02 09:59:55 +00:00
Andrew Morgan
3f72c2a322
Convert ApplicationServiceTestCase
to use simple_async_mock
( #11880 )
2022-02-01 17:45:13 +00:00
Brendan Abolivier
5c16c33021
Allow modules to retrieve server and worker names ( #11868 )
...
Fixes #10701
2022-02-01 16:23:55 +01:00
Andrew Morgan
64ec45fc1b
Send to-device messages to application services ( #11215 )
...
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2022-02-01 14:13:38 +00:00
David Robertson
a35e9db9be
1.52.0rc1
2022-02-01 11:04:17 +00:00
Dirk Klimpel
901b264c0c
Add type hints to tests/rest/admin
( #11851 )
2022-01-31 14:20:05 -05:00
Dirk Klimpel
0da2301b21
Consolidate the access_token
information in the admin api ( #11861 )
...
Co-authored-by: reivilibre <olivier@librepush.net>
2022-01-31 16:24:29 +00:00
Patrick Cloke
02755c3188
Remove the obsolete MSC1849 configuration flag. ( #11843 )
...
MSC1849 was replaced by MSC2675, which was merged.
The configuration flag, which defaulted to true, is no
longer useful.
2022-01-31 10:13:32 -05:00
Dirk Klimpel
7eb198ddc8
Remove not needed old table of contents in documentation ( #11860 )
2022-01-31 14:40:20 +00:00
Brendan Abolivier
bf60da1a60
Configurable limits on avatars ( #11846 )
...
Only allow files which file size and content types match configured
limits to be set as avatar.
Most of the inspiration from the non-test code comes from matrix-org/synapse-dinsic#19
2022-01-28 15:41:33 +01:00
Brendan Abolivier
6d482ba259
Pass isolation_level
to runWithConnection
( #11847 )
...
This was missed in https://github.com/matrix-org/synapse/pull/11799
2022-01-27 17:45:39 +00:00
Richard van der Hoff
57e4786e90
Create singletons for StateFilter.{all,none}()
( #11836 )
...
No point recreating these for each call, since they are frozen
2022-01-27 10:54:27 +00:00
Dirk Klimpel
fd65139714
Fix some indentation inconsistencies in the sample config (modules) ( #11838 )
2022-01-27 10:06:29 +00:00
Shay
ec07062e31
Update installation docs to indicate that we support Python 3.10 ( #11820 )
2022-01-26 16:05:29 -08:00
Vaishnav Nair
cef0d5d90a
Include prev_content
field in AS events ( #11798 )
...
* Include 'prev_content' field in AS events
Signed-off-by: Vaishnav Nair <nairvaishnav007@icloud.com>
Co-authored-by: Brendan Abolivier <babolivier@matrix.org>
2022-01-26 14:48:27 +00:00
Brendan Abolivier
2d3bd9aa67
Add a module callback to set username at registration ( #11790 )
...
This is in the context of mainlining the Tchap fork of Synapse. Currently in Tchap usernames are derived from the user's email address (extracted from the UIA results, more specifically the m.login.email.identity step).
This change also exports the check_username method from the registration handler as part of the module API, so that a module can check if the username it's trying to generate is correct and doesn't conflict with an existing one, and fallback gracefully if not.
Co-authored-by: David Robertson <davidr@element.io>
2022-01-26 14:21:13 +00:00
Patrick Cloke
2897fb6b4f
Improvements to bundling aggregations. ( #11815 )
...
This is some odds and ends found during the review of #11791
and while continuing to work in this code:
* Return attrs classes instead of dictionaries from some methods
to improve type safety.
* Call `get_bundled_aggregations` fewer times.
* Adds a missing assertion in the tests.
* Do not return empty bundled aggregations for an event (preferring
to not include the bundle at all, as the docstring states).
2022-01-26 08:27:04 -05:00
David Robertson
d8df8e6c14
Don't print HTTPStatus.* in "Processed..." logs ( #11827 )
...
* Don't print HTTPStatus.* in "Processed..." logs
Fixes #11812 . See also #7118 and
https://github.com/matrix-org/synapse/pull/7188#r401719326 in
particular.
Co-authored-by: Brendan Abolivier <babolivier@matrix.org>
2022-01-26 12:47:34 +00:00
David Robertson
c5815567a4
Avoid type annotation problems in prom-client ( #11834 )
2022-01-26 12:06:56 +00:00
Brendan Abolivier
95b3f952fa
Add a config flag to inhibit M_USER_IN_USE
during registration ( #11743 )
...
This is mostly motivated by the tchap use case, where usernames are automatically generated from the user's email address (in a way that allows figuring out the email address from the username). Therefore, it's an issue if we respond to requests on /register and /register/available with M_USER_IN_USE, because it can potentially leak email addresses (which include the user's real name and place of work).
This commit adds a flag to inhibit the M_USER_IN_USE errors that are raised both by /register/available, and when providing a username early into the registration process. This error will still be raised if the user completes the registration process but the username conflicts. This is particularly useful when using modules (https://github.com/matrix-org/synapse/pull/11790 adds a module callback to set the username of users at registration) or SSO, since they can ensure the username is unique.
More context is available in the PR that introduced this behaviour to synapse-dinsic: matrix-org/synapse-dinsic#48 - as well as the issue in the matrix-dinsic repo: matrix-org/matrix-dinsic#476
2022-01-26 13:02:54 +01:00
David Robertson
74e4419eb4
Fix another jsonschema typecheck error ( #11830 )
...
Similar to #11817 .
In `_create_power_level_validator` we
- retrieve `validator`. This is a class implementing the
`jsonschema.protocols.Validator` interface. In other words,
`validator: Type[jsonschema.protocols.Validator]`.
- we then create an second validator class by modifying the original
`validator`. We return that class, which is also of type
`Type[jsonschema.protocols.Validator]`.
So the original annotation was incorrect: it claimed we were returning
an instance of jsonSchema.Draft7Validator, not the class (or a subclass)
itself. (Strictly speaking this is incorrect, because `POWER_LEVELS_SCHEMA`
isn't pinned to a particular version of JSON Schema. But there are other
complications with the type stubs if you try to fix this; I felt like
the change herein was a decent compromise that better expresses intent).
(I suspect/hope the typeshed project would welcome an effort to improve
the jsonschema stubs. Let's see if I get some spare time.)
2022-01-25 15:29:28 -05:00
Shay
b8bf600700
Check that gc
method is available before using in synapse/app/_base
( #11816 )
...
* add check that gc.freeze is available before calling
* newsfragment
* lint
* Update comment
Co-authored-by: Dan Callahan <danc@element.io>
Co-authored-by: Dan Callahan <danc@element.io>
2022-01-25 10:35:18 -08:00
Dirk Klimpel
6a72c910f1
Add admin API to get a list of federated rooms ( #11658 )
2022-01-25 16:11:40 +00:00
kegsay
0938f32e93
CI: run Complement on the VM, not inside Docker ( #11811 )
...
* CI: run Complement on the VM, not inside Docker
This requires https://github.com/matrix-org/complement/pull/289
We now run Complement on the VM instead of inside a Docker container.
This is to allow Complement to bind to any high-numbered port when it
starts up its own federation servers. We want to do this to allow for
more concurrency when running complement tests. Previously, Complement
only ever bound to `:8448` when running its own federation server. This
prevented multiple federation tests running at the same time as they would
fight each other on the port. This did however allow Complement to run
in Docker, as the host could just port forward `:8448` to allow homeserver
containers to communicate to Complement. Now that we are using random
ports however, we cannot use Docker to run Complement. This ends up
being a good thing because:
- Running Complement tests locally is closer to how they run in CI.
- Allows the `CI` env var to be removed in Complement.
- Slightly speeds up runs as we don't need to pull down the Complement
image prior to running tests. This assumes GHA caches actions sensibly.
* Changelog
* Full stop
* Update .github/workflows/tests.yml
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Review comments
* Update .github/workflows/tests.yml
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2022-01-25 15:05:22 +00:00
Brendan Abolivier
1d5f7b2cc6
Log modules at startup ( #11813 )
2022-01-25 15:35:35 +01:00
Nick Barrett
b59d285f7c
Db txn set isolation level ( #11799 )
...
Co-authored-by: Brendan Abolivier <babolivier@matrix.org>
2022-01-25 15:14:46 +01:00
Richard van der Hoff
fc8598bc87
Minor updates, and docs, for schema delta files ( #11823 )
...
* Make functions in python deltas optional
It's annoying to always have to write stubs for these.
* Documentation for delta files
* changelog
2022-01-25 14:11:13 +00:00
Forest Johnson
4210143f53
Docs: add missing PR submission process how-tos ( #11821 )
...
* Docs: add missing PR submission process how-tos
The documentation says that in order to submit a pull request you have to run the linter and links to [Run the linters](https://matrix-org.github.io/synapse/latest/development/contributing_guide.html#run-the-linters ). IMO "Run the linters" should explain that development dependencies are a pre-requisite.
I also included `pip install wheel` which I had to run inside my virtual environment on ubuntu before I `pip install -e ".[all,dev]"` would succeed.
2022-01-25 14:09:56 +00:00
Dirk Klimpel
0d6cfea9b8
Add admin API to reset connection timeouts for remote server ( #11639 )
...
* Fix get federation status of destination if no error occured
2022-01-25 12:06:29 +00:00
Patrick Cloke
15c2a6a106
Ignore the jsonschema type. ( #11817 )
2022-01-25 12:07:10 +01:00
Richard van der Hoff
2d327d25bf
Skip the initial amd64-only Docker build ( #11810 )
...
PyNaCl's recent 1.5.0 release on PyPi includes arm64 wheels, which means our
arm64 docker images now build in a sensible amount of time, so we can skip the
amd64-only build.
2022-01-24 18:31:23 +00:00
Patrick Cloke
02d99f044e
Apply a timeout to reading the body when fetching a file. ( #11784 )
...
This prevents the URL preview code from reading
a stream forever.
2022-01-24 14:38:37 +00:00
Patrick Cloke
807efd26ae
Support rendering previews with data: URLs in them ( #11767 )
...
Images which are data URLs will no longer break URL
previews and will properly be "downloaded" and
thumbnailed.
2022-01-24 08:58:18 -05:00
reivilibre
df54c8485a
Remove account data (including client config, push rules and ignored users) upon user deactivation. ( #11621 )
...
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2022-01-24 13:37:00 +00:00
Shay
9006ee36d1
Drop support for and remove references to EOL Python 3.6 ( #11683 )
...
* remove reference in comments to python3.6
* upgrade tox python env in script
* bump python version in example for completeness
* upgrade python version requirement in setup doc
* upgrade necessary python version in __init__.py
* upgrade python version in setup.py
* newsfragment
* drops refs to bionic and replace with focal
* bump refs to postgres 9.6 to 10
* fix hanging ci
* try installing tzdata first
* revert change made in b979f336
* ignore new random mypy error while debugging other error
* fix lint error for temporary workaround
* revert change to install list
* try passing env var
* export debian frontend var?
* move line and add comment
* bump pillow dependency
* bump lxml depenency
* install libjpeg-dev for pillow
* bump automat version to one compatible with py3.8
* add libwebp for pillow
* bump twisted trunk python version
* change suffix of newsfragment
* remove redundant python 3.7 checks
* lint
2022-01-21 14:23:26 -08:00
Olivier Wilkinson (reivilibre)
f8cf02b200
Remove obsolete newsfile
...
The PR was cherrypicked into v1.51.0rc1.
2022-01-21 14:05:27 +00:00
Olivier Wilkinson (reivilibre)
ffc61d1b69
Synapse 1.51.0rc1 (2022-01-21)
...
==============================
Features
--------
- Add `track_puppeted_user_ips` config flag to record client IP addresses against puppeted users, and include the puppeted users in monthly active user counts. ([\#11561](https://github.com/matrix-org/synapse/issues/11561 ), [\#11749](https://github.com/matrix-org/synapse/issues/11749 ), [\#11757](https://github.com/matrix-org/synapse/issues/11757 ))
- Include whether the requesting user has participated in a thread when generating a summary for [MSC3440](https://github.com/matrix-org/matrix-doc/pull/3440 ). ([\#11577](https://github.com/matrix-org/synapse/issues/11577 ))
- Return an `M_FORBIDDEN` error code instead of `M_UNKNOWN` when a spam checker module prevents a user from creating a room. ([\#11672](https://github.com/matrix-org/synapse/issues/11672 ))
- Add a flag to the `synapse_review_recent_signups` script to ignore and filter appservice users. ([\#11675](https://github.com/matrix-org/synapse/issues/11675 ), [\#11770](https://github.com/matrix-org/synapse/issues/11770 ))
Bugfixes
--------
- Fix a long-standing issue which could cause Synapse to incorrectly accept data in the unsigned field of events
received over federation. ([\#11530](https://github.com/matrix-org/synapse/issues/11530 ))
- Fix a long-standing bug where Synapse wouldn't cache a response indicating that a remote user has no devices. ([\#11587](https://github.com/matrix-org/synapse/issues/11587 ))
- Fix an error that occurs whilst trying to get the federation status of a destination server that was working normally. This admin API was newly introduced in Synapse v1.49.0. ([\#11593](https://github.com/matrix-org/synapse/issues/11593 ))
- Fix bundled aggregations not being included in the `/sync` response, per [MSC2675](https://github.com/matrix-org/matrix-doc/pull/2675 ). ([\#11612](https://github.com/matrix-org/synapse/issues/11612 ), [\#11659](https://github.com/matrix-org/synapse/issues/11659 ), [\#11791](https://github.com/matrix-org/synapse/issues/11791 ))
- Fix the `/_matrix/client/v1/room/{roomId}/hierarchy` endpoint returning incorrect fields which have been present since Synapse 1.49.0. ([\#11667](https://github.com/matrix-org/synapse/issues/11667 ))
- Fix preview of some GIF URLs (like tenor.com). Contributed by Philippe Daouadi. ([\#11669](https://github.com/matrix-org/synapse/issues/11669 ))
- Fix a bug where only the first 50 rooms from a space were returned from the `/hierarchy` API. This has existed since the introduction of the API in Synapse v1.41.0. ([\#11695](https://github.com/matrix-org/synapse/issues/11695 ))
- Fix a bug introduced in Synapse v1.18.0 where password reset and address validation emails would not be sent if their subject was configured to use the 'app' template variable. Contributed by @br4nnigan. ([\#11710](https://github.com/matrix-org/synapse/issues/11710 ), [\#11745](https://github.com/matrix-org/synapse/issues/11745 ))
- Make the 'List Rooms' Admin API sort stable. Contributed by Daniël Sonck. ([\#11737](https://github.com/matrix-org/synapse/issues/11737 ))
- Fix a long-standing bug where space hierarchy over federation would only work correctly some of the time. ([\#11775](https://github.com/matrix-org/synapse/issues/11775 ))
- Fix a bug introduced in Synapse v1.46.0 that prevented `on_logged_out` module callbacks from being correctly awaited by Synapse. ([\#11786](https://github.com/matrix-org/synapse/issues/11786 ))
Improved Documentation
----------------------
- Warn against using a Let's Encrypt certificate for TLS/DTLS TURN server client connections, and suggest using ZeroSSL certificate instead. This works around client-side connectivity errors caused by WebRTC libraries that reject Let's Encrypt certificates. Contibuted by @AndrewFerr. ([\#11686](https://github.com/matrix-org/synapse/issues/11686 ))
- Document the new `SYNAPSE_TEST_PERSIST_SQLITE_DB` environment variable in the contributing guide. ([\#11715](https://github.com/matrix-org/synapse/issues/11715 ))
- Document that the minimum supported PostgreSQL version is now 10. ([\#11725](https://github.com/matrix-org/synapse/issues/11725 ))
- Fix typo in demo docs: differnt. ([\#11735](https://github.com/matrix-org/synapse/issues/11735 ))
- Update room spec URL in config files. ([\#11739](https://github.com/matrix-org/synapse/issues/11739 ))
- Mention `python3-venv` and `libpq-dev` dependencies in the contribution guide. ([\#11740](https://github.com/matrix-org/synapse/issues/11740 ))
- Update documentation for configuring login with Facebook. ([\#11755](https://github.com/matrix-org/synapse/issues/11755 ))
- Update installation instructions to note that Python 3.6 is no longer supported. ([\#11781](https://github.com/matrix-org/synapse/issues/11781 ))
Deprecations and Removals
-------------------------
- Remove the unstable `/send_relation` endpoint. ([\#11682](https://github.com/matrix-org/synapse/issues/11682 ))
- Remove `python_twisted_reactor_pending_calls` Prometheus metric. ([\#11724](https://github.com/matrix-org/synapse/issues/11724 ))
- Remove the `password_hash` field from the response dictionaries of the [Users Admin API](https://matrix-org.github.io/synapse/latest/admin_api/user_admin_api.html ). ([\#11576](https://github.com/matrix-org/synapse/issues/11576 ))
- Deprecate support for `webclient` listeners and non-HTTP(S) `web_client_location` configuration. ([\#11774](https://github.com/matrix-org/synapse/issues/11774 ), [\#11783](https://github.com/matrix-org/synapse/issues/11783 ))
Internal Changes
----------------
- Run `pyupgrade --py37-plus --keep-percent-format` on Synapse. ([\#11685](https://github.com/matrix-org/synapse/issues/11685 ))
- Use buildkit's cache feature to speed up docker builds. ([\#11691](https://github.com/matrix-org/synapse/issues/11691 ))
- Use `auto_attribs` and native type hints for attrs classes. ([\#11692](https://github.com/matrix-org/synapse/issues/11692 ), [\#11768](https://github.com/matrix-org/synapse/issues/11768 ))
- Remove debug logging for #4422 , which has been closed since Synapse 0.99. ([\#11693](https://github.com/matrix-org/synapse/issues/11693 ))
- Remove fallback code for Python 2. ([\#11699](https://github.com/matrix-org/synapse/issues/11699 ))
- Add a test for [an edge case](https://github.com/matrix-org/synapse/pull/11532#discussion_r769104461 ) in the `/sync` logic. ([\#11701](https://github.com/matrix-org/synapse/issues/11701 ))
- Add the option to write SQLite test dbs to disk when running tests. ([\#11702](https://github.com/matrix-org/synapse/issues/11702 ))
- Improve Complement test output for Gitub Actions. ([\#11707](https://github.com/matrix-org/synapse/issues/11707 ))
- Fix docstring on `add_account_data_for_user`. ([\#11716](https://github.com/matrix-org/synapse/issues/11716 ))
- Complement environment variable name change and update `.gitignore`. ([\#11718](https://github.com/matrix-org/synapse/issues/11718 ))
- Simplify calculation of Prometheus metrics for garbage collection. ([\#11723](https://github.com/matrix-org/synapse/issues/11723 ))
- Improve accuracy of `python_twisted_reactor_tick_time` Prometheus metric. ([\#11724](https://github.com/matrix-org/synapse/issues/11724 ), [\#11771](https://github.com/matrix-org/synapse/issues/11771 ))
- Minor efficiency improvements when inserting many values into the database. ([\#11742](https://github.com/matrix-org/synapse/issues/11742 ))
- Invite PR authors to give themselves credit in the changelog. ([\#11744](https://github.com/matrix-org/synapse/issues/11744 ))
- Add optional debugging to investigate [issue 8631](https://github.com/matrix-org/synapse/issues/8631 ). ([\#11760](https://github.com/matrix-org/synapse/issues/11760 ))
- Remove `log_function` utility function and its uses. ([\#11761](https://github.com/matrix-org/synapse/issues/11761 ))
- Add a unit test that checks both `client` and `webclient` resources will function when simultaneously enabled. ([\#11765](https://github.com/matrix-org/synapse/issues/11765 ))
- Allow overriding complement commit using `COMPLEMENT_REF`. ([\#11766](https://github.com/matrix-org/synapse/issues/11766 ))
- Add some comments and type annotations for `_update_outliers_txn`. ([\#11776](https://github.com/matrix-org/synapse/issues/11776 ))
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEE8SRSDO7gYkSP4chELS76LzL74EcFAmHqtzcACgkQLS76LzL7
4EdcnBAAso20F98jQf9f9NFneD8FPk6HfuDSJ1d162Ibc2Ikvs/QfsFhvUjChDR0
VpfcM4+APSqFvOV82Km3XYiL9bbqdwx3S6KCxyq+bEZapiJUfmfywa9c/tEnSap6
c8sMWH+3NOC6KJGuJ4NIck2IZa560tOg1nIHkX8STy/YFQhw9HXpYv8cpPP+JajI
hFfd4DHE9MXb028tFnl7eIDm+8XuU7tohW/nkIGbM+NTl2wrUNN0LCLnHajN6MoQ
MscNZjWX0zds1JHNj9BT29opp7zETf699MGQDPpMdtlXJrqsazWuyjE12lz4rdNm
D4XY4c3JnE6f3QEapBzVoDAsSnyeCC3CEK3etYqcZRGwyeLvtO3BuGvYM91XfeVd
kFDZ5ZscHhdQJZBRWzJk7rM9rw211KYRrKcntRwtlJI+qHVap2uRJSBbf46WFPwp
/d9mPe2zOEaF1S5H7pmLl1N4JmmcNtkJuKbMpkJ/M4GBBXsNEjuUtZ5JwnpfBFxx
GFSPIsWlNyJ7GdJaepb43W6uSdlVSfdqZ42Tylzr0g/4ZTHocz/iWBtAtoUy1WqM
C3NhpQr2e4dYkpKZhDKzZwaChIhCUH+AYJc5XpWYnDP0Pu71enSCFAYq3y5Exkk7
lEsP2oEUyKq0Zb2Yh1wHxZANvk1NK7VnnS80FpSICAauAuVHaM0=
=qD4v
-----END PGP SIGNATURE-----
Merge tag 'v1.51.0rc1' into develop
Synapse 1.51.0rc1 (2022-01-21)
==============================
Features
--------
- Add `track_puppeted_user_ips` config flag to record client IP addresses against puppeted users, and include the puppeted users in monthly active user counts. ([\#11561](https://github.com/matrix-org/synapse/issues/11561 ), [\#11749](https://github.com/matrix-org/synapse/issues/11749 ), [\#11757](https://github.com/matrix-org/synapse/issues/11757 ))
- Include whether the requesting user has participated in a thread when generating a summary for [MSC3440](https://github.com/matrix-org/matrix-doc/pull/3440 ). ([\#11577](https://github.com/matrix-org/synapse/issues/11577 ))
- Return an `M_FORBIDDEN` error code instead of `M_UNKNOWN` when a spam checker module prevents a user from creating a room. ([\#11672](https://github.com/matrix-org/synapse/issues/11672 ))
- Add a flag to the `synapse_review_recent_signups` script to ignore and filter appservice users. ([\#11675](https://github.com/matrix-org/synapse/issues/11675 ), [\#11770](https://github.com/matrix-org/synapse/issues/11770 ))
Bugfixes
--------
- Fix a long-standing issue which could cause Synapse to incorrectly accept data in the unsigned field of events
received over federation. ([\#11530](https://github.com/matrix-org/synapse/issues/11530 ))
- Fix a long-standing bug where Synapse wouldn't cache a response indicating that a remote user has no devices. ([\#11587](https://github.com/matrix-org/synapse/issues/11587 ))
- Fix an error that occurs whilst trying to get the federation status of a destination server that was working normally. This admin API was newly introduced in Synapse v1.49.0. ([\#11593](https://github.com/matrix-org/synapse/issues/11593 ))
- Fix bundled aggregations not being included in the `/sync` response, per [MSC2675](https://github.com/matrix-org/matrix-doc/pull/2675 ). ([\#11612](https://github.com/matrix-org/synapse/issues/11612 ), [\#11659](https://github.com/matrix-org/synapse/issues/11659 ), [\#11791](https://github.com/matrix-org/synapse/issues/11791 ))
- Fix the `/_matrix/client/v1/room/{roomId}/hierarchy` endpoint returning incorrect fields which have been present since Synapse 1.49.0. ([\#11667](https://github.com/matrix-org/synapse/issues/11667 ))
- Fix preview of some GIF URLs (like tenor.com). Contributed by Philippe Daouadi. ([\#11669](https://github.com/matrix-org/synapse/issues/11669 ))
- Fix a bug where only the first 50 rooms from a space were returned from the `/hierarchy` API. This has existed since the introduction of the API in Synapse v1.41.0. ([\#11695](https://github.com/matrix-org/synapse/issues/11695 ))
- Fix a bug introduced in Synapse v1.18.0 where password reset and address validation emails would not be sent if their subject was configured to use the 'app' template variable. Contributed by @br4nnigan. ([\#11710](https://github.com/matrix-org/synapse/issues/11710 ), [\#11745](https://github.com/matrix-org/synapse/issues/11745 ))
- Make the 'List Rooms' Admin API sort stable. Contributed by Daniël Sonck. ([\#11737](https://github.com/matrix-org/synapse/issues/11737 ))
- Fix a long-standing bug where space hierarchy over federation would only work correctly some of the time. ([\#11775](https://github.com/matrix-org/synapse/issues/11775 ))
- Fix a bug introduced in Synapse v1.46.0 that prevented `on_logged_out` module callbacks from being correctly awaited by Synapse. ([\#11786](https://github.com/matrix-org/synapse/issues/11786 ))
Improved Documentation
----------------------
- Warn against using a Let's Encrypt certificate for TLS/DTLS TURN server client connections, and suggest using ZeroSSL certificate instead. This works around client-side connectivity errors caused by WebRTC libraries that reject Let's Encrypt certificates. Contibuted by @AndrewFerr. ([\#11686](https://github.com/matrix-org/synapse/issues/11686 ))
- Document the new `SYNAPSE_TEST_PERSIST_SQLITE_DB` environment variable in the contributing guide. ([\#11715](https://github.com/matrix-org/synapse/issues/11715 ))
- Document that the minimum supported PostgreSQL version is now 10. ([\#11725](https://github.com/matrix-org/synapse/issues/11725 ))
- Fix typo in demo docs: differnt. ([\#11735](https://github.com/matrix-org/synapse/issues/11735 ))
- Update room spec URL in config files. ([\#11739](https://github.com/matrix-org/synapse/issues/11739 ))
- Mention `python3-venv` and `libpq-dev` dependencies in the contribution guide. ([\#11740](https://github.com/matrix-org/synapse/issues/11740 ))
- Update documentation for configuring login with Facebook. ([\#11755](https://github.com/matrix-org/synapse/issues/11755 ))
- Update installation instructions to note that Python 3.6 is no longer supported. ([\#11781](https://github.com/matrix-org/synapse/issues/11781 ))
Deprecations and Removals
-------------------------
- Remove the unstable `/send_relation` endpoint. ([\#11682](https://github.com/matrix-org/synapse/issues/11682 ))
- Remove `python_twisted_reactor_pending_calls` Prometheus metric. ([\#11724](https://github.com/matrix-org/synapse/issues/11724 ))
- Remove the `password_hash` field from the response dictionaries of the [Users Admin API](https://matrix-org.github.io/synapse/latest/admin_api/user_admin_api.html ). ([\#11576](https://github.com/matrix-org/synapse/issues/11576 ))
- Deprecate support for `webclient` listeners and non-HTTP(S) `web_client_location` configuration. ([\#11774](https://github.com/matrix-org/synapse/issues/11774 ), [\#11783](https://github.com/matrix-org/synapse/issues/11783 ))
Internal Changes
----------------
- Run `pyupgrade --py37-plus --keep-percent-format` on Synapse. ([\#11685](https://github.com/matrix-org/synapse/issues/11685 ))
- Use buildkit's cache feature to speed up docker builds. ([\#11691](https://github.com/matrix-org/synapse/issues/11691 ))
- Use `auto_attribs` and native type hints for attrs classes. ([\#11692](https://github.com/matrix-org/synapse/issues/11692 ), [\#11768](https://github.com/matrix-org/synapse/issues/11768 ))
- Remove debug logging for #4422 , which has been closed since Synapse 0.99. ([\#11693](https://github.com/matrix-org/synapse/issues/11693 ))
- Remove fallback code for Python 2. ([\#11699](https://github.com/matrix-org/synapse/issues/11699 ))
- Add a test for [an edge case](https://github.com/matrix-org/synapse/pull/11532#discussion_r769104461 ) in the `/sync` logic. ([\#11701](https://github.com/matrix-org/synapse/issues/11701 ))
- Add the option to write SQLite test dbs to disk when running tests. ([\#11702](https://github.com/matrix-org/synapse/issues/11702 ))
- Improve Complement test output for Gitub Actions. ([\#11707](https://github.com/matrix-org/synapse/issues/11707 ))
- Fix docstring on `add_account_data_for_user`. ([\#11716](https://github.com/matrix-org/synapse/issues/11716 ))
- Complement environment variable name change and update `.gitignore`. ([\#11718](https://github.com/matrix-org/synapse/issues/11718 ))
- Simplify calculation of Prometheus metrics for garbage collection. ([\#11723](https://github.com/matrix-org/synapse/issues/11723 ))
- Improve accuracy of `python_twisted_reactor_tick_time` Prometheus metric. ([\#11724](https://github.com/matrix-org/synapse/issues/11724 ), [\#11771](https://github.com/matrix-org/synapse/issues/11771 ))
- Minor efficiency improvements when inserting many values into the database. ([\#11742](https://github.com/matrix-org/synapse/issues/11742 ))
- Invite PR authors to give themselves credit in the changelog. ([\#11744](https://github.com/matrix-org/synapse/issues/11744 ))
- Add optional debugging to investigate [issue 8631](https://github.com/matrix-org/synapse/issues/8631 ). ([\#11760](https://github.com/matrix-org/synapse/issues/11760 ))
- Remove `log_function` utility function and its uses. ([\#11761](https://github.com/matrix-org/synapse/issues/11761 ))
- Add a unit test that checks both `client` and `webclient` resources will function when simultaneously enabled. ([\#11765](https://github.com/matrix-org/synapse/issues/11765 ))
- Allow overriding complement commit using `COMPLEMENT_REF`. ([\#11766](https://github.com/matrix-org/synapse/issues/11766 ))
- Add some comments and type annotations for `_update_outliers_txn`. ([\#11776](https://github.com/matrix-org/synapse/issues/11776 ))
2022-01-21 14:04:23 +00:00
Richard van der Hoff
2aa37a4250
Add state_key
and rejection_reason
to events
( #11792 )
...
... and start populating them for new events
2022-01-21 12:21:28 +00:00
Olivier Wilkinson (reivilibre)
266df5c908
1.51.0rc1
2022-01-21 10:47:03 +00:00
Patrick Cloke
7a11509d17
Do not try to serialize raw aggregations dict. ( #11791 )
2022-01-21 10:40:34 +00:00
Patrick Cloke
b784299cbc
Do not try to serialize raw aggregations dict. ( #11791 )
2022-01-21 10:31:31 +00:00
Richard van der Hoff
9f2016e96e
Drop unused table public_room_list_stream
. ( #11795 )
...
This is a follow-up to #10565 .
2022-01-21 09:19:56 +00:00
Richard van der Hoff
2277275485
Stop reading from event_reference_hashes
( #11794 )
...
Preparation for dropping this table altogether. Part of #6574 .
2022-01-21 09:18:10 +00:00
Richard van der Hoff
c027bc0e4b
Add FrozenEvent.get_state_key
and use it in a couple of places ( #11793 )
...
This is more efficient, since we only have to look up `state_key` in the event
dict once, rather than three (!) times.
2022-01-21 09:10:01 +00:00
reivilibre
4c2096599c
Make the get_global_account_data_by_type_for_user
cache be a tree-cache whose key is prefixed with the user ID ( #11788 )
2022-01-21 08:38:36 +00:00
reivilibre
e83520cc42
Make get_account_data_for_room_and_type
a tree cache ( #11789 )
2022-01-21 08:01:37 +00:00
Brendan Abolivier
bfe6d5553a
Correctly await on_logged_out callbacks ( #11786 )
2022-01-20 19:19:40 +01:00
Patrick Cloke
d09099642e
Fix redirecting to the webclient for non-HTTP(S) web_client_location. ( #11783 )
...
To not change the behaviour during the deprecation period.
Follow-up to #11774 .
2022-01-20 15:34:45 +00:00
Andrew Morgan
121b9e2475
Add a regression test for using both webclient and client resources simultaneously ( #11765 )
2022-01-20 09:47:29 -05:00
Andrew Morgan
7bf2d6c268
Partially revert #11675 ; prevent attempting to create pushers on workers ( #11770 )
2022-01-20 09:37:34 -05:00
Richard van der Hoff
56834ab779
installation.md: drop python 3.6 support ( #11781 )
...
#11595 dropped support for python 3.6, but forgot to update this doc.
2022-01-20 14:37:11 +00:00
Patrick Cloke
91221b6961
Add deprecation warnings for webclient
listener and non-HTTP(S) web_client_location
. ( #11774 )
...
This changes the behaviour of the root endpoint to redirect
directly to the configuration of `web_client_location` if it is
given an HTTP(S) URL.
2022-01-20 14:21:06 +00:00
David Robertson
f160fe18e3
Debug for device lists updates ( #11760 )
...
Debug for #8631 .
I'm having a hard time tracking down what's going wrong in that issue.
In the reported example, I could see server A sending federation traffic
to server B and all was well. Yet B reports out-of-sync device updates
from A.
I couldn't see what was _in_ the events being sent from A to B. So I
have added some crude logging to track
- when we have updates to send to a remote HS
- the edus we actually accumulate to send
- when a federation transaction includes a device list update edu
- when such an EDU is received
This is a bit of a sledgehammer.
2022-01-20 13:38:44 +00:00
Nicolas Werner
fa583c2198
Allow overriding the complement ref. ( #11766 )
...
Updates complement.sh to read the ref from an environment
variable (defaulting to master) when downloading a complement
bundle for testing.
2022-01-20 13:04:58 +00:00
Sean Quah
af13a3be29
Fix a bug that corrupted the cache of federated space hierarchies ( #11775 )
...
`FederationClient.get_room_hierarchy()` caches its return values, so
refactor the code to avoid modifying the returned room summary.
2022-01-20 11:03:42 +00:00
Richard van der Hoff
5572e6cc4b
Comments and typing for _update_outliers_txn
( #11776 )
...
A couple of surprises for me here, so thought I'd document them
2022-01-19 19:45:36 +00:00
Patrick Cloke
c072c0b829
Fix mypy for platforms without epoll support. ( #11771 )
2022-01-19 16:50:09 +00:00
Andrew Morgan
7ad7a47e5a
Add missing auto_attribs=True
to the _WrappedRustReporter
class ( #11768 )
2022-01-19 12:39:11 +00:00
Philippe Daouadi
15ffc4143c
Fix preview of imgur and Tenor URLs. ( #11669 )
...
By scraping Open Graph information from the HTML even
when an autodiscovery endpoint is found. The results are
then combined to capture as much information as possible
from the page.
2022-01-18 13:20:24 -05:00
Patrick Cloke
68acb0a29d
Include whether the requesting user has participated in a thread. ( #11577 )
...
Per updates to MSC3440.
This is implement as a separate method since it needs to be cached
on a per-user basis, instead of a per-thread basis.
2022-01-18 11:38:57 -05:00
Richard van der Hoff
251b5567ec
Remove log_function
and its uses ( #11761 )
...
I've never found this terribly useful. I think it was added in the early days
of Synapse, without much thought as to what would actually be useful to log,
and has just been cargo-culted ever since.
Rather, it tends to clutter up debug logs with useless information.
2022-01-18 13:06:04 +00:00
lukasdenk
d8be9924ef
Add a flag to the synapse_review_recent_signups
script to ignore and filter appservice users. ( #11675 )
2022-01-17 16:43:25 +00:00
AndrewFerr
cefd4b87a3
Warn against using Let's Encrypt certs for encrypted TURN ( #11686 )
...
* Warn against using Let's Encrypt certs for encrypted TURN
This helps to avoid client-side issues:
* https://github.com/vector-im/element-android/issues/1533
* https://github.com/vector-im/element-ios/issues/2712
Signed-off-by: Andrew Ferrazzutti <fair@miscworks.net>
2022-01-17 15:13:09 +00:00
Richard van der Hoff
86615aa965
Fix up docs for track_puppeted_user_ips
(again) ( #11757 )
...
Fixes #11741
2022-01-17 14:55:30 +00:00
Richard van der Hoff
b0352f9c08
Update documentation for configuring facebook login ( #11755 )
...
... and a minor thinko fix in the sample config.
2022-01-17 12:35:00 +00:00
Richard van der Hoff
6a78ede569
Improve reactor_tick_time
metric ( #11724 )
...
The existing implementation of the `python_twisted_reactor_tick_time` metric is pretty useless, because it *only*
measures the time taken to execute timed calls and callbacks from threads. That neglects everything that
happens off the back of I/O, which is obviously quite a lot for us.
To improve this, I've hooked into a different place in the reactor - in particular, where it calls `epoll`. That call is
the only place it should wait for something to happen - the rest of the loop *should* be quick.
I've also removed `python_twisted_reactor_pending_calls`, because I don't believe anyone ever looks at it, and
it's a nuisance to populate.
2022-01-17 12:14:40 +00:00
Daniel Sonck
6b241f5286
Make pagination of rooms in admin api stable ( #11737 )
...
Always add state.room_id after the configurable ORDER BY. Otherwise,
for any sort, certain pages can contain results from
other pages. (Especially when sorting by creator, since there may
be many rooms by the same creator)
* Document different order direction of numerical fields
"joined_members", "joined_local_members", "version" and "state_events"
are ordered in descending direction by default (dir=f). Added a note
in tests to explain the differences in ordering.
Signed-off-by: Daniël Sonck <daniel@sonck.nl>
2022-01-17 11:42:51 +00:00
Andrew Morgan
18862f20b5
Remove the 'password_hash' from the Users Admin API endpoint response dictionary ( #11576 )
2022-01-14 14:53:33 +00:00
Jason Robinson
904bb04409
Fix sample_config.yaml in regards track_puppeted_user_ips ( #11749 )
...
* Fix sample_config.yaml in regards track_puppeted_user_ips
Closes #11741
Signed-off-by: Jason Robinson <jasonr@matrix.org>
2022-01-14 14:11:55 +00:00
Patrick Cloke
3e0536cd2a
Replace uses of simple_insert_many with simple_insert_many_values. ( #11742 )
...
This should be (slightly) more efficient and it is simpler
to have a single method for inserting multiple values.
2022-01-13 19:44:18 -05:00
David Robertson
d70169bf9b
Fix missing app variable in mail subject ( #11745 )
...
documentation claims that you can use the %(app)s variable in password_reset and email_validation subjects, but if you do you end up with an error 500
Co-authored-by: br4nnigan <10244835+br4nnigan@users.noreply.github.com>
2022-01-13 20:19:10 +00:00
David Robertson
4ca8fcdd5a
Invite PR submitters to credit themselves ( #11744 )
...
Co-authored-by: Brendan Abolivier <babolivier@matrix.org>
2022-01-13 18:12:59 +00:00
qwertyforce
b9632046fb
update room spec url in config files ( #11739 )
...
* change spec url in config files
* Create 11739.txt
* .txt -> .doc
2022-01-13 17:09:15 +00:00
Andy Balaam
5ff5f17377
Mention python3-venv and libpq-dev dependencies in contribution guide ( #11740 )
2022-01-13 16:33:37 +00:00
Patrick Cloke
0c40c619aa
Include bundled aggregations in the sync response cache. ( #11659 )
2022-01-13 10:45:28 -05:00
Richard van der Hoff
20c6d85c6e
Simplify GC prometheus metrics ( #11723 )
...
Rather than hooking into the reactor loop, just add a timed task that runs every 100 ms to do the garbage collection.
Part 1 of a quest to simplify the reactor monkey-patching.
2022-01-13 14:35:52 +00:00
Patrick Cloke
10a88ba91c
Use auto_attribs/native type hints for attrs classes. ( #11692 )
2022-01-13 13:49:28 +00:00
Andy Balaam
b92a2ff797
Fix typo in demo docs: differnt ( #11735 )
2022-01-13 13:10:42 +00:00
Jason Robinson
2560b1b6b2
Allow tracking puppeted users for MAU ( #11561 )
...
Currently when puppeting another user, the user doing the puppeting is
tracked for client IPs and MAU (if configured).
When tracking MAU is important, it becomes necessary to be possible to
also track the client IPs and MAU of puppeted users. As an example a
client that manages user creation and creation of tokens via the Synapse
admin API, passing those tokens for the client to use.
This PR adds optional configuration to enable tracking of puppeted users
into monthly active users. The default behaviour stays the same.
Signed-off-by: Jason Robinson <jasonr@matrix.org>
2022-01-12 16:09:36 +00:00
haslersn
99ba5ae7b7
Fix documentation of supported PostgreSQL version ( #11725 )
...
Signed-off-by: Sebastian Hasler <sebastian.hasler@stuvus.uni-stuttgart.de>
2022-01-12 14:43:48 +00:00
Richard van der Hoff
d41c4654db
Use buildkit's cache feature to speed up docker builds ( #11691 )
...
Having spent much of the last week attempting to run complement tests from somewhere with damp string instead of internet... something had to be done.
2022-01-12 10:37:57 +00:00
Michael Kaye
338e70c617
Complement environment variable name change and update .gitignore. ( #11718 )
2022-01-10 23:18:56 +00:00
Andrew Morgan
7c3408d1a8
Document the SYNAPSE_TEST_PERSIST_SQLITE_DB
unit test env var ( #11715 )
2022-01-10 17:06:42 +00:00
reivilibre
ffd227c382
Fix docstring on add_account_data_for_user
. ( #11716 )
2022-01-10 15:38:22 +00:00
David Robertson
c43dd4d01b
Deal with mypy errors w/ type-hinted pynacl 1.5.0 ( #11714 )
...
* Deal with mypy errors w/ type-hinted pynacl 1.5.0
Fixes #11644 .
I really don't like that we're monkey patching pynacl SignedKey
instances with alg and version objects. But I'm too scared to make the
changes necessary right now.
(Ideally I would replace `signedjson.types.SingingKey` with a runtime class which
wraps or inherits from `nacl.signing.SigningKey`.) C.f. https://github.com/matrix-org/python-signedjson/issues/16
2022-01-10 13:40:46 +00:00
kegsay
3be63654e4
Prettier complement logs ( #11707 )
...
* Prettier complement logs
* Changelog
2022-01-10 11:46:40 +00:00
Patrick Cloke
8e57584a58
Support spaces with > 50 rooms in the /hierarchy endpoint. ( #11695 )
...
By returning all of the m.space.child state of the space, not just
the first 50. The number of rooms returned is still capped at 50.
For the federation API this implies that the requesting server will
need to individually query for any other rooms it is not joined to.
2022-01-07 19:27:58 -05:00
David Robertson
d3cf0730f8
Optionally use an on-disk sqlite db in tests ( #11702 )
...
* Optionally use an on-disk sqlite db in tests
When debugging a test it is sometimes useful to inspect the state of the
DB. This is not easy when the db is in-memory: one cannot attach the
sqlite CLI to another process's DB.
With this change, if SYNAPSE_TEST_PERSIST_SQLITE_DB is set, we use
`_trial_temp/test.db` as our sqlite database. One can then use
`sqlite3 _trial_temp/test.db` and query to your heart's content.
The DB is destroyed and recreated between different test cases.
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2022-01-07 19:13:41 +00:00
David Robertson
2bb4bd1269
Test that bans win a join against a race when computing /sync
response ( #11701 )
2022-01-07 16:43:21 +00:00
Olivier Wilkinson (reivilibre)
6a04767439
Merge branch 'release-v1.50' into develop
2022-01-07 14:22:13 +00:00
Patrick Cloke
6bf81a7a61
Bundle aggregations outside of the serialization method. ( #11612 )
...
This makes the serialization of events synchronous (and it no
longer access the database), but we must manually calculate and
provide the bundled aggregations.
Overall this should cause no change in behavior, but is prep work
for other improvements.
2022-01-07 09:10:46 -05:00
Patrick Cloke
6c68e874b1
Remove the /send_relation endpoint. ( #11682 )
...
This was removed from MSC2674 before that was approved
and is not used by any known clients.
2022-01-06 19:00:34 +00:00
Patrick Cloke
201c48c8de
Remove a Python 2-ism and improve type hints. ( #11699 )
...
On Python 2, indexing a byte-string gives back a byte-string,
while on Python 3 it gives back the ASCII equivalent as an int.
2022-01-06 18:08:48 +00:00
Olivier Wilkinson (reivilibre)
e87540abb1
Re-run Towncrier to add in the changelog entry for the Mjolnir workaround
2022-01-06 17:54:21 +00:00
Shay
70ce9aea71
Strip unauthorized fields from unsigned
object in events received over federation ( #11530 )
...
* add some tests to verify we are stripping unauthorized fields out of unsigned
* add function to strip unauthorized fields from the unsigned object of event
* newsfragment
* update newsfragment number
* add check to on_send_membership_event
* refactor tests
* fix lint error
* slightly refactor tests and add some comments
* slight refactor
* refactor tests
* fix import error
* slight refactor
* remove unsigned filtration code from synapse/handlers/federation_event.py
* lint
* move unsigned filtering code to event base
* refactor tests
* update newsfragment
* requested changes
* remove unused retun values
2022-01-06 09:09:30 -08:00
reivilibre
eec34b1f2a
Work around Mjolnir compatibility issue by adding an import for glob_to_regex
in synapse.util
, where it moved from. ( #11696 )
2022-01-06 16:36:26 +00:00
lukasdenk
2ef1fea8d2
Make room creations denied by user_may_create_room
cause an M_FORBIDDEN
error to be returned, not M_UNKNOWN
( #11672 )
...
Co-authored-by: reivilibre <olivier@librepush.net>
2022-01-06 13:16:42 +00:00
David Robertson
c9eb678b73
Remove debug logging for #4422 ( #11693 )
...
as per
https://github.com/matrix-org/synapse/pull/11532#discussion_r769123269
2022-01-06 12:44:36 +00:00
Travis Ralston
feb3e006d7
Fix space hierarchy endpoint to match MSC2946 ( #11667 )
...
Fixes minor discrepancies between the /hierarchy endpoint described
in MSC2946 and the implementation.
Note that the changes impact the stable and unstable /hierarchy and
unstable /spaces endpoints for both client and federation APIs.
2022-01-05 20:33:43 +00:00
Dirk Klimpel
3b51c763ba
Fix get federation status of destination if no error occured ( #11593 )
2022-01-05 14:46:50 -05:00
Shay
d8f94eeec2
Run pyupgrade --py37-plus --keep-percent-format
on Synapse ( #11685 )
...
* newsfragment
* fix newsfragment number
* update changelog
* remove extra space
2022-01-05 09:53:05 -08:00
Patrick Cloke
83acdb23fe
Re-run towncrier.
2022-01-05 12:09:15 -05:00
Patrick Cloke
877b45e812
Include io.element.thread
capability for MSC3440. ( #11690 )
2022-01-05 12:08:03 -05:00
David Robertson
88a78c6577
Cache empty responses from /user/devices
( #11587 )
...
If we've never made a request to a remote homeserver, we should cache the response---even if the response is "this user has no devices".
2022-01-05 13:33:28 +00:00
Olivier Wilkinson (reivilibre)
9be5aacc2d
1.50.0rc1
2022-01-05 12:39:48 +00:00
Richard van der Hoff
0fb3dd0830
Refactor the way we set outlier
( #11634 )
...
* `_auth_and_persist_outliers`: mark persisted events as outliers
Mark any events that get persisted via `_auth_and_persist_outliers` as, well,
outliers.
Currently this will be a no-op as everything will already be flagged as an
outlier, but I'm going to change that.
* `process_remote_join`: stop flagging as outlier
The events are now flagged as outliers later on, by `_auth_and_persist_outliers`.
* `send_join`: remove `outlier=True`
The events created here are returned in the result of `send_join` to
`FederationHandler.do_invite_join`. From there they are passed into
`FederationEventHandler.process_remote_join`, which passes them to
`_auth_and_persist_outliers`... which sets the `outlier` flag.
* `get_event_auth`: remove `outlier=True`
stop flagging the events returned by `get_event_auth` as outliers. This method
is only called by `_get_remote_auth_chain_for_event`, which passes the results
into `_auth_and_persist_outliers`, which will flag them as outliers.
* `_get_remote_auth_chain_for_event`: remove `outlier=True`
we pass all the events into `_auth_and_persist_outliers`, which will now flag
the events as outliers.
* `_check_sigs_and_hash_and_fetch`: remove unused `outlier` parameter
This param is now never set to True, so we can remove it.
* `_check_sigs_and_hash_and_fetch_one`: remove unused `outlier` param
This is no longer set anywhere, so we can remove it.
* `get_pdu`: remove unused `outlier` parameter
... and chase it down into `get_pdu_from_destination_raw`.
* `event_from_pdu_json`: remove redundant `outlier` param
This is never set to `True`, so can be removed.
* changelog
* update docstring
2022-01-05 12:26:11 +00:00
Philipp Matthias Schäfer
eedb4527f1
Fix link from generated configuration file to documentation ( #11678 )
...
Co-authored-by: reivilibre <olivier@librepush.net>
Co-authored-by: reivilibre <oliverw@matrix.org>
2022-01-05 12:16:52 +00:00
Fr3shTea
0201c6371c
Fix SimpleHttpClient not sending Accept header in get_json
( #11677 )
...
Co-authored-by: reivilibre <olivier@librepush.net>
2022-01-05 11:59:29 +00:00
Dirk Klimpel
7a1cefc6e3
Add admin API to get users' account data ( #11664 )
...
Co-authored-by: reivilibre <olivier@librepush.net>
2022-01-05 11:49:06 +00:00
reivilibre
84bfe47b01
Re-apply: Move glob_to_regex and re_word_boundary to matrix-python-common #11505 ( #11687 )
...
Co-authored-by: Sean Quah <seanq@element.io>
2022-01-05 11:41:49 +00:00
reivilibre
84d790a32e
Clarify SSO mapping provider documentation by writing def
or async def
before the names of methods, as appropriate. ( #11681 )
2022-01-05 11:25:32 +00:00
Callum Macdonald
7013e06e2f
Improve Docker docs for use with Postgres ( #11640 )
2022-01-05 10:50:28 +00:00
Donny Johnson
0715e77b06
Correct Synapse install command for FreeBSD. ( #11267 )
...
Co-authored-by: reivilibre <olivier@librepush.net>
2022-01-05 10:38:51 +00:00
Richard van der Hoff
79f6d3550a
update ngnix reverse-proxy example ( #11680 )
...
this should not be a case-insensitive match.
2022-01-04 22:31:45 +00:00
Richard van der Hoff
b38bdae3a2
Fix AssertionErrors after purging events ( #11642 )
...
* Fix AssertionErrors after purging events
If you purged a bunch of events from your database, and then restarted synapse
without receiving more events, then you would get a bunch of AssertionErrors on
restart.
This fixes the situation by rewinding the stream processors.
* `check-newsfragment`: ignore deleted newsfiles
2022-01-04 16:36:33 +00:00
Richard van der Hoff
878aa55293
FederationClient.backfill
: stop flagging events as outliers (#11632 )
...
Events returned by `backfill` should not be flagged as outliers.
Fixes:
```
AssertionError: null
File "synapse/handlers/federation.py", line 313, in try_backfill
dom, room_id, limit=100, extremities=extremities
File "synapse/handlers/federation_event.py", line 517, in backfill
await self._process_pulled_events(dest, events, backfilled=True)
File "synapse/handlers/federation_event.py", line 642, in _process_pulled_events
await self._process_pulled_event(origin, ev, backfilled=backfilled)
File "synapse/handlers/federation_event.py", line 669, in _process_pulled_event
assert not event.internal_metadata.is_outlier()
```
See https://sentry.matrix.org/sentry/synapse-matrixorg/issues/231992
Fixes #8894 .
2022-01-04 16:31:32 +00:00
Richard van der Hoff
2359ee3864
Remove redundant get_current_events_token
( #11643 )
...
* Push `get_room_{min,max_stream_ordering}` into StreamStore
Both implementations of this are identical, so we may as well push it down and
get rid of the abstract base class nonsense.
* Remove redundant `StreamStore` class
This is empty now
* Remove redundant `get_current_events_token`
This was an exact duplicate of `get_room_max_stream_ordering`, so let's get rid
of it.
* newsfile
2022-01-04 16:10:27 +00:00
Richard van der Hoff
bd9821f7f1
Better error messages from get_create_event_for_room
( #11638 )
...
"Unknown room" can mean a multitude of things here. To help with debugging, add
some more words to the exception text.
2022-01-04 16:10:05 +00:00
Patrick Cloke
8422a7f7f6
Include the topic event in the prejoin state, per MSC3173. ( #11666 )
...
Invites and knocks will now include the topic in the stripped state
send to clients before joining the room.
2022-01-04 11:08:08 -05:00
Shay
13c974ed35
Drop Bionic from Debian builds ( #11633 )
...
* update Trove classifiers to remove py36
* stop building bionic
* update dh-virtualenv
* newsfragment
* fix newsfragment
* update version refs
* another try at correct tag
* Update changelog
2022-01-03 11:17:16 -08:00
Patrick Cloke
cbd82d0b2d
Convert all namedtuples to attrs. ( #11665 )
...
To improve type hints throughout the code.
2021-12-30 18:47:12 +00:00
Dirk Klimpel
07a3b5daba
Add type hints to synapse/storage/databases/main/events_bg_updates.py
( #11654 )
2021-12-30 07:22:31 -05:00
reivilibre
2c7f5e74e5
Fix a type annotation in test_account_data.py
and remove it from the Mypy exclusion list. ( #11657 )
...
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2021-12-29 15:12:30 +00:00
Dirk Klimpel
f82d38ed2e
Improve type hints in storage classes. ( #11652 )
...
By using cast and making ignores more specific.
2021-12-29 13:04:28 +00:00
Patrick Cloke
f58b300d27
Do not attempt to bundled aggregations for /members and /state. ( #11623 )
...
Both of those APIs return state events, which will not have bundled
aggregations added anyway.
2021-12-29 08:02:03 -05:00
Dirk Klimpel
15bb1c8511
Add type hints to synapse/storage/databases/main/stats.py
( #11653 )
2021-12-29 08:01:13 -05:00
Shay
fcfe67578f
Update to the current version of Black and run it on Synapse codebase ( #11596 )
...
* update black version
* run updated version of black on code
* newsfragment
* enumerate python versions
2021-12-23 20:22:15 -08:00
Patrick Cloke
66d7aa783a
Fix mypy error with opentracing.tags. ( #11622 )
2021-12-23 11:47:24 +00:00
AndrewFerr
c500bf37d6
Add details for how to set up TURN behind NAT ( #11553 )
...
Signed-off-by: Andrew Ferrazzutti <fair@miscworks.net>
2021-12-23 10:42:50 +00:00
Shay
87da37374a
Drop EOL python 3.6 from CI ( #11595 )
...
* remove python 3.6 and postgres 9.6 from github workflow
* remove python 3.6 env from tox
* newsfragment
* correct postgres version
* add py310 to tox env list
2021-12-21 11:37:04 -08:00
Richard van der Hoff
144b9ede89
Merge branch 'master' into develop
2021-12-21 18:13:05 +00:00
reivilibre
e6897e7383
Refactor tests.util.setup_test_homeserver
and tests.server.setup_test_homeserver
. ( #11503 )
2021-12-21 16:12:05 +00:00
Patrick Cloke
b6102230a7
Add type hints to event_push_actions. ( #11594 )
2021-12-21 13:25:34 +00:00
Richard van der Hoff
2215954147
Various opentracing enhancements ( #11619 )
...
* Wrap `auth.get_user_by_req` in an opentracing span
give `get_user_by_req` its own opentracing span, since it can result in a
non-trivial number of sub-spans which it is useful to group together.
This requires a bit of reorganisation because it also sets some tags (and may
force tracing) on the servlet span.
* Emit opentracing span for encoding json responses
This can be a significant time sink.
* Rename all sync spans with a prefix
* Write an opentracing span for encoding sync response
* opentracing span to group generate_room_entries
* opentracing spans within sync.encode_response
* changelog
* Use the `trace` decorator instead of context managers
2021-12-21 11:10:36 +00:00
Patrick Cloke
dd47788752
Do not bundle aggregations for APIs which shouldn't include them. ( #11592 )
...
And make bundling aggregations opt-in, instead of opt-out to avoid
having APIs to include extraneous data (and being much heavier than
necessary).
2021-12-20 14:14:38 -05:00
Richard van der Hoff
c3e38b88f2
Improve opentracing support for ResponseCache
( #11607 )
...
This adds some opentracing annotations to ResponseCache, to make it easier to see what's going on; in particular, it adds a link back to the initial trace which is actually doing the work of generating the response.
2021-12-20 18:12:08 +00:00
Richard van der Hoff
60fa4935b5
Improve opentracing for incoming HTTP requests ( #11618 )
...
* remove `start_active_span_from_request`
Instead, pull out a separate function, `span_context_from_request`, to extract
the parent span, which we can then pass into `start_active_span` as
normal. This seems to be clearer all round.
* Remove redundant tags from `incoming-federation-request`
These are all wrapped up inside a parent span generated in AsyncResource, so
there's no point duplicating all the tags that are set there.
* Leave request spans open until the request completes
It may take some time for the response to be encoded into JSON, and that JSON
to be streamed back to the client, and really we want that inside the top-level
span, so let's hand responsibility for closure to the SynapseRequest.
* opentracing logs for HTTP request events
* changelog
2021-12-20 17:45:03 +00:00
Richard van der Hoff
8e4083e2f6
Merge remote-tracking branch 'origin/release-v1.49' into develop
2021-12-20 16:34:01 +00:00
Richard van der Hoff
76aa5537ad
Disable aggregation bundling on /sync
responses ( #11583 )
...
* Disable aggregation bundling on `/sync` responses
A partial revert of #11478 . This turns out to have had a significant CPU impact
on initial-sync handling. For now, let's disable it, until we find a more
efficient way of achieving this.
* Fix tests.
Co-authored-by: Patrick Cloke <patrickc@matrix.org>
2021-12-20 16:33:35 +00:00
Patrick Cloke
3e0cfd447e
Return JSON errors for unknown resources under /matrix/client. ( #11602 )
...
Instead of returning 404 errors with HTML bodies when an unknown
prefix was requested (e.g. /matrix/client/v1 before Synapse v1.49.0).
2021-12-20 16:00:13 +00:00
V02460
7a7ca8f226
Use mock from standard library ( #11588 )
...
Instead of the backported version.
2021-12-20 10:34:46 -05:00
Shay
8ad39438fa
Add opentracing types ( #11603 )
2021-12-20 12:18:09 +00:00
Dirk Klimpel
8428ef66c7
Add type hints to synapse/tests/rest/admin
( #11590 )
2021-12-16 14:59:56 -05:00
Dirk Klimpel
1847d027e6
Add type hints to synapse/storage/databases/main/transactions.py
( #11589 )
2021-12-16 14:59:35 -05:00
Eric Eastwood
43f5cc7adc
Add MSC2716 and MSC3030 to /versions
-> unstable_features
( #11582 )
...
As suggested in https://github.com/matrix-org/matrix-react-sdk/pull/7372#discussion_r769523369
2021-12-16 11:25:37 -06:00
Sean Quah
c7fe32edb4
Add type hints to synapse/storage/databases/main/room.py
( #11575 )
2021-12-15 18:00:48 +00:00
Patrick Cloke
f901f8b70e
Require Collections as the parameters for simple_* methods. ( #11580 )
...
Instead of Iterable since the generators are not allowed due
to the potential for their re-use.
2021-12-15 17:00:50 +00:00
Patrick Cloke
323151b787
Convert EventStreamResult to attrs. ( #11574 )
2021-12-15 11:10:02 -05:00
reivilibre
17886d2603
Add experimental support for MSC3202: allowing application services to masquerade as specific devices. ( #11538 )
2021-12-15 10:40:52 +00:00
Sean Quah
ecfcd9bbbe
Add type hints to synapse/storage/databases/main/e2e_room_keys.py
( #11549 )
2021-12-14 17:46:47 +00:00
Sean Quah
0147b3de20
Add missing type hints to synapse.logging.context
( #11556 )
2021-12-14 17:35:28 +00:00
Patrick Cloke
2519beaad2
Add missing type hints to synapse.appservice
( #11360 )
2021-12-14 17:02:46 +00:00
Sean Quah
a4dce5b53d
Remove redundant COALESCE()
s around COUNT()
s in database queries ( #11570 )
...
`COUNT()` never returns `NULL`. A `COUNT(*)` over 0 rows is 0 and a
`COUNT(NULL)` is also 0.
2021-12-14 12:34:30 +00:00
Patrick Cloke
33abbc3278
Add missing type hints to synapse.http. ( #11571 )
2021-12-14 07:00:47 -05:00
Richard van der Hoff
ff6fd52160
checks for generators in database functions ( #11564 )
...
A couple of safety-checks to hopefully stop people doing what I just did, and create a storage
function which only works the first time it is called (and not when it is re-run due to a database
concurrency error or similar).
2021-12-13 19:01:27 +00:00
Patrick Cloke
eb39da6782
Move HTML parsing to a separate file for URL previews. ( #11566 )
...
* Splits the logic for parsing HTML from the resource handling code.
* Fix a circular import in the oEmbed code (which uses the HTML parsing code).
* Renames some of the HTML parsing methods to:
* Make it clear which methods are "internal" to the module.
* Clarify what the methods do.
2021-12-13 17:55:07 +00:00
Sean Quah
5305a5e881
Type hint the constructors of the data store classes ( #11555 )
2021-12-13 17:05:00 +00:00
Sean Quah
1abfb15f07
Add type hints to synapse/storage/databases/main/end_to_end_keys.py
( #11551 )
2021-12-13 16:28:26 +00:00
Sean Quah
6da8591f2e
Add type hints to synapse/storage/databases/main/account_data.py
( #11546 )
2021-12-13 16:28:10 +00:00
reivilibre
e5cdb9e233
Make get_device
return None if the device doesn't exist rather than raising an exception. ( #11565 )
...
Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com>
2021-12-13 15:39:43 +00:00
Eric Eastwood
aa8708ebed
Allow events to be created with no prev_events
(MSC2716) ( #11243 )
...
The event still needs to have `auth_events` defined to be valid.
Split out from https://github.com/matrix-org/synapse/pull/11114
2021-12-10 23:08:51 -06:00
Eric Eastwood
8391bd6ab5
Test to ensure we share the same state_group
across the whole historical batch (MSC2716) ( #11487 )
...
Part of MSC2716: https://github.com/matrix-org/matrix-doc/pull/2716
We did some work on making sure the `state_groups` were shared in
https://github.com/matrix-org/synapse/pull/10975
2021-12-10 20:59:20 -06:00
David Robertson
fd2dadb815
Adjust _get_rooms_changed comments ( #11550 )
...
C.f. https://github.com/matrix-org/synapse/pull/11494#pullrequestreview-827780886
2021-12-10 19:19:48 +00:00
Richard van der Hoff
f0562183e7
skip some dict munging in event persistence ( #11560 )
...
Create a new dict helper method `simple_insert_many_values_txn`, which takes
raw row values, rather than {key=>value} dicts. This saves us a bunch of dict
munging, and makes it easier to use generators rather than creating
intermediate lists and dicts.
2021-12-10 15:02:33 +00:00
Richard van der Hoff
86e7a6d16e
Stop populating state_events.prev_state
( #11558 )
...
this field is never read, so we may as well stop populating it.
2021-12-10 14:13:23 +00:00
Patrick Cloke
9562f0c2f1
Ensure emails are canonicalized before fetching associated user. ( #11547 )
...
This should fix pushers with an email in non-canonical form is used as
the pushkey.
2021-12-10 07:17:28 -05:00
Patrick Cloke
3b8872299a
Do not allow cross-room relations, per MSC2674. ( #11516 )
2021-12-09 13:16:01 -05:00
Patrick Cloke
0cc3bf97b4
Additional type hints for the config module, part 2. ( #11480 )
2021-12-09 16:15:46 +00:00
Dirk Klimpel
941ebe49ff
Use HTTPStatus constants in place of literals in synapse.http
( #11543 )
2021-12-09 11:58:25 +00:00
Hubert Chathi
b47d10dc46
Support unprefixed versions of fallback key property names. ( #11541 )
2021-12-09 11:41:27 +00:00
Dirk Klimpel
b3bcacf3c1
Add missing errcode
to parse_string
and parse_boolean
( #11542 )
2021-12-09 11:23:34 +00:00
Robert Long
afa0a5e4fc
Allow guests to send state events ( #11378 )
2021-12-09 11:02:05 +00:00
Patrick Cloke
d93362d87f
Add a constant for receipt types (m.read). ( #11531 )
...
And expand some type hints in the receipts storage module.
2021-12-08 12:26:29 -05:00
Dirk Klimpel
7ecaa3b976
Clean up synapse.rest.admin
( #11535 )
2021-12-08 16:59:40 +00:00
reivilibre
83a74d9350
Document the usage of refresh tokens. ( #11427 )
...
Co-authored-by: David Robertson <davidr@element.io>
2021-12-08 15:31:17 +00:00
reivilibre
365e9482fe
Use HTTPStatus constants in place of literals in tests.rest.client.test_auth
. ( #11520 )
2021-12-08 14:54:47 +00:00
Richard van der Hoff
ff7cc17b57
Improve log messages for stream ids ( #11536 )
...
Somehow I'd managed to get my database in a pickle with stream ids. These
changes were useful to debug.
2021-12-08 14:15:14 +00:00
Hubert Chathi
8541809cb9
Send and handle cross-signing messages using the stable prefix. ( #10520 )
2021-12-08 10:01:38 +00:00
Andrew Morgan
d6fb96e056
Fix case in wait_for_background_updates
where self.store
does not exist ( #11331 )
...
Pull the DataStore from the HomeServer instance, which
always exists.
2021-12-07 11:51:53 -05:00
Sean Quah
966b5d0fa0
1.49.0rc1
2021-12-07 13:56:09 +00:00
Sean Quah
088d748f2c
Revert "Move glob_to_regex
and re_word_boundary
to matrix-python-common
( #11505 ) ( #11527 )
...
This reverts commit a77c369897
.
2021-12-07 13:51:11 +00:00
David Robertson
14d593f72d
Refactors in _generate_sync_entry_for_rooms
( #11515 )
...
* Move sync_token up to the top
* Pull out _get_ignored_users
* Try to signpost the body of `_generate_sync_entry_for_rooms`
* Pull out _calculate_user_changes
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2021-12-07 12:42:05 +00:00
David Robertson
2a3ec6facf
Correctly register shutdown handler for presence workers ( #11518 )
...
Fixes #11517
2021-12-07 12:34:38 +00:00
Sean Quah
eccc49d755
Fix ModuleApi.looping_background_call
for non-async functions ( #11524 )
...
After #10847 , `looping_background_call` would print an error in the logs
every time a non-async function was called. Since the error would be
caught and ignored immediately, there were no other side effects.
2021-12-07 11:41:31 +00:00
Richard van der Hoff
b1ecd19c5d
Fix 'delete room' admin api to work on incomplete rooms ( #11523 )
...
If, for some reason, we don't have the create event, we should still be able to
purge a room.
2021-12-07 11:37:54 +00:00
David Robertson
9c55dedc8c
Correctly ignore invites from ignored users ( #11511 )
2021-12-07 11:24:31 +00:00
reivilibre
2d42e586a8
Fix the test breakage introduced by #11435 as a result of concurrent PRs ( #11522 )
2021-12-07 10:49:39 +00:00
reivilibre
2f053f3f82
Stabilise support for MSC2918 refresh tokens as they have now been merged into the Matrix specification. ( #11435 )
2021-12-06 19:11:43 +00:00
Quentin Gliech
a15a893df8
Save the OIDC session ID (sid) with the device on login ( #11482 )
...
As a step towards allowing back-channel logout for OIDC.
2021-12-06 12:43:06 -05:00
Dirk Klimpel
8b4b153c9e
Add admin API to get some information about federation status ( #11407 )
2021-12-06 16:59:50 +00:00
Patrick Cloke
494ebd7347
Include bundled aggregations in /sync and related fixes ( #11478 )
...
Due to updates to MSC2675 this includes a few fixes:
* Include bundled aggregations for /sync.
* Do not include bundled aggregations for /initialSync and /events.
* Do not bundle aggregations for state events.
* Clarifies comments and variable names.
2021-12-06 15:51:15 +00:00
Sean Quah
a77c369897
Move glob_to_regex
and re_word_boundary
to matrix-python-common
( #11505 )
2021-12-06 11:36:08 +00:00
Eric Eastwood
4eb77965cd
Update backward extremity docs to make it clear that it does not indicate whether we have fetched an events' prev_events
( #11469 )
...
Spawning from https://github.com/matrix-org/synapse/pull/9445#discussion_r758958181
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
2021-12-03 18:25:04 -06:00
reivilibre
637df95de6
Support configuring the lifetime of non-refreshable access tokens separately to refreshable access tokens. ( #11445 )
2021-12-03 16:42:44 +00:00
Dirk Klimpel
e5f426cd54
Add type hints to synapse/tests/rest/admin
( #11501 )
2021-12-03 13:57:13 +00:00
Olivier Wilkinson (reivilibre)
8cd68b8102
Revert accidental commits to develop.
2021-12-03 12:31:28 +00:00
Olivier Wilkinson (reivilibre)
6cae125e20
Newsfile
...
Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>
2021-12-03 12:25:37 +00:00
Richard van der Hoff
5640992d17
Disambiguate queries on state_key
( #11497 )
...
We're going to add a `state_key` column to the `events` table, so we need to
add some disambiguation to queries which use it.
2021-12-02 22:42:58 +00:00
David Robertson
d26808dd85
Comments on the /sync tentacles ( #11494 )
...
This mainly consists of docstrings and inline comments. There are one or two type annotations and variable renames thrown in while I was here.
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2021-12-02 20:58:32 +00:00
reivilibre
f91624a595
Clean up tests.storage.test_appservice ( #11492 )
2021-12-02 18:43:33 +00:00
reivilibre
16d39a5490
Clean up tests.storage.test_main
to remove use of legacy code. ( #11493 )
2021-12-02 18:13:43 +00:00
reivilibre
8a4c296987
Clean up tests.test_visibility
to remove legacy code. ( #11495 )
2021-12-02 18:13:30 +00:00
Shay
49e1356ee3
Minor cleanup on recently ported doc pages ( #11466 )
...
* move wiki pages to synapse/docs and add a few titles where necessary
* update SUMMARY.md with added pages
* add changelog
* move incorrectly located newsfragment
* update changelog number
* snake case added files and update summary.md accordingly
* update issue/pr links
* update relative links to docs
* update changelog to indicate that we moved wiki pages to the docs and state reasoning
* requested changes to admin_faq.md
* requested changes to database_maintenance_tools.md
* requested changes to understanding_synapse_through_graphana_graphs.md
* add changelog
* fix leftover merge errata
* fix unwanted changes from merge
* use two spaces between entries
* outdent code blocks
2021-12-02 09:46:20 -08:00
Patrick Cloke
d2279f471b
Add most of the missing type hints to synapse.federation
. ( #11483 )
...
This skips a few methods which are difficult to type.
2021-12-02 16:18:10 +00:00
Sean Quah
b50e39df57
Avoid waiting for zombie processes in synctl stop
( #11490 )
2021-12-02 16:07:06 +00:00
Sean Quah
858d80bf0f
Fix media repository failing when media store path contains symlinks ( #11446 )
2021-12-02 16:05:24 +00:00
reivilibre
435f044807
Add type annotations to tests.storage.test_appservice
. ( #11488 )
2021-12-02 15:30:05 +00:00
Richard van der Hoff
f61462e1be
scripts-dev/sign_json
: support for signing events (#11486 )
2021-12-02 15:18:40 +00:00
Eric Eastwood
a6f1a3abec
Add MSC3030 experimental client and federation API endpoints to get the closest event to a given timestamp ( #9445 )
...
MSC3030: https://github.com/matrix-org/matrix-doc/pull/3030
Client API endpoint. This will also go and fetch from the federation API endpoint if unable to find an event locally or we found an extremity with possibly a closer event we don't know about.
```
GET /_matrix/client/unstable/org.matrix.msc3030/rooms/<roomID>/timestamp_to_event?ts=<timestamp>&dir=<direction>
{
"event_id": ...
"origin_server_ts": ...
}
```
Federation API endpoint:
```
GET /_matrix/federation/unstable/org.matrix.msc3030/timestamp_to_event/<roomID>?ts=<timestamp>&dir=<direction>
{
"event_id": ...
"origin_server_ts": ...
}
```
Co-authored-by: Erik Johnston <erik@matrix.org>
2021-12-02 01:02:20 -06:00
Shay
84dc50e160
Port wiki pages to documentation website ( #11402 )
...
* move wiki pages to synapse/docs and add a few titles where necessary
* update SUMMARY.md with added pages
* add changelog
* move incorrectly located newsfragment
* update changelog number
* snake case added files and update summary.md accordingly
* update issue/pr links
* update relative links to docs
* update changelog to indicate that we moved wiki pages to the docs and state reasoning
* revert unintentional change to CHANGES.md
* add link
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
* Update CHANGES.md
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2021-12-01 10:12:19 -08:00
Patrick Cloke
ed635d3285
Add a license header and comment. ( #11479 )
2021-12-01 12:51:14 -05:00
Patrick Cloke
7b62791e00
Clean-up get_version_string ( #11468 )
2021-12-01 12:43:32 -05:00