summary refs log tree commit diff
path: root/tests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Allow admin users to create or modify users without a shared secret (#6495)Manuel Stahl2020-01-093-338/+467
| | | Signed-off-by: Manuel Stahl <manuel.stahl@awesome-technologies.de>
* Fix GET request on /_synapse/admin/v2/users endpoint (#6563)Manuel Stahl2020-01-081-0/+41
| | | | Fixes #6552
* Back out ill-advised notary server hackery (#6657)Richard van der Hoff2020-01-083-4/+131
| | | | | | | | | | | This was ill-advised. We can't modify verify_keys here, because the response object has already been signed by the requested key. Furthermore, it's somewhat unnecessary because existing versions of Synapse (which get upset that the notary key isn't present in verify_keys) will fall back to a direct fetch via `/key/v2/server`. Also: more tests for fetching keys via perspectives: it would be nice if we actually tested when our fetcher can't talk to our notary impl.
* port BackgroundUpdateTestCase to HomeserverTestCase (#6653)Richard van der Hoff2020-01-071-35/+37
|
* Merge pull request #6629 from matrix-org/rav/kill_event_reference_hashesRichard van der Hoff2020-01-062-16/+5
|\ | | | | Remove a bunch of unused code from event creation
| * Remove unused get_prev_events_and_hashes_for_roomRichard van der Hoff2020-01-061-13/+6
| |
| * Remove unused hashes and depths from create_event paramsRichard van der Hoff2020-01-061-5/+1
| |
| * rename get_prev_events_for_room to get_prev_events_and_hashes_for_roomRichard van der Hoff2020-01-061-2/+2
| | | | | | | | ... to make way for a new method which just returns the event ids
* | Fix exception when fetching notary server's old keys (#6625)Richard van der Hoff2020-01-061-44/+95
| | | | | | | | | | | | Lift the restriction that *all* the keys used for signing v2 key responses be present in verify_keys. Fixes #6596.
* | Workaround for error when fetching notary's own key (#6620)Richard van der Hoff2020-01-062-1/+140
|/ | | | | | | | | | | | | | * Kill off redundant SynapseRequestFactory We already get the Site via the Channel, so there's no need for a dedicated RequestFactory: we can just use the right constructor. * Workaround for error when fetching notary's own key As a notary server, when we return our own keys, include all of our signing keys in verify_keys. This is a workaround for #6596.
* Kill off redundant SynapseRequestFactory (#6619)Richard van der Hoff2020-01-031-2/+4
| | | | We already get the Site via the Channel, so there's no need for a dedicated RequestFactory: we can just use the right constructor.
* Split state groups into a separate data store (#6296)Erik Johnston2019-12-202-2/+2
|
* Change EventContext to use the Storage class (#6564)Erik Johnston2019-12-201-14/+14
|
* Clean up startup for the pusher (#6558)Richard van der Hoff2019-12-182-0/+7
| | | | | | | | | | | | | | | | | | | | | | | * Remove redundant python2 support code `str.decode()` doesn't exist on python3, so presumably this code was doing nothing * Filter out pushers with corrupt data When we get a row with unparsable json, drop the row, rather than returning a row with null `data`, which will then cause an explosion later on. * Improve logging when we can't start a pusher Log the ID to help us understand the problem * Make email pusher setup more robust We know we'll have a `data` member, since that comes from the database. What we *don't* know is if that is a dict, and if that has a `brand` member, and if that member is a string.
* Add database config class (#6513)Erik Johnston2019-12-187-95/+100
| | | | | This encapsulates config for a given database and is the way to get new connections.
* Merge release-v1.7.1 into developRichard van der Hoff2019-12-181-0/+127
|\
| * Merge pull request #6553 from matrix-org/babolivier/fix-context-filterBrendan Abolivier2019-12-161-0/+127
| |\ | | | | | | Use the filtered version of an event when responding to /context requests for that event
| | * Incorporate reviewBrendan Abolivier2019-12-161-5/+0
| | |
| | * LintBrendan Abolivier2019-12-161-2/+1
| | |
| | * Add test caseBrendan Abolivier2019-12-161-0/+133
| | |
| * | sanity-checking for events used in state res (#6531)Richard van der Hoff2019-12-161-0/+3
| |/ | | | | | | | | When we perform state resolution, check that all of the events involved are in the right room.
* | Add option to allow profile queries without sharing a room (#6523)Will Hunt2019-12-161-0/+2
| |
* | sanity-checking for events used in state res (#6531)Richard van der Hoff2019-12-131-0/+3
| | | | | | | | | | | | | | When we perform state resolution, check that all of the events involved are in the right room.
* | look up cross-signing keys from the DB in bulk (#6486)Hubert Chathi2019-12-121-8/+0
| |
* | Merge pull request #6511 from matrix-org/erikj/remove_db_config_from_appsErik Johnston2019-12-122-13/+8
|\ \ | | | | | | Move database config from apps into HomeServer object
| * | Remove database config parsing from apps.Erik Johnston2019-12-102-13/+8
| |/
* | Merge pull request #6517 from matrix-org/rav/event_auth/13Richard van der Hoff2019-12-111-5/+9
|\ \ | | | | | | Port some of FederationHandler to async/await
| * | convert to async: FederationHandler.on_receive_pduRichard van der Hoff2019-12-111-5/+9
| | | | | | | | | | | | | | | | | | | | | and associated functions: * on_receive_pdu * handle_queued_pdus * get_missing_events_for_pdu
* | | Merge pull request #6504 from matrix-org/erikj/account_validity_async_awaitErik Johnston2019-12-111-2/+1
|\ \ \ | |/ / |/| | Port handlers.account_validity to async/await.
| * | Port handlers.account_validity to async/await.Erik Johnston2019-12-101-2/+1
| |/
* | Fix race which caused deleted devices to reappear (#6514)Richard van der Hoff2019-12-101-20/+29
| | | | | | | | Stop the `update_client_ips` background job from recreating deleted devices.
* | Merge pull request #6505 from matrix-org/erikj/make_deferred_yiedableErik Johnston2019-12-101-0/+24
|\ \ | | | | | | Fix `make_deferred_yieldable` to work with coroutines
| * | Fix make_deferred_yieldable to work with coroutinesErik Johnston2019-12-101-0/+24
| |/
* | Merge pull request #6506 from matrix-org/erikj/remove_snapshot_cacheErik Johnston2019-12-101-63/+0
|\ \ | |/ |/| Remove SnapshotCache in favour of ResponseCache
| * Remove SnapshotCache in favour of ResponseCacheErik Johnston2019-12-091-63/+0
| |
* | Back out perf regression from get_cross_signing_keys_from_cache. (#6494)Neil Johnson2019-12-091-0/+8
| | | | | | Back out cross-signing code added in Synapse 1.5.0, which caused a performance regression.
* | Merge pull request #6487 from matrix-org/erikj/pass_in_dbErik Johnston2019-12-096-25/+23
|\ \ | |/ |/| Pass in Database object to data stores.
| * Fixup testsErik Johnston2019-12-066-23/+20
| |
| * Change DataStores to accept 'database' param.Erik Johnston2019-12-061-2/+3
| |
* | Merge pull request #6484 from matrix-org/erikj/port_sync_handlerErik Johnston2019-12-094-25/+43
|\ \ | |/ |/| Port SyncHandler to async/await
| * Fixup functions to consistently return deferredsErik Johnston2019-12-062-7/+21
| |
| * Port SyncHandler to async/awaitErik Johnston2019-12-052-18/+22
| |
* | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-12-063-2/+15
|\| | | | | | | erikj/make_database_class
| * Fixup testsErik Johnston2019-12-053-2/+15
| |
* | Move background update handling out of storeErik Johnston2019-12-057-49/+113
| |
* | Move DB pool and helper functions into dedicated Database classErik Johnston2019-12-0514-64/+66
|/
* Remove underscore from SQLBaseStore functionsErik Johnston2019-12-0410-47/+47
|
* Merge pull request #6329 from matrix-org/babolivier/context_filtersBrendan Abolivier2019-12-044-100/+384
|\ | | | | Filter state, events_before and events_after in /context requests
| * Un-remove room purge testBrendan Abolivier2019-12-041-0/+72
| |
| * Merge branch 'babolivier/context_filters' of github.com:matrix-org/synapse ↵Brendan Abolivier2019-12-041-1/+1
| |\ | | | | | | | | | into babolivier/context_filters
| | * Merge branch 'develop' into babolivier/context_filtersBrendan Abolivier2019-11-267-19/+399
| | |\
| * | \ Merge branch 'develop' into babolivier/context_filtersBrendan Abolivier2019-12-0420-77/+846
| |\ \ \ | | |/ / | |/| |
| * | | LintBrendan Abolivier2019-11-051-30/+41
| | | |
| * | | Update copyrightsBrendan Abolivier2019-11-054-1/+10
| | | |
| * | | Add tests for /searchBrendan Abolivier2019-11-051-44/+143
| | | |
| * | | Merge labels tests for /context and /messagesBrendan Abolivier2019-11-051-146/+130
| | | |
| * | | Add test caseBrendan Abolivier2019-11-051-0/+182
| | | |
* | | | privacy by default for room dir (#6355)Neil Johnson2019-12-041-0/+52
| | | | | | | | | | | | | | | | Ensure that the the default settings for the room directory are that the it is hidden from public view by default.
* | | | Add ephemeral messages support (MSC2228) (#6409)Brendan Abolivier2019-12-031-0/+101
| |/ / |/| | | | | | | | | | | | | | | | | | | | 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
* | | Add testsErik Johnston2019-11-281-0/+140
| | |
* | | Implementation of MSC2314 (#6176)Amber Brown2019-11-289-52/+148
| | |
* | | add etag and count to key backup endpoints (#5858)Hubert Chathi2019-11-272-4/+35
| | |
* | | Merge pull request #6358 from matrix-org/babolivier/message_retentionBrendan Abolivier2019-11-271-0/+293
|\ \ \ | | | | | | | | Implement message retention policies (MSC1763)
| * \ \ Merge branch 'develop' into babolivier/message_retentionBrendan Abolivier2019-11-268-19/+351
| |\ \ \ | | | |/ | | |/|
| * | | Don't restrict the tests to v1 roomsBrendan Abolivier2019-11-261-2/+0
| | | |
| * | | Lint againBrendan Abolivier2019-11-191-10/+2
| | | |
| * | | LintBrendan Abolivier2019-11-191-50/+23
| | | |
| * | | Don't apply retention policy based filtering on state eventsBrendan Abolivier2019-11-061-0/+10
| | | | | | | | | | | | | | | | As per MSC1763, 'Retention is only considered for non-state events.', so don't filter out state events based on the room's retention policy.
| * | | Implement per-room message retention policiesBrendan Abolivier2019-11-041-0/+320
| | | |
* | | | Remove assertion and provide a clear warning on startup for missing ↵Andrew Morgan2019-11-261-0/+1
| |/ / |/| | | | | | | | public_baseurl (#6379)
* | | Improve the performance of structured logging (#6322)Amber Brown2019-11-261-0/+2
| | |
* | | LintBrendan Abolivier2019-11-201-6/+8
| | |
* | | Test if a purge can make /messages return 500 responsesBrendan Abolivier2019-11-201-0/+72
| | |
* | | Blacklist PurgeRoomTestCase (#6361)Andrew Morgan2019-11-131-0/+2
| | |
* | | Merge pull request #6295 from matrix-org/erikj/split_purge_historyErik Johnston2019-11-082-8/+11
|\ \ \ | | | | | | | | Split purge API into events vs state and add PurgeEventsStorage
| * | | Fix deleting state groups during room purge.Erik Johnston2019-11-061-1/+3
| | | | | | | | | | | | | | | | And fix the tests to actually test that things got deleted.
| * | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-11-051-0/+51
| |\ \ \ | | | |/ | | |/| | | | | erikj/split_purge_history
| * | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-11-0412-21/+693
| |\ \ \ | | | |/ | | |/| | | | | erikj/split_purge_history
| * | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-10-315-51/+197
| |\ \ \ | | | | | | | | | | | | | | | erikj/split_purge_history
| * | | | Split purge API into events vs stateErik Johnston2019-10-301-7/+8
| | | | |
* | | | | Fix bug which caused rejected events to be stored with the wrong room state ↵Richard van der Hoff2019-11-062-11/+176
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#6320) Fixes a bug where rejected events were persisted with the wrong state group. Also fixes an occasional internal-server-error when receiving events over federation which are rejected and (possibly because they are backwards-extremities) have no prev_group. Fixes #6289.
* | | | | Merge branch 'develop' into rav/url_preview_limit_titleRichard van der Hoff2019-11-0527-99/+1065
|\ \ \ \ \ | | |_|_|/ | |/| | |
| * | | | Remove the psutil dependency (#6318)Amber Brown2019-11-051-0/+51
| | |_|/ | |/| | | | | | * remove psutil and replace with resource
| * | | Merge pull request #6301 from matrix-org/babolivier/msc2326Brendan Abolivier2019-11-014-5/+297
| |\ \ \ | | | | | | | | | | Implement MSC2326 (label based filtering)
| | * | | Incorporate reviewBrendan Abolivier2019-11-013-12/+12
| | | | |
| | * | | Incorporate reviewBrendan Abolivier2019-11-013-15/+15
| | | | |
| | * | | LintBrendan Abolivier2019-10-303-43/+34
| | | | |
| | * | | Add integration tests for /messagesBrendan Abolivier2019-10-301-1/+101
| | | | |
| | * | | Add more integration testingBrendan Abolivier2019-10-301-6/+39
| | | | |
| | * | | Add integration tests for syncBrendan Abolivier2019-10-302-5/+122
| | | | |
| | * | | Add unit testsBrendan Abolivier2019-10-301-0/+51
| | | | |
| * | | | Factor out an _AsyncEventContextImpl (#6298)Richard van der Hoff2019-11-011-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The intention here is to make it clearer which fields we can expect to be populated when: notably, that the _event_type etc aren't used for the synchronous impl of EventContext.
| * | | | Support for routing outbound HTTP requests via a proxy (#6239)Richard van der Hoff2019-11-015-6/+382
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `http_proxy` and `HTTPS_PROXY` env vars can be set to a `host[:port]` value which should point to a proxy. The address of the proxy should be excluded from IP blacklists such as the `url_preview_ip_range_blacklist`. The proxy will then be used for * push * url previews * phone-home stats * recaptcha validation * CAS auth validation It will *not* be used for: * Application Services * Identity servers * Outbound federation * In worker configurations, connections from workers to masters Fixes #4198.
| * | | | Merge branch 'develop' into cross-signing_federationHubert Chathi2019-10-315-51/+197
| |\ \ \ \ | | | |_|/ | | |/| |
| | * | | Merge pull request #6294 from matrix-org/erikj/add_state_storageErik Johnston2019-10-313-50/+114
| | |\ \ \ | | | | | | | | | | | | Add StateGroupStorage interface
| | | * | | Port to use state storageErik Johnston2019-10-303-50/+114
| | | | |/ | | | |/|
| | * / | Add unit test for /purge_room APIErik Johnston2019-10-312-1/+83
| | |/ /
| * | | rename get_devices_by_remote to get_device_updates_by_remoteHubert Chathi2019-10-302-8/+8
| | | |
| * | | Merge branch 'develop' into cross-signing_federationHubert Chathi2019-10-3015-27/+126
| |\| |
| | * | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-10-307-8/+142
| | |\ \ | | | | | | | | | | | | | | | erikj/split_out_persistence_store
| | | * | Make ObservableDeferred.observe() always return deferred.Erik Johnston2019-10-302-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it easier to use in an async/await world. Also fixes a bug where cache descriptors would occaisonally return a raw value rather than a deferred.
| | | * | Port federation_server to async/awaitErik Johnston2019-10-291-0/+3
| | | |/
| | | * Quick fix to ensure cache descriptors always return deferredsErik Johnston2019-10-281-2/+2
| | | |
| | | * Merge pull request #6253 from matrix-org/uhoreg/e2e_backup_delete_keysHubert Chathi2019-10-251-0/+75
| | | |\ | | | | | | | | | | delete keys when deleting backup versions
| | | | * remove unneeded importsHubert Chathi2019-10-251-3/+1
| | | | |
| | | | * switch to using HomeserverTestCaseHubert Chathi2019-10-251-19/+25
| | | | |
| | | | * remove some unnecessary linesHubert Chathi2019-10-241-5/+0
| | | | |
| | | | * delete keys when deleting backupsHubert Chathi2019-10-241-0/+76
| | | | |
| | * | | Review commentsErik Johnston2019-10-302-6/+9
| | | | |
| | * | | Use new EventPersistenceStoreErik Johnston2019-10-238-16/+32
| | | | |
| * | | | Merge branch 'develop' into cross-signing_federationHubert Chathi2019-10-247-20/+68
| |\ \ \ \ | | | |_|/ | | |/| |
| * | | | fix unit testHubert Chathi2019-10-221-1/+3
| | | | |
* | | | | Apply suggestions from code reviewRichard van der Hoff2019-11-051-0/+1
| | | | | | | | | | | | | | | | | | | | Co-Authored-By: Brendan Abolivier <babolivier@matrix.org> Co-Authored-By: Erik Johnston <erik@matrix.org>
* | | | | Strip overlong OpenGraph data from url previewRichard van der Hoff2019-11-051-0/+34
| |_|_|/ |/| | | | | | | | | | | ... to stop people causing DoSes with malicious web pages
* | | | Fix testsErik Johnston2019-10-251-0/+2
| |/ / |/| |
* | | Option to suppress resource exceeded alerting (#6173)Neil Johnson2019-10-242-3/+57
| |/ |/| | | | | The expected use case is to suppress MAU limiting on small instances
* | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-10-221-1/+294
|\| | | | | | | erikj/refactor_stores
| * Merge branch 'develop' into cross-signing_sig_uploadHubert Chathi2019-10-1829-249/+1136
| |\
| * \ Merge branch 'develop' into cross-signing_sig_uploadHubert Chathi2019-09-073-60/+125
| |\ \
| * | | use something that's the right type for user_idHubert Chathi2019-09-061-1/+1
| | | |
| * | | fix testHubert Chathi2019-09-051-1/+3
| | | |
| * | | add testHubert Chathi2019-09-041-0/+88
| | | |
| * | | make isort happyHubert Chathi2019-09-041-0/+1
| | | |
| * | | make black happyHubert Chathi2019-09-041-85/+62
| | | |
| * | | allow uploading signatures of master key signed by devicesHubert Chathi2019-09-041-1/+226
| | | |
* | | | Fix postgres unit tests to use prepare_databaseErik Johnston2019-10-221-10/+2
| | | |
* | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-10-221-0/+65
|\ \ \ \ | | |_|/ | |/| | | | | | erikj/refactor_stores
| * | | Merge branch 'develop' into uhoreg/e2e_cross-signing_mergedHubert Chathi2019-10-1829-249/+1136
| |\ \ \
| * \ \ \ Merge branch 'develop' into uhoreg/e2e_cross-signing_mergedHubert Chathi2019-09-073-60/+125
| |\ \ \ \ | | |_|/ / | |/| | / | | | |/ | | |/|
| * | | Merge branch 'develop' into cross-signing_keysHubert Chathi2019-09-048-119/+544
| |\ \ \
| * \ \ \ Merge branch 'uhoreg/e2e_cross-signing_merged' into cross-signing_keysHubert Chathi2019-08-2817-56/+944
| |\ \ \ \
| * | | | | fix formattingHubert Chathi2019-08-011-1/+3
| | | | | |
| * | | | | Merge branch 'cross-signing_hidden' into cross-signing_keysHubert Chathi2019-08-0116-106/+279
| |\ \ \ \ \
| * | | | | | allow uploading keys for cross-signingHubert Chathi2019-07-251-0/+63
| | | | | | |
* | | | | | | Move storage classes into a main "data store".Erik Johnston2019-10-215-7/+9
| |_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | This is in preparation for having multiple data stores that offer different functionality, e.g. splitting out state or event storage.
* | | | | | Fix presence timeouts when synchrotron restarts. (#6212)Erik Johnston2019-10-181-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix presence timeouts when synchrotron restarts. Handling timeouts would fail if there was an external process that had timed out, e.g. a synchrotron restarting. This was due to a couple of variable name typoes. Fixes #3715.
* | | | | | Merge pull request #6193 from matrix-org/uhoreg/interpret_device_key_in_storageHubert Chathi2019-10-111-6/+6
|\ \ \ \ \ \ | | | | | | | | | | | | | | make storage layer in charge of interpreting the device key data
| * | | | | | make storage layer in charge of interpreting the device key dataHubert Chathi2019-10-101-6/+6
| | | | | | |
* | | | | | | Merge pull request #6189 from matrix-org/uhoreg/e2e_backup_optional_versionHubert Chathi2019-10-111-16/+31
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | make version optional in body of e2e backup version update
| * | | | | | | change test name to be uniqueHubert Chathi2019-10-101-1/+1
| | | | | | | |
| * | | | | | | make version optional in body of e2e backup version updateHubert Chathi2019-10-091-16/+31
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | to agree with latest version of the MSC
* | | | | | | Fix MAU reaping where reserved users are specified. (#6168)Neil Johnson2019-10-111-9/+49
| | | | | | |
* | | | | | | Fix postgres unit testsErik Johnston2019-10-101-1/+1
| | | | | | |
* | | | | | | Merge pull request #6127 from matrix-org/erikj/patch_innerErik Johnston2019-10-102-96/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Add more log context checks when patching inlineCallbacks
| * \ \ \ \ \ \ Merge branch 'develop' of github.com:matrix-org/synapse into erikj/patch_innerErik Johnston2019-10-103-11/+18
| |\ \ \ \ \ \ \
| * | | | | | | | Move patch_inline_callbacks into synapse/Erik Johnston2019-10-102-181/+2
| | | | | | | | |
| * | | | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/patch_innerErik Johnston2019-10-095-53/+182
| |\ \ \ \ \ \ \ \ | | | |/ / / / / / | | |/| | | | | |
| * | | | | | | | UpdateErik Johnston2019-09-271-8/+15
| | | | | | | | |
| * | | | | | | | Patch inlinecallbacks for log contextsErik Johnston2019-09-271-4/+82
| | | | | | | | |
* | | | | | | | | Add domain validation when creating room with list of invitees (#6121)werner2912019-10-101-0/+9
| | | | | | | | |
* | | | | | | | | send 404 as http-status when filter-id is unknown to the server (#2380)krombel2019-10-101-1/+1
| |_|/ / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixed the weirdness of 400 vs 404 as http status code in the case the filter id is not known by the server. As e.g. matrix-js-sdk expects 404 to catch this situation this leads to unwanted behaviour.
* | | | | | | | Fix races in room stats (and other) updates. (#6187)Richard van der Hoff2019-10-102-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hopefully this will fix the occasional failures we were seeing in the room directory. The problem was that events are not necessarily persisted (and `current_state_delta_stream` updated) in the same order as their stream_id. So for instance current_state_delta 9 might be persisted *before* current_state_delta 8. Then, when the room stats saw stream_id 9, it assumed it had done everything up to 9, and never came back to do stream_id 8. We can solve this easily by only processing up to the stream_id where we know all events have been persisted.
* | | | | | | | Refactor HomeserverConfig so it can be typechecked (#6137)Amber Brown2019-10-101-9/+16
| |/ / / / / / |/| | | | | |
* | | | | | | Merge pull request #6147 from matrix-org/babolivier/3pid-invite-revokedBrendan Abolivier2019-10-041-0/+81
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Don't 500 when trying to exchange a revoked 3PID invite
| * | | | | | | Lint (again)Brendan Abolivier2019-10-031-3/+1
| | | | | | | |
| * | | | | | | LintBrendan Abolivier2019-10-031-5/+5
| | | | | | | |
| * | | | | | | Add test caseBrendan Abolivier2019-10-031-0/+83
| | | | | | | |
* | | | | | | | Land improved room list based on room stats (#6019)Erik Johnston2019-10-021-39/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use room_stats and room_state for room directory search
* | | | | | | | Merge branch 'release-v1.4.0' of github.com:matrix-org/synapse into developErik Johnston2019-10-022-0/+47
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | |
| * | | | | | | Merge pull request #6146 from matrix-org/erikj/fix_destination_retry_timingsErik Johnston2019-10-021-0/+11
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Fix errors storing large retry intervals.
| | * | | | | | | Fix errors storing large retry intervals.Erik Johnston2019-10-021-0/+11
| | |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have set the max retry interval to a value larger than a postgres or sqlite int can hold, which caused exceptions when updating the destinations table. To fix postgres we need to change the column to a bigint, and for sqlite we lower the max interval to 2**62 (which is still incredibly long).
| * / / / / / / Fix fetching censored redactions from DBErik Johnston2019-10-021-0/+36
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fetching a censored redactions caused an exception due to the code expecting redactions to have a `redact` key, which redacted redactions don't have.
* | | | | | | okBrendan Abolivier2019-09-271-1/+3
| | | | | | |
* | | | | | | LintBrendan Abolivier2019-09-271-7/+1
| | | | | | |
* | | | | | | Add test to validate the changeBrendan Abolivier2019-09-271-13/+57
|/ / / / / /
* | | | | | Fix dummy event insertion consent bug (#6053)Neil Johnson2019-09-262-9/+178
| | | | | | | | | | | | | | | | | | Fixes #5905
* | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-09-253-31/+103
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | erikj/cleanup_user_ips_2
| * \ \ \ \ \ Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-09-253-31/+103
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | erikj/cleanup_user_ips
| | * | | | | | Stop advertising unsupported flows for registration (#6107)Richard van der Hoff2019-09-251-12/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If email or msisdn verification aren't supported, let's stop advertising them for registration. Fixes #6100.
| | * | | | | | Refactor the user-interactive auth handling (#6105)Richard van der Hoff2019-09-251-10/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pull the checkers out to their own classes, rather than having them lost in a massive 1000-line class which does everything. This is also preparation for some more intelligent advertising of flows, as per #6100
| | * | | | | | Refactor code for calculating registration flows (#6106)Richard van der Hoff2019-09-252-21/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | because, frankly, it looked like it was written by an axe-murderer. This should be a non-functional change, except that where `m.login.dummy` was previously advertised *before* `m.login.terms`, it will now be advertised afterwards. AFAICT that should have no effect, and will be more consistent with the flows that involve passing a 3pid.
* | | | | | | | Test that pruning of old user IPs worksErik Johnston2019-09-241-0/+71
|/ / / / / / /
* | | | | | | Test background updateErik Johnston2019-09-231-0/+79
| | | | | | |
* | | | | | | Query devices table for last seen info.Erik Johnston2019-09-231-1/+0
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a) simpler than querying user_ips directly and b) means we can purge older entries from user_ips without losing the required info. The storage functions now no longer return the access_token, since it was unused.
* | | | | | Add 'failure_ts' column to 'destinations' table (#6016)Richard van der Hoff2019-09-173-4/+138
| | | | | | | | | | | | | | | | | | | | | | | | Track the time that a server started failing at, for general analysis purposes.
* | | | | | Fix well-known lookups with the federation certificate whitelist (#5997)Amber Brown2019-09-141-0/+40
| | | | | |
* | | | | | Fix for structured logging tests stomping on logs (#6023)Amber Brown2019-09-132-6/+23
| | | | | |
* | | | | | Ensure support users can be registered even if MAU limit is reachedJason Robinson2019-09-111-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows support users to be created even on MAU limits via the admin API. Support users are excluded from MAU after creation, so it makes sense to exclude them in creation - except if the whole host is in disabled state. Signed-off-by: Jason Robinson <jasonr@matrix.org>
* | | | | | Fix commentsErik Johnston2019-09-111-2/+2
| | | | | | | | | | | | | | | | | | Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
* | | | | | Add test for admin redaction ratelimiting.Erik Johnston2019-09-111-0/+25
| | | | | |
* | | | | | Merge pull request #6004 from matrix-org/jaywink/autojoin-create-real-usersJason Robinson2019-09-091-2/+27
|\ \ \ \ \ \ | | | | | | | | | | | | | | Only count real users when checking for auto-creation of auto-join room
| * | | | | | Only count real users when checking for auto-creation of auto-join roomJason Robinson2019-09-091-2/+27
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously if the first registered user was a "support" or "bot" user, when the first real user registers, the auto-join rooms were not created. Fix to exclude non-real (ie users with a special user type) users when counting how many users there are to determine whether we should auto-create a room. Signed-off-by: Jason Robinson <jasonr@matrix.org>
* | | | | | Merge pull request #5934 from matrix-org/erikj/censor_redactionsErik Johnston2019-09-091-1/+76
|\ \ \ \ \ \ | | | | | | | | | | | | | | Censor redactions in DB after a month
| * \ \ \ \ \ Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-09-058-119/+544
| |\ \ \ \ \ \ | | | |_|_|_|/ | | |/| | | | | | | | | | | erikj/censor_redactions
| * | | | | | Fix testErik Johnston2019-09-051-1/+3
| | | | | | |
| * | | | | | Make redaction retention period configurableErik Johnston2019-09-051-1/+3
| | | | | | |
| * | | | | | Censor redactions in DB after a monthErik Johnston2019-08-301-0/+71
| | |_|_|_|/ | |/| | | |
* | | | | | Add a build info metric to Prometheus (#6005)Amber Brown2019-09-101-2/+20
| |_|/ / / |/| | | |
* | | | | Servers-known-about statistic (#5981)Amber Brown2019-09-073-60/+125
| |/ / / |/| | |
* | | | Fix and refactor room and user stats (#5971)Erik Johnston2019-09-042-113/+538
| | | | | | | | | | | | Previously the stats were not being correctly populated.
* | | | Remove unnecessary parentheses around return statements (#5931)Andrew Morgan2019-08-306-6/+6
|/ / / | | | | | | | | | | | | Python will return a tuple whether there are parentheses around the returned values or not. I'm just sick of my editor complaining about this all over the place :)
* | | Merge pull request #5902 from matrix-org/hs/exempt-support-users-from-consentWill Hunt2019-08-281-0/+1
|\ \ \ | | | | | | | | Exempt support users from consent
| * | | Fix registration testHalf-Shot2019-08-231-0/+1
| | | |
* | | | Config templating (#5900)Jorik Schellekens2019-08-283-1/+196
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Template config files * Imagine a system composed entirely of x, y, z etc and the basic operations.. Wait George, why XOR? Why not just neq? George: Eh, I didn't think of that.. Co-Authored-By: Erik Johnston <erik@matrix.org>
* | | | Implement a structured logging output system. (#5680)Amber Brown2019-08-284-2/+456
| | | |
* | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-08-222-39/+50
|\| | | | | | | | | | | | | | | erikj/reliable_lookups
| * | | Merge pull request #5850 from matrix-org/erikj/retry_well_known_on_failErik Johnston2019-08-221-35/+48
| |\ \ \ | | | | | | | | | | Retry well known on fail
| | * | | Change jitter to be a factor rather than absolute valueErik Johnston2019-08-201-2/+2
| | | | |
| | * | | Retry well known on fail.Erik Johnston2019-08-151-33/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we have recently seen a valid well-known for a domain we want to retry on (non-final) errors a few times, to handle temporary blips in networking/etc.
| * | | | Refactor the Appservice scheduler codeRichard van der Hoff2019-08-201-4/+2
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Get rid of the labyrinthine `recoverer_fn` code, and clean up the startup code (it seemed to be previously inexplicably split between `ApplicationServiceScheduler.start` and `_Recoverer.start`). Add some docstrings too.
* | | | Remove test debugsErik Johnston2019-08-203-3/+0
| | | |
* | | | Refactor MatrixFederationAgent to retry SRV.Erik Johnston2019-08-152-5/+66
|/ / / | | | | | | | | | | | | | | | | | | | | | This refactors MatrixFederationAgent to move the SRV lookup into the endpoint code, this has two benefits: 1. Its easier to retry different host/ports in the same way as HostnameEndpoint. 2. We avoid SRV lookups if we have a free connection in the pool
* | | Retry well-known lookup before expiry.Erik Johnston2019-08-132-2/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | This gives a bit of a grace period where we can attempt to refetch a remote `well-known`, while still using the cached result if that fails. Hopefully this will make the well-known resolution a bit more torelant of failures, rather than it immediately treating failures as "no result" and caching that for an hour.
* | | Merge pull request #5836 from matrix-org/erikj/lower_bound_ttl_well_knownErik Johnston2019-08-131-22/+21
|\ \ \ | | | | | | | | Add a lower bound to well-known TTL.
| * | | Move well known lookup into a separate clasErik Johnston2019-08-071-20/+19
| | | |
| * | | Add a lower bound for TTL on well known results.Erik Johnston2019-08-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It costs both us and the remote server for us to fetch the well known for every single request we send, so we add a minimum cache period. This is set to 5m so that we still honour the basic premise of "refetch frequently".
* | | | Merge pull request #5788 from matrix-org/rav/metaredactionsRichard van der Hoff2019-08-121-0/+70
|\ \ \ \ | |/ / / |/| | | Fix handling of redactions of redactions
| * | | Handle loops in redaction eventsRichard van der Hoff2019-07-301-0/+70
| | | |
* | | | Account validity: allow defining HTML templates to serve the us… (#5807)Brendan Abolivier2019-08-011-0/+37
|\ \ \ \ | | | | | | | | | | Account validity: allow defining HTML templates to serve the user on account renewal attempt
| * | | | Add testsBrendan Abolivier2019-08-011-0/+37
| | |_|/ | |/| |
* | | | Merge pull request #5794 from matrix-org/erikj/share_ssl_options_for_well_knownErik Johnston2019-07-311-6/+6
|\ \ \ \ | | | | | | | | | | Share SSL options for well-known requests
| * | | | Share SSL options for well-known requestsErik Johnston2019-07-311-6/+6
| |/ / /
* / / / Remove DelayedCall debugging from test runs (#5787)Amber Brown2019-07-311-6/+0
|/ / /
* | | Merge pull request #5746 from matrix-org/erikj/test_bg_update_currnet_stateErik Johnston2019-07-301-1/+36
|\ \ \ | | | | | | | | Add unit test for current state membership bg update
| * | | Add unit test for current state membership bg updateErik Johnston2019-07-231-1/+36
| | | |
* | | | Remove non-functional 'expire_access_token' setting (#5782)Richard van der Hoff2019-07-303-3/+2
| |/ / |/| | | | | | | | | | | | | | | | | | | | The `expire_access_token` didn't do what it sounded like it should do. What it actually did was make Synapse enforce the 'time' caveat on macaroons used as access tokens, but since our access token macaroons never contained such a caveat, it was always a no-op. (The code to add 'time' caveats was removed back in v0.18.5, in #1656)
* | | Room Complexity Client Implementation (#5783)Amber Brown2019-07-301-3/+74
| | |
* | | Convert RedactionTestCase to modern test style (#5768)Richard van der Hoff2019-07-261-36/+38
| | |
* | | Fix some error cases in the caching layer. (#5749)Richard van der Hoff2019-07-251-3/+87
| | | | | | | | | | | | | | | | | | | | | There was some inconsistent behaviour in the caching layer around how exceptions were handled - particularly synchronously-thrown ones. This seems to be most easily handled by pushing the creation of ObservableDeferreds down from CacheDescriptor to the Cache.
* | | Merge tag 'v1.2.0rc2' into developAndrew Morgan2019-07-242-6/+17
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Bugfixes -------- - Fix a regression introduced in v1.2.0rc1 which led to incorrect labels on some prometheus metrics. ([\#5734](https://github.com/matrix-org/synapse/issues/5734))
| * | | Fix servlet metric names (#5734)Jorik Schellekens2019-07-242-6/+17
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | * Fix servlet metric names Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> * Remove redundant check * Cover all return paths
* | | Replace returnValue with return (#5736)Amber Brown2019-07-2313-25/+25
| |/ |/|
* | Refactor Keyring._start_key_lookupsRichard van der Hoff2019-07-191-29/+0
|/ | | | | There's an awful lot of deferreds and dictionaries flying around here. The whole thing can be made much simpler and achieve the same effect.
* Support Prometheus_client 0.4.0+ (#5636)Amber Brown2019-07-181-3/+1
|
* Remove the ability to query relations when the original event was redacted. ↵Andrew Morgan2019-07-181-3/+113
| | | | | | | (#5629) Fixes #5594 Forbid viewing relations on an event once it has been redacted.
* Ignore redactions of m.room.create events (#5701)Richard van der Hoff2019-07-171-0/+20
|
* More refactoring in `get_events_as_list` (#5707)Richard van der Hoff2019-07-172-0/+160
| | | | | | | | We can now use `_get_events_from_cache_or_db` rather than going right back to the database, which means that (a) we can benefit from caching, and (b) it opens the way forward to more extensive checks on the original event. We now always require the original event to exist before we will serve up a redaction.
* Merge pull request #5589 from matrix-org/erikj/admin_exfiltrate_dataErik Johnston2019-07-152-1/+211
|\ | | | | Add basic function to get all data for a user out of synapse
| * Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-07-0522-82/+234
| |\ | | | | | | | | | erikj/admin_exfiltrate_data
| * | Fixup from review comments.Erik Johnston2019-07-041-5/+5
| | |
| * | Add basic function to get all data for a user out of synapseErik Johnston2019-07-022-1/+211
| | |
* | | Implement access token expiry (#5660)Richard van der Hoff2019-07-125-11/+136
| | | | | | | | | | | | Record how long an access token is valid for, and raise a soft-logout once it expires.
* | | Add a mechanism for per-test configs (#5657)Richard van der Hoff2019-07-121-1/+54
| | | | | | | | | | | | | | | | | | It's useful to be able to tweak the homeserver config to be used for each test. This PR adds a mechanism to do so.
* | | Clean up exception handling for access_tokens (#5656)Richard van der Hoff2019-07-111-7/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First of all, let's get rid of `TOKEN_NOT_FOUND_HTTP_STATUS`. It was a hack we did at one point when it was possible to return either a 403 or a 401 if the creds were missing. We always return a 401 in these cases now (thankfully), so it's not needed. Let's also stop abusing `AuthError` for these cases. Honestly they have nothing that relates them to the other places that `AuthError` is used, other than the fact that they are loosely under the 'Auth' banner. It makes no sense for them to share exception classes. Instead, let's add a couple of new exception classes: `InvalidClientTokenError` and `MissingClientTokenError`, for the `M_UNKNOWN_TOKEN` and `M_MISSING_TOKEN` cases respectively - and an `InvalidClientCredentialsError` base class for the two of them.
* | | Inline issue_access_token (#5659)Richard van der Hoff2019-07-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | this is only used in one place, so it's clearer if we inline it and reduce the API surface. Also, fixes a buglet where we would create an access token even if we were about to block the user (we would never return the AT, so the user could never use it, but it was still created and added to the db.)
* | | Remove access-token support from RegistrationStore.register (#5642)Richard van der Hoff2019-07-106-58/+24
| | | | | | | | | | | | | | | The 'token' param is no longer used anywhere except the tests, so let's kill that off too.
* | | Include the original event in /relations (#5626)Andrew Morgan2019-07-091-0/+5
| | | | | | | | | When asking for the relations of an event, include the original event in the response. This will mostly be used for efficiently showing edit history, but could be useful in other circumstances.
* | | Merge pull request #5644 from matrix-org/babolivier/profile-allow-selfBrendan Abolivier2019-07-091-0/+47
|\ \ \ | | | | | | | | Allow newly-registered users to lookup their own profiles
| * | | LintBrendan Abolivier2019-07-081-2/+2
| | | |
| * | | Add test caseBrendan Abolivier2019-07-081-0/+47
| | | |
* | | | Remove access-token support from RegistrationHandler.register (#5641)Richard van der Hoff2019-07-081-25/+28
|/ / / | | | | | | | | | | | | | | | | | | | | | Nothing uses this now, so we can remove the dead code, and clean up the API. Since we're changing the shape of the return value anyway, we take the opportunity to give the method a better name.
* | | Move get_or_create_user to test code (#5628)Richard van der Hoff2019-07-081-9/+59
| | | | | | | | | This is only used in tests, so...
* | | Add origin_server_ts and sender fields to m.replace (#5613)Andrew Morgan2019-07-051-6/+18
| |/ |/| | | | | | | Riot team would like some extra fields as part of m.replace, so here you go. Fixes: #5598
* | Fixes to the federation rate limiter (#5621)Richard van der Hoff2019-07-053-6/+137
| | | | | | | | | | | | | | - Put the default window_size back to 1000ms (broken by #5181) - Make the `rc_federation` config actually do something - fix an off-by-one error in the 'concurrent' limit - Avoid creating an unused `_PerHostRatelimiter` object for every single incoming request
* | Move logging utilities out of the side drawer of util/ and into logging/ (#5606)Amber Brown2019-07-0419-65/+65
| |
* | Fix media repo breaking (#5593)Amber Brown2019-07-022-12/+33
|/
* Make the http server handle coroutine-making REST servlets (#5475)Amber Brown2019-06-292-18/+47
|
* Update the TLS cipher string and provide configurability for TLS on outgoing ↵Amber Brown2019-06-281-1/+114
| | | | federation (#5550)
* Split public rooms directory auth config in twoBrendan Abolivier2019-06-241-1/+1
|
* Pass config_dir_path and data_dir_path into Config.read_config. (#5522)Richard van der Hoff2019-06-244-4/+4
| | | | | | * Pull config_dir_path and data_dir_path calculation out of read_config_files * Pass config_dir_path and data_dir_path into read_config