summary refs log tree commit diff
path: root/synapse/handlers/message.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'release-v1.44' into matrix-org-hotfixesOlivier Wilkinson (reivilibre)2021-09-301-9/+4
|\
| * Fix event context for outliers in important MSC2716 spot (#10938)Eric Eastwood2021-09-301-9/+4
| | | | | | | | | | | | | | | | | | Fix event context for outlier causing failures in all of the MSC2716 Complement tests. The `EventContext.for_outlier` refactor happened in https://github.com/matrix-org/synapse/pull/10883 and this spot was left out.
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesErik Johnston2021-09-281-8/+8
|\|
| * Use direct references for configuration variables (part 5). (#10897)Patrick Cloke2021-09-241-4/+4
| |
| * Use direct references for some configuration variables (part 3) (#10885)Patrick Cloke2021-09-231-2/+2
| | | | | | | | | | | | | | | | This avoids the overhead of searching through the various configuration classes by directly referencing the class that the attributes are in. It also improves type hints since mypy can now resolve the types of the configuration variables.
| * Remove unnecessary parentheses around tuples returned from methods (#10889)Andrew Morgan2021-09-231-2/+2
| |
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesDavid Robertson2021-09-221-9/+13
|\|
| * Rename MSC2716 things from `chunk` to `batch` to match `/batch_send` ↵Eric Eastwood2021-09-211-1/+1
| | | | | | | | | | | | | | | | endpoint (#10838) See https://github.com/matrix-org/matrix-doc/pull/2716#discussion_r684574497 Dropping support for older MSC2716 room versions so we don't have to worry about supporting both chunk and batch events.
| * Require type hints in the handlers module. (#10831)Patrick Cloke2021-09-201-8/+12
| | | | | | | | | | | | | | Adds missing type hints to methods in the synapse.handlers module and requires all methods to have type hints there. This also removes the unused construct_auth_difference method from the FederationHandler.
* | Merge branch 'release-v1.43' of github.com:matrix-org/synapse into ↵Andrew Morgan2021-09-141-2/+2
|\| | | | | | | matrix-org-hotfixes
| * Use direct references for some configuration variables (#10798)Patrick Cloke2021-09-131-2/+2
| | | | | | | | Instead of proxying through the magic getter of the RootConfig object. This should be more performant (and is more explicit).
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesRichard van der Hoff2021-09-101-5/+50
|\|
| * Move `maybe_kick_guest_users` out of `BaseHandler` (#10744)Richard van der Hoff2021-09-061-2/+25
| | | | | | This is part of my ongoing war against BaseHandler. I've moved kick_guest_users into RoomMemberHandler (since it calls out to that handler anyway), and split maybe_kick_guest_users into the two places it is called.
| * Allow room creator to send MSC2716 related events in existing room versions ↵Eric Eastwood2021-09-041-3/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#10566) * Allow room creator to send MSC2716 related events in existing room versions Discussed at https://github.com/matrix-org/matrix-doc/pull/2716/#discussion_r682474869 Restoring `get_create_event_for_room_txn` from, https://github.com/matrix-org/synapse/pull/10245/commits/44bb3f0cf5cb365ef9281554daceeecfb17cc94d * Add changelog * Stop people from trying to redact MSC2716 events in unsupported room versions * Populate rooms.creator column for easy lookup > From some [out of band discussion](https://matrix.to/#/!UytJQHLQYfvYWsGrGY:jki.re/$p2fKESoFst038x6pOOmsY0C49S2gLKMr0jhNMz_JJz0?via=jki.re&via=matrix.org), my plan is to use `rooms.creator`. But currently, we don't fill in `creator` for remote rooms when a user is invited to a room for example. So we need to add some code to fill in `creator` wherever we add to the `rooms` table. And also add a background update to fill in the rows missing `creator` (we can use the same logic that `get_create_event_for_room_txn` is doing by looking in the state events to get the `creator`). > > https://github.com/matrix-org/synapse/pull/10566#issuecomment-901616642 * Remove and switch away from get_create_event_for_room_txn * Fix no create event being found because no state events persisted yet * Fix and add tests for rooms creator bg update * Populate rooms.creator field for easy lookup Part of https://github.com/matrix-org/synapse/pull/10566 - Fill in creator whenever we insert into the rooms table - Add background update to backfill any missing creator values * Add changelog * Fix usage * Remove extra delta already included in #10697 * Don't worry about setting creator for invite * Only iterate over rows missing the creator See https://github.com/matrix-org/synapse/pull/10697#discussion_r695940898 * Use constant to fetch room creator field See https://github.com/matrix-org/synapse/pull/10697#discussion_r696803029 * More protection from other random types See https://github.com/matrix-org/synapse/pull/10697#discussion_r696806853 * Move new background update to end of list See https://github.com/matrix-org/synapse/pull/10697#discussion_r696814181 * Fix query casing * Fix ambiguity iterating over cursor instead of list Fix `psycopg2.ProgrammingError: no results to fetch` error when tests run with Postgres. ``` SYNAPSE_POSTGRES=1 SYNAPSE_TEST_LOG_LEVEL=INFO python -m twisted.trial tests.storage.databases.main.test_room ``` --- We use `txn.fetchall` because it will return the results as a list or an empty list when there are no results. Docs: > `cursor` objects are iterable, so, instead of calling explicitly fetchone() in a loop, the object itself can be used: > > https://www.psycopg.org/docs/cursor.html#cursor-iterable And I'm guessing iterating over a raw cursor does something weird when there are no results. --- Test CI failure: https://github.com/matrix-org/synapse/pull/10697/checks?check_run_id=3468916530 ``` tests.test_visibility.FilterEventsForServerTestCase.test_large_room =============================================================================== [FAIL] Traceback (most recent call last): File "/home/runner/work/synapse/synapse/tests/storage/databases/main/test_room.py", line 85, in test_background_populate_rooms_creator_column self.get_success( File "/home/runner/work/synapse/synapse/tests/unittest.py", line 500, in get_success return self.successResultOf(d) File "/home/runner/work/synapse/synapse/.tox/py/lib/python3.9/site-packages/twisted/trial/_synctest.py", line 700, in successResultOf self.fail( twisted.trial.unittest.FailTest: Success result expected on <Deferred at 0x7f4022f3eb50 current result: None>, found failure result instead: Traceback (most recent call last): File "/home/runner/work/synapse/synapse/.tox/py/lib/python3.9/site-packages/twisted/internet/defer.py", line 701, in errback self._startRunCallbacks(fail) File "/home/runner/work/synapse/synapse/.tox/py/lib/python3.9/site-packages/twisted/internet/defer.py", line 764, in _startRunCallbacks self._runCallbacks() File "/home/runner/work/synapse/synapse/.tox/py/lib/python3.9/site-packages/twisted/internet/defer.py", line 858, in _runCallbacks current.result = callback( # type: ignore[misc] File "/home/runner/work/synapse/synapse/.tox/py/lib/python3.9/site-packages/twisted/internet/defer.py", line 1751, in gotResult current_context.run(_inlineCallbacks, r, gen, status) --- <exception caught here> --- File "/home/runner/work/synapse/synapse/.tox/py/lib/python3.9/site-packages/twisted/internet/defer.py", line 1657, in _inlineCallbacks result = current_context.run( File "/home/runner/work/synapse/synapse/.tox/py/lib/python3.9/site-packages/twisted/python/failure.py", line 500, in throwExceptionIntoGenerator return g.throw(self.type, self.value, self.tb) File "/home/runner/work/synapse/synapse/synapse/storage/background_updates.py", line 224, in do_next_background_update await self._do_background_update(desired_duration_ms) File "/home/runner/work/synapse/synapse/synapse/storage/background_updates.py", line 261, in _do_background_update items_updated = await update_handler(progress, batch_size) File "/home/runner/work/synapse/synapse/synapse/storage/databases/main/room.py", line 1399, in _background_populate_rooms_creator_column end = await self.db_pool.runInteraction( File "/home/runner/work/synapse/synapse/synapse/storage/database.py", line 686, in runInteraction result = await self.runWithConnection( File "/home/runner/work/synapse/synapse/synapse/storage/database.py", line 791, in runWithConnection return await make_deferred_yieldable( File "/home/runner/work/synapse/synapse/.tox/py/lib/python3.9/site-packages/twisted/internet/defer.py", line 858, in _runCallbacks current.result = callback( # type: ignore[misc] File "/home/runner/work/synapse/synapse/tests/server.py", line 425, in <lambda> d.addCallback(lambda x: function(*args, **kwargs)) File "/home/runner/work/synapse/synapse/.tox/py/lib/python3.9/site-packages/twisted/enterprise/adbapi.py", line 293, in _runWithConnection compat.reraise(excValue, excTraceback) File "/home/runner/work/synapse/synapse/.tox/py/lib/python3.9/site-packages/twisted/python/deprecate.py", line 298, in deprecatedFunction return function(*args, **kwargs) File "/home/runner/work/synapse/synapse/.tox/py/lib/python3.9/site-packages/twisted/python/compat.py", line 404, in reraise raise exception.with_traceback(traceback) File "/home/runner/work/synapse/synapse/.tox/py/lib/python3.9/site-packages/twisted/enterprise/adbapi.py", line 284, in _runWithConnection result = func(conn, *args, **kw) File "/home/runner/work/synapse/synapse/synapse/storage/database.py", line 786, in inner_func return func(db_conn, *args, **kwargs) File "/home/runner/work/synapse/synapse/synapse/storage/database.py", line 554, in new_transaction r = func(cursor, *args, **kwargs) File "/home/runner/work/synapse/synapse/synapse/storage/databases/main/room.py", line 1375, in _background_populate_rooms_creator_column_txn for room_id, event_json in txn: psycopg2.ProgrammingError: no results to fetch ``` * Move code not under the MSC2716 room version underneath an experimental config option See https://github.com/matrix-org/synapse/pull/10566#issuecomment-906437909 * Add ordering to rooms creator background update See https://github.com/matrix-org/synapse/pull/10697#discussion_r696815277 * Add comment to better document constant See https://github.com/matrix-org/synapse/pull/10697#discussion_r699674458 * Use constant field
* | Merge branch 'release-v1.41' into matrix-org-hotfixesRichard van der Hoff2021-08-311-3/+20
|\|
| * Merge pull request from GHSA-3x4c-pq33-4w3qreivilibre2021-08-311-3/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add some tests to characterise the problem Some failing. Current states: RoomsMemberListTestCase test_get_member_list ... [OK] test_get_member_list_mixed_memberships ... [OK] test_get_member_list_no_permission ... [OK] test_get_member_list_no_permission_former_member ... [OK] test_get_member_list_no_permission_former_member_with_at_token ... [FAIL] test_get_member_list_no_room ... [OK] test_get_member_list_no_permission_with_at_token ... [FAIL] * Correct the tests * Check user is/was member before divulging room membership * Pull out only the 1 membership event we want. * Update tests/rest/client/v1/test_rooms.py Co-authored-by: Erik Johnston <erik@matrix.org> * Fixup tests (following apply review suggestion) Co-authored-by: Erik Johnston <erik@matrix.org>
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesAndrew Morgan2021-07-201-15/+11
|\|
| * Port the ThirdPartyEventRules module interface to the new generic interface ↵Brendan Abolivier2021-07-201-4/+4
| | | | | | | | | | (#10386) Port the third-party event rules interface to the generic module interface introduced in v1.37.0
| * Use inline type hints in `handlers/` and `rest/`. (#10382)Jonathan de Jong2021-07-161-11/+7
| |
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesErik Johnston2021-07-161-4/+14
|\|
| * Add base starting insertion event when no chunk ID is provided (MSC2716) ↵Eric Eastwood2021-07-081-0/+8
| | | | | | | | | | | | | | | | | | (#10250) * Add base starting insertion point when no chunk ID is provided This is so we can have the marker event point to this initial insertion event and be able to traverse the events in the first chunk.
| * Rebuild event auth when rebuilding an event after a call to a ↵Brendan Abolivier2021-07-081-4/+6
| | | | | | | | | | `ThirdPartyEventRules` module (#10316) Because modules might send extra state events when processing an event (e.g. matrix-org/synapse-dinsic#100), and in some cases these extra events might get dropped if we don't recalculate the initial event's auth.
* | Merge branch 'release-v1.38' into matrix-org-hotfixesBrendan Abolivier2021-07-061-3/+6
|\|
| * Move methods involving event authentication to EventAuthHandler. (#10268)Patrick Cloke2021-07-011-3/+6
| | | | | | Instead of mixing them with user authentication methods.
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesRichard van der Hoff2021-07-011-0/+7
|\|
| * Correct type hints for synapse.event_auth. (#10253)Patrick Cloke2021-06-301-0/+7
| |
* | Merge branch 'release-v1.37' of github.com:matrix-org/synapse into ↵Brendan Abolivier2021-06-231-5/+99
|\| | | | | | | matrix-org-hotfixes
| * Add endpoints for backfilling history (MSC2716) (#9247)Eric Eastwood2021-06-221-5/+99
| | | | | | Work on https://github.com/matrix-org/matrix-doc/pull/2716
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesRichard van der Hoff2021-06-161-10/+20
|\|
| * Implement knock feature (#6739)Sorunome2021-06-091-10/+20
| | | | | | | | | | | | This PR aims to implement the knock feature as proposed in https://github.com/matrix-org/matrix-doc/pull/2403 Signed-off-by: Sorunome mail@sorunome.de Signed-off-by: Andrew Morgan andrewm@element.io
* | Merge branch 'release-v1.34.0' into matrix-org-hotfixesBrendan Abolivier2021-05-121-5/+40
|\|
| * Run cache_joined_hosts_for_event in background (#9951)Erik Johnston2021-05-121-5/+40
| |
| * Always cache 'event_to_prev_state_group' (#9950)Erik Johnston2021-05-071-6/+7
| | | | | | Fixes regression in send PDU times introduced in #9905.
* | Always cache 'event_to_prev_state_group'Erik Johnston2021-05-071-6/+7
| | | | | | | | Fixes regression in send PDU times introduced in #9905.
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesErik Johnston2021-05-061-12/+48
|\|
| * Don't set the external cache if its been done recently (#9905)Erik Johnston2021-05-051-4/+30
| |
| * Use get_current_users_in_room from store and not StateHandler (#9910)Erik Johnston2021-05-051-1/+1
| |
| * Add missing type hints to handlers and fix a Spam Checker type hint. (#9896)Patrick Cloke2021-04-291-7/+17
| | | | | | | | | | The user_may_create_room_alias method on spam checkers declared the room_alias parameter as a str when in reality it is passed a RoomAlias object.
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesAndrew Morgan2021-04-191-1/+0
|\|
| * Remove redundant "coding: utf-8" lines (#9786)Jonathan de Jong2021-04-141-1/+0
| | | | | | | | | | | | | | Part of #9744 Removes all redundant `# -*- coding: utf-8 -*-` lines from files, as python 3 automatically reads source code as utf-8 now. `Signed-off-by: Jonathan de Jong <jonathan@automatia.nl>`
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesAndrew Morgan2021-04-131-3/+8
|\|
| * Bugbear: Add Mutable Parameter fixes (#9682)Jonathan de Jong2021-04-081-3/+8
| | | | | | | | | | | | | | Part of #9366 Adds in fixes for B006 and B008, both relating to mutable parameter lint errors. Signed-off-by: Jonathan de Jong <jonathan@automatia.nl>
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesPatrick Cloke2021-04-081-1/+1
|\|
| * Replace `room_invite_state_types` with `room_prejoin_state` (#9700)Richard van der Hoff2021-03-301-1/+1
| | | | | | | | | | | | | | `room_invite_state_types` was inconvenient as a configuration setting, because anyone that ever set it would not receive any new types that were added to the defaults. Here, we deprecate the old setting, and replace it with a couple of new settings under `room_prejoin_state`.
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesErik Johnston2021-02-221-1/+7
|\|
| * Add configs to make profile data more private (#9203)AndrewFerr2021-02-191-1/+7
| | | | | | | | | | | | | | Add off-by-default configuration settings to: - disable putting an invitee's profile info in invite events - disable profile lookup via federation Signed-off-by: Andrew Ferrazzutti <fair@miscworks.net>
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesRichard van der Hoff2021-02-171-11/+23
|\|
| * Update black, and run auto formatting over the codebase (#9381)Eric Eastwood2021-02-161-11/+23
| | | | | | | | | | | | | | - Update black version to the latest - Run black auto formatting over the codebase - Run autoformatting according to [`docs/code_style.md `](https://github.com/matrix-org/synapse/blob/80d6dc9783aa80886a133756028984dbf8920168/docs/code_style.md) - Update `code_style.md` docs around installing black to use the correct version
* | Merge remote-tracking branch 'origin/release-v1.27.0' into matrix-org-hotfixesErik Johnston2021-02-021-1/+1
|\|
| * Add an admin API to get the current room state (#9168)Travis Ralston2021-02-021-1/+1
| | | | | | | | | | This could arguably replace the existing admin API for `/members`, however that is out of scope of this change. This sort of endpoint is ideal for moderation use cases as well as other applications, such as needing to retrieve various bits of information about a room to perform a task (like syncing power levels between two places). This endpoint exposes nothing more than an admin would be able to access with a `select *` query on their database.
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesErik Johnston2021-01-261-0/+42
|\|
| * Precompute joined hosts and store in Redis (#9198)Erik Johnston2021-01-261-0/+42
| |
* | Merge remote-tracking branch 'origin/release-v1.25.0' into matrix-org-hotfixesRichard van der Hoff2021-01-051-1/+1
|\|
| * Try and drop stale extremities. (#8929)Erik Johnston2020-12-181-1/+1
| | | | | | | | If we see stale extremities while persisting events, and notice that they don't change the result of state resolution, we drop them.
* | Merge branch 'develop' into matrix-org-hotfixesPatrick Cloke2020-12-151-1/+1
|\|
| * Allow spam-checker modules to be provide async methods. (#8890)David Teller2020-12-111-1/+1
| | | | | | | | Spam checker modules can now provide async methods. This is implemented in a backwards-compatible manner.
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesErik Johnston2020-11-271-11/+10
|\|
| * Add admin API for logging in as a user (#8617)Erik Johnston2020-11-171-11/+10
| |
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesErik Johnston2020-11-131-0/+3
|\|
| * Block clients from sending server ACLs that lock the local server out. (#8708)Erik Johnston2020-11-031-0/+3
| | | | | | Fixes #4042
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesErik Johnston2020-10-301-31/+9
|\|
| * Merge pull request #8678 from matrix-org/rav/fix_frozen_eventsRichard van der Hoff2020-10-281-3/+2
| |\ | | | | | | Fix serialisation errors when using third-party event rules.
| | * Remove frozendict_json_encoder and support frozendicts everywhereRichard van der Hoff2020-10-281-3/+2
| | | | | | | | | | | | | | | | | | Not being able to serialise `frozendicts` is fragile, and it's annoying to have to think about which serialiser you want. There's no real downside to supporting frozendicts, so let's just have one json encoder.
| * | Abstract code for stripping room state into a separate method (#8671)Andrew Morgan2020-10-271-28/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a requirement for [knocking](https://github.com/matrix-org/synapse/pull/6739), and is abstracting some code that was originally used by the invite flow. I'm separating it out into this PR as it's a fairly contained change. For a bit of context: when you invite a user to a room, you send them [stripped state events](https://matrix.org/docs/spec/server_server/unstable#put-matrix-federation-v2-invite-roomid-eventid) as part of `invite_room_state`. This is so that their client can display useful information such as the room name and avatar. The same requirement applies to knocking, as it would be nice for clients to be able to display a list of rooms you've knocked on - room name and avatar included. The reason we're sending membership events down as well is in the case that you are invited to a room that does not have an avatar or name set. In that case, the client should use the displayname/avatar of the inviter. That information is located in the inviter's membership event. This is optional as knocks don't really have any user in the room to link up to. When you knock on a room, your knock is sent by you and inserted into the room. It wouldn't *really* make sense to show the avatar of a random user - plus it'd be a data leak. So I've opted not to send membership events to the client here. The UX on the client for when you knock on a room without a name/avatar is a separate problem. In essence this is just moving some inline code to a reusable store method.
* | | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesErik Johnston2020-10-271-1/+1
|\| |
| * | Fix typos and spelling errors. (#8639)Patrick Cloke2020-10-231-1/+1
| |/
* | Merge remote-tracking branch 'origin/release-v1.21.3' into matrix-org-hotfixesErik Johnston2020-10-221-1/+6
|\|
| * Fix modifying events in `ThirdPartyRules` modules (#8564)Richard van der Hoff2020-10-161-1/+6
| | | | | | EventBuilder.build wants auth events these days
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2020-10-161-15/+94
|\|
| * Merge pull request #8535 from matrix-org/rav/third_party_events_updatesRichard van der Hoff2020-10-151-8/+71
| |\ | | | | | | Support modifying event content from ThirdPartyRules modules
| | * Allow ThirdPartyRules modules to replace event contentRichard van der Hoff2020-10-131-2/+62
| | | | | | | | | | | | Support returning a new event dict from `check_event_allowed`.
| | * Move third_party_rules check to event creation timeRichard van der Hoff2020-10-131-8/+11
| | | | | | | | | | | | | | | Rather than waiting until we handle the event, call the ThirdPartyRules check when we fist create the event.
| * | Simplify `_locally_reject_invite`Richard van der Hoff2020-10-131-2/+20
| | | | | | | | | | | | | | | Update `EventCreationHandler.create_event` to accept an auth_events param, and use it in `_locally_reject_invite` instead of reinventing the wheel.
| * | Remove redundant `token_id` parameter to create_eventRichard van der Hoff2020-10-131-5/+3
| |/ | | | | | | this is always the same as requester.access_token_id.
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesErik Johnston2020-10-131-85/+116
|\|
| * Move additional tasks to the background worker, part 4 (#8513)Patrick Cloke2020-10-131-9/+9
| |
| * Fix message duplication if something goes wrong after persisting the event ↵Erik Johnston2020-10-131-8/+40
| | | | | | | | | | (#8476) Should fix #3365.
| * Allow modules to create and send events into rooms (#8479)Andrew Morgan2020-10-091-6/+5
| | | | | | | | | | This PR allows Synapse modules making use of the `ModuleApi` to create and send non-membership events into a room. This can useful to have modules send messages, or change power levels in a room etc. Note that they must send event through a user that's already in the room. The non-membership event limitation is currently arbitrary, as it's another chunk of work and not necessary at the moment.
| * Remove the deprecated Handlers object (#8494)Patrick Cloke2020-10-091-2/+2
| | | | | | All handlers now available via get_*_handler() methods on the HomeServer.
| * update wordingRichard van der Hoff2020-10-071-2/+3
| |
| * kill off `send_nonmember_event`Richard van der Hoff2020-10-051-49/+25
| | | | | | | | This is now redundant, and we can just call `handle_new_client_event` directly.
| * pull up event.sender assertionRichard van der Hoff2020-10-051-4/+4
| |
| * Move shadow-ban check down into `handle_new_client_event`.Richard van der Hoff2020-10-051-8/+24
| |
| * De-duplicate duplicate handlingRichard van der Hoff2020-10-051-18/+23
| | | | | | | | | | move the "duplicate state event" handling down into `handle_new_client_event` where it can be shared between multiple call paths.
| * Remove stream ordering from Metadata dict (#8452)Richard van der Hoff2020-10-051-1/+3
| | | | | | | | | | | | | | | | There's no need for it to be in the dict as well as the events table. Instead, we store it in a separate attribute in the EventInternalMetadata object, and populate that on load. This means that we can rely on it being correctly populated for any event which has been persited to the database.
* | Remove redundant `EventCreationHandler._is_worker_app` attributeRichard van der Hoff2020-10-011-3/+1
| | | | | | | | | | | | This was added in 1c347c84bf/#7544 as a temporary optimisation. That was never merged to develop, since it conflicted with #7492. The merge cf92310da forgot to remove it.
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesRichard van der Hoff2020-10-011-61/+66
|\|
| * Add EventStreamPosition type (#8388)Erik Johnston2020-09-241-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The idea is to remove some of the places we pass around `int`, where it can represent one of two things: 1. the position of an event in the stream; or 2. a token that partitions the stream, used as part of the stream tokens. The valid operations are then: 1. did a position happen before or after a token; 2. get all events that happened before or after a token; and 3. get all events between two tokens. (Note that we don't want to allow other operations as we want to change the tokens to be vector clocks rather than simple ints)
| * Factor out `_send_dummy_event_for_room` (#8370)Richard van der Hoff2020-09-231-48/+54
| | | | | | this makes it possible to use from the manhole, and seems cleaner anyway.
| * Add experimental support for sharding event persister. Again. (#8294)Erik Johnston2020-09-141-6/+8
| | | | | | | | | | | | This is *not* ready for production yet. Caveats: 1. We should write some tests... 2. The stream token that we use for events can get stalled at the minimum position of all writers. This means that new events may not be processed and e.g. sent down sync streams if a writer isn't writing or is slow.
| * Make `StreamToken.room_key` be a `RoomStreamToken` instance. (#8281)Erik Johnston2020-09-111-0/+1
| |
| * Clean up `Notifier.on_new_room_event` code path (#8288)Erik Johnston2020-09-101-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | The idea here is that we pass the `max_stream_id` to everything, and only use the stream ID of the particular event to figure out *when* the max stream position has caught up to the event and we can notify people about it. This is to maintain the distinction between the position of an item in the stream (i.e. event A has stream ID 513) and a token that can be used to partition the stream (i.e. give me all events after stream ID 352). This distinction becomes important when the tokens are more complicated than a single number, which they will be once we start tracking the position of multiple writers in the tokens. The valid operations here are: 1. Is a position before or after a token 2. Fetching all events between two tokens 3. Merging multiple tokens to get the "max", i.e. `C = max(A, B)` means that for all positions P where P is before A *or* before B, then P is before C. Future PR will change the token type to a dedicated type.
| * Fixup pusher pool notifications (#8287)Erik Johnston2020-09-091-1/+1
| | | | | | | | | | `pusher_pool.on_new_notifications` expected a min and max stream ID, however that was not what we were passing in. Instead, let's just pass it the current max stream ID and have it track the last stream ID it got passed. I believe that it mostly worked as we called the function for every event. However, it would break for events that got persisted out of order, i.e, that were persisted but the max stream ID wasn't incremented as not all preceding events had finished persisting, and push for that event would be delayed until another event got pushed to the effected users.
| * Revert "Fixup pusher pool notifications"Erik Johnston2020-09-091-1/+1
| | | | | | | | This reverts commit e7fd336a53a4ca489cdafc389b494d5477019dc0.
| * Fixup pusher pool notificationsErik Johnston2020-09-091-1/+1
| |
* | Merge branch 'release-v1.20.0' into matrix-org-hotfixesRichard van der Hoff2020-09-071-2/+2
|\|
| * Stop sub-classing object (#8249)Patrick Cloke2020-09-041-2/+2
| |
* | Merge branch 'develop' into matrix-org-hotfixesBrendan Abolivier2020-09-041-8/+6
|\|
| * Revert "Add experimental support for sharding event persister. (#8170)" (#8242)Brendan Abolivier2020-09-041-8/+6
| | | | | | | | | | | | | | * Revert "Add experimental support for sharding event persister. (#8170)" This reverts commit 82c1ee1c22a87b9e6e3179947014b0f11c0a1ac3. * Changelog
* | Merge branch 'develop' into matrix-org-hotfixesBrendan Abolivier2020-09-031-16/+11
|\|
| * Add experimental support for sharding event persister. (#8170)Erik Johnston2020-09-021-6/+8
| | | | | | | | | | | | This is *not* ready for production yet. Caveats: 1. We should write some tests... 2. The stream token that we use for events can get stalled at the minimum position of all writers. This means that new events may not be processed and e.g. sent down sync streams if a writer isn't writing or is slow.
| * Convert additional databases to async/await part 2 (#8200)Patrick Cloke2020-09-011-10/+3
| |
* | Merge branch 'develop' into matrix-org-hotfixesPatrick Cloke2020-08-271-18/+62
|\|
| * Remove unused parameter from, and add safeguard in, get_room_data (#8174)Andrew Morgan2020-08-261-8/+12
| | | | | | | | | | | | Small cleanup PR. * Removed the unused `is_guest` argument * Added a safeguard to a (currently) impossible code path, fixing static checking at the same time.
| * Do not allow send_nonmember_event to be called with shadow-banned users. (#8158)Patrick Cloke2020-08-251-5/+34
| |
| * Stop shadow-banned users from sending non-member events. (#8142)Patrick Cloke2020-08-241-0/+10
| |
| * Be stricter about JSON that is accepted by Synapse (#8106)Patrick Cloke2020-08-191-2/+3
| |
| * Convert events worker database to async/await. (#8071)Patrick Cloke2020-08-181-3/+3
| |
* | Merge branch 'develop' into matrix-org-hotfixesRichard van der Hoff2020-08-181-10/+15
|\|
| * Fix the return type of send_nonmember_events. (#8112)Patrick Cloke2020-08-181-1/+1
| |
| * Return the previous stream token if a non-member event is a duplicate. (#8093)Patrick Cloke2020-08-181-10/+15
| |
* | Merge branch 'develop' into matrix-org-hotfixesRichard van der Hoff2020-08-181-3/+1
|\|
| * Run `remove_push_actions_from_staging` in foreground (#8081)Richard van der Hoff2020-08-131-3/+1
| | | | | | | | | | | | | | If we got an error persisting an event, we would try to remove the push actions asynchronously, which would lead to a 'Re-starting finished log context' warning. I don't think there's any need for this to be asynchronous.
* | Merge branch 'develop' into matrix-org-hotfixesBrendan Abolivier2020-08-131-11/+24
|\|
| * Add type hints to handlers.message and events.builder (#8067)Erik Johnston2020-08-121-9/+13
| |
| * Add an assertion on prev_events in create_new_client_event (#8041)Richard van der Hoff2020-08-101-0/+9
| | | | | | | | | | | | I think this would have caught all the cases in https://github.com/matrix-org/synapse/issues/7642 - and I think a 500 makes more sense here than a 403
| * Convert synapse.api to async/await (#8031)Patrick Cloke2020-08-061-1/+1
| |
| * Rename database classes to make some sense (#8033)Erik Johnston2020-08-051-1/+1
| |
* | Merge branch 'release-v1.18.0' into matrix-org-hotfixesRichard van der Hoff2020-07-281-12/+7
|\|
| * Remove hacky error handling for inlineDeferreds. (#7950)Patrick Cloke2020-07-271-12/+7
| |
* | Merge branch 'develop' into matrix-org-hotfixesRichard van der Hoff2020-07-241-132/+152
|\|
| * Convert the message handler to async/await. (#7884)Patrick Cloke2020-07-221-136/+152
| |
| * Convert _base, profile, and _receipts handlers to async/await (#7860)Patrick Cloke2020-07-171-2/+6
| |
* | Merge branch 'develop' into matrix-org-hotfixesRichard van der Hoff2020-07-091-7/+16
|\|
| * Generate real events when we reject invites (#7804)Richard van der Hoff2020-07-091-7/+16
| | | | | | | | | | | | | | | | Fixes #2181. The basic premise is that, when we fail to reject an invite via the remote server, we can generate our own out-of-band leave event and persist it as an outlier, so that we have something to send to the client.
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesErik Johnston2020-06-251-1/+3
|\|
| * Convert directory handler to async/await (#7727)Patrick Cloke2020-06-221-1/+3
| |
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2020-06-171-6/+4
|\|
| * Replace all remaining six usage with native Python 3 equivalents (#7704)Dagfinn Ilmari Mannsåker2020-06-161-3/+1
| |
| * Replace iteritems/itervalues/iterkeys with native versions. (#7692)Patrick Cloke2020-06-151-4/+4
| |
* | Merge tag 'v1.15.0rc1' of github.com:matrix-org/synapse into matrix-org-hotfixesBrendan Abolivier2020-06-101-1/+0
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Synapse 1.15.0rc1 (2020-06-09) ============================== Features -------- - Advertise support for Client-Server API r0.6.0 and remove related unstable feature flags. ([\#6585](https://github.com/matrix-org/synapse/issues/6585)) - Add an option to disable autojoining rooms for guest accounts. ([\#6637](https://github.com/matrix-org/synapse/issues/6637)) - For SAML authentication, add the ability to pass email addresses to be added to new users' accounts via SAML attributes. Contributed by Christopher Cooper. ([\#7385](https://github.com/matrix-org/synapse/issues/7385)) - Add admin APIs to allow server admins to manage users' devices. Contributed by @dklimpel. ([\#7481](https://github.com/matrix-org/synapse/issues/7481)) - Add support for generating thumbnails for WebP images. Previously, users would see an empty box instead of preview image. ([\#7586](https://github.com/matrix-org/synapse/issues/7586)) - Support the standardized `m.login.sso` user-interactive authentication flow. ([\#7630](https://github.com/matrix-org/synapse/issues/7630)) Bugfixes -------- - Allow new users to be registered via the admin API even if the monthly active user limit has been reached. Contributed by @dkimpel. ([\#7263](https://github.com/matrix-org/synapse/issues/7263)) - Fix email notifications not being enabled for new users when created via the Admin API. ([\#7267](https://github.com/matrix-org/synapse/issues/7267)) - Fix str placeholders in an instance of `PrepareDatabaseException`. Introduced in Synapse v1.8.0. ([\#7575](https://github.com/matrix-org/synapse/issues/7575)) - Fix a bug in automatic user creation during first time login with `m.login.jwt`. Regression in v1.6.0. Contributed by @olof. ([\#7585](https://github.com/matrix-org/synapse/issues/7585)) - Fix a bug causing the cross-signing keys to be ignored when resyncing a device list. ([\#7594](https://github.com/matrix-org/synapse/issues/7594)) - Fix metrics failing when there is a large number of active background processes. ([\#7597](https://github.com/matrix-org/synapse/issues/7597)) - Fix bug where returning rooms for a group would fail if it included a room that the server was not in. ([\#7599](https://github.com/matrix-org/synapse/issues/7599)) - Fix duplicate key violation when persisting read markers. ([\#7607](https://github.com/matrix-org/synapse/issues/7607)) - Prevent an entire iteration of the device list resync loop from failing if one server responds with a malformed result. ([\#7609](https://github.com/matrix-org/synapse/issues/7609)) - Fix exceptions when fetching events from a remote host fails. ([\#7622](https://github.com/matrix-org/synapse/issues/7622)) - Make `synctl restart` start synapse if it wasn't running. ([\#7624](https://github.com/matrix-org/synapse/issues/7624)) - Pass device information through to the login endpoint when using the login fallback. ([\#7629](https://github.com/matrix-org/synapse/issues/7629)) - Advertise the `m.login.token` login flow when OpenID Connect is enabled. ([\#7631](https://github.com/matrix-org/synapse/issues/7631)) - Fix bug in account data replication stream. ([\#7656](https://github.com/matrix-org/synapse/issues/7656)) Improved Documentation ---------------------- - Update the OpenBSD installation instructions. ([\#7587](https://github.com/matrix-org/synapse/issues/7587)) - Advertise Python 3.8 support in `setup.py`. ([\#7602](https://github.com/matrix-org/synapse/issues/7602)) - Add a link to `#synapse:matrix.org` in the troubleshooting section of the README. ([\#7603](https://github.com/matrix-org/synapse/issues/7603)) - Clarifications to the admin api documentation. ([\#7647](https://github.com/matrix-org/synapse/issues/7647)) Internal Changes ---------------- - Convert the identity handler to async/await. ([\#7561](https://github.com/matrix-org/synapse/issues/7561)) - Improve query performance for fetching state from a PostgreSQL database. ([\#7567](https://github.com/matrix-org/synapse/issues/7567)) - Speed up processing of federation stream RDATA rows. ([\#7584](https://github.com/matrix-org/synapse/issues/7584)) - Add comment to systemd example to show postgresql dependency. ([\#7591](https://github.com/matrix-org/synapse/issues/7591)) - Refactor `Ratelimiter` to limit the amount of expensive config value accesses. ([\#7595](https://github.com/matrix-org/synapse/issues/7595)) - Convert groups handlers to async/await. ([\#7600](https://github.com/matrix-org/synapse/issues/7600)) - Clean up exception handling in `SAML2ResponseResource`. ([\#7614](https://github.com/matrix-org/synapse/issues/7614)) - Check that all asynchronous tasks succeed and general cleanup of `MonthlyActiveUsersTestCase` and `TestMauLimit`. ([\#7619](https://github.com/matrix-org/synapse/issues/7619)) - Convert `get_user_id_by_threepid` to async/await. ([\#7620](https://github.com/matrix-org/synapse/issues/7620)) - Switch to upstream `dh-virtualenv` rather than our fork for Debian package builds. ([\#7621](https://github.com/matrix-org/synapse/issues/7621)) - Update CI scripts to check the number in the newsfile fragment. ([\#7623](https://github.com/matrix-org/synapse/issues/7623)) - Check if the localpart of a Matrix ID is reserved for guest users earlier in the registration flow, as well as when responding to requests to `/register/available`. ([\#7625](https://github.com/matrix-org/synapse/issues/7625)) - Minor cleanups to OpenID Connect integration. ([\#7628](https://github.com/matrix-org/synapse/issues/7628)) - Attempt to fix flaky test: `PhoneHomeStatsTestCase.test_performance_100`. ([\#7634](https://github.com/matrix-org/synapse/issues/7634)) - Fix typos of `m.olm.curve25519-aes-sha2` and `m.megolm.v1.aes-sha2` in comments, test files. ([\#7637](https://github.com/matrix-org/synapse/issues/7637)) - Convert user directory, state deltas, and stats handlers to async/await. ([\#7640](https://github.com/matrix-org/synapse/issues/7640)) - Remove some unused constants. ([\#7644](https://github.com/matrix-org/synapse/issues/7644)) - Fix type information on `assert_*_is_admin` methods. ([\#7645](https://github.com/matrix-org/synapse/issues/7645)) - Convert registration handler to async/await. ([\#7649](https://github.com/matrix-org/synapse/issues/7649))
| * Performance improvements and refactor of Ratelimiter (#7595)Andrew Morgan2020-06-051-1/+0
| | | | | | | | | | | | | | | | | | | | While working on https://github.com/matrix-org/synapse/issues/5665 I found myself digging into the `Ratelimiter` class and seeing that it was both: * Rather undocumented, and * causing a *lot* of config checks This PR attempts to refactor and comment the `Ratelimiter` class, as well as encourage config file accesses to only be done at instantiation. Best to be reviewed commit-by-commit.
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2020-05-261-15/+33
|\|
| * Optimise some references to hs.config (#7546)Richard van der Hoff2020-05-221-3/+5
| | | | | | These are surprisingly expensive, and we only really need to do them at startup.
| * Add option to move event persistence off master (#7517)Erik Johnston2020-05-221-5/+7
| |
| * Add ability to wait for replication streams (#7542)Erik Johnston2020-05-221-11/+25
| | | | | | | | | | | | | | The idea here is that if an instance persists an event via the replication HTTP API it can return before we receive that event over replication, which can lead to races where code assumes that persisting an event immediately updates various caches (e.g. current state of the room). Most of Synapse doesn't hit such races, so we don't do the waiting automagically, instead we do so where necessary to avoid unnecessary delays. We may decide to change our minds here if it turns out there are a lot of subtle races going on. People probably want to look at this commit by commit.
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2020-05-211-4/+6
|\|
| * Omit displayname or avatar_url if they aren't set instead of returning null ↵Aaron Raimist2020-05-191-2/+6
| | | | | | | | | | | | | | | | | | (#7497) Per https://github.com/matrix-org/matrix-doc/issues/1436#issuecomment-410089470 they should be omitted instead of returning null or "". They aren't marked as required in the spec. Fixes https://github.com/matrix-org/synapse/issues/7333 Signed-off-by: Aaron Raimist <aaron@raim.ist>
| * Allow censoring of events to happen on workers. (#7492)Erik Johnston2020-05-131-2/+0
| | | | | | This is safe as we can now write to cache invalidation stream on workers, and is required for when we move event persistence off master.
* | Merge branch 'rav/matrix_hacks' into matrix-org-hotfixesRichard van der Hoff2020-05-201-3/+5
|\ \
| * | inline some config referencesRichard van der Hoff2020-05-201-3/+5
| |/
* | Merge branch 'release-v1.13.0' into matrix-org-hotfixesRichard van der Hoff2020-05-071-1/+3
|\|
| * Add a configuration setting for the dummy event threshold (#7422)Brendan Abolivier2020-05-071-1/+3
| | | | | | Add dummy_events_threshold which allows configuring the number of forward extremities a room needs for Synapse to send forward extremities in it.
* | Merge branch 'release-v1.13.0' into matrix-org-hotfixesRichard van der Hoff2020-05-061-44/+39
|\|
| * async/await is_server_admin (#7363)Andrew Morgan2020-05-011-44/+39
| |
* | Merge branch 'develop' into matrix-org-hotfixesRichard van der Hoff2020-04-241-19/+38
|\|
| * Use the proper error code when a canonical alias that does not exist is ↵Patrick Cloke2020-03-231-19/+38
| | | | | | | | used. (#7109)
| * Don't filter out dummy events when we're checking the visibility of stateBrendan Abolivier2020-03-111-1/+1
| |
* | Don't filter out events when we're checking the visibility of stateBrendan Abolivier2020-03-111-1/+1
| |
* | Merge branch 'develop' into matrix-org-hotfixesBrendan Abolivier2020-03-091-3/+44
|\|
| * Validate the alt_aliases property of canonical alias events (#6971)Patrick Cloke2020-03-031-3/+44
| |
* | Merge branch 'develop' into matrix-org-hotfixesRichard van der Hoff2020-02-271-3/+2
|\|
| * Port PresenceHandler to async/await (#6991)Erik Johnston2020-02-261-3/+2
| |
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesRichard van der Hoff2020-02-191-4/+8
|\|
| * Add `allow_departed_users` param to `check_in_room_or_world_readable`Richard van der Hoff2020-02-191-4/+8
| | | | | | | | | | | | | | ... and set it everywhere it's called. while we're here, rename it for consistency with `check_user_in_room` (and to help check that I haven't missed any instances)
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2020-02-181-3/+2
|\|
| * make FederationHandler.send_invite asyncRichard van der Hoff2020-02-031-3/+2
| |
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2020-01-311-5/+11
|\|
| * s/get_room_version/get_room_version_id/Richard van der Hoff2020-01-311-3/+5
| | | | | | | | | | ... to make way for a forthcoming get_room_version which returns a RoomVersion object.
| * Pass room version object into event_auth.check and check_redaction (#6788)Richard van der Hoff2020-01-281-2/+6
| | | | | | | | | | | | | | These are easier to work with than the strings and we normally have one around. This fixes `FederationHander._persist_auth_tree` which was passing a RoomVersion object into event_auth.check instead of a string.
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2020-01-071-28/+15
|\|
| * Remove unused hashes and depths from create_event paramsRichard van der Hoff2020-01-061-16/+5
| |
| * Remove unused hashes and depths from create_new_client_event paramsRichard van der Hoff2020-01-061-12/+14
| |
| * replace get_prev_events_and_hashes_for_room with get_prev_events_for_room in ↵Richard van der Hoff2020-01-061-9/+3
| | | | | | | | create_new_client_event
| * rename get_prev_events_for_room to get_prev_events_and_hashes_for_roomRichard van der Hoff2020-01-061-2/+4
| | | | | | | | ... to make way for a new method which just returns the event ids
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesRichard van der Hoff2020-01-061-7/+8
|\|
| * Change EventContext to use the Storage class (#6564)Erik Johnston2019-12-201-5/+5
| |
| * Prevent redacted events from appearing in message search (#6377)Andrew Morgan2019-12-111-2/+3
| |
* | Merge branch 'release-v1.7.0' of github.com:matrix-org/synapse into ↵Neil Johnson2019-12-101-5/+128
|\| | | | | | | matrix-org-hotfixes
| * Pull out room_invite_state_types config option once.Erik Johnston2019-12-091-1/+3
| | | | | | | | Pulling things out of config is currently surprisingly expensive.
| * Add ephemeral messages support (MSC2228) (#6409)Brendan Abolivier2019-12-031-1/+122
| | | | | | | | | | | | | | | | Implement part [MSC2228](https://github.com/matrix-org/matrix-doc/pull/2228). The parts that differ are: * the feature is hidden behind a configuration flag (`enable_ephemeral_messages`) * self-destruction doesn't happen for state events * only implement support for the `m.self_destruct_after` field (not the `m.self_destruct` one) * doesn't send synthetic redactions to clients because for this specific case we consider the clients to be able to destroy an event themselves, instead we just censor it (by pruning its JSON) in the database
| * Discard retention policies when retrieving stateBrendan Abolivier2019-11-281-1/+1
| | | | | | | | | | | | | | | | Purge jobs don't delete the latest event in a room in order to keep the forward extremity and not break the room. On the other hand, get_state_events, when given an at_token argument calls filter_events_for_client to know if the user can see the event that matches that (sync) token. That function uses the retention policies of the events it's given to filter out those that are too old from a client's view. Some clients, such as Riot, when loading a room, request the list of members for the latest sync token it knows about, and get confused to the point of refusing to send any message if the server tells it that it can't get that information. This can happen very easily with the message retention feature turned on and a room with low activity so that the last event sent becomes too old according to the room's retention policy. An easy and clean fix for that issue is to discard the room's retention policies when retrieving state.
| * Implement per-room message retention policiesBrendan Abolivier2019-11-041-2/+2
| |
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2019-11-191-12/+17
|\|
| * Update black to 19.10b0 (#6304)Amber Brown2019-11-011-6/+8
| | | | | | * update version of black and also fix the mypy config being overridden
| * Merge pull request #6294 from matrix-org/erikj/add_state_storageErik Johnston2019-10-311-4/+6
| |\ | | | | | | Add StateGroupStorage interface
| | * Port to use state storageErik Johnston2019-10-301-4/+6
| | |
| * | Remove usage of deprecated logger.warn method from codebase (#6271)Andrew Morgan2019-10-311-1/+1
| |/ | | | | Replace every instance of `logger.warn` with `logger.warning` as the former is deprecated.
| * Use new EventPersistenceStoreErik Johnston2019-10-231-1/+2
| |
* | Merge branch 'develop' into matrix-org-hotfixesRichard van der Hoff2019-09-261-27/+72
|\|
| * Fix dummy event insertion consent bug (#6053)Neil Johnson2019-09-261-27/+72
| | | | | | Fixes #5905
* | Merge branch 'develop' into matrix-org-hotfixesRichard van der Hoff2019-09-181-1/+21
|\|
| * Fix commentsErik Johnston2019-09-111-1/+1
| | | | | | Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
| * Fix how we check for self redactionErik Johnston2019-09-111-4/+18
| |
| * Allow use of different ratelimits for admin redactions.Erik Johnston2019-09-111-1/+7
| | | | | | | | | | This is useful to allow room admins to quickly deal with a large number of abusive messages.
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2019-08-291-1/+4
|\|
| * Apply suggestions from code reviewWill Hunt2019-08-231-2/+2
| | | | | | Co-Authored-By: Erik Johnston <erik@matrix.org>
| * Exempt bot usersHalf-Shot2019-08-231-1/+1
| |
| * Return user_type in get_user_by_idHalf-Shot2019-08-231-1/+4
| |
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2019-08-011-1/+3
|\|
| * Deny redaction of events in a different room.Erik Johnston2019-07-311-1/+3
| | | | | | | | | | We already correctly filter out such redactions, but we should also deny them over the CS API.
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2019-07-301-18/+22
|\|
| * Stop trying to fetch events with event_id=None. (#5753)Richard van der Hoff2019-07-241-1/+7
| | | | | | | | | | | | | | `None` is not a valid event id, so queuing up a database fetch for it seems like a silly thing to do. I considered making `get_event` return `None` if `event_id is None`, but then its interaction with `allow_none` seemed uninituitive, and strong typing ftw.
| * Replace returnValue with return (#5736)Amber Brown2019-07-231-17/+15
| |
* | Merge branch 'release-v1.2.0' into matrix-org-hotfixesRichard van der Hoff2019-07-181-9/+24
|\|
| * Ignore redactions of m.room.create events (#5701)Richard van der Hoff2019-07-171-9/+24
| |
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2019-07-171-1/+1
|\|
| * Move logging utilities out of the side drawer of util/ and into logging/ (#5606)Amber Brown2019-07-041-1/+1
| |
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2019-06-211-144/+159
|\|
| * Run Black. (#5482)Amber Brown2019-06-201-158/+100
| |
| * Run as background process and fix commentsErik Johnston2019-06-191-2/+5
| |
| * Add experimental option to reduce extremities.Erik Johnston2019-06-181-1/+71
| | | | | | | | | | | | | | Adds new config option `cleanup_extremities_with_dummy_events` which periodically sends dummy events to rooms with more than 10 extremities. THIS IS REALLY EXPERIMENTAL.
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2019-06-171-2/+12
|\|
| * Add plugin APIs for implementations of custom event rules.Brendan Abolivier2019-06-141-2/+12
| |
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2019-05-241-0/+3
|\|
| * Merge pull request #5220 from matrix-org/erikj/dont_bundle_live_eventsErik Johnston2019-05-241-0/+3
| |\ | | | | | | Don't bundle aggregations with events in /sync or /events or state queries
| | * Don't bundle aggs for /state and /members etc APIsErik Johnston2019-05-241-0/+3
| | |
* | | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2019-05-231-1/+15
|\| |
| * | Fix wordsErik Johnston2019-05-211-3/+3
| | |
| * | Block attempts to annotate the same event twiceErik Johnston2019-05-201-1/+15
| |/
* | Merge branch 'develop' into matrix-org-hotfixesRichard van der Hoff2019-05-201-3/+4
|\|
| * Allow client event serialization to be asyncErik Johnston2019-05-141-3/+4
| |
* | Merge tag 'v0.99.4rc1' into matrix-org-hotfixesRichard van der Hoff2019-05-141-0/+30
|\| | | | | | | v0.99.4rc1
| * Do checks on aliases for incoming m.room.aliases events (#5128)Brendan Abolivier2019-05-081-0/+30
| | | | | | | | | | Follow-up to #5124 Also added a bunch of checks to make sure everything (both the stuff added on #5124 and this PR) works as intended.
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2019-04-041-1/+1
|\|
| * Fix grammar and document get_current_users_in_room (#4998)Andrew Morgan2019-04-031-1/+1
| |
* | Merge branch 'develop' into matrix-org-hotfixesRichard van der Hoff2019-04-021-2/+5
|\|
| * Collect room-version variations into one place (#4969)Richard van der Hoff2019-04-011-2/+5
| | | | | | | | Collect all the things that make room-versions different to one another into one place, so that it's easier to define new room versions.
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2019-03-211-2/+5
|\|
| * Revert spurious deleteErik Johnston2019-03-201-0/+4
| |
| * Use flagsErik Johnston2019-03-201-13/+5
| |
| * Move requester check into assert_accepted_privacy_policyErik Johnston2019-03-201-5/+8
| |
| * Only require consent for events with an associated requestErik Johnston2019-03-201-1/+5
| | | | | | | | | | | | | | | | | | There are a number of instances where a server or admin may puppet a user to join/leave rooms, which we don't want to fail if the user has not consented to the privacy policy. We fix this by adding a check to test if the requester has an associated access_token, which is used as a proxy to answer the question of whether the action is being done on behalf of a real request from the user.
* | Merge branch 'develop' into matrix-org-hotfixesRichard van der Hoff2019-03-191-3/+10
|\|
| * fix test_auto_create_auto_join_where_no_consent (#4886)Neil Johnson2019-03-191-3/+10
| |
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2019-03-051-3/+4
|\|
| * Fix incorrect log about not persisting duplicate state event. (#4776)Richard van der Hoff2019-03-011-3/+4
| | | | | | We were logging this when it was not true.
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2019-01-301-30/+14
|\|
| * Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-01-291-28/+6
| |\ | | | | | | | | | erikj/redactions_eiah
| | * Correctly set context.app_serviceErik Johnston2019-01-291-0/+2
| | |
| | * Refactor event building into EventBuilderErik Johnston2019-01-291-29/+5
| | | | | | | | | | | | | | | This is so that everything is done in one place, making it easier to change the event format based on room version
| * | Implement rechecking of redactionsErik Johnston2019-01-291-1/+5
| |/
| * Merge pull request #4494 from matrix-org/erikj/fixup_event_validatorErik Johnston2019-01-291-1/+3
| |\ | | | | | | Split up event validation between event and builder
| | * Split up event validation between event and builderErik Johnston2019-01-281-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | The validator was being run on the EventBuilder objects, and so the validator only checked a subset of fields. With the upcoming EventBuilder refactor even fewer fields will be there to validate. To get around this we split the validation into those that can be run against an EventBuilder and those run against a fully fledged event.
* | | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesAndrew Morgan2019-01-291-3/+16
|\| |
| * | Correctly use default room version if none is setErik Johnston2019-01-281-2/+2
| | |
| * | Pass through room version to event authErik Johnston2019-01-251-1/+6
| |/
| * Require event format version to parse or create eventsErik Johnston2019-01-251-1/+9
| |
| * Revert "Require event format version to parse or create events"Erik Johnston2019-01-251-9/+1
| |
| * Require event format version to parse or create eventsErik Johnston2019-01-231-1/+9
| |
* | Merge remote-tracking branch 'origin/develop' into matrix-org-hotfixesRichard van der Hoff2018-11-061-0/+3
|\|
| * Log some bits about event creation (#4121)Richard van der Hoff2018-10-311-0/+3
| | | | | | | | I found these helpful in debugging my room upgrade tests.
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2018-10-261-13/+9
|\|
| * Refactor state group lookup to reduce DB hits (#4011)Erik Johnston2018-10-251-12/+8
| | | | | | | | | | | | | | | | Currently when fetching state groups from the data store we make two hits two the database: once for members and once for non-members (unless request is filtered to one or the other). This adds needless load to the datbase, so this PR refactors the lookup to make only a single database hit.
| * Remove redundant run_as_background_process() from pusherpoolRichard van der Hoff2018-10-221-1/+1
| | | | | | | | | | | | | | `on_new_notifications` and `on_new_receipts` in `HttpPusher` and `EmailPusher` now always return synchronously, so we can remove the `defer.gatherResults` on their results, and the `run_as_background_process` wrappers can be removed too because the PusherPool methods will now complete quickly enough.
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2018-10-021-12/+13
|\|
| * Avoid reraise, to improve stacktracesRichard van der Hoff2018-10-011-12/+13
| |
* | Merge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixesErik Johnston2018-08-201-6/+7
|\|
| * Merge pull request #3710 from matrix-org/rav/logcontext_for_pusher_updatesRichard van der Hoff2018-08-171-5/+2
| |\ | | | | | | Fix logcontexts for running pushers
| | * Fix logcontexts for running pushersRichard van der Hoff2018-08-171-5/+2
| | | | | | | | | | | | | | | | | | | | | First of all, avoid resetting the logcontext before running the pushers, to fix the "Starting db txn 'get_all_updated_receipts' from sentinel context" warning. Instead, give them their own "background process" logcontexts.