| Commit message (Collapse) | Author | Files | Lines |
|
This should speed up push rule calculations for rooms with large numbers of local users when the main push rule cache fails.
Co-authored-by: reivilibre <oliverw@matrix.org>
|
|
It is currently rather hard to see which rooms are causing inbound federation
traffic. Add the room id to the logs.
|
|
`state_event_ids`, which accurately describes the usage with MSC2716 instead of abusing `auth_event_ids` (#12083)
Spawned from https://github.com/matrix-org/synapse/pull/10975#discussion_r813183430
Part of [MSC2716](https://github.com/matrix-org/matrix-spec-proposals/pull/2716)
|
|
Hopefully this fixes #12257.
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
|
|
|
|
(#12288)
Co-authored-by: Shay <hillerys@element.io>
|
|
|
|
The `MockHttpResource` and `MockKey` objects were unused
since #9396 (74af356baf79de5d719fad6c32b981eedbdd950d).
|
|
|
|
|
|
as 3.1.0 removed the deprecated jinja2.Markup class which we still rely on.
|
|
`markupsafe.Markup`" (#12296)
This reverts commit 8810c93e828a9ed1dcb008d08be8aa9fcb4d28c3.
|
|
|
|
|
|
(#12289)
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
|
|
Filter the events returned from `/relations` for the requester's ignored users
in a similar way to `/messages` (and `/sync`).
|
|
|
|
|
|
|
|
documentation (#12038)
Resolves #10339
|
|
Signed-off-by: Nicolas Werner <n.werner@famedly.com>
|
|
Co-authored-by: reivilibre <olivier@librepush.net>
|
|
|
|
|
|
|
|
* Tweak copy for sso account details template
* Update sso footer copyright year
* Add newsfragment
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
|
|
|
|
|
|
registration template, in order to comply with SIWA guidelines. (#12260)
* Reword as 'Choose your account name'
* Newsfile
Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>
|
|
* Make it possible to enable compression for the metrics HTTP resource
This can provide significant bandwidth savings pulling metrics from
synapse instances.
* Add changelog file.
* Fix type hint
|
|
* Replace `get_state_for_pdu` with `get_state_ids_for_pdu` and `get_events_as_list`.
* Return a 404 from `/state` and `/state_ids` for an outlier
|
|
* Try to detect borked package installations.
Fixes #12223.
Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com>
|
|
The get_bundled_aggregations code is fairly high-level and uses
a lot of store methods, we move it into the handler as that seems
like a better fit.
|
|
We fetch the thread summary in two phases:
1. The summary that is shared by all users (count of messages and latest event).
2. Whether the requesting user has participated in the thread.
There's no use in attempting step 2 for events which did not return a summary
from step 1.
|
|
|
|
* inherit `MonthlyActiveUsersStore` from `RegistrationWorkerStore`
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
|
|
* Formally type the UserProfile in user searches
* export UserProfile in synapse.module_api
* Update docs
Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com>
|
|
|
|
|
|
|
|
An error occured if a filter was supplied with `event_fields` which did not include
`unsigned`.
In that case, bundled aggregations are still added as the spec states it is allowed
for servers to add additional fields.
|
|
To handle cancellation, we ensure that `after_callback`s and
`exception_callback`s are always run, since the transaction will
complete on another thread regardless of cancellation.
We also wait until everything is done before releasing the
`CancelledError`, so that logging contexts won't get used after they
have been finished.
Signed-off-by: Sean Quah <seanq@element.io>
|
|
Adds a handler layer between the REST and datastore layers for relations.
|
|
|
|
|
|
* Moves the relation pagination tests to a separate class.
* Move the assertion of the response code into the `_send_relation` helper.
* Moves some helpers into the base-class.
|
|
By using urljoin from the standard library and reducing the number
of places URLs are rebased.
|
|
Instead of fetching the raw account data and re-parsing it. The
ignored_users table is a denormalised version of the account data
for quick searching.
|
|
Signed-off-by: Sean Quah <seanq@element.io>
|
|
|
|
|
|
|
|
These decorators mostly support cancellation already. Add cancellation
tests and fix use of finished logging contexts by delaying cancellation,
as suggested by @erikjohnston.
Signed-off-by: Sean Quah <seanq@element.io>
|
|
Also convert `ReadWriteLock` to use async context managers.
Signed-off-by: Sean Quah <seanq@element.io>
|
|
(#12215)
Signed-off-by: Sean Quah <seanq@element.io>
|
|
`delay_cancellation` behaves like `stop_cancellation`, except it
delays `CancelledError`s until the original `Deferred` resolves.
This is handy for unifying cleanup paths and ensuring that uncancelled
coroutines don't use finished logcontexts.
Signed-off-by: Sean Quah <seanq@element.io>
|
|
configuration flag. (#12200)
|
|
|
|
|
|
|
|
And rename the field used for caching from _id to _cache_key.
|
|
Fixes https://github.com/matrix-org/synapse/issues/12205
|
|
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
|
|
|
|
|
|
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
|
|
This test was relying on poking events which weren't in the database into
filter_events_for_client.
|
|
This includes the `typing`, `to_device`, `account_data`, `receipts`, and `presence`
streams (really anything except the `events` stream).
|
|
|
|
compatibility. Breaks compatibility with Mjolnir v1.3.1 and earlier. (#11700)
|
|
The unstable identifiers are still supported if the experimental configuration
flag is enabled. The unstable identifiers will be removed in a future release.
|
|
Some stuff that came up while we were talking about #12173.
|
|
This is allowed per MSC2675, although the original implementation did
not allow for it and would return an empty chunk / not bundle aggregations.
The main thing to improve is that the various caches get cleared properly
when an event is redacted, and that edits must not leak if the original
event is redacted (as that would presumably leak something similar to
the original event content).
|
|
Since the object it returns is a ReplicationCommandHandler.
This is clean-up from adding support to Redis where the command handler
was added as an additional layer of abstraction from the TCP protocol.
|
|
Signed-off-by: Sean Quah <seanq@element.io>
|
|
deactivate a user (#12028)
* Add check_can_deactivate_user
* Add check_can_shutdown_rooms
* Documentation
* callbacks, not functions
* Various suggested tweaks
* Add tests for test_check_can_shutdown_room and test_check_can_deactivate_user
* Update check_can_deactivate_user to not take a Requester
* Fix check_can_shutdown_room docs
* Renegade and use `by_admin` instead of `admin_user_id`
* fix lint
* Update docs/modules/third_party_rules_callbacks.md
Co-authored-by: Brendan Abolivier <babolivier@matrix.org>
* Update docs/modules/third_party_rules_callbacks.md
Co-authored-by: Brendan Abolivier <babolivier@matrix.org>
* Update docs/modules/third_party_rules_callbacks.md
Co-authored-by: Brendan Abolivier <babolivier@matrix.org>
* Update docs/modules/third_party_rules_callbacks.md
Co-authored-by: Brendan Abolivier <babolivier@matrix.org>
Co-authored-by: Brendan Abolivier <babolivier@matrix.org>
|
|
* `@cached` can now take an `uncached_args` which is an iterable of names to not use in the cache key.
* Requires `@cached`, @cachedList` and `@lru_cache` to use keyword arguments for clarity.
* Asserts that keyword-only arguments in cached functions are not accepted. (I tested this briefly and I don't believe this works properly.)
|
|
|
|
This allows for the target process to be down for around a minute
which provides time for restarts during synapse upgrades/config updates.
Closes: #12178
Signed off by Nick Mills-Barrett nick@beeper.com
|
|
We don't *have* the state at a backwards-extremity, so this is never going to
do anything useful.
|
|
* Rewrites the demo documentation to be clearer, accurate, and moves it to our documentation tree.
* Improvements to the demo scripts:
* `clean.sh` now runs `stop.sh` first to avoid zombie processes.
* Uses more modern Synapse configuration (and removes some obsolete configuration).
* Consistently use the HTTP ports for server name, etc.
* Remove the `demo/etc` directory and place everything into the `demo/808x` directories.
|
|
Signed-off-by: Sean Quah <seanq@element.io>
|
|
(#12131)
|
|
|
|
|
|
|
|
This field is only to be used in the Server-Server API, and not the
Client-Server API, but was being leaked when a federation response
was used in the /hierarchy API.
|
|
Some properties were marked as RedisProtocol instead of ConnectionHandler,
which wraps RedisProtocol instance(s).
|
|
|
|
|
|
start if pre-release versions of dependencies were installed. (#12177)
* Add failing test to characterise the regression #12176
* Permit pre-release versions of specified packages
* Newsfile (bugfix)
Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>
|
|
using the default batch size (#12157)
|
|
The caches for the target of the relation must be cleared
so that the bundled aggregations are re-calculated after
the redaction is processed.
|
|
I've factored it out for easier use in other workflows.
|
|
It’s just occurred to me that #12088 pulled in the “packaging” package (~=21.3). I pulled in the newest version I had at the time.
I only use it for packaging.requirements.Requirements. Which was added in packaging 16.1: https://github.com/pypa/packaging/releases/tag/16.1
https://pkgs.org/download/python3-packaging suggests that the oldest version we care about is 17.1 in Ubuntu Bionic. So I think with this bound we're hunky dory.
|
|
|
|
Signed-off-by: Sean Quah <seanq@element.io>
|
|
Signed-off-by: Sean Quah <seanq@element.io>
|
|
|
|
|
|
|
|
|
|
Avoid trying to get the state for outliers, which isn't a sensible thing to do.
|
|
We make multiple passes over this, so a regular iterable won't do.
|
|
If we locally generate a rejection for an invite received over federation, it
is stored as an outlier (because we probably don't have the state for the
room). However, currently we still generate a state group for it (even though
the state in that state group will be nonsense).
By setting the `outlier` param on `create_event`, we avoid the nonsensical
state.
|
|
|
|
I've argued in #11537 that poetry and tox don't cooperate well at the
moment. (See also #12119.) Therefore I'm pruning away bits of tox to make the transition to poetry easier. This change removes the commands for coverage.
We don't use coverage in anger at the moment. It shouldn't be too hard to add coverage as a dev-dependency and reintroduce this if we really want it.
|
|
* Add type hints to `tests/rest`
* newsfile
* change import from `SigningKey`
|
|
This ensures that the `latest_event` field of the bundled aggregation
for threads uses the same format as the other events in the response.
|
|
* Fix incorrect argument in test case
* Add copyright header
* Docstring and __all__
* Exclude dev depenencies
* Use changelog from #12088
* Include version in error messages
This will hopefully distinguish between the version of the source code
and the version of the distribution package that is installed.
* Linter script is your friend
|
|
Co-authored-by: Brendan Abolivier <babolivier@matrix.org>
|
|
There's no reason to let people use long keys.
|
|
The Complement tests for MSC3030 are now merged, https://github.com/matrix-org/complement/pull/178
Synapse implmentation: https://github.com/matrix-org/synapse/pull/9445
|
|
|
|
* Move the `snapcraft` configuration to `contrib`.
We're happy for people to package this as a snap image if it's useful,
but we don't support or maintain it. I'd like to move the config to
`contrib` to reflect this state of affairs.
* Changelog
|
|
* Rename scripts-dev to have suffices
* Update references to `scripts-dev`
* Changelog
* These scripts don't pass mypy
|