summary refs log tree commit diff
path: root/tests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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
| | | |
| | * | Fix testsErik Johnston2019-10-251-0/+2
| | |/
| * | 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
|\ \ \ | | |/ | |/|
| * | 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
| * | 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
| * | | 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 unit testHubert Chathi2019-10-221-1/+3
| |_|/ |/| |
* | | Merge branch 'develop' into cross-signing_sig_uploadHubert Chathi2019-10-1829-249/+1136
|\ \ \ | | |/ | |/|
| * | Merge branch 'develop' into uhoreg/e2e_cross-signing_mergedHubert Chathi2019-10-1829-249/+1136
| |\|
| | * 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
| | | |_|/ | | |/| |
| * | | | Merge branch 'develop' into uhoreg/e2e_cross-signing_mergedHubert Chathi2019-09-073-60/+125
| |\| | |
* | | | | Merge branch 'develop' into cross-signing_sig_uploadHubert Chathi2019-09-073-60/+125
|\ \ \ \ \ | | |/ / / | |/| | |
| * | | | Servers-known-about statistic (#5981)Amber Brown2019-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
| |/ / |/| |
* | | Merge branch 'develop' into cross-signing_keysHubert Chathi2019-09-048-119/+544
|\| |
| * | 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 branch 'uhoreg/e2e_cross-signing_merged' into cross-signing_keysHubert Chathi2019-08-2817-56/+944
|\|
| * 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
| |/ /
* | | fix formattingHubert Chathi2019-08-011-1/+3
| | |
* | | Merge branch 'cross-signing_hidden' into cross-signing_keysHubert Chathi2019-08-0116-106/+279
|\| |
| * | 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.
* / allow uploading keys for cross-signingHubert Chathi2019-07-251-0/+63
|/
* 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
* Run Black. (#5482)Amber Brown2019-06-2056-710/+684
|
* Run as background process and fix commentsErik Johnston2019-06-191-1/+1
|
* Add experimental option to reduce extremities.Erik Johnston2019-06-181-0/+41
| | | | | | | 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 pull request #5388 from matrix-org/erikj/fix_email_pushErik Johnston2019-06-171-23/+70
|\ | | | | Fix email notifications for unnamed rooms with multiple people
| * Add testErik Johnston2019-06-071-1/+28
| |
| * Refactor email testsErik Johnston2019-06-071-22/+42
| |
* | Merge pull request #5440 from matrix-org/babolivier/third_party_event_rulesBrendan Abolivier2019-06-141-0/+79
|\ \ | | | | | | Allow server admins to define implementations of extra rules for allowing or denying incoming events
| * | Add plugin APIs for implementations of custom event rules.Brendan Abolivier2019-06-141-0/+79
| | |
* | | Merge pull request #5461 from matrix-org/erikj/histograms_are_cumalitiveErik Johnston2019-06-141-10/+10
|\ \ \ | | | | | | | | Prometheus histograms are cumalative
| * | | Prometheus histograms are cumalativeErik Johnston2019-06-141-10/+10
| | | |
* | | | Don't send renewal emails to deactivated usersBrendan Abolivier2019-06-141-25/+42
|/ / /
* | | Track deactivated accounts in the database (#5378)Brendan Abolivier2019-06-141-0/+45
| | |
* | | fix prometheus rendering errorAmber H. Brown2019-06-141-38/+23
| | |
* | | Expose statistics on extrems to prometheus (#5384)Amber Brown2019-06-133-80/+206
| | |
* | | Merge branch 'master' of github.com:matrix-org/synapse into developErik Johnston2019-06-116-24/+253
|\ \ \
| * | | Bump bleach version so that tests can run on old deps.Erik Johnston2019-06-114-24/+0
| | | |
| * | | Change password reset links to /_matrix.Erik Johnston2019-06-112-0/+253
| |/ /
* | | Merge branch 'release-v1.0.0' of github.com:matrix-org/synapse into developErik Johnston2019-06-106-106/+341
|\| |
| * | Merge pull request #5417 from matrix-org/rav/shared_ssl_contextErik Johnston2019-06-106-106/+341
| |\ \ | | | | | | | | Share an SSL context object between SSL connections
| | * | fix ci on py2, againRichard van der Hoff2019-06-101-1/+1
| | | |
| | * | fix CI on python 2.7Richard van der Hoff2019-06-101-6/+4
| | | |
| | * | Tests for SSL certs for federation connectionsRichard van der Hoff2019-06-106-106/+343
| | |/ | | | | | | | | | Add some tests for bad certificates for federation and .well-known connections
* | | Merge pull request #5415 from matrix-org/erikj/fix_null_valid_until_msErik Johnston2019-06-101-1/+49
|\| | | | | | | | Fix key verification when key stored with null valid_until_ms
| * | Fix key verification when key stored with null valid_until_msErik Johnston2019-06-101-1/+49
| |/ | | | | | | | | | | | | | | | | | | Some keys are stored in the synapse database with a null valid_until_ms which caused an exception to be thrown when using that key. We fix this by treating nulls as zeroes, i.e. they keys will match verification requests with a minimum_valid_until_ms of zero (i.e. don't validate ts) but will not match requests with a non-zero minimum_valid_until_ms. Fixes #5391.
* | Merge pull request #5363 from ↵Brendan Abolivier2019-06-101-0/+35
|\ \ | |/ |/| | | | | matrix-org/babolivier/account_validity_send_mail_auth Don't check whether the user's account is expired on /send_mail requests
| * Don't check whether the user's account is expired on /send_mail requestsBrendan Abolivier2019-06-051-0/+35
| |
* | Prevent multiple device list updates from breaking a batch send (#5156)Andrew Morgan2019-06-061-0/+69
| | | | | | fixes #5153
* | Set default room version to v4. (#5379)Neil Johnson2019-06-062-1/+8
| | | | | | | | Set default room version to v4.
* | Add ability to perform password reset via email without trusting the ↵Andrew Morgan2019-06-061-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | identity server (#5377) Sends password reset emails from the homeserver instead of proxying to the identity server. This is now the default behaviour for security reasons. If you wish to continue proxying password reset requests to the identity server you must now enable the email.trust_identity_server_for_password_resets option. This PR is a culmination of 3 smaller PRs which have each been separately reviewed: * #5308 * #5345 * #5368
* | Stop hardcoding trust of old matrix.org key (#5374)Richard van der Hoff2019-06-062-15/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are a few changes going on here: * We make checking the signature on a key server response optional: if no verify_keys are specified, we trust to TLS to validate the connection. * We change the default config so that it does not require responses to be signed by the old key. * We replace the old 'perspectives' config with 'trusted_key_servers', which is also formatted slightly differently. * We emit a warning to the logs every time we trust a key server response signed by the old key.
* | Merge pull request #5359 from matrix-org/rav/enable_tls_verificationRichard van der Hoff2019-06-061-3/+9
|\ \ | | | | | | Validate federation server TLS certificates by default.
| * \ Merge branch 'rav/fix_custom_ca' into rav/enable_tls_verificationRichard van der Hoff2019-06-051-3/+59
| |\ \
| * | | Validate federation server TLS certificates by default.Richard van der Hoff2019-06-051-3/+9
| | | |
* | | | Merge pull request #5353 from matrix-org/rav/verify_key_loggingRichard van der Hoff2019-06-061-10/+8
|\ \ \ \ | |_|/ / |/| | | Associate a request_name with each verify request, for logging
| * | | Associate a request_name with each verify request, for loggingRichard van der Hoff2019-06-051-10/+8
| |/ / | | | | | | | | | | | | | | | | | | Also: * rename VerifyKeyRequest->VerifyJsonRequest * calculate key_ids on VerifyJsonRequest construction * refactor things to pass around VerifyJsonRequests instead of 4-tuples
* / / Fix background updates to handle redactions/rejections (#5352)Erik Johnston2019-06-061-3/+59
|/ / | | | | | | | | | | | | | | * Fix background updates to handle redactions/rejections In background updates based on current state delta stream we need to handle that we may not have all the events (or at least that `get_events` may raise an exception).
* | Don't bomb out on direct key fetches as soon as one failsRichard van der Hoff2019-06-041-7/+5
| |
* | Enforce validity period on server_keys for fed requests. (#5321)Richard van der Hoff2019-06-031-27/+108
| | | | | | | | | | | | | | | | When handling incoming federation requests, make sure that we have an up-to-date copy of the signing key. We do not yet enforce the validity period for event signatures.
* | Unify v1 and v2 REST client APIs (#5226)Amber Brown2019-06-033-3/+2
| |
* | Merge pull request #5309 from matrix-org/rav/limit_displayname_lengthRichard van der Hoff2019-06-011-2/+60
|\ \ | | | | | | Limit displaynames and avatar URLs
| * | add some testsRichard van der Hoff2019-06-011-2/+60
| | |
* | | Merge pull request #5276 from matrix-org/babolivier/account_validity_job_deltaErik Johnston2019-05-311-5/+10
|\ \ \ | | | | | | | | Allow configuring a range for the account validity startup job
| * | | Move delta from +10% to -10%Brendan Abolivier2019-05-311-2/+2
| | | |
| * | | Make max_delta equal to period * 10%Brendan Abolivier2019-05-311-17/+1
| | | |
| * | | TypoBrendan Abolivier2019-05-281-1/+1
| | | |
| * | | Allow configuring a range for the account validity startup jobBrendan Abolivier2019-05-281-0/+21
| | |/ | |/| | | | | | | | | | When enabling the account validity feature, Synapse will look at startup for registered account without an expiration date, and will set one equals to 'now + validity_period' for them. On large servers, it can mean that a large number of users will have the same expiration date, which means that they will all be sent a renewal email at the same time, which isn't ideal. In order to mitigate this, this PR allows server admins to define a 'max_delta' so that the expiration date is a random value in the [now + validity_period ; now + validity_period + max_delta] range. This allows renewal emails to be progressively sent over a configured period instead of being sent all in one big batch.
* | | Merge pull request #5278 from matrix-org/erikj/cleanup_bad_extremitiesErik Johnston2019-05-301-0/+248
|\ \ \ | | | | | | | | Add DB bg update to cleanup extremities.
| * | | Add testErik Johnston2019-05-291-0/+248
| | | |
* | | | Implement the SHHS complexity API (#5216)Amber Brown2019-05-301-0/+90
|/ / /
* | | Merge pull request #5251 from matrix-org/rav/server_keys/01-check_sigRichard van der Hoff2019-05-281-9/+75
|\ \ \ | | | | | | | | Ensure that server_keys fetched via a notary server are correctly signed.
| * | | Require sig from origin server on perspectives responsesRichard van der Hoff2019-05-231-9/+75
| | | |
* | | | Simplification to Keyring.wait_for_previous_lookups. (#5250)Richard van der Hoff2019-05-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | The list of server names was redundant, since it was equivalent to the keys on the server_to_deferred map. This reduces the number of large lists being passed around, and has the benefit of deduplicating the entries in `wait_on`.
* | | | Merge pull request #5244 from matrix-org/rav/server_keys/00-factor-out-fetchersErik Johnston2019-05-231-6/+28
|\| | | | | | | | | | | Factor out KeyFetchers from KeyRing
| * | | Factor out KeyFetchers from KeyRingRichard van der Hoff2019-05-231-6/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than have three methods which have to have the same interface, factor out a separate interface which is provided by three implementations. I find it easier to grok the code this way.
* | | | Add config option for setting homeserver's default room version (#5223)Andrew Morgan2019-05-231-2/+5
|/ / / | | | | | | | | | | | | Replaces DEFAULT_ROOM_VERSION constant with a method that first checks the config, then returns a hardcoded value if the option is not present. That hardcoded value is now located in the server.py config file.
* | | Store key validity time in the storage layerRichard van der Hoff2019-05-232-22/+44
| | | | | | | | | | | | | | | | | | | | | | | | This is a first step to checking that the key is valid at the required moment. The idea here is that, rather than passing VerifyKey objects in and out of the storage layer, we instead pass FetchKeyResult objects, which simply wrap the VerifyKey and add a valid_until_ts field.
* | | Rewrite store_server_verify_key to store several keys at once (#5234)Richard van der Hoff2019-05-232-16/+42
| | | | | | | | | | | | | | | Storing server keys hammered the database a bit. This replaces the implementation which stored a single key, with one which can do many updates at once.
* | | Room Statistics (#4338)Amber Brown2019-05-212-0/+268
| |/ |/|
* | Merge pull request #5212 from matrix-org/erikj/deny_multiple_reactionsErik Johnston2019-05-211-1/+26
|\ \ | | | | | | Block attempts to annotate the same event twice
| * | Block attempts to annotate the same event twiceErik Johnston2019-05-201-1/+26
| | |
* | | Merge pull request #5204 from ↵Brendan Abolivier2019-05-211-0/+55
|\ \ \ | |/ / |/| / | |/ | | matrix-org/babolivier/account_validity_expiration_date Add startup background job for account validity
| * Add startup background job for account validityBrendan Abolivier2019-05-171-0/+55
| | | | | | | | If account validity is enabled in the server's configuration, this job will run at startup as a background job and will stick an expiration date to any registered account missing one.
* | Rename relation types to match MSCErik Johnston2019-05-201-11/+11
| |
* | Merge pull request #5209 from matrix-org/erikj/reactions_baseErik Johnston2019-05-201-0/+539
|\ \ | | | | | | Land basic reaction and edit support.
| * | Fixup commentsErik Johnston2019-05-201-2/+2
| | |
| * | Correctly update aggregation counts after redactionErik Johnston2019-05-201-0/+37
| | |
| * | Make tests use different user for each reaction it sendsErik Johnston2019-05-171-12/+68
| | | | | | | | | | | | As users aren't allowed to react with the same emoji more than once.
| * | Add basic editing supportErik Johnston2019-05-161-9/+82
| | |
| * | Check that event is visible in new APIsErik Johnston2019-05-161-1/+1
| | |
| * | Add aggregations APIErik Johnston2019-05-161-3/+248
| | |
| * | Add simple pagination APIErik Johnston2019-05-151-0/+30
| | |
| * | Add simple send_relation API and track in DBErik Johnston2019-05-151-0/+98
| | |
| * | Merge branch 'erikj/fix_config_ratelimiting' into erikj/testErik Johnston2019-05-141-1/+2
| |\ \
* | | | Limit UserIds to a length that fits in a state key (#5198)ReidAnderson2019-05-201-0/+7
| | | |
* | | | Merge pull request #5196 from matrix-org/babolivier/per_room_profilesBrendan Abolivier2019-05-171-1/+69
|\ \ \ \ | | |_|/ | |/| | Add an option to disable per-room profiles
| * | | LintBrendan Abolivier2019-05-161-1/+0
| | | |
| * | | LintBrendan Abolivier2019-05-161-1/+3
| | | |
| * | | Forgot copyrightBrendan Abolivier2019-05-161-0/+1
| | | |
| * | | Add test caseBrendan Abolivier2019-05-161-1/+67
| | | |
* | | | Merge pull request #5174 from matrix-org/dbkr/add_dummy_flow_to_recaptcha_onlyDavid Baker2019-05-162-2/+9
|\ \ \ \ | |/ / / |/| | | Re-order registration stages to do msisdn & email auth last
| * | | Terms might not be the last stageDavid Baker2019-05-131-1/+1
| | | |
| * | | Merge remote-tracking branch 'origin/develop' into ↵David Baker2019-05-131-11/+11
| |\ \ \ | | | | | | | | | | | | | | | dbkr/add_dummy_flow_to_recaptcha_only
| * | | | And now I realise why the test is failing...David Baker2019-05-131-1/+8
| | | | |
* | | | | Make all the rate limiting options more consistent (#5181)Amber Brown2019-05-151-12/+8
| | | | |
* | | | | Merge pull request #5184 from matrix-org/erikj/expose_get_events_as_arrayErik Johnston2019-05-151-1/+1
|\ \ \ \ \ | | |_|/ / | |/| | / | |_|_|/ |/| | | Expose DataStore._get_events as get_events_as_list
| * | | Expose DataStore._get_events as get_events_as_listErik Johnston2019-05-141-1/+1
| | | | | | | | | | | | | | | | This is in preparation for reaction work which requires it.
* | | | Use correct config option for ratelimiting in testsErik Johnston2019-05-141-1/+2
|/ / /
* | | Migrate all tests to use the dict-based config format instead of hanging ↵Amber Brown2019-05-1321-203/+238
| | | | | | | | | | | | items off HomeserverConfig (#5171)
* | | Add ability to blacklist ip ranges for federation traffic (#5043)Andrew Morgan2019-05-131-0/+71
| |/ |/|
* | URL preview blacklisting fixes (#5155)Andrew Morgan2019-05-101-11/+11
|/ | | Prevents a SynapseError being raised inside of a IResolutionReceiver and instead opts to just return 0 results. This thus means that we have to lump a failed lookup and a blacklisted lookup together with the same error message, but the substitute should be generic enough to cover both cases.
* Run Black on the tests again (#5170)Amber Brown2019-05-1053-1169/+828
|
* Fix bogus imports in tests (#5154)Brendan Abolivier2019-05-083-5/+6
|
* add options to require an access_token to GET /profile and /publicRooms on ↵Matthew Hodgson2019-05-082-1/+123
| | | | | | | | | | | | | | | | | CS API (#5083) This commit adds two config options: * `restrict_public_rooms_to_local_users` Requires auth to fetch the public rooms directory through the CS API and disables fetching it through the federation API. * `require_auth_for_profile_requests` When set to `true`, requires that requests to `/profile` over the CS API are authenticated, and only returns the user's profile if the requester shares a room with the profile's owner, as per MSC1301. MSC1301 also specifies a behaviour for federation (only returning the profile if the server asking for it shares a room with the profile's owner), but that's currently really non-trivial to do in a not too expensive way. Next step is writing down a MSC that allows a HS to specify which user sent the profile query. In this implementation, Synapse won't send a profile query over federation if it doesn't believe it already shares a room with the profile's owner, though. Groups have been intentionally omitted from this commit.