Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Revert "Check for space membership during a remote join of a restricted ↵ | Patrick Cloke | 2021-04-14 | 1 | -5/+0 |
| | | | | | | | | room. (#9763)" This reverts commit cc51aaaa7adb0ec2235e027b5184ebda9b660ec4. The PR was prematurely merged and not yet approved. | ||||
* | Check for space membership during a remote join of a restricted room. (#9763) | Patrick Cloke | 2021-04-14 | 1 | -0/+5 |
| | | | | | | | When receiving a /send_join request for a room with join rules set to 'restricted', check if the user is a member of the spaces defined in the 'allow' key of the join rules. This only applies to an experimental room version, as defined in MSC3083. | ||||
* | Move some replication processing out of generic_worker (#9796) | Erik Johnston | 2021-04-14 | 1 | -3/+10 |
| | | | Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | ||||
* | Remove redundant "coding: utf-8" lines (#9786) | Jonathan de Jong | 2021-04-14 | 1 | -1/+0 |
| | | | | | | | Part of #9744 Removes all redundant `# -*- coding: utf-8 -*-` lines from files, as python 3 automatically reads source code as utf-8 now. `Signed-off-by: Jonathan de Jong <jonathan@automatia.nl>` | ||||
* | Add a Synapse Module for configuring presence update routing (#9491) | Andrew Morgan | 2021-04-06 | 1 | -0/+5 |
| | | | | | | | | | | | | At the moment, if you'd like to share presence between local or remote users, those users must be sharing a room together. This isn't always the most convenient or useful situation though. This PR adds a module to Synapse that will allow deployments to set up extra logic on where presence updates should be routed. The module must implement two methods, `get_users_for_states` and `get_interested_users`. These methods are given presence updates or user IDs and must return information that Synapse will use to grant passing presence updates around. A method is additionally added to `ModuleApi` which allows triggering a set of users to receive the current, online presence information for all users they are considered interested in. This is the equivalent of that user receiving presence information during an initial sync. The goal of this module is to be fairly generic and useful for a variety of applications, with hard requirements being: * Sending state for a specific set or all known users to a defined set of local and remote users. * The ability to trigger an initial sync for specific users, so they receive all current state. | ||||
* | Make RateLimiter class check for ratelimit overrides (#9711) | Erik Johnston | 2021-03-30 | 1 | -0/+1 |
| | | | | | | | This should fix a class of bug where we forget to check if e.g. the appservice shouldn't be ratelimited. We also check the `ratelimit_override` table to check if the user has ratelimiting disabled. That table is really only meant to override the event sender ratelimiting, so we don't use any values from it (as they might not make sense for different rate limits), but we do infer that if ratelimiting is disabled for the user we should disabled all ratelimits. Fixes #9663 | ||||
* | Add type hints for the federation sender. (#9681) | Patrick Cloke | 2021-03-29 | 1 | -2/+2 |
| | | | | Includes an abstract base class which both the FederationSender and the FederationRemoteSendQueue must implement. | ||||
* | Add a type hints for service notices to the HomeServer object. (#9675) | Patrick Cloke | 2021-03-24 | 1 | -2/+2 |
| | |||||
* | Initial spaces summary API (#9643) | Richard van der Hoff | 2021-03-18 | 1 | -0/+5 |
| | | | This is very bare-bones for now: federation will come soon, while pagination is descoped for now but will come later. | ||||
* | Fix up types for the typing handler. (#9638) | Patrick Cloke | 2021-03-17 | 1 | -1/+10 |
| | | | | By splitting this to two separate methods the callers know what methods they can expect on the handler. | ||||
* | Add type hints to the room member handler. (#9631) | Patrick Cloke | 2021-03-17 | 1 | -2/+2 |
| | |||||
* | Fix additional type hints from Twisted 21.2.0. (#9591) | Patrick Cloke | 2021-03-12 | 1 | -5/+3 |
| | |||||
* | Create a SynapseReactor type which incorporates the necessary reactor ↵ | Patrick Cloke | 2021-03-08 | 1 | -3/+2 |
| | | | | | interfaces. (#9528) This helps fix some type hints when running with Twisted 21.2.0. | ||||
* | Fix additional type hints from Twisted upgrade. (#9518) | Patrick Cloke | 2021-03-03 | 1 | -1/+2 |
| | |||||
* | Add support for no_proxy and case insensitive env variables (#9372) | Tim Leung | 2021-02-26 | 1 | -8/+2 |
| | | | | | | | | | | | | | | | ### Changes proposed in this PR - Add support for the `no_proxy` and `NO_PROXY` environment variables - Internally rely on urllib's [`proxy_bypass_environment`](https://github.com/python/cpython/blob/bdb941be423bde8b02a5695ccf51c303d6204bed/Lib/urllib/request.py#L2519) - Extract env variables using urllib's `getproxies`/[`getproxies_environment`](https://github.com/python/cpython/blob/bdb941be423bde8b02a5695ccf51c303d6204bed/Lib/urllib/request.py#L2488) which supports lowercase + uppercase, preferring lowercase, except for `HTTP_PROXY` in a CGI environment This does contain behaviour changes for consumers so making sure these are called out: - `no_proxy`/`NO_PROXY` is now respected - lowercase `https_proxy` is now allowed and taken over `HTTPS_PROXY` Related to #9306 which also uses `ProxyAgent` Signed-off-by: Timothy Leung tim95@hotmail.co.uk | ||||
* | Clean up `ShardedWorkerHandlingConfig` (#9466) | Erik Johnston | 2021-02-24 | 1 | -5/+2 |
| | | | | | | | | | | | | | | | | | * Split ShardedWorkerHandlingConfig This is so that we have a type level understanding of when it is safe to call `get_instance(..)` (as opposed to `should_handle(..)`). * Remove special cases in ShardedWorkerHandlingConfig. `ShardedWorkerHandlingConfig` tried to handle the various different ways it was possible to configure federation senders and pushers. This led to special cases that weren't hit during testing. To fix this the handling of the different cases is moved from there and `generic_worker` into the worker config class. This allows us to have the logic in one place and allows the rest of the code to ignore the different cases. | ||||
* | Fix deleting pushers when using sharded pushers. (#9465) | Erik Johnston | 2021-02-22 | 1 | -3/+0 |
| | |||||
* | Type hints and validation improvements. (#9321) | Patrick Cloke | 2021-02-08 | 1 | -2/+14 |
| | | | | | * Adds type hints to the groups servlet and stringutils code. * Assert the maximum length of some input values for spec compliance. | ||||
* | Precompute joined hosts and store in Redis (#9198) | Erik Johnston | 2021-01-26 | 1 | -0/+30 |
| | |||||
* | Allow moving account data and receipts streams off master (#9104) | Erik Johnston | 2021-01-18 | 1 | -0/+5 |
| | |||||
* | Remove user's avatar URL and displayname when deactivated. (#8932) | Dirk Klimpel | 2021-01-12 | 1 | -1/+1 |
| | | | This only applies if the user's data is to be erased. | ||||
* | Kill off `HomeServer.get_ip_from_request()` (#9080) | Richard van der Hoff | 2021-01-12 | 1 | -4/+0 |
| | | | Homeserver.get_ip_from_request() used to be a bit more complicated, but now it is totally redundant. Let's get rid of it. | ||||
* | Allow spam-checker modules to be provide async methods. (#8890) | David Teller | 2020-12-11 | 1 | -1/+1 |
| | | | | Spam checker modules can now provide async methods. This is implemented in a backwards-compatible manner. | ||||
* | Default to blacklisting reserved IP ranges and add a whitelist. (#8870) | Patrick Cloke | 2020-12-09 | 1 | -1/+2 |
| | | | | This defaults `ip_range_blacklist` to reserved IP ranges and also adds an `ip_range_whitelist` setting to override it. | ||||
* | Apply an IP range blacklist to push and key revocation requests. (#8821) | Patrick Cloke | 2020-12-02 | 1 | -7/+29 |
| | | | | | | | | | | | | Replaces the `federation_ip_range_blacklist` configuration setting with an `ip_range_blacklist` setting with wider scope. It now applies to: * Federation * Identity servers * Push notifications * Checking key validitity for third-party invite events The old `federation_ip_range_blacklist` setting is still honored if present, but with reduced scope (it only applies to federation and identity servers). | ||||
* | Simplify the way the `HomeServer` object caches its internal attributes. ↵ | Jonathan de Jong | 2020-11-30 | 1 | -14/+13 |
| | | | | | (#8565) Changes `@cache_in_self` to use underscore-prefixed attributes. | ||||
* | Add type hints to matrix federation client / agent. (#8806) | Patrick Cloke | 2020-11-25 | 1 | -1/+2 |
| | |||||
* | Abstract shared SSO code. (#8765) | Patrick Cloke | 2020-11-17 | 1 | -0/+5 |
| | | | De-duplicates code between the SAML and OIDC implementations. | ||||
* | Solidify the HomeServer constructor. (#8515) | Jonathan de Jong | 2020-10-15 | 1 | -5/+9 |
| | | | | | | This implements a more standard API for instantiating a homeserver and moves some of the dependency injection into the test suite. More concretely this stops using `setattr` on all `kwargs` passed to `HomeServer`. | ||||
* | Move additional tasks to the background worker, part 4 (#8513) | Patrick Cloke | 2020-10-13 | 1 | -5/+7 |
| | |||||
* | Remove the deprecated Handlers object (#8494) | Patrick Cloke | 2020-10-09 | 1 | -5/+25 |
| | | | All handlers now available via get_*_handler() methods on the HomeServer. | ||||
* | Combine `SpamCheckerApi` with the more generic `ModuleApi`. (#8464) | Richard van der Hoff | 2020-10-07 | 1 | -0/+5 |
| | | | | | Lots of different module apis is not easy to maintain. Rather than adding yet another ModuleApi(hs, hs.get_auth_handler()) incantation, first add an hs.get_module_api() method and use it where possible. | ||||
* | Allow background tasks to be run on a separate worker. (#8369) | Patrick Cloke | 2020-10-02 | 1 | -4/+13 |
| | |||||
* | Fix ratelimiting for federation `/send` requests. (#8342) | Erik Johnston | 2020-09-18 | 1 | -0/+5 |
| | | | c.f. #8295 for rationale | ||||
* | Add comment explaining cast | Erik Johnston | 2020-08-11 | 1 | -0/+2 |
| | |||||
* | Handle optional dependencies for Oidc and Saml | Erik Johnston | 2020-08-11 | 1 | -5/+9 |
| | |||||
* | Change HomeServer definition to work with typing. | Erik Johnston | 2020-08-11 | 1 | -224/+231 |
| | | | | | | | | | | Duplicating function signatures between server.py and server.pyi is silly. This commit changes that by changing all `build_*` methods to `get_*` methods and changing the `_make_dependency_method` to work work as a descriptor that caches the produced value. There are some changes in other files that were made to fix the typing in server.py. | ||||
* | Rename database classes to make some sense (#8033) | Erik Johnston | 2020-08-05 | 1 | -2/+2 |
| | |||||
* | Allow moving typing off master (#7869) | Erik Johnston | 2020-07-16 | 1 | -7/+6 |
| | |||||
* | Add some tiny type annotations (#7870) | Richard van der Hoff | 2020-07-16 | 1 | -2/+2 |
| | | | I found these made pycharm have more of a clue as to what was going on in other places. | ||||
* | Add delete room admin endpoint (#7613) | Dirk Klimpel | 2020-07-14 | 1 | -1/+9 |
| | | | | | | | | | | | | | | | | | | The Delete Room admin API allows server admins to remove rooms from server and block these rooms. `DELETE /_synapse/admin/v1/rooms/<room_id>` It is a combination and improvement of "[Shutdown room](https://github.com/matrix-org/synapse/blob/develop/docs/admin_api/shutdown_room.md)" and "[Purge room](https://github.com/matrix-org/synapse/blob/develop/docs/admin_api/purge_room.md)" API. Fixes: #6425 It also fixes a bug in [synapse/storage/data_stores/main/room.py](synapse/storage/data_stores/main/room.py) in ` get_room_with_stats`. It should return `None` if the room is unknown. But it returns an `IndexError`. https://github.com/matrix-org/synapse/blob/901b1fa561e3cc661d78aa96d59802cf2078cb0d/synapse/storage/data_stores/main/room.py#L99-L105 Related to: - #5575 - https://github.com/Awesome-Technologies/synapse-admin/issues/17 Signed-off-by: Dirk Klimpel dirk@klimpel.org | ||||
* | Add `HomeServer.signing_key` property (#7805) | Richard van der Hoff | 2020-07-08 | 1 | -0/+2 |
| | | | ... instead of duplicating `config.signing_key[0]` everywhere | ||||
* | Performance improvements and refactor of Ratelimiter (#7595) | Andrew Morgan | 2020-06-05 | 1 | -10/+7 |
| | | | | | | | | | | 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. | ||||
* | Add ability to wait for replication streams (#7542) | Erik Johnston | 2020-05-22 | 1 | -0/+5 |
| | | | | | | | The idea here is that if an instance persists an event via the replication HTTP API it can return before we receive that event over replication, which can lead to races where code assumes that persisting an event immediately updates various caches (e.g. current state of the room). Most of Synapse doesn't hit such races, so we don't do the waiting automagically, instead we do so where necessary to avoid unnecessary delays. We may decide to change our minds here if it turns out there are a lot of subtle races going on. People probably want to look at this commit by commit. | ||||
* | Move EventStream handling into default ReplicationDataHandler (#7493) | Erik Johnston | 2020-05-14 | 1 | -1/+1 |
| | | | This is so that the logic can happen on both master and workers when we move event persistence out. | ||||
* | Implement OpenID Connect-based login (#7256) | Quentin Gliech | 2020-05-08 | 1 | -0/+6 |
| | |||||
* | Add instance name to RDATA/POSITION commands (#7364) | Erik Johnston | 2020-04-29 | 1 | -2/+11 |
| | | | | | This is primarily for allowing us to send those commands from workers, but for now simply allows us to ignore echoed RDATA/POSITION commands that we sent (we get echoes of sent commands when using redis). Currently we log a WARNING on the master process every time we receive an echoed RDATA. | ||||
* | Move client command handling out of TCP protocol (#7185) | Erik Johnston | 2020-04-06 | 1 | -1/+7 |
| | | | The aim here is to move the command handling out of the TCP protocol classes and to also merge the client and server command handling (so that we can reuse them for redis protocol). This PR simply moves the client paths to the new `ReplicationCommandHandler`, a future PR will move the server paths too. | ||||
* | Fix a bug which could cause incorrect 'cyclic dependency' error. (#7178) | Richard van der Hoff | 2020-03-31 | 1 | -12/+10 |
| | | | | | | | | If there was an exception setting up one of the attributes of the Homeserver god object, then future attempts to fetch that attribute would raise a confusing "Cyclic dependency" error. Let's make sure that we clear the `building` flag so that we just get the original exception. Ref: #7169 | ||||
* | Remove usage of "conn_id" for presence. (#7128) | Erik Johnston | 2020-03-30 | 1 | -0/+11 |
| | | | | | | | | | | | | | | | | * Remove `conn_id` usage for UserSyncCommand. Each tcp replication connection is assigned a "conn_id", which is used to give an ID to a remotely connected worker. In a redis world, there will no longer be a one to one mapping between connection and instance, so instead we need to replace such usages with an ID generated by the remote instances and included in the replicaiton commands. This really only effects UserSyncCommand. * Add CLEAR_USER_SYNCS command that is sent on shutdown. This should help with the case where a synchrotron gets restarted gracefully, rather than rely on 5 minute timeout. | ||||
* | Refactor the CAS code (move the logic out of the REST layer to a handler) ↵ | Patrick Cloke | 2020-03-26 | 1 | -0/+5 |
| | | | | (#7136) | ||||
* | Allow server admins to define and enforce a password policy (MSC2000). (#7118) | Dirk Klimpel | 2020-03-26 | 1 | -0/+5 |
| | |||||
* | Move catchup of replication streams to worker. (#7024) | Erik Johnston | 2020-03-25 | 1 | -0/+5 |
| | | | This changes the replication protocol so that the server does not send down `RDATA` for rows that happened before the client connected. Instead, the server will send a `POSITION` and clients then query the database (or master out of band) to get up to date. | ||||
* | Share SSL contexts for non-federation requests (#7094) | Richard van der Hoff | 2020-03-17 | 1 | -3/+3 |
| | | | | | | | Extends #5794 etc to the SimpleHttpClient so that it also applies to non-federation requests. Fixes #7092. | ||||
* | Allow moving group read APIs to workers (#6866) | Erik Johnston | 2020-02-07 | 1 | -4/+10 |
| | |||||
* | Add database config class (#6513) | Erik Johnston | 2019-12-18 | 1 | -37/+4 |
| | | | | | This encapsulates config for a given database and is the way to get new connections. | ||||
* | Add new config param to docstring and add types | Erik Johnston | 2019-12-11 | 1 | -1/+3 |
| | |||||
* | Remove database config parsing from apps. | Erik Johnston | 2019-12-10 | 1 | -1/+9 |
| | |||||
* | Pass Database into the data store | Erik Johnston | 2019-12-06 | 1 | -2/+1 |
| | |||||
* | Fix startup error when http proxy is defined. (#6421) | Richard van der Hoff | 2019-11-26 | 1 | -2/+2 |
| | | | | | Guess I only tested this on python 2 :/ Fixes #6419. | ||||
* | Remove the psutil dependency (#6318) | Amber Brown | 2019-11-05 | 1 | -0/+2 |
| | | | * remove psutil and replace with resource | ||||
* | Support for routing outbound HTTP requests via a proxy (#6239) | Richard van der Hoff | 2019-11-01 | 1 | -0/+9 |
| | | | | | | | | | | | | | | | | | | | | 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. | ||||
* | Review comments | Erik Johnston | 2019-10-30 | 1 | -3/+2 |
| | |||||
* | Use new EventPersistenceStore | Erik Johnston | 2019-10-23 | 1 | -1/+8 |
| | |||||
* | Allow use of different ratelimits for admin redactions. | Erik Johnston | 2019-09-11 | 1 | -0/+4 |
| | | | | | This is useful to allow room admins to quickly deal with a large number of abusive messages. | ||||
* | cleanups | Richard van der Hoff | 2019-06-27 | 1 | -4/+4 |
| | |||||
* | Move all the saml stuff out to a centralised handler | Richard van der Hoff | 2019-06-26 | 1 | -6/+6 |
| | |||||
* | Merge branch 'develop' into rav/saml2_client | Richard van der Hoff | 2019-06-26 | 1 | -81/+83 |
|\ | |||||
| * | Run Black. (#5482) | Amber Brown | 2019-06-20 | 1 | -81/+75 |
| | | |||||
| * | Add plugin APIs for implementations of custom event rules. | Brendan Abolivier | 2019-06-14 | 1 | -0/+7 |
| | | |||||
* | | Code cleanups and simplifications. | Richard van der Hoff | 2019-06-11 | 1 | -0/+5 |
|/ | | | | Also: share the saml client between redirect and response handlers. | ||||
* | Room Statistics (#4338) | Amber Brown | 2019-05-21 | 1 | -0/+6 |
| | |||||
* | Allow client event serialization to be async | Erik Johnston | 2019-05-14 | 1 | -0/+5 |
| | |||||
* | Send out emails with links to extend an account's validity period | Brendan Abolivier | 2019-04-17 | 1 | -0/+5 |
| | |||||
* | Merge pull request #4855 from matrix-org/rav/refactor_transaction_queue | Richard van der Hoff | 2019-03-15 | 1 | -2/+2 |
|\ | | | | | Split TransactionQueue up | ||||
| * | Rename and move the classes | Richard van der Hoff | 2019-03-13 | 1 | -2/+2 |
| | | |||||
* | | fixup | Amber Brown | 2019-03-13 | 1 | -0/+5 |
| | | |||||
* | | master startup | Amber Brown | 2019-03-11 | 1 | -0/+8 |
|/ | |||||
* | Make registration ratelimiter separate from the main events one | Brendan Abolivier | 2019-03-06 | 1 | -0/+4 |
| | |||||
* | Revert "Split ratelimiters in two (one for events, one for registration)" | Brendan Abolivier | 2019-03-06 | 1 | -7/+3 |
| | | | | This reverts commit d7dbad3526136cfc9fdbd568635be5016fb637db. | ||||
* | Split ratelimiters in two (one for events, one for registration) | Brendan Abolivier | 2019-03-05 | 1 | -3/+7 |
| | |||||
* | Split DeviceHandler into master and worker | Erik Johnston | 2019-03-04 | 1 | -2/+5 |
| | |||||
* | Fix registration on workers (#4682) | Erik Johnston | 2019-02-20 | 1 | -0/+5 |
| | | | | | | | | | | * Move RegistrationHandler init to HomeServer * Move post registration actions to RegistrationHandler * Add post regisration replication endpoint * Newsfile | ||||
* | Move ClientTLSOptionsFactory init out of refresh_certificates (#4611) | Richard van der Hoff | 2019-02-11 | 1 | -1/+5 |
| | | | | | It's nothing to do with refreshing the certificates. No idea why it was here. | ||||
* | ACME Reprovisioning (#4522) | Amber Brown | 2019-02-11 | 1 | -0/+3 |
| | |||||
* | Refactor event building into EventBuilder | Erik Johnston | 2019-01-29 | 1 | -4/+1 |
| | | | | | This is so that everything is done in one place, making it easier to change the event format based on room version | ||||
* | Support ACME for certificate provisioning (#4384) | Amber Brown | 2019-01-23 | 1 | -0/+5 |
| | |||||
* | Write some tests for the email pusher (#4095) | Amber Brown | 2018-10-30 | 1 | -0/+5 |
| | |||||
* | commit transaction before closing | Neil Johnson | 2018-10-24 | 1 | -0/+1 |
| | |||||
* | Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups | David Baker | 2018-10-09 | 1 | -2/+12 |
|\ | |||||
| * | use abc.abstractproperty | Richard van der Hoff | 2018-08-28 | 1 | -5/+4 |
| | | | | | | | | This gives clearer messages when someone gets it wrong | ||||
| * | Make sure that we close db connections opened during init | Richard van der Hoff | 2018-08-28 | 1 | -2/+13 |
| | | | | | | | | | | | | | | | | | | We should explicitly close any db connections we open, because failing to do so can block other transactions as per https://github.com/matrix-org/synapse/issues/3682. Let's also try to factor out some of the boilerplate by having server classes define their datastore class rather than duplicating the whole of `setup`. | ||||
* | | Merge branch 'develop' into e2e_backups | Hubert Chathi | 2018-08-24 | 1 | -3/+10 |
|\| | |||||
| * | Rename WorkerProfileHandler to BaseProfileHandler | Erik Johnston | 2018-08-22 | 1 | -2/+2 |
| | | |||||
| * | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2018-08-17 | 1 | -1/+5 |
| |\ | | | | | | | | | | erikj/split_profiles | ||||
| | * | Add EDU/query handling over replication | Erik Johnston | 2018-08-06 | 1 | -1/+5 |
| | | | |||||
| * | | Split ProfileHandler into master and worker | Erik Johnston | 2018-08-17 | 1 | -2/+5 |
| |/ | |||||
* / | make it work and fix pep8 | Matthew Hodgson | 2018-08-12 | 1 | -0/+5 |
|/ | |||||
* | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2018-07-23 | 1 | -0/+5 |
|\ | | | | | | | erikj/client_apis_move | ||||
| * | Admin API for creating new users (#3415) | Amber Brown | 2018-07-20 | 1 | -0/+5 |
| | | |||||
* | | Move PaginationHandler to its own file | Erik Johnston | 2018-07-20 | 1 | -5/+2 |
| | | |||||
* | | Move RoomContextHandler out of Handlers | Erik Johnston | 2018-07-18 | 1 | -1/+5 |
| | | | | | | | | This is in preparation for moving GET /context/ to a worker | ||||
* | | Split MessageHandler into read only and writers | Erik Johnston | 2018-07-18 | 1 | -1/+13 |
|/ | | | | | This will let us call the read only parts from workers, and so be able to move some APIs off of master, e.g. the `/state` API. | ||||
* | run isort | Amber Brown | 2018-07-09 | 1 | -17/+17 |
| | |||||
* | Pass around the reactor explicitly (#3385) | Amber Brown | 2018-06-22 | 1 | -4/+15 |
| | |||||
* | Stub out ServerNoticesSender on the workers | Richard van der Hoff | 2018-05-22 | 1 | -0/+7 |
| | | | | | ... and have the sync endpoints call it directly rather than obsure indirection via PresenceHandler | ||||
* | Send users a server notice about consent | Richard van der Hoff | 2018-05-22 | 1 | -0/+5 |
| | | | | | When a user first syncs, we will send them a server notice asking them to consent to the privacy policy if they have not already done so. | ||||
* | Infrastructure for a server notices room | Richard van der Hoff | 2018-05-17 | 1 | -0/+5 |
| | | | | | | | Server Notices use a special room which the user can't dismiss. They are created on demand when some other bit of the code calls send_notice. (This doesn't actually do much yet becuse we don't call send_notice anywhere) | ||||
* | Move RoomCreationHandler out of synapse.handlers.Handlers | Richard van der Hoff | 2018-05-17 | 1 | -0/+5 |
| | | | | | | | Handlers is deprecated nowadays, so let's move this out before I add a new dependency on it. Also fix the docstrings on create_room. | ||||
* | ConsentResource to gather policy consent from users | Richard van der Hoff | 2018-05-15 | 1 | -0/+3 |
| | | | | | Hopefully there are enough comments and docs in this that it makes sense on its own. | ||||
* | Burminate v1auth | Adrian Tschira | 2018-04-30 | 1 | -10/+0 |
| | | | | | | | | | | | | | | | | | | This closes #2602 v1auth was created to account for the differences in status code between the v1 and v2_alpha revisions of the protocol (401 vs 403 for invalid tokens). However since those protocols were merged, this makes the r0 version/endpoint internally inconsistent, and violates the specification for the r0 endpoint. This might break clients that rely on this inconsistency with the specification. This is said to affect the legacy angular reference client. However, I feel that restoring parity with the spec is more important. Either way, it is critical to inform developers about this change, in case they rely on the illegal behaviour. Signed-off-by: Adrian Tschira <nota@notafile.com> | ||||
* | Split RoomMemberWorkerHandler to separate file | Erik Johnston | 2018-03-14 | 1 | -3/+2 |
| | |||||
* | Implement RoomMemberWorkerHandler | Erik Johnston | 2018-03-13 | 1 | -2/+4 |
| | |||||
* | Merge pull request #2987 from matrix-org/erikj/split_room_member_handler | Erik Johnston | 2018-03-13 | 1 | -2/+4 |
|\ | | | | | Split RoomMemberHandler into base and master class | ||||
| * | Raise, don't return, exception | Erik Johnston | 2018-03-13 | 1 | -1/+1 |
| | | |||||
| * | Split RoomMemberHandler into base and master class | Erik Johnston | 2018-03-13 | 1 | -2/+4 |
| | | | | | | | | | | | | | | | | The intention here is to split the class into the bits that can be done on workers and the bits that have to be done on the master. In future there will also be a class that can be run on the worker, which will delegate work to the master when necessary. | ||||
* | | s/replication_client/federation_client/ | Erik Johnston | 2018-03-13 | 1 | -2/+2 |
| | | |||||
* | | s/replication_server/federation_server | Erik Johnston | 2018-03-13 | 1 | -2/+2 |
| | | |||||
* | | Split replication layer into two | Erik Johnston | 2018-03-13 | 1 | -4/+9 |
|/ | |||||
* | Split out edu/query registration to a separate class | Erik Johnston | 2018-03-13 | 1 | -0/+5 |
| | |||||
* | Move RoomMemberHandler out of Handlers | Erik Johnston | 2018-03-01 | 1 | -0/+5 |
| | |||||
* | Update places where we create events | Erik Johnston | 2018-02-05 | 1 | -0/+5 |
| | |||||
* | Factor out resolve_state_groups to a separate handler | Richard van der Hoff | 2018-02-01 | 1 | -1/+5 |
| | | | | | | We extract the storage-independent bits of the state group resolution out to a separate functiom, and stick it in a new handler, in preparation for its use from the storage layer. | ||||
* | Factor out get_db_conn to HomeServer base class | Richard van der Hoff | 2018-01-26 | 1 | -0/+17 |
| | | | | | This function is identical to all subclasses, so we may as well push it up to the base class to reduce duplication (and make use of it in the tests) | ||||
* | Merge branch 'develop' into matthew/search-all-local-users | Matthew Hodgson | 2017-11-30 | 1 | -17/+35 |
|\ | |||||
| * | Move set_password into its own handler | Richard van der Hoff | 2017-11-29 | 1 | -0/+5 |
| | | | | | | | | | | | | Non-functional refactoring to move set_password. This means that we'll be able to properly deactivate devices and access tokens without introducing a dependency loop. | ||||
| * | Move deactivate_account into its own handler | Richard van der Hoff | 2017-11-29 | 1 | -0/+5 |
| | | | | | | | | | | | | Non-functional refactoring to move deactivate_account. This means that we'll be able to properly deactivate devices and access tokens without introducing a dependency loop. | ||||
| * | Build MediaRepositoryResource as a homeserver dependency | Richard van der Hoff | 2017-11-22 | 1 | -1/+10 |
| | | | | | | | | | | | | This avoids the scenario where we have four different PreviewUrlResources configured on a single app, each of which have their own caches and cache clearing jobs. | ||||
| * | Clean up dependency list | Richard van der Hoff | 2017-11-21 | 1 | -16/+15 |
| | | | | | | | | | | remove those that aren't used at all, and replace the ones that don't have builders with simple getters rather than dynamically-generated methods. | ||||
* | | Add user_directory_include_pattern config param to expand search results to ↵ | Matthew Hodgson | 2017-11-29 | 1 | -2/+2 |
|/ | | | | | | | | | | additional users Initial commit; this doesn't work yet - the LIKE filtering seems too aggressive. It also needs _do_initial_spam to be aware of prepopulating the whole user_directory_search table with all users... ...and it needs a handle_user_signup() or something to be added so that new signups get incrementally added to the table too. Committing it here as a WIP | ||||
* | Merge branch 'develop' into erikj/groups_merged | David Baker | 2017-10-02 | 1 | -0/+5 |
|\ | |||||
| * | Make the spam checker a module | David Baker | 2017-09-26 | 1 | -0/+5 |
| | | |||||
* | | Split out profile handler to fix tests | Erik Johnston | 2017-08-25 | 1 | -0/+5 |
| | | |||||
* | | Add local group server support | Erik Johnston | 2017-07-17 | 1 | -0/+5 |
| | | |||||
* | | Initial group server implementation | Erik Johnston | 2017-07-10 | 1 | -0/+14 |
|/ | |||||
* | Add user_directory to database | Erik Johnston | 2017-05-31 | 1 | -0/+5 |
| | |||||
* | Store ActionGenerator in HomeServer | Erik Johnston | 2017-05-19 | 1 | -0/+5 |
| | |||||
* | Finish implementing RM endpoint | Luke Barnard | 2017-04-11 | 1 | -0/+5 |
| | | | | | - This change causes a 405 to be sent if "m.read_marker" is set via /account_data - This also fixes-up the RM endpoint so that it actually Works. | ||||
* | Update all the workers and master to use TCP replication | Erik Johnston | 2017-04-03 | 1 | -0/+4 |
| | |||||
* | Fix email push in pusher worker | Erik Johnston | 2017-02-02 | 1 | -1/+5 |
| | | | | | | This was broken when device list updates were implemented, as Mailer could no longer instantiate an AuthHandler due to a dependency on federation sending. | ||||
* | Shuffle receipt handler around so that worker apps don't need to load it | Erik Johnston | 2016-11-23 | 1 | -0/+5 |
| | |||||
* | Ensure only main or federation_sender process can send federation traffic | Erik Johnston | 2016-11-23 | 1 | -2/+11 |
| | |||||
* | Hook up the send queue and create a federation sender worker | Erik Johnston | 2016-11-16 | 1 | -1/+5 |
| | |||||
* | Add transaction queue and transport layer to DI | Erik Johnston | 2016-11-16 | 1 | -0/+10 |
| | |||||
* | Support /initialSync in synchrotron worker | Erik Johnston | 2016-09-21 | 1 | -0/+5 |
| | |||||
* | Move RoomListHandler into a separate file | Erik Johnston | 2016-09-14 | 1 | -1/+1 |
| | |||||
* | Send device messages over federation | Mark Haines | 2016-09-06 | 1 | -0/+5 |
| | |||||
* | Make synchrotron accept /events | Erik Johnston | 2016-08-12 | 1 | -0/+9 |
| | |||||
* | Move e2e query logic into a handler | Richard van der Hoff | 2016-08-01 | 1 | -21/+24 |
| | |||||
* | Add device_id support to /login | Richard van der Hoff | 2016-07-18 | 1 | -0/+5 |
| | | | | | | | | | | | | | Add a 'devices' table to the storage, as well as a 'device_id' column to refresh_tokens. Allow the client to pass a device_id, and initial_device_display_name, to /login. If login is successful, then register the device in the devices table if it wasn't known already. If no device_id was supplied, make one up. Associate the device_id with the access token and refresh token, so that we can get at it again later. Ensure that the device_id is copied from the refresh token to the access_token when the token is refreshed. | ||||
* | Implement purge_media_cache admin API | Erik Johnston | 2016-06-29 | 1 | -0/+5 |
| | |||||
* | Split out the auth handler | David Baker | 2016-06-02 | 1 | -0/+5 |
| | |||||
* | Move the AS handler out of the Handlers object. | Mark Haines | 2016-05-31 | 1 | -0/+15 |
| | | | | | | Access it directly from the homeserver itself. It already wasn't inheriting from BaseHandler storing it on the Handlers object was already somewhat dubious. | ||||
* | Split out the room list handler | David Baker | 2016-05-31 | 1 | -0/+5 |
| | | | | So I can use it from federation bits without pulling in all the handlers. | ||||
* | Move typing handler out of the Handlers object | Mark Haines | 2016-05-17 | 1 | -0/+5 |
| | |||||
* | Move SyncHandler out of the Handlers object | Mark Haines | 2016-05-16 | 1 | -0/+5 |
| | |||||
* | Move the presence handler out of the Handlers object | Mark Haines | 2016-05-16 | 1 | -0/+5 |
| | |||||
* | Optionally split out the pushers into a separate process | Mark Haines | 2016-04-21 | 1 | -0/+3 |
| | |||||
* | Fix flake8 warnings for new flake8 | Daniel Wagner-Hall | 2016-02-02 | 1 | -1/+1 |
| | |||||
* | Clean up a bit. Add comment | Erik Johnston | 2016-01-28 | 1 | -2/+2 |
| | |||||
* | PEP 8 | Erik Johnston | 2016-01-27 | 1 | -1/+0 |
| | |||||
* | Add a Homeserver.setup method. | Erik Johnston | 2016-01-26 | 1 | -15/+17 |
| | | | | | | This is for setting up dependencies that require work on startup. This is useful for the DataStore that wants to read a bunch from the database before initiliazing. | ||||
* | Remove redundated BaseHomeServer | Erik Johnston | 2016-01-26 | 1 | -49/+57 |
| | |||||
* | Use split rather than endswith | Erik Johnston | 2016-01-19 | 1 | -2/+1 |
| | |||||
* | Add regex cache. Only caculate push actions for users that have sent read ↵ | Erik Johnston | 2016-01-19 | 1 | -0/+4 |
| | | | | receipts, and are on that server | ||||
* | copyrights | Matthew Hodgson | 2016-01-07 | 1 | -1/+1 |
| | |||||
* | Actually host r0 and unstable prefixes | Daniel Wagner-Hall | 2015-12-08 | 1 | -2/+1 |
| | |||||
* | Remove the LockManager class because it wasn't being used | Mark Haines | 2015-11-04 | 1 | -5/+0 |
| | |||||
* | Use shorter config key name | Daniel Wagner-Hall | 2015-09-15 | 1 | -1/+2 |
| | |||||
* | Rename context factory | Daniel Wagner-Hall | 2015-09-15 | 1 | -2/+2 |
| | | | | Mjark is officially no fun. | ||||
* | Allow configuration to ignore invalid SSL certs | Daniel Wagner-Hall | 2015-09-09 | 1 | -0/+14 |
| | | | | | This will be useful for sytest, and sytest only, hence the aggressive config key name. | ||||
* | Correctly handle x_forwaded listener option | Erik Johnston | 2015-06-12 | 1 | -10/+2 |
| | |||||
* | Manually generate the default config yaml, remove most of the commandline ↵ | Mark Haines | 2015-04-30 | 1 | -1/+0 |
| | | | | arguments for synapse anticipating that people will use the yaml instead. Simpify implementing config options by not requiring the classes to hit the super class | ||||
* | Merge branch 'develop' into key_distribution | Mark Haines | 2015-04-29 | 1 | -0/+10 |
|\ | | | | | | | | | Conflicts: synapse/config/homeserver.py | ||||
| * | Merge branch 'develop' into csauth | David Baker | 2015-04-17 | 1 | -1/+0 |
| |\ | |||||
| * | | 1) Pushers are now associated with an access token | David Baker | 2015-03-24 | 1 | -0/+10 |
| | | | | | | | | | | | | 2) Change places where we mean unauthenticated to 401, not 403, in C/S v2: hack so it stays as 403 in v1 because web client relies on it. | ||||
* | | | Add a version 2 of the key server api | Mark Haines | 2015-04-14 | 1 | -0/+1 |
| |/ |/| | |||||
* | | Remove appservice REST servlets | Kegan Dougal | 2015-03-31 | 1 | -1/+0 |
|/ | |||||
* | Build MetricsResource as a specific HomeServer dependency | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -0/+1 |
| | |||||
* | Expose 'config' as a real HomeServer dependency key | Paul "LeoNerd" Evans | 2015-03-12 | 1 | -0/+1 |
| | |||||
* | Actually treat this as static content, not random Resources. | Kegan Dougal | 2015-02-23 | 1 | -0/+1 |
| | |||||
* | Merge branch 'develop' into application-services | Kegan Dougal | 2015-02-02 | 1 | -0/+10 |
|\ | | | | | | | | | | | Conflicts: synapse/handlers/__init__.py synapse/storage/__init__.py | ||||
| * | Merge changes from develop | Mark Haines | 2015-01-29 | 1 | -0/+5 |
| |\ | |||||
| | * | Merge branch 'develop' into pushers | David Baker | 2015-01-28 | 1 | -39/+1 |
| | |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: synapse/handlers/events.py synapse/server.py | ||||
| | * \ | Merge branch 'develop' into pushers | David Baker | 2015-01-22 | 1 | -1/+1 |
| | |\ \ | | | | | | | | | | | | | | | | | | | | | Conflicts: synapse/rest/__init__.py | ||||
| | * \ \ | Merge branch 'develop' into pushers | David Baker | 2015-01-13 | 1 | -3/+3 |
| | |\ \ \ | |||||
| | * \ \ \ | Merge branch 'develop' into pushers | David Baker | 2014-12-18 | 1 | -15/+17 |
| | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: synapse/api/errors.py synapse/server.py synapse/storage/__init__.py | ||||
| | * | | | | | Start creating a module to do generic notifications (just prints them to ↵ | David Baker | 2014-11-19 | 1 | -0/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | stdout currently!) | ||||
| * | | | | | | Initial trivial implementation of an actual 'Filtering' object; move storage ↵ | Paul "LeoNerd" Evans | 2015-01-27 | 1 | -0/+5 |
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | of user filters into there | ||||
* / | | | | | Add stub application services REST API. | Kegan Dougal | 2015-01-27 | 1 | -0/+1 |
|/ / / / / | |||||
* | | | | | Remove unused import from server.py | Mark Haines | 2015-01-26 | 1 | -1/+0 |
| | | | | | |||||
* | | | | | Pass the current time to serialize event, rather than passing an | Mark Haines | 2015-01-26 | 1 | -3/+0 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HS and getting a clock from it and calling time_msec on the clock. Remove the serialize_event method from the HS since it is no longer needed. | ||||
* | | | | | Add client v2_alpha resource to synapse server resource tree | Mark Haines | 2015-01-23 | 1 | -0/+1 |
| | | | | | |||||
* | | | | | Remove hs.parse_eventid | Mark Haines | 2015-01-23 | 1 | -9/+0 |
| | | | | | |||||
* | | | | | Replace hs.parse_roomalias with RoomAlias.from_string | Mark Haines | 2015-01-23 | 1 | -6/+1 |
| | | | | | |||||
* | | | | | Replace hs.parse_roomid with RoomID.from_string | Mark Haines | 2015-01-23 | 1 | -6/+1 |
| | | | | | |||||
* | | | | | Replace hs.parse_userid with UserID.from_string | Mark Haines | 2015-01-23 | 1 | -6/+0 |
| | | | | | |||||
* | | | | | Merge rest servlets into the client json resource object | Mark Haines | 2015-01-23 | 1 | -10/+0 |
| |_|_|/ |/| | | | |||||
* | | | | Move rest APIs back under the rest directory | Mark Haines | 2015-01-22 | 1 | -1/+1 |
| | | | | |||||
* | | | | Move client v1 api rest servlets into a "client/v1" directory | Mark Haines | 2015-01-22 | 1 | -1/+1 |
| |_|/ |/| | | |||||
* | | | Return the raw federation event rather than adding extra keys for federation ↵ | Kegan Dougal | 2015-01-08 | 1 | -2/+2 |
| | | | | | | | | | | | | data. | ||||
* | | | Add 'raw' query parameter to expose the event graph and signatures to savvy ↵ | Kegan Dougal | 2015-01-08 | 1 | -2/+2 |
| | | | | | | | | | | | | clients. | ||||
* | | | Update copyright notices | Mark Haines | 2015-01-06 | 1 | -1/+1 |
| |/ |/| | |||||
* | | Kill off synapse.api.events.* | Erik Johnston | 2014-12-16 | 1 | -10/+0 |
| | | |||||
* | | Merge branch 'develop' of github.com:matrix-org/synapse into events_refactor | Erik Johnston | 2014-12-11 | 1 | -0/+1 |
|\ \ | | | | | | | | | | | | | Conflicts: setup.py | ||||
| * | | Get uploads working with new media repo | Mark Haines | 2014-12-02 | 1 | -0/+1 |
| |/ | |||||
* | | Start making more things use EventContext rather than event.* | Erik Johnston | 2014-12-05 | 1 | -1/+1 |
| | | |||||
* | | Convert rest and handlers to use new event structure | Erik Johnston | 2014-12-04 | 1 | -0/+8 |
| | | |||||
* | | Change DomainSpecificString so that it doesn't use a HomeServer object | Erik Johnston | 2014-12-02 | 1 | -4/+7 |
|/ | |||||
* | Add an EventValidator. Fix bugs in auth ++ storage | Erik Johnston | 2014-11-10 | 1 | -0/+5 |
| | |||||
* | Convert event ids to be of the form :example.com | Erik Johnston | 2014-10-30 | 1 | -1/+6 |
| | |||||
* | Merge branch 'develop' into server2server_signing | Mark Haines | 2014-09-30 | 1 | -0/+12 |
|\ | | | | | | | | | | | Conflicts: synapse/storage/__init__.py tests/rest/test_presence.py | ||||
| * | Track the IP users connect with. Add an admin column to users table. | Erik Johnston | 2014-09-26 | 1 | -0/+12 |
| | | |||||
* | | SYN-75 Verify signatures on server to server transactions | Mark Haines | 2014-09-30 | 1 | -0/+5 |
| | | |||||
* | | Add a _matrix/key/v1 resource with the verification keys of the local server | Mark Haines | 2014-09-23 | 1 | -0/+1 |
|/ | |||||
* | Merge remote-tracking branch 'origin/develop' into test-sqlite-memory | Paul "LeoNerd" Evans | 2014-09-15 | 1 | -0/+4 |
|\ | |||||
| * | Correctly handle the 'age' key in events and pdus | Erik Johnston | 2014-09-15 | 1 | -0/+4 |
| | | |||||
* | | Move database preparing code out of homserver.py into storage where it belongs | Paul "LeoNerd" Evans | 2014-09-10 | 1 | -0/+1 |
|/ | |||||
* | fix the copyright holder from matrix.org to OpenMarket Ltd, as matrix.org ↵ | Matthew Hodgson | 2014-09-03 | 1 | -1/+1 |
| | | | | hasn't been incorporated in time for launch. | ||||
* | Add ratelimiting function to basehandler | Mark Haines | 2014-09-02 | 1 | -0/+5 |
| | |||||
* | Fix pyflakes warnings | Mark Haines | 2014-08-28 | 1 | -5/+0 |
| | |||||
* | Merge branch 'develop' into storage_transactions | Mark Haines | 2014-08-27 | 1 | -1/+6 |
|\ | | | | | | | | | | | Conflicts: synapse/handlers/room.py synapse/storage/stream.py | ||||
| * | Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor | Erik Johnston | 2014-08-27 | 1 | -1/+14 |
| |\ | | | | | | | | | | | | | | | | | | | Conflicts: synapse/handlers/events.py synapse/rest/events.py synapse/rest/room.py | ||||
| * | | WIP: Completely change how event streaming and pagination work. This ↵ | Erik Johnston | 2014-08-26 | 1 | -1/+6 |
| | | | | | | | | | | | | reflects the change in the underlying storage model. | ||||
* | | | Merge branch 'develop' into storage_transactions | Mark Haines | 2014-08-27 | 1 | -0/+5 |
|\ \ \ | | |/ | |/| | |||||
| * | | Added parse_roomid() helper | Paul "LeoNerd" Evans | 2014-08-27 | 1 | -0/+5 |
| | | | |||||
* | | | Merge branch 'develop' into storage_transactions | Mark Haines | 2014-08-27 | 1 | -1/+9 |
|\| | | |||||
| * | | Modified /join/$identifier to support $identifier being a room ID in ↵ | Kegan Dougal | 2014-08-27 | 1 | -1/+9 |
| |/ | | | | | | | addition to a room alias. | ||||
* / | Fold federation/handler into handlers/federation | Mark Haines | 2014-08-26 | 1 | -5/+0 |
|/ | |||||
* | Add ts field to all events. | Erik Johnston | 2014-08-21 | 1 | -1/+1 |
| | |||||
* | Added /matrix/content path, HS resource_for_content_repo attribute and ↵ | Kegan Dougal | 2014-08-18 | 1 | -0/+2 |
| | | | | FileUploadResource. Added stub methods. | ||||
* | Removed http_server from HomeServer. Updated unit tests to use either ↵ | Kegan Dougal | 2014-08-14 | 1 | -2/+3 |
| | | | | resource_for_federation or resource_for_client depending on what is being tested. | ||||
* | Start phasing out HttpServer: we should be using Resources instead. Added ↵ | Kegan Dougal | 2014-08-14 | 1 | -4/+4 |
| | | | | resource_for_client/federation/web_client to the HomeServer and hooked the C-S servlets to operate on resource_for_client. Dynamically construct the Resource tree. | ||||
* | Add a HomeServer.parse_roomalias() to avoid having to ↵ | Paul "LeoNerd" Evans | 2014-08-13 | 1 | -1/+6 |
| | | | | RoomAlias.from_sring(..., hs=hs) - similar to parse_userid() | ||||
* | Don't pass host_web_client flag to register_servlets, it needs to be a ↵ | Kegan Dougal | 2014-08-13 | 1 | -3/+1 |
| | | | | Resource not a RestServlet. | ||||
* | Added a -w flag which will host the web client if specified. Currently this ↵ | Kegan Dougal | 2014-08-13 | 1 | -4/+10 |
| | | | | just delegates to the webclient RestServlet. | ||||
* | add in whitespace after copyright statements to improve legibility | Matthew Hodgson | 2014-08-13 | 1 | -0/+1 |
| | |||||
* | Reference Matrix Home Server | matrix.org | 2014-08-12 | 1 | -0/+176 |