Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Reduce DB hits for replication | Erik Johnston | 2016-09-23 | 2 | -3/+3 |
| | | | | | | | | | | | | | | Some streams will occaisonally advance their positions without actually having any new rows to send over federation. Currently this means that the token will not advance on the workers, leading to them repeatedly sending a slightly out of date token. This in turns requires the master to hit the DB to check if there are any new rows, rather than hitting the no op logic where we check if the given token matches the current token. This commit changes the API to always return an entry if the position for a stream has changed, allowing workers to advance their tokens correctly. | ||||
* | Fix unit tests | Mark Haines | 2016-09-06 | 1 | -0/+8 |
| | |||||
* | Correctly handle the difference between prev and current state | Erik Johnston | 2016-08-31 | 3 | -32/+20 |
| | |||||
* | Don't notify for online -> online transitions. | Erik Johnston | 2016-08-30 | 1 | -0/+47 |
| | | | | | Specifically, if currently_active remains true then we should not notify if only the last active time changes. | ||||
* | Merge pull request #1049 from matrix-org/erikj/presence_users_in_room | Erik Johnston | 2016-08-30 | 2 | -41/+6 |
|\ | | | | | Use state handler instead of get_users_in_room/get_joined_hosts | ||||
| * | Fix unit tests | Erik Johnston | 2016-08-26 | 2 | -41/+6 |
| | | |||||
* | | Merge remote-tracking branch 'origin/develop' into markjh/direct_to_device | Mark Haines | 2016-08-26 | 2 | -51/+78 |
|\| | |||||
| * | Fix tests | Erik Johnston | 2016-08-26 | 1 | -5/+46 |
| | | |||||
| * | Replace context.current_state with context.current_state_ids | Erik Johnston | 2016-08-25 | 2 | -48/+34 |
| | | |||||
* | | More 0_0 in tests | Mark Haines | 2016-08-25 | 1 | -2/+2 |
|/ | |||||
* | Ensure invalidation list does not grow unboundedly | Erik Johnston | 2016-08-19 | 2 | -0/+88 |
| | |||||
* | Rename to on_invalidate | Erik Johnston | 2016-08-19 | 1 | -2/+2 |
| | |||||
* | Make cache_context an explicit option | Erik Johnston | 2016-08-19 | 1 | -2/+2 |
| | |||||
* | Remove lru option | Erik Johnston | 2016-08-19 | 1 | -1/+1 |
| | |||||
* | Add concept of cache contexts | Erik Johnston | 2016-08-19 | 2 | -0/+179 |
| | |||||
* | Make AppserviceHandler stream events from database | Erik Johnston | 2016-08-18 | 1 | -3/+6 |
| | | | | | | | | | This is for two reasons: 1. Suppresses duplicates correctly, as the notifier doesn't do any duplicate suppression. 2. Makes it easier to connect the AppserviceHandler to the replication stream. | ||||
* | Make notify_interested_services faster | Erik Johnston | 2016-08-17 | 2 | -68/+54 |
| | |||||
* | Clean up _ServiceQueuer | Erik Johnston | 2016-08-17 | 1 | -1/+1 |
| | |||||
* | Update unit tests | Erik Johnston | 2016-08-17 | 1 | -0/+2 |
| | |||||
* | Fix up preview URL API. Add tests. | Erik Johnston | 2016-08-16 | 1 | -1/+79 |
| | | | | | | | | | This includes: - Splitting out methods of a class into stand alone functions, to make them easier to test. - Adding unit tests to split out functions, testing HTML -> preview. - Handle the fact that elements in lxml may have tail text. | ||||
* | PEP8 | Richard van der Hoff | 2016-08-08 | 1 | -0/+1 |
| | |||||
* | Fix login with m.login.token | Richard van der Hoff | 2016-08-08 | 1 | -4/+49 |
| | | | | | login with token (as used by CAS auth) was broken by 067596d, such that it always returned a 401. | ||||
* | Test summarization | Erik Johnston | 2016-08-04 | 1 | -0/+139 |
| | |||||
* | PEP8 | Richard van der Hoff | 2016-08-03 | 1 | -2/+0 |
| | |||||
* | Include device name in /keys/query response | Richard van der Hoff | 2016-08-03 | 1 | -0/+92 |
| | | | | Add an 'unsigned' section which includes the device display name. | ||||
* | keys/query: return all users which were asked for | Richard van der Hoff | 2016-08-03 | 1 | -0/+46 |
| | | | | | | In the situation where all of a user's devices get deleted, we want to indicate this to a client, so we want to return an empty dictionary, rather than nothing at all. | ||||
* | Create separate methods for getting messages to push | Mark Haines | 2016-07-28 | 1 | -0/+41 |
| | | | | | | | | | | | for the email and http pushers rather than trying to make a single method that will work with their conflicting requirements. The http pusher needs to get the messages in ascending stream order, and doesn't want to miss a message. The email pusher needs to get the messages in descending timestamp order, and doesn't mind if it misses messages. | ||||
* | Add `create_requester` function | Richard van der Hoff | 2016-07-26 | 4 | -26/+22 |
| | | | | | Wrap the `Requester` constructor with a function which provides sensible defaults, and use it throughout | ||||
* | Delete refresh tokens when deleting devices | Richard van der Hoff | 2016-07-26 | 1 | -0/+34 |
| | |||||
* | Implement updating devices | Richard van der Hoff | 2016-07-26 | 2 | -0/+52 |
| | | | | You can update the displayname of devices now. | ||||
* | Implement deleting devices | Richard van der Hoff | 2016-07-26 | 2 | -6/+30 |
| | |||||
* | Merge pull request #945 from matrix-org/rav/background_reindex | Richard van der Hoff | 2016-07-25 | 1 | -5/+15 |
|\ | | | | | Create index on user_ips in the background | ||||
| * | PEP8 | Richard van der Hoff | 2016-07-25 | 1 | -1/+1 |
| | | |||||
| * | Fix background_update tests | Richard van der Hoff | 2016-07-25 | 1 | -6/+16 |
| | | | | | | | | | | | | A bit of a cleanup for background_updates, and make sure that the real background updates have run before we start the unit tests, so that they don't interfere with the tests. | ||||
* | | Slightly saner logging for unittests | Richard van der Hoff | 2016-07-25 | 1 | -4/+7 |
|/ | | | | | | | 1. Give the handler used for logging in unit tests a formatter, so that the output is slightly more meaningful 2. Log some synapse.storage stuff, because it's useful. | ||||
* | make /devices return a list | Richard van der Hoff | 2016-07-21 | 1 | -4/+7 |
| | | | | Turns out I specced this to return a list of devices rather than a dict of them | ||||
* | Fix PEP8 errors | Richard van der Hoff | 2016-07-21 | 1 | -0/+1 |
| | |||||
* | Implement GET /device/{deviceId} | Richard van der Hoff | 2016-07-21 | 1 | -10/+27 |
| | |||||
* | Fix PEP8 errors | Richard van der Hoff | 2016-07-20 | 2 | -3/+1 |
| | |||||
* | Merge branch 'develop' into rav/get_devices_api | Richard van der Hoff | 2016-07-20 | 2 | -4/+19 |
|\ | | | | | | | (pick up PR #938 in the hope of fixing the UTs) | ||||
| * | Merge pull request #938 from matrix-org/rav/add_device_id_to_client_ips | Richard van der Hoff | 2016-07-20 | 1 | -1/+9 |
| |\ | | | | | | | Record device_id in client_ips | ||||
| | * | Record device_id in client_ips | Richard van der Hoff | 2016-07-20 | 1 | -1/+9 |
| | | | | | | | | | | | | | | | Record the device_id when we add a client ip; it's somewhat redundant as we could get it via the access_token, but it will make querying rather easier. | ||||
| * | | Register a device_id in the /v2/register flow. | Richard van der Hoff | 2016-07-20 | 1 | -3/+10 |
| |/ | | | | | | | | | | | | | | | | | | | This doesn't cover *all* of the registration flows, but it does cover the most common ones: in particular: shared_secret registration, appservice registration, and normal user/pass registration. Pull device_id from the registration parameters. Register the device in the devices table. Associate the device with the returned access and refresh tokens. Profit. | ||||
* / | GET /devices endpoint | Richard van der Hoff | 2016-07-20 | 3 | -12/+199 |
|/ | | | | | | | implement a GET /devices endpoint which lists all of the user's devices. It also returns the last IP where we saw that device, so there is some dancing to fish that out of the user_ips table. | ||||
* | Merge pull request #932 from matrix-org/rav/register_refactor | David Baker | 2016-07-20 | 1 | -1/+5 |
|\ | | | | | Further registration refactoring | ||||
| * | Further registration refactoring | Richard van der Hoff | 2016-07-19 | 1 | -1/+5 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * `RegistrationHandler.appservice_register` no longer issues an access token: instead it is left for the caller to do it. (There are two of these, one in `synapse/rest/client/v1/register.py`, which now simply calls `AuthHandler.issue_access_token`, and the other in `synapse/rest/client/v2_alpha/register.py`, which is covered below). * In `synapse/rest/client/v2_alpha/register.py`, move the generation of access_tokens into `_create_registration_details`. This means that the normal flow no longer needs to call `AuthHandler.issue_access_token`; the shared-secret flow can tell `RegistrationHandler.register` not to generate a token; and the appservice flow continues to work despite the above change. | ||||
* | | Merge pull request #922 from matrix-org/erikj/file_api2 | Erik Johnston | 2016-07-20 | 2 | -6/+7 |
|\ \ | |/ |/| | Feature: Add filter to /messages. Add 'contains_url' to filter. | ||||
| * | Add filter param to /messages API | Erik Johnston | 2016-07-14 | 2 | -6/+7 |
| | | |||||
* | | Merge pull request #931 from matrix-org/rav/refactor_register | David Baker | 2016-07-19 | 1 | -1/+2 |
|\ \ | | | | | | | rest/client/v2_alpha/register.py: Refactor flow somewhat. | ||||
| * | | rest/client/v2_alpha/register.py: Refactor flow somewhat. | Richard van der Hoff | 2016-07-19 | 1 | -1/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is meant to be an *almost* non-functional change, with the exception that it fixes what looks a lot like a bug in that it only calls `auth_handler.add_threepid` and `add_pusher` once instead of three times. The idea is to move the generation of the `access_token` out of `registration_handler.register`, because `access_token`s now require a device_id, and we only want to generate a device_id once registration has been successful. | ||||
* | | | Add device_id support to /login | Richard van der Hoff | 2016-07-18 | 2 | -7/+89 |
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | 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. | ||||
* / | Bug fix: expire invalid access tokens | Negar Fazeli | 2016-07-13 | 2 | -3/+32 |
|/ | |||||
* | Add ReadWriteLock | Erik Johnston | 2016-07-05 | 1 | -0/+85 |
| | |||||
* | Remove room name & alias test | David Baker | 2016-06-24 | 1 | -41/+0 |
| | | | | as get_room_name_and_alias is now gone | ||||
* | Rework ldap integration with ldap3 | Martin Weinelt | 2016-06-22 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | | | | | Use the pure-python ldap3 library, which eliminates the need for a system dependency. Offer both a `search` and `simple_bind` mode, for more sophisticated ldap scenarios. - `search` tries to find a matching DN within the `user_base` while employing the `user_filter`, then tries the bind when a single matching DN was found. - `simple_bind` tries the bind against a specific DN by combining the localpart and `user_base` Offer support for STARTTLS on a plain connection. The configuration was changed to reflect these new possibilities. Signed-off-by: Martin Weinelt <hexa@darmstadt.ccc.de> | ||||
* | Enable use_frozen_events in tests | Erik Johnston | 2016-06-17 | 1 | -0/+1 |
| | |||||
* | Add function to load config without generating it | Mark Haines | 2016-06-09 | 2 | -3/+21 |
| | | | | | | | | | | | | | | | | Renames ``load_config`` to ``load_or_generate_config`` Adds a method called ``load_config`` that just loads the config. The main synapse.app.homeserver will continue to use ``load_or_generate_config`` to retain backwards compat. However new worker processes can use ``load_config`` to load the config avoiding some of the cruft needed to generate the config. As the new ``load_config`` method is expected to be used by new configs it removes support for the legacy commandline overrides that ``load_or_generate_config`` supports | ||||
* | Fix a bug caused by a change in auth_handler function | Negar Fazeli | 2016-06-08 | 1 | -6/+3 |
| | | | | Fix the relevant unit test cases | ||||
* | Fix AS retries, but with correct ordering | Erik Johnston | 2016-06-07 | 1 | -4/+4 |
| | |||||
* | Fix AS retries | Erik Johnston | 2016-06-07 | 1 | -3/+3 |
| | |||||
* | Remove event fetching from DB threads | Erik Johnston | 2016-06-03 | 1 | -1/+1 |
| | |||||
* | Change CacheMetrics to be quicker | Erik Johnston | 2016-06-03 | 1 | -13/+10 |
| | | | | | | We change it so that each cache has an individual CacheMetric, instead of having one global CacheMetric. This means that when a cache tries to increment a counter it does not need to go through so many indirections. | ||||
* | Store the typing users as user_id strings. (#819) | Mark Haines | 2016-06-02 | 1 | -2/+2 |
| | | | Rather than storing them as UserID objects. | ||||
* | Allow external processes to mark a user as syncing. (#812) | Mark Haines | 2016-06-02 | 1 | -9/+7 |
| | | | | | | | | | | | | * Add infrastructure to the presence handler to track sync requests in external processes * Expire stale entries for dead external processes * Add an http endpoint for making users as syncing Add some docstrings and comments. * Fixes | ||||
* | Split out the auth handler | David Baker | 2016-06-02 | 2 | -11/+6 |
| | |||||
* | Inject fake room list handler in tests | David Baker | 2016-06-01 | 1 | -0/+2 |
| | | | | Otherwise it tries to start the remote public room list updating looping call which breaks. | ||||
* | Move the AS handler out of the Handlers object. | Mark Haines | 2016-05-31 | 1 | -3/+3 |
| | | | | | | Access it directly from the homeserver itself. It already wasn't inheriting from BaseHandler storing it on the Handlers object was already somewhat dubious. | ||||
* | Fix set profile error with Requester. | Negi Fazeli | 2016-05-23 | 1 | -9/+25 |
| | | | | | Replace flush_user with delete access token due to function removal Add a new test case for if the user is already registered | ||||
* | Move typing handler out of the Handlers object | Mark Haines | 2016-05-17 | 3 | -11/+3 |
| | |||||
* | Merge branch 'develop' into markjh/member_cleanup | Mark Haines | 2016-05-17 | 1 | -1/+1 |
|\ | |||||
| * | Move the presence handler out of the Handlers object | Mark Haines | 2016-05-16 | 1 | -1/+1 |
| | | |||||
* | | get_room_members is unused now | Mark Haines | 2016-05-16 | 1 | -18/+0 |
| | | |||||
* | | Replaces calls to fetch_room_distributions_into with get_joined_hosts_for_room | Mark Haines | 2016-05-16 | 2 | -45/+6 |
|/ | |||||
* | Merge pull request #783 from matrix-org/markjh/slave_account_data | Mark Haines | 2016-05-13 | 1 | -0/+56 |
|\ | | | | | Add a slaved datastore for account data | ||||
| * | Add a slaved datastore for account data | Mark Haines | 2016-05-13 | 1 | -0/+56 |
| | | |||||
* | | Create user with expiry | Negi Fazeli | 2016-05-13 | 4 | -6/+162 |
|/ | | | | | | - Add unittests for client, api and handler Signed-off-by: Negar Fazeli <negar.fazeli@ericsson.com> | ||||
* | Replicate push actions | Mark Haines | 2016-04-21 | 1 | -0/+43 |
| | |||||
* | Merge pull request #738 from matrix-org/markjh/slaved_receipts | Mark Haines | 2016-04-19 | 3 | -3/+43 |
|\ | | | | | Add a slaved receipts store | ||||
| * | Add a slaved receipts store | Mark Haines | 2016-04-19 | 3 | -3/+43 |
| | | |||||
* | | Replicate get_invited_rooms_for_user | Mark Haines | 2016-04-19 | 1 | -0/+12 |
|/ | |||||
* | Create log context in Measure if one doesn't exist | Erik Johnston | 2016-04-18 | 1 | -2/+2 |
| | |||||
* | Merge pull request #677 from matrix-org/erikj/dns_cache | Erik Johnston | 2016-04-08 | 1 | -2/+32 |
|\ | | | | | Read from DNS cache if within TTL | ||||
| * | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/dns_cache | Erik Johnston | 2016-04-07 | 7 | -6/+260 |
| |\ | |||||
| * | | Tests | Erik Johnston | 2016-04-06 | 1 | -2/+29 |
| | | | |||||
| * | | Read from DNS cache if within TTL | Erik Johnston | 2016-03-31 | 1 | -1/+4 |
| | | | |||||
* | | | Remove some unused functions (#711) | Mark Haines | 2016-04-08 | 4 | -266/+4 |
| | | | | | | | | | | | | | | | | | | | | | | | | * Remove some unused functions * get_room_events_stream is only used in tests * is_exclusive_room might actually be something we want | ||||
* | | | Add tests for redactions | Mark Haines | 2016-04-07 | 2 | -2/+51 |
| | | | |||||
* | | | Merge pull request #704 from matrix-org/markh/slaveIII | Mark Haines | 2016-04-07 | 1 | -1/+90 |
|\ \ \ | | | | | | | | | Add tests for get_latest_event_ids_in_room and get_current_state | ||||
| * | | | Add sensible __eq__ operators inside the tests. | Mark Haines | 2016-04-07 | 1 | -1/+28 |
| | | | | | | | | | | | | | | | | | | | | Rather than adding them globally. This limits the changes to only affect the tests. | ||||
| * | | | Add tests for get_latest_event_ids_in_room and get_current_state | Mark Haines | 2016-04-07 | 1 | -0/+62 |
| | |/ | |/| | |||||
* / | | Deduplicate joins | Erik Johnston | 2016-04-07 | 1 | -0/+44 |
|/ / | |||||
* | | Test that room membership is replicated | Mark Haines | 2016-04-06 | 1 | -8/+63 |
| | | |||||
* | | Merge pull request #697 from matrix-org/markjh/slaveI | Mark Haines | 2016-04-06 | 4 | -0/+199 |
|\ \ | | | | | | | Add a slaved events store class | ||||
| * | | Add a slaved events store class | Mark Haines | 2016-04-06 | 4 | -0/+199 |
| | | | | | | | | | | | | | | | Add a test to check that get_room_names_and_aliases does the same thing on both the master and on the slave data store. | ||||
* | | | Don't require config to create database | Erik Johnston | 2016-04-06 | 2 | -4/+4 |
|/ / | |||||
* / | Do checks for memberships before creating events | Erik Johnston | 2016-04-01 | 1 | -2/+2 |
|/ | |||||
* | Add a replication stream for state groups | Mark Haines | 2016-03-30 | 1 | -3/+27 |
| | |||||
* | Remove dead code left over from presence changes | Mark Haines | 2016-03-17 | 1 | -10/+0 |
| | |||||
* | Fix tests | David Baker | 2016-03-16 | 1 | -4/+5 |
| | |||||
* | Add replication stream for pushers | Mark Haines | 2016-03-15 | 1 | -0/+1 |
| | |||||
* | Use parse_json_object_from_request to parse JSON out of request bodies | Mark Haines | 2016-03-11 | 1 | -2/+4 |
| | |||||
* | Flake8 fix | blide | 2016-03-10 | 1 | -6/+6 |
| | |||||
* | Register endpoint returns refresh_token | blide | 2016-03-10 | 1 | -12/+18 |
| | | | | Guest registration still doesn't return refresh_token | ||||
* | Fix tests | David Baker | 2016-03-07 | 3 | -20/+20 |
| | |||||
* | Fix unit tests | Mark Haines | 2016-03-04 | 1 | -2/+2 |
| | |||||
* | Merge branch 'develop' into markjh/pushrule_stream | Mark Haines | 2016-03-04 | 6 | -25/+53 |
|\ | |||||
| * | tests/utils: added room_invite_state_types to test config | Patrik Oldsberg | 2016-03-04 | 1 | -0/+1 |
| | | | | | | | | Signed-off-by: Patrik Oldsberg <patrik.oldsberg@ericsson.com> | ||||
| * | Pass whole requester to ratelimiting | Daniel Wagner-Hall | 2016-03-03 | 4 | -13/+29 |
| | | | | | | | | This will enable more detailed decisions | ||||
| * | Merge pull request #571 from matrix-org/daniel/asids | Daniel Wagner-Hall | 2016-03-03 | 2 | -7/+16 |
| |\ | | | | | | | Mark AS users with their AS's ID | ||||
| | * | Mark AS users with their AS's ID | Daniel Wagner-Hall | 2016-02-11 | 2 | -7/+16 |
| | | | |||||
| * | | Merge pull request #612 from matrix-org/erikj/cache_size | Erik Johnston | 2016-03-02 | 1 | -5/+7 |
| |\ \ | | | | | | | | | Add environment variable SYNAPSE_CACHE_FACTOR, default it to 0.1 | ||||
| | * | | Move cache size fiddling to descriptors only. Fix tests | Erik Johnston | 2016-03-01 | 1 | -5/+7 |
| | | | | |||||
* | | | | Hook push rules up to the replication API | Mark Haines | 2016-03-02 | 1 | -2/+4 |
|/ / / | |||||
* / / | Add a /replication API for extracting the updates that happened on | Mark Haines | 2016-03-01 | 3 | -2/+196 |
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | synapse This is necessary for replicating the data in synapse to be visible to a separate service because presence and typing notifications aren't stored in a database so won't be visible to another process. This API can be used to either get the raw data by requesting the tables themselves or to just receive notifications for updates by following the streams meta-stream. Returns updates for each table requested a JSON array of arrays with a row for each row in the table. Each table is prefixed by a header row with the: name of the table, current stream_id position for the table, number of rows, number of columns and the names of the columns. This is followed by the rows that have been added to the server since the requester last asked. The API has a timeout and is hooked up to the notifier so that a slave can long poll for updates. | ||||
* | | Check that the disable_registration config key is handled correctly | Mark Haines | 2016-02-22 | 1 | -0/+21 |
| | | |||||
* | | Add a test for TreeCache.__contains__ | Mark Haines | 2016-02-22 | 2 | -0/+9 |
| | | |||||
* | | Test Filter.filter_rooms | Mark Haines | 2016-02-19 | 1 | -0/+18 |
| | | | | | | | | | | Also check that the __repr__ method for FilterCollection does something sensible. | ||||
* | | Fix flake8 warnings for tests | Mark Haines | 2016-02-19 | 38 | -363/+358 |
| | | |||||
* | | Don't set currently_active for remote presence | Erik Johnston | 2016-02-19 | 1 | -4/+15 |
| | | |||||
* | | Add unit test | Erik Johnston | 2016-02-18 | 1 | -0/+373 |
| | | |||||
* | | Remove old tests. | Erik Johnston | 2016-02-18 | 6 | -2098/+0 |
| | | |||||
* | | Initial cut | Erik Johnston | 2016-02-17 | 1 | -2/+2 |
| | | |||||
* | | Add wheeltimer impl | Erik Johnston | 2016-02-17 | 1 | -0/+74 |
|/ | |||||
* | Merge pull request #566 from matrix-org/erikj/logcontext | Erik Johnston | 2016-02-10 | 1 | -9/+1 |
|\ | | | | | Don't bother copying records on parent context | ||||
| * | Fix test | Erik Johnston | 2016-02-09 | 1 | -9/+1 |
| | | |||||
* | | Typo | Erik Johnston | 2016-02-09 | 1 | -1/+1 |
| | | |||||
* | | Fix test | Erik Johnston | 2016-02-09 | 1 | -3/+4 |
|/ | |||||
* | Error if macaroon key is missing from config | Daniel Wagner-Hall | 2016-02-05 | 3 | -0/+141 |
| | | | | | | | | | | | | | Currently we store all access tokens in the DB, and fall back to that check if we can't validate the macaroon, so our fallback works here, but for guests, their macaroons don't get persisted, so we don't get to find them in the database. Each restart, we generate a new ephemeral key, so guests lose access after each server restart. I tried to fix up the config stuff to be less insane, but gave up, so instead I bolt on yet another piece of custom one-off insanity. Also, add some basic tests for config generation and loading. | ||||
* | Merge pull request #556 from matrix-org/daniel/config | Daniel Wagner-Hall | 2016-02-03 | 3 | -4/+4 |
|\ | | | | | Rename config field to reflect yaml name | ||||
| * | Rename config field to reflect yaml name | Daniel Wagner-Hall | 2016-02-03 | 3 | -4/+4 |
| | | |||||
* | | Simplify get_rooms | Erik Johnston | 2016-02-03 | 1 | -26/+0 |
|/ | |||||
* | Fix the mock homserver used in the tests | Mark Haines | 2016-01-29 | 1 | -0/+1 |
| | |||||
* | Merge pull request #536 from matrix-org/erikj/sync | Erik Johnston | 2016-01-29 | 1 | -8/+1 |
|\ | | | | | Make /sync "better". | ||||
| * | Allow paginating backwards from stream token | Erik Johnston | 2016-01-28 | 1 | -8/+1 |
| | | |||||
| * | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/sync | Erik Johnston | 2016-01-28 | 1 | -2/+14 |
| |\ | |||||
* | \ | Merge pull request #538 from matrix-org/erikj/fix_lru_cache | Erik Johnston | 2016-01-29 | 2 | -0/+19 |
|\ \ \ | | | | | | | | | Fix LruCache. Make TreeCache track its own size. | ||||
| * | | | Add tests | Erik Johnston | 2016-01-29 | 2 | -0/+19 |
| | | | | |||||
* | | | | Fix test | Erik Johnston | 2016-01-28 | 1 | -3/+4 |
|/ / / | |||||
* | / | Merge pull request #534 from matrix-org/erikj/setup | Erik Johnston | 2016-01-28 | 3 | -5/+12 |
|\| | | |/ |/| | Add a Homeserver.setup method | ||||
| * | Fix tests | Erik Johnston | 2016-01-27 | 3 | -5/+12 |
| | | |||||
* | | Merge pull request #535 from matrix-org/rav/paginate_from_stream_token | Richard van der Hoff | 2016-01-28 | 1 | -2/+14 |
|\ \ | |/ |/| | Make it possible to paginate forwards from stream tokens | ||||
| * | Make it possible to paginate forwards from stream tokens | Richard van der Hoff | 2016-01-27 | 1 | -2/+14 |
| | | | | | | | | | | In order that we can fill the gap after a /sync, make it possible to paginate forwards from a stream token. | ||||
* | | Remove redundated BaseHomeServer | Erik Johnston | 2016-01-26 | 5 | -314/+30 |
|/ | |||||
* | Fix tests | Erik Johnston | 2016-01-25 | 1 | -6/+4 |
| | |||||
* | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/sync | Erik Johnston | 2016-01-22 | 2 | -0/+86 |
|\ | |||||
| * | Revert all the bits changing keys of eeverything that used LRUCaches to tuples | David Baker | 2016-01-22 | 2 | -35/+35 |
| | | |||||
| * | Make LRU cache not default to treecache & add options to use it | David Baker | 2016-01-22 | 1 | -1/+2 |
| | | |||||
| * | Test treecache directly | David Baker | 2016-01-22 | 1 | -0/+19 |
| | | |||||
| * | Add tests for treecache directly and test del_multi at the LruCache level too. | David Baker | 2016-01-22 | 1 | -0/+66 |
| | | |||||
| * | Change LRUCache to be tree-based so we can delete subtrees. | David Baker | 2016-01-21 | 2 | -35/+35 |
| | | |||||
* | | Fix tests | Erik Johnston | 2016-01-22 | 1 | -1/+1 |
|/ | |||||
* | Cache dns lookups, and use the cache if we fail to lookup servers later | Erik Johnston | 2016-01-20 | 1 | -0/+115 |
| | |||||
* | Make unit tests work | Erik Johnston | 2016-01-18 | 2 | -559/+0 |
| | |||||
* | Require unbanning before other membership changes | Daniel Wagner-Hall | 2016-01-15 | 1 | -3/+3 |
| | |||||
* | Require ID and as_token be unique for ASs | Daniel Wagner-Hall | 2016-01-14 | 2 | -16/+86 |
| | | | | | Defaults ID to as_token if not specified. This will change when IDs are fully supported. | ||||
* | Delete the table objects from TransactionStore | Mark Haines | 2016-01-13 | 2 | -2/+0 |
| | |||||
* | Merge pull request #478 from matrix-org/daniel/userobject | Daniel Wagner-Hall | 2016-01-11 | 3 | -13/+11 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a User object I'm sick of passing around more and more things as tuple items around the whole world, and needing to edit every call site every time there is more information about a user. So pass them around together as an object. This object has incredibly poorly named fields because we have a convention that `user` indicates a UserID object, and `user_id` indicates a string. I tried to clean up the whole repo to fix this, but gave up. So instead, I introduce a second convention. A user_object is a User, and a user_id_object is a UserId. I may have cried a little bit. | ||||
| * | Introduce a Requester object | Daniel Wagner-Hall | 2016-01-11 | 3 | -13/+11 |
| | | | | | | | | | | | | | | | | | | This tracks data about the entity which made the request. This is instead of passing around a tuple, which requires call-site modifications every time a new piece of optional context is passed around. I tried to introduce a User object. I gave up. | ||||
* | | Merge pull request #456 from matrix-org/store_event_actions | David Baker | 2016-01-08 | 3 | -1/+26 |
|\ \ | |/ |/| | Send unread notification counts | ||||
| * | fix tests | David Baker | 2016-01-06 | 3 | -1/+10 |
| | | |||||
| * | Merge remote-tracking branch 'origin/develop' into store_event_actions | David Baker | 2016-01-05 | 1 | -9/+9 |
| |\ | |||||
| * | | fix tests | David Baker | 2016-01-04 | 2 | -2/+2 |
| | | | |||||
| * | | Merge remote-tracking branch 'origin/develop' into store_event_actions | David Baker | 2016-01-04 | 1 | -0/+60 |
| |\ \ | |||||
| * | | | Add mocks to make tests work again | David Baker | 2015-12-22 | 2 | -0/+16 |
| | | | | |||||
* | | | | copyrights | Matthew Hodgson | 2016-01-07 | 53 | -53/+53 |
| |_|/ |/| | | |||||
* | | | Allow guests to upgrade their accounts | Daniel Wagner-Hall | 2016-01-05 | 1 | -9/+9 |
| |/ |/| | |||||
* | | Add a unit test for the snapshot cache | Mark Haines | 2015-12-23 | 1 | -0/+60 |
|/ | |||||
* | Merge remote-tracking branch 'origin/master' into develop | Mark Haines | 2015-12-07 | 1 | -1/+1 |
|\ | |||||
| * | Fix mock import in tests. | Oleg Girko | 2015-12-06 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | For some reason, one test imports Mock class from mock.mock rather than from mock. This change fixes this error. Signed-off-by: Oleg Girko <ol@infoserver.lv> | ||||
* | | Host /unstable and /r0 versions of r0 APIs | Daniel Wagner-Hall | 2015-12-01 | 1 | -2/+3 |
| | | |||||
* | | rename the method in the tests as well | Mark Haines | 2015-12-01 | 1 | -3/+3 |
|/ | |||||
* | Update tests | Erik Johnston | 2015-11-17 | 3 | -0/+17 |
| | |||||
* | Return non-room events from guest /events calls | Daniel Wagner-Hall | 2015-11-12 | 1 | -0/+3 |
| | |||||
* | Fix an issue with ignoring power_level changes on divergent graphs | Richard van der Hoff | 2015-11-12 | 1 | -0/+93 |
| | | | | | | | | Changes to m.room.power_levels events are supposed to be handled at a high priority; however a typo meant that the relevant bit of code was never executed, so they were handled just like any other state change - which meant that a bad person could cause room state changes by forking the graph from a point in history when they were allowed to do so. | ||||
* | Merge pull request #359 from matrix-org/markjh/incremental_indexing | Erik Johnston | 2015-11-11 | 2 | -0/+79 |
|\ | | | | | Incremental background updates for db indexes | ||||
| * | Test for background updates | Mark Haines | 2015-11-10 | 2 | -0/+79 |
| | | |||||
* | | Return world_readable and guest_can_join in /publicRooms | Daniel Wagner-Hall | 2015-11-10 | 1 | -0/+2 |
| | | |||||
* | | Add a couple of unit tests for room/<x>/messages | Richard van der Hoff | 2015-11-09 | 1 | -0/+56 |
|/ | | | | ... merely because I was trying to figure out how it worked, and couldn't. | ||||
* | Open up /events to anonymous users for room events only | Daniel Wagner-Hall | 2015-11-05 | 4 | -26/+89 |
| | | | | Squash-merge of PR #345 from daniel/anonymousevents | ||||
* | Merge branch 'develop' of github.com:matrix-org/synapse into develop | Daniel Wagner-Hall | 2015-11-04 | 4 | -117/+1 |
|\ | |||||
| * | Merge branch 'develop' into daniel/removesomelies | Mark Haines | 2015-11-04 | 2 | -110/+2 |
| |\ | | | | | | | | | | | | | Conflicts: synapse/notifier.py | ||||
| | * | Remove the LockManager class because it wasn't being used | Mark Haines | 2015-11-04 | 1 | -108/+0 |
| | | | |||||
| * | | Remove more unused parameters | Daniel Wagner-Hall | 2015-11-02 | 3 | -9/+1 |
| | | | |||||
* | | | Allow guests to register and call /events?room_id= | Daniel Wagner-Hall | 2015-11-04 | 6 | -18/+48 |
| |/ |/| | | | | | | | | | | | This follows the same flows-based flow as regular registration, but as the only implemented flow has no requirements, it auto-succeeds. In the future, other flows (e.g. captcha) may be required, so clients should treat this like the regular registration flow choices. | ||||
* | | Merge branch 'develop' into markjh/room_tags | Mark Haines | 2015-11-02 | 1 | -2/+7 |
|\| | |||||
| * | Fix a 500 error resulting from empty room_ids | Richard van der Hoff | 2015-10-26 | 1 | -2/+7 |
| | | | | | | | | | | POST /_matrix/client/api/v1/rooms//send/a.b.c gave a 500 error, because we assumed that rooms always had at least one character. | ||||
* | | Support clients supplying older tokens, fix short poll test | Mark Haines | 2015-10-30 | 1 | -2/+2 |
|/ | |||||
* | Merge pull request #319 from matrix-org/erikj/filter_refactor | Erik Johnston | 2015-10-22 | 1 | -26/+31 |
|\ | | | | | Refactor api.filtering to have a Filter API | ||||
| * | Refactor api.filtering to have a Filter API | Erik Johnston | 2015-10-20 | 1 | -26/+31 |
| | | |||||
* | | Merge pull request #314 from matrix-org/paul/event-redaction | Mark Haines | 2015-10-22 | 2 | -0/+115 |
|\ \ | |/ |/| | Add some unit tests of prune_events() | ||||
| * | Add some unit tests of prune_events() | Paul "LeoNerd" Evans | 2015-10-16 | 2 | -0/+115 |
| | | |||||
* | | Merge branch 'develop' of github.com:matrix-org/synapse into develop | Daniel Wagner-Hall | 2015-10-20 | 2 | -0/+129 |
|\ \ | |||||
| * | | Invoke EventBuilder directly instead of going via the EventBuilderFactory | Paul "LeoNerd" Evans | 2015-10-19 | 1 | -35/+3 |
| | | | |||||
| * | | Capture __init__.py | Paul "LeoNerd" Evans | 2015-10-19 | 1 | -0/+15 |
| | | | |||||
| * | | Use assertIn() instead of assertTrue on the 'in' operator | Paul "LeoNerd" Evans | 2015-10-19 | 1 | -6/+6 |
| | | | |||||
| * | | Another signing test vector using an 'm.room.message' with content, so that ↵ | Paul "LeoNerd" Evans | 2015-10-19 | 1 | -1/+49 |
| | | | | | | | | | | | | the implementation will have to redact it | ||||
| * | | Initial minimial hack at a test of event hashing and signing | Paul "LeoNerd" Evans | 2015-10-19 | 1 | -0/+98 |
| |/ | |||||
* / | Allow rejecting invites | Daniel Wagner-Hall | 2015-10-20 | 1 | -2/+2 |
|/ | | | | | This is done by using the same /leave flow as you would use if you had already accepted the invite and wanted to leave. | ||||
* | update filtering tests | Mark Haines | 2015-10-13 | 1 | -6/+6 |
| | |||||
* | rename schema_prepare to prepare_database | Erik Johnston | 2015-10-13 | 1 | -1/+1 |
| | |||||
* | Expose error more nicely | Erik Johnston | 2015-10-13 | 1 | -1/+1 |
| | |||||
* | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/unfederatable | Erik Johnston | 2015-10-02 | 11 | -98/+391 |
|\ | |||||
| * | synapse/storage/_base.py:_simple_selectupdate_one was unused | Mark Haines | 2015-09-23 | 1 | -20/+0 |
| | | |||||
| * | Move NullSource out of synapse and into tests since it is only used by the tests | Mark Haines | 2015-09-22 | 1 | -1/+17 |
| | | |||||
| * | Implement configurable stats reporting | Daniel Wagner-Hall | 2015-09-22 | 4 | -54/+213 |
| | | | | | | | | | | | | | | | | | | | | SYN-287 This requires that HS owners either opt in or out of stats reporting. When --generate-config is passed, --report-stats must be specified If an already-generated config is used, and doesn't have the report_stats key, it is requested to be set. | ||||
| * | Merge pull request #276 from ↵ | Mark Haines | 2015-09-21 | 1 | -7/+7 |
| |\ | | | | | | | | | | | | | matrix-org/markjh/history_for_rooms_that_have_been_left SPEC-216: Allow users to view the history of rooms that they have left. | ||||
| | * | Allow users to GET individual state events for rooms that they have left | Mark Haines | 2015-09-10 | 1 | -5/+5 |
| | | | |||||
| | * | Allow users that have left the room to view the member list from the point ↵ | Mark Haines | 2015-09-09 | 1 | -2/+2 |
| | | | | | | | | | | | | they left | ||||
| * | | Merge pull request #256 from matrix-org/auth | Daniel Wagner-Hall | 2015-09-14 | 6 | -16/+154 |
| |\ \ | | | | | | | | | Attempt to validate macaroons | ||||
| | * | | s/user_id/user/g for consistency | Daniel Wagner-Hall | 2015-09-01 | 5 | -15/+15 |
| | | | | |||||
| | * | | Turn TODO into thing which actually will fail | Daniel Wagner-Hall | 2015-08-26 | 1 | -6/+9 |
| | | | | |||||
| | * | | Attempt to validate macaroons | Daniel Wagner-Hall | 2015-08-26 | 6 | -27/+162 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A couple of weird caveats: * If we can't validate your macaroon, we fall back to checking that your access token is in the DB, and ignoring the failure * Even if we can validate your macaroon, we still have to hit the DB to get the access token ID, which we pretend is a device ID all over the codebase. This mostly adds the interesting code, and points out the two pieces we need to delete (and necessary conditions) in order to fix the above caveats. | ||||
* | | | | Merge branch 'erikj/check_room_exists' into erikj/unfederatable | Erik Johnston | 2015-09-01 | 1 | -8/+29 |
|\| | | | |||||
| * | | | Fix tests | Erik Johnston | 2015-09-01 | 1 | -8/+29 |
| | |/ | |/| | |||||
* / | | Check against sender rather than event_id | Erik Johnston | 2015-09-01 | 1 | -1/+1 |
|/ / | |||||
* / | Swap out bcrypt for md5 in tests | Daniel Wagner-Hall | 2015-08-26 | 1 | -0/+13 |
|/ | | | | This reduces our ~8 second sequential test time down to ~7 seconds | ||||
* | Stop looking up "admin", which we never read | Daniel Wagner-Hall | 2015-08-25 | 7 | -18/+2 |
| | |||||
* | Remove completely unused concepts from codebase | Daniel Wagner-Hall | 2015-08-25 | 7 | -20/+4 |
| | | | | | | | | | | Removes device_id and ClientInfo device_id is never actually written, and the matrix.org DB has no non-null entries for it. Right now, it's just cluttering up code. This doesn't remove the columns from the database, because that's fiddly. | ||||
* | Merge branch 'develop' into refresh | Daniel Wagner-Hall | 2015-08-20 | 1 | -1/+2 |
|\ | | | | | | | | | Conflicts: synapse/rest/client/v1/login.py | ||||
| * | Merge pull request #211 from matrix-org/email_in_use | Mark Haines | 2015-08-20 | 1 | -1/+2 |
| |\ | | | | | | | Changes for unique emails | ||||
| | * | Fix tests | David Baker | 2015-08-04 | 1 | -1/+2 |
| | | | |||||
* | | | /tokenrefresh POST endpoint | Daniel Wagner-Hall | 2015-08-20 | 1 | -0/+55 |
| | | | | | | | | | | | | | | | | | | | | | | | | This allows refresh tokens to be exchanged for (access_token, refresh_token). It also starts issuing them on login, though no clients currently interpret them. | ||||
* | | | s/by_token/by_access_token/g | Daniel Wagner-Hall | 2015-08-20 | 8 | -34/+34 |
| | | | | | | | | | | | | We're about to have two kinds of token, access and refresh | ||||
* | | | Move token generation to auth handler | Daniel Wagner-Hall | 2015-08-20 | 1 | -7/+7 |
| | | | | | | | | | | | | | | | I prefer the auth handler to worry about all auth, and register to call into it as needed, than to smatter auth logic between the two. | ||||
* | | | Re-add whitespace around caveat operators | Daniel Wagner-Hall | 2015-08-19 | 1 | -4/+4 |
| | | | |||||
* | | | Remove padding space around caveat operators | Daniel Wagner-Hall | 2015-08-18 | 1 | -4/+4 |
| | | | |||||
* | | | Fix units in test | Daniel Wagner-Hall | 2015-08-18 | 1 | -1/+1 |
| | | | | | | | | | | | | I made the non-test seconds instead of ms, but not the test | ||||
* | | | Fix some formatting to use tuples | Daniel Wagner-Hall | 2015-08-18 | 1 | -1/+1 |
| | | | |||||
* | | | Merge branch 'develop' into auth | Daniel Wagner-Hall | 2015-08-18 | 4 | -5/+104 |
|\| | | |||||
| * | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2015-08-12 | 1 | -2/+2 |
| |\ \ | | | | | | | | | | | | | erikj/dictionary_cache | ||||
| | * | | Remove call to recently removed function in mock | Daniel Wagner-Hall | 2015-08-11 | 1 | -2/+2 |
| | | | | |||||
| * | | | Move all the caches into their own package, synapse.util.caches | Erik Johnston | 2015-08-11 | 3 | -5/+3 |
| | | | | |||||
| * | | | Change Cache to not use *args in its interface | Erik Johnston | 2015-08-07 | 1 | -6/+6 |
| | | | | |||||
| * | | | Merge branch 'erikj/cache_deferreds' into erikj/dictionary_cache | Erik Johnston | 2015-08-06 | 1 | -4/+7 |
| |\ \ \ | |||||
| * | | | | Use dictionary cache to do group -> state fetching | Erik Johnston | 2015-08-05 | 1 | -1/+1 |
| | | | | | |||||
| * | | | | Move DictionaryCache | Erik Johnston | 2015-08-04 | 1 | -1/+1 |
| | | | | | |||||
| * | | | | Add basic dictionary cache | Erik Johnston | 2015-08-04 | 1 | -0/+101 |
| | |_|/ | |/| | | |||||
* | | | | Issue macaroons as opaque auth tokens | Daniel Wagner-Hall | 2015-08-18 | 2 | -0/+72 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This just replaces random bytes with macaroons. The macaroons are not inspected by the client or server. In particular, they claim to have an expiry time, but nothing verifies that they have not expired. Follow-up commits will actually enforce the expiration, and allow for token refresh. See https://bit.ly/matrix-auth for more information | ||||
* | | | | Remove call to recently removed function in mock | Daniel Wagner-Hall | 2015-08-11 | 1 | -2/+2 |
| |_|/ |/| | | |||||
* | | | Change Cache to not use *args in its interface | Erik Johnston | 2015-08-07 | 1 | -6/+6 |
| |/ |/| | |||||
* | | Merge branch 'erikj/cached_keyword_args' into erikj/cache_deferreds | Erik Johnston | 2015-08-06 | 1 | -0/+134 |
|\| | |||||
| * | Use the same reg paths as register v1 for ASes. | Kegan Dougal | 2015-07-29 | 1 | -1/+3 |
| | | | | | | | | Namely this means using registration_handler.appservice_register. | ||||
| * | Fix v2_alpha registration. Add unit tests. | Kegan Dougal | 2015-07-28 | 1 | -0/+132 |
| | | | | | | | | | | | | | | | | V2 Registration forced everyone (including ASes) to create a password for a user, when ASes should be able to omit passwords. Also unbreak AS registration in general which checked too early if the given username was claimed by an AS; it was checked before knowing if the AS was the one doing the registration! Add unit tests for AS reg, user reg and disabled_registration flag. | ||||
* | | Make @cached cache deferreds rather than the deferreds' values | Erik Johnston | 2015-08-06 | 1 | -4/+7 |
|/ | |||||
* | Fix test. | Erik Johnston | 2015-07-07 | 1 | -1/+11 |
| | |||||
* | Consolidate duplicate code in notifier | Erik Johnston | 2015-07-02 | 1 | -10/+10 |
| | |||||
* | Add receipts_key to StreamToken | Erik Johnston | 2015-07-02 | 1 | -2/+2 |
| | |||||
* | Fix bug where synapse was sending AS user queries incorrectly. | Kegan Dougal | 2015-06-17 | 1 | -0/+43 |
| | | | | | | Bug introduced in 92b20713d7c6346aeb20dc09963081e472752bb5 which reversed the comparison when checking if a user existed in the users table. Added UTs to prevent this happening again. | ||||
* | Fix tests | Erik Johnston | 2015-06-12 | 1 | -0/+2 |
| | |||||
* | Merge pull request #180 from matrix-org/erikj/prev_state_context | Erik Johnston | 2015-06-03 | 1 | -0/+2 |
|\ | | | | | Don't needlessly compute prev_state |