summary refs log tree commit diff
path: root/synapse/api (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/erikj/as_mau_block' into developErik Johnston2020-12-181-0/+7
|\
| * Don't MAU limit AS ghost usersErik Johnston2020-12-171-0/+7
| |
* | Try and drop stale extremities. (#8929)Erik Johnston2020-12-181-0/+2
| | | | | | | | If we see stale extremities while persisting events, and notice that they don't change the result of state resolution, we drop them.
* | Do not assume that the contents dictionary includes history_visibility. (#8945)Patrick Cloke2020-12-162-2/+10
| |
* | Honour AS ratelimit settings for /login requests (#8920)Erik Johnston2020-12-111-1/+3
|/ | | | Fixes #8846.
* Add admin API for logging in as a user (#8617)Erik Johnston2020-11-171-4/+29
|
* Add ability for access tokens to belong to one user but grant access to ↵Erik Johnston2020-10-291-67/+46
| | | | | | | | | | another user. (#8616) We do it this way round so that only the "owner" can delete the access token (i.e. `/logout/all` by the "owner" also deletes that token, but `/logout/all` by the "target user" doesn't). A future PR will add an API for creating such a token. When the target user and authenticated entity are different the `Processed request` log line will be logged with a: `{@admin:server as @bob:server} ...`. I'm not convinced by that format (especially since it adds spaces in there, making it harder to use `cut -d ' '` to chop off the start of log lines). Suggestions welcome.
* Fix handling of User-Agent headers with bad utf-8. (#8632)Erik Johnston2020-10-231-3/+1
|
* type annotations for LruCacheRichard van der Hoff2020-10-161-1/+3
|
* Make LruCache register its own metrics (#8561)Richard van der Hoff2020-10-161-3/+1
| | | | | rather than have everything that instantiates an LruCache manage metrics separately, have LruCache do it itself.
* Do not assume that account data is of the correct form. (#8454)Patrick Cloke2020-10-051-0/+5
| | | | This fixes a bug where `m.ignored_user_list` was assumed to be a dict, leading to odd behavior for users who set it to something else.
* Don't push if an user account has expired (#8353)Mathieu Velten2020-09-231-5/+1
|
* Simplify super() calls to Python 3 syntax. (#8344)Patrick Cloke2020-09-182-28/+24
| | | | | | | This converts calls like super(Foo, self) -> super(). Generated with: sed -i "" -Ee 's/super\([^\(]+\)/super()/g' **/*.py
* Show a confirmation page during user password reset (#8004)Andrew Morgan2020-09-101-0/+1
| | | | | This PR adds a confirmation step to resetting your user password between clicking the link in your email and your password actually being reset. This is to better align our password reset flow with the industry standard of requiring a confirmation from the user after email validation.
* Directly import json from the standard library. (#8259)Patrick Cloke2020-09-081-1/+1
| | | | | By importing from canonicaljson the simplejson module was still being used in some situations. After this change the std lib json is consistenty used throughout Synapse.
* Stop sub-classing object (#8249)Patrick Cloke2020-09-048-26/+26
|
* Do not apply ratelimiting on joins to appservices (#8139)Will Hunt2020-08-211-0/+37
| | | | | | Add new method ratelimiter.can_requester_do_action and ensure that appservices are exempt from being ratelimited. Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com> Co-authored-by: Erik Johnston <erik@matrix.org>
* Stop shadow-banned users from sending invites. (#8095)Patrick Cloke2020-08-201-0/+8
|
* Be stricter about JSON that is accepted by Synapse (#8106)Patrick Cloke2020-08-191-3/+3
|
* Convert stream database to async/await. (#8074)Patrick Cloke2020-08-172-1/+70
|
* Add a shadow-banned flag to users. (#8092)Patrick Cloke2020-08-141-1/+11
|
* Convert synapse.api to async/await (#8031)Patrick Cloke2020-08-063-80/+63
|
* Improve performance of the register endpoint (#8009)Patrick Cloke2020-08-061-1/+3
|
* Convert a synapse.events to async/await. (#7949)Patrick Cloke2020-07-271-1/+1
|
* Convert state resolution to async/await (#7942)Patrick Cloke2020-07-241-4/+8
|
* Ensure that calls to `json.dumps` are compatible with the standard library ↵Patrick Cloke2020-07-151-1/+3
| | | | json. (#7836)
* Improve the type hints of synapse.api.errors. (#7820)Patrick Cloke2020-07-141-55/+73
|
* Do not use canonicaljson to magically handle decoding bytes from JSON. (#7802)Patrick Cloke2020-07-101-4/+2
|
* Fix some spelling mistakes / typos. (#7811)Patrick Cloke2020-07-091-1/+1
|
* isort 5 compatibility (#7786)Will Hunt2020-07-051-2/+1
| | | The CI appears to use the latest version of isort, which is a problem when isort gets a major version bump. Rather than try to pin the version, I've done the necessary to make isort5 happy with synapse.
* Replace all remaining six usage with native Python 3 equivalents (#7704)Dagfinn Ilmari Mannsåker2020-06-163-9/+5
|
* Replace iteritems/itervalues/iterkeys with native versions. (#7692)Patrick Cloke2020-06-152-5/+2
|
* Add option to enable encryption by default for new rooms (#7639)Andrew Morgan2020-06-101-0/+5
| | | | | | | | | Fixes https://github.com/matrix-org/synapse/issues/2431 Adds config option `encryption_enabled_by_default_for_room_type`, which determines whether encryption should be enabled with the default encryption algorithm in private or public rooms upon creation. Whether the room is private or public is decided based upon the room creation preset that is used. Part of this PR is also pulling out all of the individual instances of `m.megolm.v1.aes-sha2` into a constant variable to eliminate typos ala https://github.com/matrix-org/synapse/pull/7637 Based on #7637
* Update to the stable SSO prefix for UI Auth. (#7630)Patrick Cloke2020-06-051-1/+1
|
* Fix type information on `assert_*_is_admin` methods (#7645)Richard van der Hoff2020-06-051-4/+4
| | | These things don't return Deferreds.
* Remove some unused constants. (#7644)Richard van der Hoff2020-06-051-4/+0
|
* Performance improvements and refactor of Ratelimiter (#7595)Andrew Morgan2020-06-051-35/+118
| | | | | | | | | | 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.
* Implement room version 6 (MSC2240). (#7506)Patrick Cloke2020-05-151-26/+4
|
* Strictly enforce canonicaljson requirements in a new room version (#7381)Patrick Cloke2020-05-141-1/+23
|
* Enforce MSC2209: auth rules for notifications in power level event (#7502)Patrick Cloke2020-05-141-1/+21
| | | | In a new room version, the "notifications" key of power level events are subject to restricted auth rules.
* Allow expired accounts to logout (#7443)Andrew Morgan2020-05-141-17/+33
|
* Allow configuration of Synapse's cache without using synctl or environment ↵Amber Brown2020-05-111-2/+2
| | | | variables (#6391)
* Stop Auth methods from polling the config on every req. (#7420)Andrew Morgan2020-05-062-73/+114
|
* async/await is_server_admin (#7363)Andrew Morgan2020-05-011-5/+4
|
* Stop the master relaying USER_SYNC for other workers (#7318)Richard van der Hoff2020-04-221-0/+2
| | | | | | | Long story short: if we're handling presence on the current worker, we shouldn't be sending USER_SYNC commands over replication. In an attempt to figure out what is going on here, I ended up refactoring some bits of the presencehandler code, so the first 4 commits here are non-functional refactors to move this code slightly closer to sanity. (There's still plenty to do here :/). Suggest reviewing individual commits. Fixes (I hope) #7257.
* Convert http.HTTPStatus objects to their int equivalent (#7188)Andrew Morgan2020-04-031-1/+8
|
* Support SAML in the user interactive authentication workflow. (#7102)Patrick Cloke2020-04-011-0/+1
|
* Allow server admins to define and enforce a password policy (MSC2000). (#7118)Dirk Klimpel2020-03-261-0/+21
|
* Remove special auth and redaction rules for aliases events in experimental ↵Patrick Cloke2020-03-091-4/+5
| | | | room ver. (#7037)
* Allow deleting an alias if the user has sufficient power level (#6986)Patrick Cloke2020-03-041-7/+2
|
* Validate the alt_aliases property of canonical alias events (#6971)Patrick Cloke2020-03-031-0/+1
|
* Publishing/removing from the directory requires a power level greater than ↵Patrick Cloke2020-02-211-5/+5
| | | | canonical aliases.
* Add `allow_departed_users` param to `check_in_room_or_world_readable`Richard van der Hoff2020-02-191-3/+13
| | | | | | | ... 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)
* Refactor the membership check methods in AuthRichard van der Hoff2020-02-181-43/+37
| | | | | these were getting a bit unwieldy, so let's combine `check_joined_room` and `check_user_was_in_room` into a single `check_user_in_room`.
* Fix detecting unknown devices from remote encrypted events. (#6848)Erik Johnston2020-02-041-2/+1
| | | | | | | | We were looking at the wrong event type (`m.room.encryption` vs `m.room.encrypted`). Also fixup the duplicate `EvenTypes` entries. Introduced in #6776.
* Add `get_room_version` methodRichard van der Hoff2020-01-311-4/+2
| | | | So that we can start factoring out some of this boilerplatey boilerplate.
* Implement updated auth rules from MSC2260Richard van der Hoff2020-01-281-0/+16
|
* Pass room version object into event_auth.check and check_redaction (#6788)Richard van der Hoff2020-01-281-2/+5
| | | | | | | 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.
* Fixup synapse.api to pass mypy (#6733)Erik Johnston2020-01-202-3/+8
|
* Add StateMap type alias (#6715)Erik Johnston2020-01-161-6/+2
|
* Implement RedirectException (#6687)Richard van der Hoff2020-01-151-1/+26
| | | | | Allow REST endpoint implemnentations to raise a RedirectException, which will redirect the user's browser to a given location.
* Kill off RegistrationError (#6691)Richard van der Hoff2020-01-131-6/+0
| | | This is pretty pointless. Let's just use SynapseError.
* Remove unused, undocumented "content repo" resource (#6628)Richard van der Hoff2020-01-031-1/+0
| | | | | | This looks like it got half-killed back in #888. Fixes #6567.
* Change EventContext to use the Storage class (#6564)Erik Johnston2019-12-201-1/+1
|
* Add auth events as per spec. (#6556)Erik Johnston2019-12-161-67/+34
| | | | | Previously we tried to be clever and filter out some unnecessary event IDs to keep the auth chain small, but that had some annoying interactions with state res v2 so we stop doing that for now.
* Merge pull request #6329 from matrix-org/babolivier/context_filtersBrendan Abolivier2019-12-042-1/+5
|\ | | | | Filter state, events_before and events_after in /context requests
| * Merge branch 'develop' into babolivier/context_filtersBrendan Abolivier2019-12-042-1/+3
| |\
| * | Update copyrightsBrendan Abolivier2019-11-052-1/+5
| | |
* | | Add ephemeral messages support (MSC2228) (#6409)Brendan Abolivier2019-12-031-0/+4
| |/ |/| | | | | | | | | | | | | 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
* | Merge branch 'develop' into babolivier/message_retentionBrendan Abolivier2019-11-261-1/+1
|\ \
| * | Replace instance variations of homeserver with correct case/spacingAndrew Morgan2019-11-121-1/+1
| |/
* / Implement per-room message retention policiesBrendan Abolivier2019-11-041-0/+2
|/
* Merge pull request #6301 from matrix-org/babolivier/msc2326Brendan Abolivier2019-11-012-2/+20
|\ | | | | Implement MSC2326 (label based filtering)
| * Incorporate reviewBrendan Abolivier2019-11-012-2/+2
| |
| * LintBrendan Abolivier2019-11-011-0/+1
| |
| * Incorporate reviewBrendan Abolivier2019-11-012-3/+8
| |
| * Add unit testsBrendan Abolivier2019-10-301-1/+1
| |
| * Implement filteringBrendan Abolivier2019-10-301-2/+11
| |
| * Store labels for new eventsBrendan Abolivier2019-10-301-0/+3
| |
* | 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.
* Option to suppress resource exceeded alerting (#6173)Neil Johnson2019-10-242-3/+16
| | | | The expected use case is to suppress MAU limiting on small instances
* Remove Auth.check method (#6217)Richard van der Hoff2019-10-181-18/+1
| | | This method was somewhat redundant, and confusing.
* Merge branch 'uhoreg/e2e_cross-signing_merged' into developHubert Chathi2019-10-181-0/+1
|\
| * Merge branch 'develop' into uhoreg/e2e_cross-signing_mergedHubert Chathi2019-10-183-5/+18
| |\
| * \ Merge branch 'develop' into cross-signing_keysHubert Chathi2019-09-041-8/+7
| |\ \
| * \ \ Merge branch 'uhoreg/e2e_cross-signing_merged' into cross-signing_keysHubert Chathi2019-08-283-2/+8
| |\ \ \
| * \ \ \ Merge branch 'cross-signing_hidden' into cross-signing_keysHubert Chathi2019-08-012-48/+26
| |\ \ \ \
| * | | | | allow uploading keys for cross-signingHubert Chathi2019-07-251-0/+1
| | | | | |
* | | | | | rip out some unreachable codeRichard van der Hoff2019-10-171-2/+0
| |_|_|_|/ |/| | | | | | | | | | | | | | The only possible rejection reason is AUTH_ERROR, so all of this is unreachable.
* | | | | Fix up some typechecking (#6150)Amber Brown2019-10-022-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * type checking fixes * changelog
* | | | | Add device and appservice tagsErik Johnston2019-09-251-0/+3
| | | | |
* | | | | Don't create new span for get_user_by_reqErik Johnston2019-09-251-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't actually care about what happens in `get_user_by_req` and having it as a separate span means that the entity tag isn't added to the servlet spans, making it harder to search.
* | | | | Ensure support users can be registered even if MAU limit is reachedJason Robinson2019-09-111-2/+9
| |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | | Remove double return statements (#5962)Andrew Morgan2019-09-031-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove all the "double return" statements which were a result of us removing all the instances of ``` defer.returnValue(...) return ``` statements when we switched to python3 fully.
* | | | Remove unnecessary parentheses around return statements (#5931)Andrew Morgan2019-08-301-7/+7
| |_|/ |/| | | | | | | | | | | 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 :)
* | | Add bot typeHalf-Shot2019-08-231-1/+2
| | |
* | | Opentracing misc (#5856)Jorik Schellekens2019-08-161-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add authenticated_entity and servlet_names tags. Functionally: - Add a tag for authenticated_entity - Add a tag for servlet_names Stylistically: Moved to importing methods directly from opentracing.
* | | Change user deactivated errcode to USER_DEACTIVATED and use it (#5686)Andrew Morgan2019-07-311-1/+2
| |/ |/| | | | | | | This is intended as an amendment to #5674 as using M_UNKNOWN as the errcode makes it hard for clients to differentiate between an invalid password and a deactivated user (the problem we were trying to solve in the first place). M_UNKNOWN was originally chosen as it was presumed than an MSC would have to be carried out to add a new code, but as Synapse often is the testing bed for new MSC implementations, it makes sense to try it out first in the wild and then add it into the spec if it is successful. Thus this PR return a new M_USER_DEACTIVATED code when a deactivated user attempts to login.
* | Remove non-functional 'expire_access_token' setting (#5782)Richard van der Hoff2019-07-301-23/+5
| | | | | | | | | | | | | | | | 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)
* | Replace returnValue with return (#5736)Amber Brown2019-07-232-25/+21
|/
* Ignore redactions of m.room.create events (#5701)Richard van der Hoff2019-07-171-15/+0
|
* Return a different error from Invalid Password when a user is deactivated ↵Andrew Morgan2019-07-151-0/+16
| | | | | (#5674) Return `This account has been deactivated` instead of `Invalid password` when a user is deactivated.
* Implement access token expiry (#5660)Richard van der Hoff2019-07-122-1/+19
| | | | Record how long an access token is valid for, and raise a soft-logout once it expires.
* Clean up exception handling for access_tokens (#5656)Richard van der Hoff2019-07-112-89/+71
| | | | | | | | | | | | | | | | 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.
* Run Black. (#5482)Amber Brown2019-06-207-337/+231
|
* Merge pull request #5363 from ↵Brendan Abolivier2019-06-101-2/+13
|\ | | | | | | | | matrix-org/babolivier/account_validity_send_mail_auth Don't check whether the user's account is expired on /send_mail requests
| * Better wordingBrendan Abolivier2019-06-101-1/+1
| |
| * DocBrendan Abolivier2019-06-101-0/+5
| |
| * Don't check whether the user's account is expired on /send_mail requestsBrendan Abolivier2019-06-051-2/+8
| |
* | Add ability to perform password reset via email without trusting the ↵Andrew Morgan2019-06-061-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | Implement room v5 which enforces signing key validityRichard van der Hoff2019-06-051-5/+5
| | | | | | | | | | Implements [MSC2077](https://github.com/matrix-org/matrix-doc/pull/2077) and fixes #5247 and #4364.
* | Add a test room version where we enforce key validity (#5348)Richard van der Hoff2019-06-051-7/+13
| |
* | Implement the SHHS complexity API (#5216)Amber Brown2019-05-301-0/+1
| |
* | Add config option for setting homeserver's default room version (#5223)Andrew Morgan2019-05-231-4/+0
| | | | | | | | | | 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.
* | Room Statistics (#4338)Amber Brown2019-05-211-0/+1
| |
* | Introduce room v4 which updates event ID format. (#5217)Richard van der Hoff2019-05-211-4/+4
| | | | | | Implements https://github.com/matrix-org/matrix-doc/pull/2002.
* | Fix error handling for rooms whose versions are unknown. (#5219)Richard van der Hoff2019-05-211-1/+15
| | | | | | | | | | | | | | If we remove support for a particular room version, we should behave more gracefully. This should make client requests fail with a 400 rather than a 500, and will ignore individiual PDUs in a federation transaction, rather than the whole transaction.
* | Add a test room version which updates event ID format (#5210)Richard van der Hoff2019-05-201-2/+11
| | | | | | Implements MSC1884
* | Rename relation types to match MSCErik Johnston2019-05-201-2/+2
| |
* | Merge pull request #5209 from matrix-org/erikj/reactions_baseErik Johnston2019-05-201-0/+8
|\ \ | | | | | | Land basic reaction and edit support.
| * | Add simple send_relation API and track in DBErik Johnston2019-05-151-0/+8
| | |
* | | Limit UserIds to a length that fits in a state key (#5198)ReidAnderson2019-05-201-0/+3
| |/ |/|
* | Drop support for v2_alpha API prefix (#5190)Richard van der Hoff2019-05-151-2/+1
|/
* Do checks on aliases for incoming m.room.aliases events (#5128)Brendan Abolivier2019-05-081-0/+3
| | | | | 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.
* Factor out an "assert_requester_is_admin" function (#5120)Richard van der Hoff2019-05-021-1/+1
| | | | Rather than copying-and-pasting the same four lines hundreds of times
* Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-04-174-43/+95
|\ | | | | | | babolivier/account_expiration
| * Merge pull request #5047 from matrix-org/babolivier/account_expirationBrendan Abolivier2019-04-171-2/+3
| |\ | | | | | | Send out emails with links to extend an account's validity period
| * | Remove periods from copyright headers (#5046)Andrew Morgan2019-04-113-3/+3
| | |
| * | Merge pull request #5027 from matrix-org/babolivier/account_expirationBrendan Abolivier2019-04-092-0/+13
| |\ \ | | | | | | | | Add time-based account expiration
| * | | Transfer related groups on room upgrade (#4990)Andrew Morgan2019-04-021-0/+1
| | | | | | | | | | | | Transfers the m.room.related_groups state event on room upgrade.
| * | | Collect room-version variations into one place (#4969)Richard van der Hoff2019-04-012-40/+91
| | | | | | | | | | | | | | | | 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.
* | | | Add management endpoints for account validityBrendan Abolivier2019-04-171-1/+1
| |_|/ |/| |
* | | Send out emails with links to extend an account's validity periodBrendan Abolivier2019-04-171-2/+3
| |/ |/|
* | Add account expiration featureBrendan Abolivier2019-04-092-0/+13
|/
* Support 3PID login in password providers (#4931)Andrew Morgan2019-03-261-11/+11
| | | | | Adds a new method, check_3pid_auth, which gives password providers the chance to allow authentication with third-party identifiers such as email or msisdn.
* Enforce hs_disabled_message correctlyRichard van der Hoff2019-03-191-3/+5
| | | | | Fixes a bug where hs_disabled_message was not enforced for 3pid-based requests if there was no server_notices_mxid configured.
* Add ratelimiting on login (#4821)Brendan Abolivier2019-03-151-0/+12
| | | Add two ratelimiters on login (per-IP address and per-userID).
* Add rate-limiting on registration (#4735)Brendan Abolivier2019-03-051-15/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Rate-limiting for registration * Add unit test for registration rate limiting * Add config parameters for rate limiting on auth endpoints * Doc * Fix doc of rate limiting function Co-Authored-By: babolivier <contact@brendanabolivier.com> * Incorporate review * Fix config parsing * Fix linting errors * Set default config for auth rate limiting * Fix tests * Add changelog * Advance reactor instead of mocked clock * Move parameters to registration specific config and give them more sensible default values * Remove unused config options * Don't mock the rate limiter un MAU tests * Rename _register_with_store into register_with_store * Make CI happy * Remove unused import * Update sample config * Fix ratelimiting test for py2 * Add non-guest test
* Merge remote-tracking branch 'origin/release-v0.99.0' into developRichard van der Hoff2019-01-301-1/+1
|\
| * Update constants.pyNeil Johnson2019-01-301-1/+1
| | | | | | remove trailing ,
* | by default include m.room.encryption on invites (#3902)Matthew Hodgson2019-01-301-0/+1
|/ | | | | | | | * by default include m.room.encryption on invites * fix constant * changelog
* Merge branch 'develop' into neilj/room_capabilitiesNeil Johnson2019-01-303-20/+43
|\
| * Enable room version v3Erik Johnston2019-01-291-1/+2
| |
| * Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-01-292-12/+3
| |\ | | | | | | | | | erikj/redactions_eiah
| | * Implement event format v2Erik Johnston2019-01-291-0/+2
| | |
| | * Remove dead functionErik Johnston2019-01-291-11/+0
| | |
| | * Replace usage of builder.user_id with builder.senderErik Johnston2019-01-291-1/+1
| | | | | | | | | | | | | | | `.user_id` is proxed to `.sender` in FrozenEvent, so this has no functional change
| * | Drop vdh supportErik Johnston2019-01-291-2/+0
| | |
| * | Finish comment...Erik Johnston2019-01-291-1/+1
| | |
| * | Implement rechecking of redactionsErik Johnston2019-01-291-2/+2
| | |
| * | Add RoomVersions.V3 constant, without enabling itErik Johnston2019-01-291-0/+1
| |/ | | | | | | | | | | We add the constant, but don't add it to the known room versions. This lets us start adding V3 logic, but the servers will never join or create V3 rooms
| * Pass through room version to event authErik Johnston2019-01-251-4/+10
| |
| * Merge pull request #4415 from matrix-org/anoa/full_search_upgraded_roomsAndrew Morgan2019-01-251-0/+14
| |\ | | | | | | Ability to search entire room history after upgrading room
| | * Update synapse/api/filtering.pyRichard van der Hoff2019-01-241-1/+1
| | | | | | | | | Co-Authored-By: anoadragon453 <1342360+anoadragon453@users.noreply.github.com>
| | * Ensure new filter is actually createdAndrew Morgan2019-01-221-1/+1
| | |
| | * Fix a bug with single-room search searching all roomsAndrew Morgan2019-01-221-2/+13
| | | | | | | | | | | | | | | * Create a new method for getting predecessor rooms * Remove formatting change
| | * Search for messages across predecessor roomsAndrew Morgan2019-01-181-0/+3
| | | | | | | | | | | | Signed-off-by: Andrew Morgan <andrew@amorgan.xyz>
| * | Merge pull request #4437 from matrix-org/erikj/event_format_version_v2Erik Johnston2019-01-241-0/+13
| |\ \ | | | | | | | | Add support for persisting event format versions
| | * | Add support for persisting event format versionsErik Johnston2019-01-231-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we only have the one event format version defined, but this adds the necessary infrastructure to persist and fetch the format versions alongside the events. We specify the format version rather than the room version as: 1. We don't necessarily know the room version, existing events may be either v1 or v2. 2. We'd need to be careful to prevent/handle correctly if different events in the same room reported to be of different versions, which sounds annoying.
* | | | define room dispositions for use in exposing room capabilitiesNeil Johnson2019-01-301-0/+5
| | | |
* | | | reflect that rooms v3 is a stable room versionNeil Johnson2019-01-301-0/+1
| | | |
* | | | backout v3Neil Johnson2019-01-251-1/+0
| | | |
* | | | track unstable room v3Neil Johnson2019-01-251-0/+2
|/ / /
* / / Fix None guard in config.server.is_threepid_reservedNeil Johnson2019-01-221-1/+3
|/ /
* | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-01-211-1/+2
|\ \ | | | | | | | | | erikj/fed_v2_invite_server
| * \ Merge pull request #4390 from matrix-org/erikj/versioned_fed_apisErik Johnston2019-01-211-1/+2
| |\ \ | | | | | | | | Add groundwork for new versions of federation APIs
| * | | Migrate encryption state on room upgrade (#4411)Andrew Morgan2019-01-211-0/+1
| | |/ | |/| | | | | | | | | | | | | | | | | | | * Migrate encryption state on room upgrade Signed-off-by: Andrew Morgan <andrew@amorgan.xyz> * Add changelog file
| * | ALL_USER_TYPES should be a tupleNeil Johnson2019-01-151-1/+1
| | |
* | | Add /v2/invite federation APIErik Johnston2019-01-151-0/+1
| |/ |/|
* | Add groundwork for new versions of federation APIsErik Johnston2019-01-151-1/+2
|/
* Merge branch rav/macaroon_key_fix_0.34 into rav/macaroon_key_fix_0.34.1Richard van der Hoff2019-01-101-38/+27
|\ | | | | | | Fixes #4371
| * Merge branch 'rav/macaroon_key_fix' into rav/macaroon_key_fix_0.34Richard van der Hoff2019-01-101-38/+27
| |\
| | * Skip macaroon check for access tokens in the dbRichard van der Hoff2019-01-101-38/+27
| | |
* | | Refactor request sending to have better excpetions (#4358)Erik Johnston2019-01-081-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Correctly retry and back off if we get a HTTPerror response * Refactor request sending to have better excpetions MatrixFederationHttpClient blindly reraised exceptions to the caller without differentiating "expected" failures (e.g. connection timeouts etc) versus more severe problems (e.g. programming errors). This commit adds a RequestSendFailed exception that is raised when "expected" failures happen, allowing the TransactionQueue to log them as warnings while allowing us to log other exceptions as actual exceptions.
* | | fix the check for whether `is_url` to match all the other ones in codebase ↵Michael Telatynski2019-01-061-3/+8
| | | | | | | | | | | | | | | | | | (#3405) Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* | | Merge pull request #4307 from matrix-org/erikj/v2_roomsRichard van der Hoff2018-12-241-0/+2
|\ \ \ | | | | | | | | Add v2 room version
| * | | Add v2 room versionErik Johnston2018-12-181-0/+2
| | | |
* | | | create support user (#4141)Neil Johnson2018-12-142-2/+11
| |/ / |/| | | | | | | | | | | | | | Allow for the creation of a support user. A support user can access the server, join rooms, interact with other users, but does not appear in the user directory nor does it contribute to monthly active user limits.
* | | Add an option to enable recording IPs for appservice users (#3831)Travis Ralston2018-12-041-9/+20
|/ /
* | Merge pull request #4004 from matrix-org/travis/login-termsTravis Ralston2018-11-011-0/+1
|\ \ | | | | | | Add m.login.terms to the registration flow
| * \ Merge branch 'develop' into travis/login-termsTravis Ralston2018-10-312-1/+1
| |\ \
| * \ \ Merge branch 'develop' into travis/login-termsTravis Ralston2018-10-241-1/+4
| |\ \ \
| * \ \ \ Merge branch 'develop' into travis/login-termsTravis Ralston2018-10-151-0/+15
| |\ \ \ \
| * | | | | Incorporate Dave's work for GDPR login flowsTravis Ralston2018-10-031-0/+1
| | | | | | | | | | | | | | | | | | As per https://github.com/vector-im/riot-web/issues/7168#issuecomment-419996117
* | | | | | Add STATE_V2_TEST room versionErik Johnston2018-11-011-1/+6
| |_|_|/ / |/| | | |
* | | | | Remove deprecated v1 key exchange endpoint (#4119)Amber Brown2018-10-311-1/+0
| | | | |
* | | | | Basic initial support for room upgradesRichard van der Hoff2018-10-251-0/+1
| |_|/ / |/| | | | | | | | | | | | | | | Currently just creates a new, empty, room, and sends a tombstone in the old room.
* | | | Allow backslashes in event field filtersRichard van der Hoff2018-10-241-1/+4
| |/ / |/| | | | | | | | | | | | | | | | | | | | Fixes a bug introduced in https://github.com/matrix-org/synapse/pull/1783 which meant that single backslashes were not allowed in event field filters. The intention here is to allow single-backslashes, but disallow double-backslashes.
* | | PR feedback pt. 1David Baker2018-10-121-8/+0
| | |
* | | Fix mergefailDavid Baker2018-10-091-1/+1
| | |
* | | Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backupsDavid Baker2018-10-094-9/+23
|\| |
| * | Fix userconsent on Python 3 (#3938)Amber Brown2018-10-021-1/+1
| | |
| * | Replaced all occurences of e.message with str(e)Schnuffle2018-09-271-1/+1
| | | | | | | | | | | | Signed-off-by: Schnuffle <schnuffle@github.com>
| * | Implement 'event_format' filter param in /syncRichard van der Hoff2018-09-041-0/+1
| | | | | | | | | | | | | | | This has been specced and part-implemented; let's implement it for /sync (but no other endpoints yet :/).
| * | assert rather than warn hhs-4Neil Johnson2018-08-311-3/+2
| | |
| * | move threepid checker to config, add missing yieldsNeil Johnson2018-08-311-2/+11
| | |
| * | fix reference to is_threepid_reservedNeil Johnson2018-08-311-1/+1
| | |
| * | ensure post registration auth checks do not fail erroneouslyNeil Johnson2018-08-311-5/+2
| | |
| * | fix bug where preserved threepid user comes to sign up and server is mau blockedNeil Johnson2018-08-311-1/+9
| | |
| * | Change admin_uri to admin_contact in config and errorsErik Johnston2018-08-242-5/+5
| | |
* | | try to make flake8 and isort happyHubert Chathi2018-09-061-0/+1
| | |
* | | Merge branch 'develop' into e2e_backupsHubert Chathi2018-08-244-12/+113
|\| |
| * | Implement trail usersErik Johnston2018-08-231-1/+5
| | |
| * | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2018-08-223-11/+15
| |\ \ | | | | | | | | | | | | neilj/server_notices_on_blocking
| | * \ Merge pull request #3673 from matrix-org/erikj/refactor_state_handlerErik Johnston2018-08-221-2/+7
| | |\ \ | | | | | | | | | | Refactor state module to support multiple room versions
| | | * \ Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2018-08-202-8/+48
| | | |\ \ | | | | | | | | | | | | | | | | | | erikj/refactor_state_handler
| | | * | | Add constants for room versionsErik Johnston2018-08-091-2/+7
| | | | | |
| | * | | | Port over enough to get some sytests running on Python 3 (#3668)Amber Brown2018-08-202-8/+8
| | | |/ / | | |/| |
| * | | | Update notice formatErik Johnston2018-08-221-2/+4
| | | | |
| * | | | rename error codeNeil Johnson2018-08-182-4/+4
| | | | |
| * | | | special case server_notices_mxidNeil Johnson2018-08-181-0/+6
| | | | |
| * | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Neil Johnson2018-08-172-6/+28
| |\| | | | | | | | | | | | | | | | | | neilj/server_notices_on_blocking
| | * | | Merge branch 'develop' into neilj/limit_exceeded_errorNeil Johnson2018-08-171-1/+2
| | |\ \ \
| | * | | | add new error type ResourceLimitNeil Johnson2018-08-162-6/+27
| | | | | |
| * | | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Neil Johnson2018-08-171-1/+1
| |\ \ \ \ \ | | | |/ / / | | |/| | | | | | | | | neilj/server_notices_on_blocking
| | * | | | call reap on start up and fix under reaping bugNeil Johnson2018-08-161-1/+1
| | |/ / /
| * | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Neil Johnson2018-08-152-9/+18
| |\| | | | | | | | | | | | | | | | | | neilj/server_notices_on_blocking
| | * | | clean up AuthErrorNeil Johnson2018-08-151-7/+3
| | | | |
| | * | | update error codes for resource limitingNeil Johnson2018-08-151-2/+1
| | | | |
| | * | | replace admin_email with admin_uri for greater flexibilityNeil Johnson2018-08-152-7/+7
| | | | |
| | * | | Merge branch 'develop' of github.com:matrix-org/synapse into neilj/admin_emailNeil Johnson2018-08-141-1/+11
| | |\ \ \
| | | * | | make comments clearerNeil Johnson2018-08-141-1/+2
| | | | | |
| | * | | | support admin_email config and pass through into blocking errors, return ↵Neil Johnson2018-08-132-4/+17
| | | | | | | | | | | | | | | | | | | | | | | | AuthError in all cases
| | * | | | Revert "support admin_email config and pass through into blocking errors, ↵Neil Johnson2018-08-132-17/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | return AuthError in all cases" This reverts commit 0d43f991a19840a224d3dac78d79f13d78212ee6.
| | * | | | support admin_email config and pass through into blocking errors, return ↵Neil Johnson2018-08-132-4/+17
| | | |/ / | | |/| | | | | | | | | | | | AuthError in all cases
| * | | | add new event typesNeil Johnson2018-08-151-0/+1
| | | | |
| * | | | support server notice state events for resource limitsNeil Johnson2018-08-141-0/+2
| | |/ / | |/| |
| * | | rename _user_last_seen_monthly_activeNeil Johnson2018-08-091-1/+1
| | | |
| * | | fix errant parenthesisNeil Johnson2018-08-091-1/+1
| | | |
| * | | only block on sync where user is not part of the mau cohortNeil Johnson2018-08-091-2/+11
| |/ /
| * | fix pep8 too many linesNeil Johnson2018-08-081-1/+0
| | |
| * | Merge branch 'develop' into neilj/disable_hsNeil Johnson2018-08-082-0/+34
| |\ \
| | * \ Merge pull request #3654 from matrix-org/rav/room_versionsRichard van der Hoff2018-08-082-0/+33
| | |\ \ | | | | | | | | | | Support for room versioning
| | | * | Don't expose default_room_version as config optRichard van der Hoff2018-08-071-0/+3
| | | | |
| | | * | Enforce compatibility when processing make_join requestsRichard van der Hoff2018-08-031-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reject make_join requests from servers which do not support the room version. Also include the room version in the response.
| | | * | Basic support for room versioningRichard van der Hoff2018-08-032-0/+8
| | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the first tranche of support for room versioning. It includes: * setting the default room version in the config file * new room_version param on the createRoom API * storing the version of newly-created rooms in the m.room.create event * fishing the version of existing rooms out of the m.room.create event
| * | | Merge branch 'neilj/mau_tracker' of github.com:matrix-org/synapse into ↵Neil Johnson2018-08-061-4/+1
| |\| | | | | | | | | | | | | | neilj/disable_hs
| | * | update comments to reflect new sigNeil Johnson2018-08-061-4/+1
| | | |
| * | | disable HS from configNeil Johnson2018-08-042-0/+5
| |/ /
| * | wip commit - tests failingNeil Johnson2018-08-031-2/+4
| | |
| * | Merge branch 'develop' of github.com:matrix-org/synapse into neilj/mau_trackerNeil Johnson2018-08-031-53/+53
| |\|
| * | do mau checks based on monthly_active_users tableNeil Johnson2018-08-021-0/+13
| | |
| * | insertion into monthly_active_usersNeil Johnson2018-08-021-1/+1
| | |
* | | blindly incorporate PR review - needs testing & fixingMatthew Hodgson2018-08-121-3/+8
| | |
* | | implement /room_keys/version too (untested)Matthew Hodgson2018-08-121-0/+25
| |/ |/|
* | Merge pull request #3639 from matrix-org/rav/refactor_error_handlingRichard van der Hoff2018-08-021-53/+53
|\ \ | |/ |/| Clean up handling of errors from outbound requests
| * Kill off MatrixCodeMessageExceptionRichard van der Hoff2018-08-011-11/+0
| | | | | | | | | | | | | | | | | | | | | | This code brings the SimpleHttpClient into line with the MatrixFederationHttpClient by having it raise HttpResponseExceptions when a request fails (rather than trying to parse for matrix errors and maybe raising MatrixCodeMessageException). Then, whenever we were checking for MatrixCodeMessageException and turning them into SynapseErrors, we now need to check for HttpResponseExceptions and call to_synapse_error.
| * Refactor code for turning HttpResponseException into SynapseErrorRichard van der Hoff2018-08-011-31/+53
| | | | | | | | | | | | | | | | This commit replaces SynapseError.from_http_response_exception with HttpResponseException.to_synapse_error. The new method actually returns a ProxiedRequestError, which allows us to pass through additional metadata from the API call.
| * Be more careful which errors we send back over the C-S APIRichard van der Hoff2018-08-011-11/+0
| | | | | | | | | | | | | | | | | | | | | | | | We really shouldn't be sending all CodeMessageExceptions back over the C-S API; it will include things like 401s which we shouldn't proxy. That means that we need to explicitly turn a few HttpResponseExceptions into SynapseErrors in the federation layer. The effect of the latter is that the matrix errcode will get passed through correctly to calling clients, which might help with some of the random M_UNKNOWN errors when trying to join rooms.
* | Merge pull request #3630 from matrix-org/neilj/mau_sign_in_log_in_limitsNeil Johnson2018-08-011-0/+1
|\ \ | |/ |/| Initial impl of capping MAU