Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Tell Black to format code for Python 3.5 (#8664) | Dan Callahan | 2020-10-27 | 1 | -1/+1 |
| | | | | | | | | This allows trailing commas in multi-line arg lists. Minor, but we might as well keep our formatting current with regard to our minimum supported Python version. Signed-off-by: Dan Callahan <danc@element.io> | ||||
* | Fix get|set_type_stream_id_for_appservice store functions (#8648) | Will Hunt | 2020-10-26 | 1 | -0/+56 |
| | |||||
* | Don't instansiate Requester directly (#8614) | Erik Johnston | 2020-10-22 | 3 | -7/+7 |
| | |||||
* | Combine the two sets of tests for CacheDescriptor | Richard van der Hoff | 2020-10-21 | 1 | -228/+0 |
| | |||||
* | Send some ephemeral events to appservices (#8437) | Will Hunt | 2020-10-15 | 1 | -4/+4 |
| | | | Optionally sends typing, presence, and read receipt information to appservices. | ||||
* | Merge pull request #8548 from matrix-org/rav/deferred_cache | Richard van der Hoff | 2020-10-15 | 1 | -72/+1 |
|\ | | | | | Rename Cache to DeferredCache, and related changes | ||||
| * | Combine the two sets of DeferredCache tests | Richard van der Hoff | 2020-10-14 | 1 | -72/+0 |
| | | |||||
| * | move DeferredCache into its own module | Richard van der Hoff | 2020-10-14 | 1 | -1/+2 |
| | | |||||
| * | Rename Cache->DeferredCache | Richard van der Hoff | 2020-10-14 | 1 | -5/+5 |
| | | |||||
* | | Simplify `_locally_reject_invite` | Richard van der Hoff | 2020-10-13 | 1 | -2/+2 |
|/ | | | | | Update `EventCreationHandler.create_event` to accept an auth_events param, and use it in `_locally_reject_invite` instead of reinventing the wheel. | ||||
* | Make event persisters periodically announce position over replication. (#8499) | Erik Johnston | 2020-10-12 | 1 | -9/+16 |
| | | | | | Currently background proccesses stream the events stream use the "minimum persisted position" (i.e. `get_current_token()`) rather than the vector clock style tokens. This is broadly fine as it doesn't matter if the background processes lag a small amount. However, in extreme cases (i.e. SyTests) where we only write to one event persister the background processes will never make progress. This PR changes it so that the `MultiWriterIDGenerator` keeps the current position of a given instance as up to date as possible (i.e using the latest token it sees if its not in the process of persisting anything), and then periodically announces that over replication. This then allows the "minimum persisted position" to advance, albeit with a small lag. | ||||
* | Reduce serialization errors in MultiWriterIdGen (#8456) | Erik Johnston | 2020-10-07 | 1 | -0/+1 |
| | | | | | | We call `_update_stream_positions_table_txn` a lot, which is an UPSERT that can conflict in `REPEATABLE READ` isolation level. Instead of doing a transaction consisting of a single query we may as well run it outside of a transaction. | ||||
* | Add logging on startup/shutdown (#8448) | Erik Johnston | 2020-10-02 | 1 | -5/+9 |
| | | | | | This is so we can tell what is going on when things are taking a while to start up. The main change here is to ensure that transactions that are created during startup get correctly logged like normal transactions. | ||||
* | Make token serializing/deserializing async (#8427) | Erik Johnston | 2020-09-30 | 1 | -3/+6 |
| | | | The idea is that in future tokens will encode a mapping of instance to position. However, we don't want to include the full instance name in the string representation, so instead we'll have a mapping between instance name and an immutable integer ID in the DB that we can use instead. We'll then do the lookup when we serialize/deserialize the token (we could alternatively pass around an `Instance` type that includes both the name and ID, but that turns out to be a lot more invasive). | ||||
* | Rewrite BucketCollector | Richard van der Hoff | 2020-09-30 | 1 | -8/+11 |
| | | | | | | | | | | | | This was a bit unweildy for what I wanted: in particular, I wanted to assign each measurement straight into a bucket, rather than storing an intermediate Counter which didn't do any bucketing at all. I've replaced it with something that is hopefully a bit easier to use. (I'm not entirely sure what the difference between a HistogramMetricFamily and a GaugeHistogramMetricFamily is, but given our counters can go down as well as up the latter *sounds* more accurate?) | ||||
* | Various clean ups to room stream tokens. (#8423) | Erik Johnston | 2020-09-29 | 1 | -6/+4 |
| | |||||
* | Don't table scan events on worker startup (#8419) | Erik Johnston | 2020-09-29 | 1 | -0/+18 |
| | | | | | | | | | | | | | | | | | | | | * Fix table scan of events on worker startup. This happened because we assumed "new" writers had an initial stream position of 0, so the replication code tried to fetch all events written by the instance between 0 and the current position. Instead, set the initial position of new writers to the current persisted up to position, on the assumption that new writers won't have written anything before that point. * Consider old writers coming back as "new". Otherwise we'd try and fetch entries between the old stale token and the current position, even though it won't have written any rows. Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> | ||||
* | Filter out appservices from mau count (#8404) | Will Hunt | 2020-09-29 | 1 | -1/+16 |
| | | | This is an attempt to fix #8403. | ||||
* | Add checks for postgres sequence consistency (#8402) | Erik Johnston | 2020-09-28 | 1 | -3/+19 |
| | |||||
* | Fix MultiWriteIdGenerator's handling of restarts. (#8374) | Erik Johnston | 2020-09-24 | 1 | -8/+111 |
| | | | | | | | | | | | | | | | | | | | On startup `MultiWriteIdGenerator` fetches the maximum stream ID for each instance from the table and uses that as its initial "current position" for each writer. This is problematic as a) it involves either a scan of events table or an index (neither of which is ideal), and b) if rows are being persisted out of order elsewhere while the process restarts then using the maximum stream ID is not correct. This could theoretically lead to race conditions where e.g. events that are persisted out of order are not sent down sync streams. We fix this by creating a new table that tracks the current positions of each writer to the stream, and update it each time we finish persisting a new entry. This is a relatively small overhead when persisting events. However for the cache invalidation stream this is a much bigger relative overhead, so instead we note that for invalidation we don't actually care about reliability over restarts (as there's no caches to invalidate) and simply don't bother reading and writing to the new table in that particular case. | ||||
* | Use `async with` for ID gens (#8383) | Erik Johnston | 2020-09-23 | 1 | -25/+41 |
| | | | This will allow us to hit the DB after we've finished using the generated stream ID. | ||||
* | Simplify super() calls to Python 3 syntax. (#8344) | Patrick Cloke | 2020-09-18 | 2 | -2/+2 |
| | | | | | | | This converts calls like super(Foo, self) -> super(). Generated with: sed -i "" -Ee 's/super\([^\(]+\)/super()/g' **/*.py | ||||
* | Fix `MultiWriterIdGenerator.current_position`. (#8257) | Erik Johnston | 2020-09-08 | 1 | -0/+50 |
| | | | | | It did not correctly handle IDs finishing being persisted out of order, resulting in the `current_position` lagging until new IDs are persisted. | ||||
* | Allow for make_awaitable's return value to be re-used. (#8261) | Patrick Cloke | 2020-09-08 | 2 | -13/+5 |
| | |||||
* | Stop sub-classing object (#8249) | Patrick Cloke | 2020-09-04 | 1 | -9/+9 |
| | |||||
* | Re-implement unread counts (again) (#8059) | Brendan Abolivier | 2020-09-02 | 1 | -2/+6 |
| | |||||
* | Make MultiWriterIDGenerator work for streams that use negative stream IDs ↵ | Erik Johnston | 2020-09-01 | 1 | -0/+105 |
| | | | | | (#8203) This is so that we can use it for the backfill events stream. | ||||
* | Rename `get_e2e_device_keys` to better reflect its purpose (#8205) | Richard van der Hoff | 2020-08-29 | 1 | -3/+5 |
| | | | | | | | | | | | ... and to show that it does something slightly different to `_get_e2e_device_keys_txn`. `include_all_devices` and `include_deleted_devices` were never used (and `include_deleted_devices` was broken, since that would cause `None`s in the result which were not handled in the loop below. Add some typing too. | ||||
* | Do not yield on awaitables in tests. (#8193) | Patrick Cloke | 2020-08-27 | 7 | -68/+143 |
| | |||||
* | Convert stats and related calls to async/await (#8192) | Patrick Cloke | 2020-08-27 | 1 | -3/+2 |
| | |||||
* | Convert simple_delete to async/await. (#8191) | Patrick Cloke | 2020-08-27 | 1 | -2/+4 |
| | |||||
* | Fix missing _add_persisted_position (#8179) | Erik Johnston | 2020-08-27 | 1 | -3/+49 |
| | | | This was forgotten in #8164. | ||||
* | Convert additional database methods to async (select list, search, ↵ | Patrick Cloke | 2020-08-27 | 2 | -5/+6 |
| | | | | insert_many, delete_*) (#8168) | ||||
* | Convert simple_update* and simple_select* to async (#8173) | Patrick Cloke | 2020-08-27 | 3 | -12/+24 |
| | |||||
* | Reduce run-times of tests by advancing the reactor less (#7757) | Andrew Morgan | 2020-08-27 | 2 | -4/+4 |
| | |||||
* | Convert simple_select_one and simple_select_one_onecol to async (#8162) | Patrick Cloke | 2020-08-26 | 5 | -25/+56 |
| | |||||
* | Add functions to `MultiWriterIdGen` used by events stream (#8164) | Erik Johnston | 2020-08-25 | 1 | -0/+36 |
| | |||||
* | Don't fail /submit_token requests on incorrect session ID if ↵ | Brendan Abolivier | 2020-08-24 | 1 | -0/+31 |
| | | | | | | | | | | | | | | | | | | | request_token_inhibit_3pid_errors is turned on (#7991) * Don't raise session_id errors on submit_token if request_token_inhibit_3pid_errors is set * Changelog * Also wait some time before responding to /requestToken * Incorporate review * Update synapse/storage/databases/main/registration.py Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> * Incorporate review Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> | ||||
* | Switch the JSON byte producer from a pull to a push producer. (#8116) | Patrick Cloke | 2020-08-19 | 1 | -1/+2 |
| | |||||
* | Separate `get_current_token` into two. (#8113) | Erik Johnston | 2020-08-19 | 1 | -8/+8 |
| | | | | | | | | | | | | The function is used for two purposes: 1) for subscribers of streams to get a token they can use to get further updates with, and 2) for replication to track position of the writers of the stream. For streams with a single writer the two scenarios produce the same result, however the situation becomes complicated for streams with multiple writers. The current `MultiWriterIdGenerator` does not correctly handle the first case (which is not an issue as its only used for the `caches` stream which nothing subscribes to outside of replication). | ||||
* | Convert events worker database to async/await. (#8071) | Patrick Cloke | 2020-08-18 | 1 | -1/+2 |
| | |||||
* | Convert some of the general database methods to async (#8100) | Patrick Cloke | 2020-08-17 | 5 | -27/+41 |
| | |||||
* | Convert stream database to async/await. (#8074) | Patrick Cloke | 2020-08-17 | 1 | -33/+16 |
| | |||||
* | Add a shadow-banned flag to users. (#8092) | Patrick Cloke | 2020-08-14 | 3 | -4/+4 |
| | |||||
* | Convert devices database to async/await. (#8069) | Patrick Cloke | 2020-08-12 | 2 | -22/+38 |
| | |||||
* | Convert appservice, group server, profile and more databases to async (#8066) | Patrick Cloke | 2020-08-12 | 1 | -12/+12 |
| | |||||
* | Converts event_federation and registration databases to async/await (#8061) | Patrick Cloke | 2020-08-11 | 2 | -8/+18 |
| | |||||
* | Add an assertion on prev_events in create_new_client_event (#8041) | Richard van der Hoff | 2020-08-10 | 1 | -0/+4 |
| | | | | | | I think this would have caught all the cases in https://github.com/matrix-org/synapse/issues/7642 - and I think a 500 makes more sense here than a 403 | ||||
* | Convert directory, e2e_room_keys, end_to_end_keys, monthly_active_users ↵ | Patrick Cloke | 2020-08-07 | 3 | -17/+44 |
| | | | | database to async (#8042) | ||||
* | Convert additional database stores to async/await (#8045) | Patrick Cloke | 2020-08-07 | 1 | -2/+2 |
| | |||||
* | Rename database classes to make some sense (#8033) | Erik Johnston | 2020-08-05 | 12 | -75/+79 |
| | |||||
* | Convert some of the data store to async. (#7976) | Patrick Cloke | 2020-07-30 | 3 | -19/+29 |
| | |||||
* | Convert storage layer to async/await. (#7963) | Patrick Cloke | 2020-07-28 | 3 | -29/+49 |
| | |||||
* | Convert a synapse.events to async/await. (#7949) | Patrick Cloke | 2020-07-27 | 1 | -1/+3 |
| | |||||
* | Convert push to async/await. (#7948) | Patrick Cloke | 2020-07-27 | 1 | -2/+4 |
| | |||||
* | Convert state resolution to async/await (#7942) | Patrick Cloke | 2020-07-24 | 1 | -2/+6 |
| | |||||
* | Convert the message handler to async/await. (#7884) | Patrick Cloke | 2020-07-22 | 2 | -26/+34 |
| | |||||
* | Add delete room admin endpoint (#7613) | Dirk Klimpel | 2020-07-14 | 1 | -0/+8 |
| | | | | | | | | | | | | | | | | | | 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 | -5/+2 |
| | | | ... instead of duplicating `config.signing_key[0]` everywhere | ||||
* | Back out MSC2625 implementation (#7761) | Brendan Abolivier | 2020-07-01 | 1 | -29/+16 |
| | |||||
* | Remove debug logging | Brendan Abolivier | 2020-06-12 | 1 | -2/+0 |
| | |||||
* | Test that a mark_unread action updates the right counter | Brendan Abolivier | 2020-06-12 | 1 | -5/+16 |
| | |||||
* | Fix tests | Brendan Abolivier | 2020-06-10 | 1 | -14/+18 |
| | |||||
* | Replace instances of reactor pumping with get_success. (#7619) | Andrew Morgan | 2020-06-03 | 1 | -118/+149 |
| | | | | | Calls `self.get_success` on all deferred methods instead of abusing `self.pump()`. This has the benefit of working with coroutines, as well as checking that method execution completed successfully. There are also a few small cleanups that I made in the process. | ||||
* | Optimise some references to hs.config (#7546) | Richard van der Hoff | 2020-05-22 | 2 | -58/+65 |
| | | | These are surprisingly expensive, and we only really need to do them at startup. | ||||
* | Add ability to wait for replication streams (#7542) | Erik Johnston | 2020-05-22 | 2 | -3/+3 |
| | | | | | | | 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. | ||||
* | Merge tag 'v1.13.0rc2' into develop | Richard van der Hoff | 2020-05-14 | 1 | -1/+49 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Synapse 1.13.0rc2 (2020-05-14) ============================== Bugfixes -------- - Fix a long-standing bug which could cause messages not to be sent over federation, when state events with state keys matching user IDs (such as custom user statuses) were received. ([\#7376](https://github.com/matrix-org/synapse/issues/7376)) - Restore compatibility with non-compliant clients during the user interactive authentication process, fixing a problem introduced in v1.13.0rc1. ([\#7483](https://github.com/matrix-org/synapse/issues/7483)) Internal Changes ---------------- - Fix linting errors in new version of Flake8. ([\#7470](https://github.com/matrix-org/synapse/issues/7470)) | ||||
| * | Stop `get_joined_users` corruption from custom statuses (#7376) | Richard van der Hoff | 2020-05-14 | 1 | -1/+49 |
| | | | | | | | | | | | | | | | | Fix a bug where the `get_joined_users` cache could be corrupted by custom status events (or other state events with a state_key matching the user ID). The bug was introduced by #2229, but has largely gone unnoticed since then. Fixes #7099, #7373. | ||||
* | | Shuffle persist event data store functions. (#7440) | Erik Johnston | 2020-05-13 | 1 | -1/+2 |
| | | | | | | | | | | | | | | | | | | | | The aim here is to get to a stage where we have a `PersistEventStore` that holds all the write methods used during event persistence, so that we can take that class out of the `DataStore` mixin and instansiate it separately. This will allow us to instansiate it on processes other than master, while also ensuring it is only available on processes that are configured to write to events stream. This is a bit of an architectural change, where we end up with multiple classes per data store (rather than one per data store we have now). We end up having: 1. Storage classes that provide high level APIs that can talk to multiple data stores. 2. Data store modules that consist of classes that must point at the same database instance. 3. Classes in a data store that can be instantiated on processes depending on config. | ||||
* | | Allow configuration of Synapse's cache without using synctl or environment ↵ | Amber Brown | 2020-05-11 | 3 | -10/+11 |
| | | | | | | | | variables (#6391) | ||||
* | | Add room details admin endpoint (#7317) | Manuel Stahl | 2020-05-07 | 1 | -0/+11 |
| | | |||||
* | | Add MultiWriterIdGenerator. (#7281) | Erik Johnston | 2020-05-04 | 1 | -0/+184 |
|/ | | | | | | This will be used to coordinate stream IDs across multiple writers. Functions as the equivalent of both `StreamIdGenerator` and `SlavedIdTracker`. | ||||
* | Return total number of users and profile attributes in admin users endpoint ↵ | Manuel Stahl | 2020-04-28 | 1 | -0/+46 |
| | | | | | (#6881) Signed-off-by: Manuel Stahl <manuel.stahl@awesome-technologies.de> | ||||
* | bg update to clear out duplicate outbound_device_list_pokes (#7193) | Richard van der Hoff | 2020-04-07 | 1 | -0/+52 |
| | | | | We seem to have some duplicates, which could do with being cleared out. | ||||
* | Make do_next_background_update return a bool | Richard van der Hoff | 2020-03-31 | 1 | -3/+3 |
| | | | | returning a None or an int that we don't use is confusing. | ||||
* | Make `has_completed_background_updates` async | Richard van der Hoff | 2020-03-31 | 1 | -1/+3 |
| | | | | (Almost) everywhere that uses it is happy with an awaitable. | ||||
* | Remove unused `start_background_update` | Richard van der Hoff | 2020-03-31 | 1 | -5/+9 |
| | | | | This was only used in a unit test, so let's just inline it in the test. | ||||
* | Change device list streams to have one row per ID (#7010) | Erik Johnston | 2020-03-19 | 1 | -45/+0 |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add 'device_lists_outbound_pokes' as extra table. This makes sure we check all the relevant tables to get the current max stream ID. Currently not doing so isn't problematic as the max stream ID in `device_lists_outbound_pokes` is the same as in `device_lists_stream`, however that will change. * Change device lists stream to have one row per id. This will make it possible to process the streams more incrementally, avoiding having to process large chunks at once. * Change device list replication to match new semantics. Instead of sending down batches of user ID/host tuples, send down a row per entity (user ID or host). * Newsfile * Remove handling of multiple rows per ID * Fix worker handling * Comments from review | ||||
| * | Remove handling of multiple rows per ID | Erik Johnston | 2020-02-28 | 1 | -45/+0 |
| | | |||||
* | | Improve get auth chain difference algorithm. (#7095) | Erik Johnston | 2020-03-18 | 1 | -17/+140 |
| | | | | | | | | | | | | | | | | | | | | | | It was originally implemented by pulling the full auth chain of all state sets out of the database and doing set comparison. However, that can take a lot work if the state and auth chains are large. Instead, lets try and fetch the auth chains at the same time and calculate the difference on the fly, allowing us to bail early if all the auth chains converge. Assuming that the auth chains do converge more often than not, this should improve performance. Hopefully. | ||||
* | | Break down monthly active users by appservice_id (#7030) | Neil Johnson | 2020-03-06 | 1 | -0/+42 |
|/ | | | | | * Break down monthly active users by appservice_id and emit via prometheus. Co-authored-by: Brendan Abolivier <babolivier@matrix.org> | ||||
* | Clarify list/set/dict/tuple comprehensions and enforce via flake8 (#6957) | Patrick Cloke | 2020-02-21 | 5 | -46/+42 |
| | | | | Ensure good comprehension hygiene using flake8-comprehensions. | ||||
* | Replace _event_dict_property with DictProperty | Richard van der Hoff | 2020-02-14 | 1 | -1/+1 |
| | | | | | this amounts to the same thing, but replaces `_event_dict` with `_dict`, and removes some of the function layers generated by `property`. | ||||
* | Add typing to SyncHandler (#6821) | Erik Johnston | 2020-02-03 | 1 | -1/+4 |
| | | | | Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | ||||
* | Type defintions for use in refactoring for redaction changes (#6803) | Richard van der Hoff | 2020-01-30 | 1 | -4/+11 |
| | | | | | | | | | | * Bump signedjson to 1.1 ... so that we can use the type definitions * Fix breakage caused by upgrade to signedjson 1.1 Thanks, @illicitonion... | ||||
* | Add `rooms.room_version` column (#6729) | Erik Johnston | 2020-01-27 | 2 | -2/+10 |
| | | | This is so that we don't have to rely on pulling it out from `current_state_events` table. | ||||
* | Make 'event.redacts' never raise. (#6771) | Erik Johnston | 2020-01-23 | 1 | -0/+35 |
| | | | | | | There are quite a few places that we assume that a redaction event has a corresponding `redacts` key, which is not always the case. So lets cheekily make it so that event.redacts just returns None instead. | ||||
* | Add `local_current_membership` table (#6655) | Erik Johnston | 2020-01-15 | 1 | -1/+1 |
| | | | | | | | Currently we rely on `current_state_events` to figure out what rooms a user was in and their last membership event in there. However, if the server leaves the room then the table may be cleaned up and that information is lost. So lets add a table that separately holds that information. | ||||
* | Allow admin users to create or modify users without a shared secret (#6495) | Manuel Stahl | 2020-01-09 | 1 | -0/+2 |
| | | | Signed-off-by: Manuel Stahl <manuel.stahl@awesome-technologies.de> | ||||
* | port BackgroundUpdateTestCase to HomeserverTestCase (#6653) | Richard van der Hoff | 2020-01-07 | 1 | -35/+37 |
| | |||||
* | Remove unused get_prev_events_and_hashes_for_room | Richard van der Hoff | 2020-01-06 | 1 | -13/+6 |
| | |||||
* | rename get_prev_events_for_room to get_prev_events_and_hashes_for_room | Richard van der Hoff | 2020-01-06 | 1 | -2/+2 |
| | | | | ... to make way for a new method which just returns the event ids | ||||
* | Split state groups into a separate data store (#6296) | Erik Johnston | 2019-12-20 | 1 | -1/+1 |
| | |||||
* | Add database config class (#6513) | Erik Johnston | 2019-12-18 | 3 | -18/+34 |
| | | | | | This encapsulates config for a given database and is the way to get new connections. | ||||
* | Fix race which caused deleted devices to reappear (#6514) | Richard van der Hoff | 2019-12-10 | 1 | -20/+29 |
| | | | | Stop the `update_client_ips` background job from recreating deleted devices. | ||||
* | Fixup tests | Erik Johnston | 2019-12-06 | 4 | -11/+11 |
| | |||||
* | Change DataStores to accept 'database' param. | Erik Johnston | 2019-12-06 | 1 | -2/+3 |
| | |||||
* | Move background update handling out of store | Erik Johnston | 2019-12-05 | 4 | -25/+59 |
| | |||||
* | Move DB pool and helper functions into dedicated Database class | Erik Johnston | 2019-12-05 | 10 | -41/+43 |
| | |||||
* | Remove underscore from SQLBaseStore functions | Erik Johnston | 2019-12-04 | 6 | -24/+24 |
| | |||||
* | Implementation of MSC2314 (#6176) | Amber Brown | 2019-11-28 | 1 | -25/+1 |
| | |||||
* | add etag and count to key backup endpoints (#5858) | Hubert Chathi | 2019-11-27 | 1 | -4/+4 |
| | |||||
* | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2019-11-04 | 1 | -7/+9 |
|\ | | | | | | | erikj/split_purge_history | ||||
| * | Merge branch 'develop' into cross-signing_federation | Hubert Chathi | 2019-10-31 | 1 | -48/+102 |
| |\ | |||||
| * | | rename get_devices_by_remote to get_device_updates_by_remote | Hubert Chathi | 2019-10-30 | 1 | -6/+6 |
| | | | |||||
| * | | Merge branch 'develop' into cross-signing_federation | Hubert Chathi | 2019-10-30 | 6 | -9/+88 |
| |\ \ | |||||
| * \ \ | Merge branch 'develop' into cross-signing_federation | Hubert Chathi | 2019-10-24 | 4 | -3/+5 |
| |\ \ \ | |||||
| * | | | | fix unit test | Hubert Chathi | 2019-10-22 | 1 | -1/+3 |
| | | | | | |||||
* | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2019-10-31 | 1 | -48/+102 |
|\ \ \ \ \ | | |_|_|/ | |/| | | | | | | | | erikj/split_purge_history | ||||
| * | | | | Port to use state storage | Erik Johnston | 2019-10-30 | 1 | -48/+102 |
| | |_|/ | |/| | | |||||
* / | | | Split purge API into events vs state | Erik Johnston | 2019-10-30 | 1 | -7/+8 |
|/ / / | |||||
* | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2019-10-30 | 2 | -1/+76 |
|\ \ \ | | | | | | | | | | | | | erikj/split_out_persistence_store | ||||
| * | | | Make ObservableDeferred.observe() always return deferred. | Erik Johnston | 2019-10-30 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it easier to use in an async/await world. Also fixes a bug where cache descriptors would occaisonally return a raw value rather than a deferred. | ||||
| * | | | remove unneeded imports | Hubert Chathi | 2019-10-25 | 1 | -3/+1 |
| | | | | |||||
| * | | | switch to using HomeserverTestCase | Hubert Chathi | 2019-10-25 | 1 | -19/+25 |
| | | | | |||||
| * | | | remove some unnecessary lines | Hubert Chathi | 2019-10-24 | 1 | -5/+0 |
| | | | | |||||
| * | | | delete keys when deleting backups | Hubert Chathi | 2019-10-24 | 1 | -0/+76 |
| | |/ | |/| | |||||
* / | | Use new EventPersistenceStore | Erik Johnston | 2019-10-23 | 4 | -8/+12 |
|/ / | |||||
* / | Move storage classes into a main "data store". | Erik Johnston | 2019-10-21 | 4 | -3/+5 |
|/ | | | | | This is in preparation for having multiple data stores that offer different functionality, e.g. splitting out state or event storage. | ||||
* | Merge pull request #6193 from matrix-org/uhoreg/interpret_device_key_in_storage | Hubert Chathi | 2019-10-11 | 1 | -6/+6 |
|\ | | | | | make storage layer in charge of interpreting the device key data | ||||
| * | make storage layer in charge of interpreting the device key data | Hubert Chathi | 2019-10-10 | 1 | -6/+6 |
| | | |||||
* | | Fix MAU reaping where reserved users are specified. (#6168) | Neil Johnson | 2019-10-11 | 1 | -9/+49 |
| | | |||||
* | | Fix postgres unit tests | Erik Johnston | 2019-10-10 | 1 | -1/+1 |
|/ | |||||
* | Merge pull request #6146 from matrix-org/erikj/fix_destination_retry_timings | Erik Johnston | 2019-10-02 | 1 | -0/+11 |
|\ | | | | | Fix errors storing large retry intervals. | ||||
| * | Fix errors storing large retry intervals. | Erik Johnston | 2019-10-02 | 1 | -0/+11 |
| | | | | | | | | | | | | | | | | | | We have set the max retry interval to a value larger than a postgres or sqlite int can hold, which caused exceptions when updating the destinations table. To fix postgres we need to change the column to a bigint, and for sqlite we lower the max interval to 2**62 (which is still incredibly long). | ||||
* | | Fix fetching censored redactions from DB | Erik Johnston | 2019-10-02 | 1 | -0/+36 |
|/ | | | | | | Fetching a censored redactions caused an exception due to the code expecting redactions to have a `redact` key, which redacted redactions don't have. | ||||
* | Fix dummy event insertion consent bug (#6053) | Neil Johnson | 2019-09-26 | 2 | -9/+178 |
| | | | Fixes #5905 | ||||
* | Test that pruning of old user IPs works | Erik Johnston | 2019-09-24 | 1 | -0/+71 |
| | |||||
* | Test background update | Erik Johnston | 2019-09-23 | 1 | -0/+79 |
| | |||||
* | Query devices table for last seen info. | Erik Johnston | 2019-09-23 | 1 | -1/+0 |
| | | | | | | | | This is a) simpler than querying user_ips directly and b) means we can purge older entries from user_ips without losing the required info. The storage functions now no longer return the access_token, since it was unused. | ||||
* | Add 'failure_ts' column to 'destinations' table (#6016) | Richard van der Hoff | 2019-09-17 | 1 | -3/+5 |
| | | | | Track the time that a server started failing at, for general analysis purposes. | ||||
* | Merge pull request #5934 from matrix-org/erikj/censor_redactions | Erik Johnston | 2019-09-09 | 1 | -1/+76 |
|\ | | | | | Censor redactions in DB after a month | ||||
| * | Fix test | Erik Johnston | 2019-09-05 | 1 | -1/+3 |
| | | |||||
| * | Make redaction retention period configurable | Erik Johnston | 2019-09-05 | 1 | -1/+3 |
| | | |||||
| * | Censor redactions in DB after a month | Erik Johnston | 2019-08-30 | 1 | -0/+71 |
| | | |||||
* | | Servers-known-about statistic (#5981) | Amber Brown | 2019-09-07 | 1 | -37/+89 |
|/ | |||||
* | Fix registration test | Half-Shot | 2019-08-23 | 1 | -0/+1 |
| | |||||
* | Merge pull request #5788 from matrix-org/rav/metaredactions | Richard van der Hoff | 2019-08-12 | 1 | -0/+70 |
|\ | | | | | Fix handling of redactions of redactions | ||||
| * | Handle loops in redaction events | Richard van der Hoff | 2019-07-30 | 1 | -0/+70 |
| | | |||||
* | | Merge pull request #5746 from matrix-org/erikj/test_bg_update_currnet_state | Erik Johnston | 2019-07-30 | 1 | -1/+36 |
|\ \ | |/ |/| | Add unit test for current state membership bg update | ||||
| * | Add unit test for current state membership bg update | Erik Johnston | 2019-07-23 | 1 | -1/+36 |
| | | |||||
* | | Convert RedactionTestCase to modern test style (#5768) | Richard van der Hoff | 2019-07-26 | 1 | -36/+38 |
| | | |||||
* | | Replace returnValue with return (#5736) | Amber Brown | 2019-07-23 | 4 | -6/+6 |
|/ | |||||
* | Support Prometheus_client 0.4.0+ (#5636) | Amber Brown | 2019-07-18 | 1 | -3/+1 |
| | |||||
* | Implement access token expiry (#5660) | Richard van der Hoff | 2019-07-12 | 1 | -3/+5 |
| | | | | Record how long an access token is valid for, and raise a soft-logout once it expires. | ||||
* | Remove access-token support from RegistrationStore.register (#5642) | Richard van der Hoff | 2019-07-10 | 3 | -41/+17 |
| | | | | | The 'token' param is no longer used anywhere except the tests, so let's kill that off too. | ||||
* | Run Black. (#5482) | Amber Brown | 2019-06-20 | 11 | -72/+74 |
| | |||||
* | Run as background process and fix comments | Erik Johnston | 2019-06-19 | 1 | -1/+1 |
| | |||||
* | Add experimental option to reduce extremities. | Erik Johnston | 2019-06-18 | 1 | -0/+41 |
| | | | | | | | Adds new config option `cleanup_extremities_with_dummy_events` which periodically sends dummy events to rooms with more than 10 extremities. THIS IS REALLY EXPERIMENTAL. | ||||
* | Prometheus histograms are cumalative | Erik Johnston | 2019-06-14 | 1 | -10/+10 |
| | |||||
* | fix prometheus rendering error | Amber H. Brown | 2019-06-14 | 1 | -38/+23 |
| | |||||
* | Expose statistics on extrems to prometheus (#5384) | Amber Brown | 2019-06-13 | 2 | -79/+146 |
| | |||||
* | Prevent multiple device list updates from breaking a batch send (#5156) | Andrew Morgan | 2019-06-06 | 1 | -0/+69 |
| | | | fixes #5153 | ||||
* | Set default room version to v4. (#5379) | Neil Johnson | 2019-06-06 | 1 | -0/+6 |
| | | | | Set default room version to v4. | ||||
* | Add test | Erik Johnston | 2019-05-29 | 1 | -0/+248 |
| | |||||
* | Store key validity time in the storage layer | Richard van der Hoff | 2019-05-23 | 1 | -14/+30 |
| | | | | | | | | This is a first step to checking that the key is valid at the required moment. The idea here is that, rather than passing VerifyKey objects in and out of the storage layer, we instead pass FetchKeyResult objects, which simply wrap the VerifyKey and add a valid_until_ts field. | ||||
* | Rewrite store_server_verify_key to store several keys at once (#5234) | Richard van der Hoff | 2019-05-23 | 1 | -14/+30 |
| | | | | | Storing server keys hammered the database a bit. This replaces the implementation which stored a single key, with one which can do many updates at once. | ||||
* | Expose DataStore._get_events as get_events_as_list | Erik Johnston | 2019-05-14 | 1 | -1/+1 |
| | | | | This is in preparation for reaction work which requires it. | ||||
* | Run Black on the tests again (#5170) | Amber Brown | 2019-05-10 | 9 | -80/+44 |
| | |||||
* | Add admin api for sending server_notices (#5121) | Richard van der Hoff | 2019-05-02 | 1 | -1/+4 |
| | |||||
* | Move admin api impl to its own package | Richard van der Hoff | 2019-05-01 | 1 | -2/+3 |
| | | | | It doesn't really belong under rest/client/v1 any more. | ||||
* | Rewrite Datastore.get_server_verify_keys | Richard van der Hoff | 2019-04-09 | 1 | -3/+50 |
| | | | | Rewrite this so that it doesn't hammer the database. | ||||
* | Rewrite test_keys as a HomeserverTestCase | Richard van der Hoff | 2019-04-08 | 1 | -19/+15 |
| | |||||
* | Remove presence lists (#4989) | Neil Johnson | 2019-04-03 | 1 | -118/+0 |
| | | | Remove presence list support as per MSC 1819 | ||||
* | Collect room-version variations into one place (#4969) | Richard van der Hoff | 2019-04-01 | 3 | -8/+11 |
| | | | | 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. | ||||
* | Migrate the user directory initial population to a background task (#4864) | Amber Brown | 2019-03-19 | 1 | -8/+3 |
| | |||||
* | fixup | Amber Brown | 2019-03-12 | 1 | -2/+2 |
| | |||||
* | Rewrite userdir to be faster (#4537) | Amber Brown | 2019-03-07 | 1 | -2/+0 |
| | |||||
* | UPSERT many functionality (#4644) | Amber Brown | 2019-02-20 | 1 | -0/+88 |
| | |||||
* | Fix flake8 (#4519) | Amber Brown | 2019-01-30 | 4 | -10/+1 |
| | |||||
* | Fix UPSERTs on SQLite 3.24+ (#4477) | Amber Brown | 2019-01-28 | 2 | -4/+7 |
| | |||||
* | Fix tests | Erik Johnston | 2019-01-25 | 3 | -3/+8 |
| | |||||
* | Revert "Require event format version to parse or create events" | Erik Johnston | 2019-01-25 | 3 | -8/+3 |
| | |||||
* | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2019-01-24 | 1 | -0/+1 |
|\ | | | | | | | erikj/require_format_version | ||||
| * | Use native UPSERTs where possible (#4306) | Amber Brown | 2019-01-24 | 1 | -0/+1 |
| | | |||||
* | | Fix tests | Erik Johnston | 2019-01-24 | 3 | -3/+8 |
|/ | |||||
* | Fix adding new rows instead of updating them if one of the key values is a ↵ | Amber Brown | 2019-01-09 | 1 | -0/+71 |
| | | | | NULL in upserts. (#4369) | ||||
* | create support user (#4141) | Neil Johnson | 2018-12-14 | 2 | -2/+54 |
| | | | | | | 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. | ||||
* | Initialise user displayname from SAML2 data (#4272) | Richard van der Hoff | 2018-12-07 | 1 | -1/+1 |
| | | | | | When we register a new user from SAML2 data, initialise their displayname correctly. | ||||
* | Add option to track MAU stats (but not limit people) (#3830) | Travis Ralston | 2018-11-15 | 1 | -0/+25 |
| | |||||
* | Add test to assert set_e2e_device_keys correctly returns False on no-op | Erik Johnston | 2018-11-08 | 1 | -0/+15 |
| | |||||
* | Refactor state group lookup to reduce DB hits (#4011) | Erik Johnston | 2018-10-25 | 1 | -65/+110 |
| | | | | | | | | Currently when fetching state groups from the data store we make two hits two the database: once for members and once for non-members (unless request is filtered to one or the other). This adds needless load to the datbase, so this PR refactors the lookup to make only a single database hit. | ||||
* | fix style inconsistencies | Neil Johnson | 2018-10-24 | 1 | -2/+2 |
| | |||||
* | fix race condiftion in calling initialise_reserved_users | Neil Johnson | 2018-10-23 | 1 | -2/+8 |
| | |||||
* | Add tests | Erik Johnston | 2018-10-02 | 1 | -0/+45 |
| | |||||
* | Fix userconsent on Python 3 (#3938) | Amber Brown | 2018-10-02 | 1 | -46/+2 |
| | |||||
* | docstrings and unittests for storage.state (#3958) | Richard van der Hoff | 2018-09-27 | 1 | -0/+39 |
| | | | | I spent ages trying to figure out how I was going mad... | ||||
* | Fix client IPs being broken on Python 3 (#3908) | Amber Brown | 2018-09-20 | 1 | -35/+167 |
| | |||||
* | improve naming | Neil Johnson | 2018-09-12 | 1 | -3/+3 |
| | |||||
* | expose number of real reserved users | Neil Johnson | 2018-09-12 | 1 | -0/+31 |
| | |||||
* | Port tests/ to Python 3 (#3808) | Amber Brown | 2018-09-07 | 1 | -64/+38 |
| | |||||
* | ensure guests never enter mau list | Neil Johnson | 2018-09-06 | 2 | -4/+6 |
| | |||||
* | guest users should not be part of mau total | Neil Johnson | 2018-09-05 | 1 | -2/+42 |
| | |||||
* | Fix tests on postgresql (#3740) | Amber Brown | 2018-09-04 | 7 | -138/+151 |
| | |||||
* | Port storage/ to Python 3 (#3725) | Amber Brown | 2018-08-31 | 1 | -0/+106 |
| | |||||
* | Fix up tests | Richard van der Hoff | 2018-08-28 | 1 | -2/+2 |
| | |||||
* | Implement trail users | Erik Johnston | 2018-08-23 | 1 | -0/+1 |
| | |||||
* | Merge pull request #3673 from matrix-org/erikj/refactor_state_handler | Erik Johnston | 2018-08-22 | 2 | -2/+6 |
|\ | | | | | Refactor state module to support multiple room versions | ||||
| * | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2018-08-20 | 20 | -648/+543 |
| |\ | | | | | | | | | | erikj/refactor_state_handler | ||||
| * | | Fix tests | Erik Johnston | 2018-08-09 | 2 | -2/+6 |
| | | | |||||
* | | | Split the state_group_cache in two (#3726) | Matthew Hodgson | 2018-08-22 | 1 | -11/+94 |
| |/ |/| | | | | | | | | | | | | | | | Splits the state_group_cache in two. One half contains normal state events; the other contains member events. The idea is that the lazyloading common case of: "I want a subset of member events plus all of the other state" can be accomplished efficiently by splitting the cache into two, and asking for "all events" from the non-members cache, and "just these keys" from the members cache. This means we can avoid having to make DictionaryCache aware of these sort of complicated queries, whilst letting LL requests benefit from the caching. Previously we were unable to sensibly use the caching and had to pull all state from the DB irrespective of the filtering, which made things slow. Hopefully fixes https://github.com/matrix-org/synapse/issues/3720. | ||||
* | | call reap on start up and fix under reaping bug | Neil Johnson | 2018-08-16 | 1 | -0/+13 |
| | | |||||
* | | speed up /members and add at= and membership params (#3568) | Matthew Hodgson | 2018-08-15 | 1 | -1/+1 |
| | | |||||
* | | in case max_mau is less than I think | Neil Johnson | 2018-08-14 | 1 | -1/+1 |
| | | |||||
* | | Merge pull request #3670 from matrix-org/neilj/mau_sync_block | Neil Johnson | 2018-08-14 | 2 | -12/+13 |
|\ \ | | | | | | | Block ability to read via sync if mau limit exceeded | ||||
| * | | rename _user_last_seen_monthly_active | Neil Johnson | 2018-08-09 | 2 | -12/+13 |
| |/ | |||||
* | | Run tests under PostgreSQL (#3423) | Amber Brown | 2018-08-13 | 18 | -21/+31 |
| | | |||||
* | | Run black. | black | 2018-08-10 | 20 | -622/+493 |
| | | |||||
* | | Rename async to async_helpers because `async` is a keyword on Python 3.7 (#3678) | Amber Brown | 2018-08-10 | 1 | -1/+1 |
|/ | |||||
* | Test fixes for Python 3 (#3647) | Amber Brown | 2018-08-09 | 2 | -2/+2 |
| | |||||
* | implement reserved users for mau limits | Neil Johnson | 2018-08-07 | 1 | -1/+58 |
| | |||||
* | wip commit - tests failing | Neil Johnson | 2018-08-03 | 2 | -13/+13 |
| | |||||
* | fix (lots of) py3 test failures | Neil Johnson | 2018-08-03 | 1 | -1/+0 |
| | |||||
* | fix py3 test failure | Neil Johnson | 2018-08-03 | 1 | -0/+1 |
| | |||||
* | fix caching and tests | Neil Johnson | 2018-08-03 | 1 | -13/+37 |
| | |||||
* | remove unused count_monthly_users | Neil Johnson | 2018-08-02 | 1 | -65/+0 |
| | |||||
* | fix test, update constructor call | Neil Johnson | 2018-08-02 | 1 | -1/+1 |
| | |||||
* | insertion into monthly_active_users | Neil Johnson | 2018-08-02 | 1 | -3/+63 |
| | |||||
* | Revert "change monthly_active_users table to be a single column" | Neil Johnson | 2018-08-02 | 1 | -3/+3 |
| | | | | This reverts commit ec716a35b219d147dee51733b55573952799a549. | ||||
* | change monthly_active_users table to be a single column | Neil Johnson | 2018-08-01 | 1 | -3/+3 |
| | |||||
* | Merge branch 'develop' of github.com:matrix-org/synapse into neilj/mau_tracker | Neil Johnson | 2018-08-01 | 1 | -0/+65 |
|\ | |||||
| * | fix isort | Neil Johnson | 2018-08-01 | 1 | -1/+0 |
| | | |||||
| * | fix known broken test | Neil Johnson | 2018-08-01 | 1 | -25/+20 |
| | | |||||
| * | coding style | Neil Johnson | 2018-07-31 | 1 | -1/+0 |
| | | |||||
| * | fix user_ips counting | Neil Johnson | 2018-07-31 | 1 | -9/+33 |
| | | |||||
| * | monthly_active_tests | Neil Johnson | 2018-07-30 | 1 | -0/+48 |
| | | |||||
* | | api into monthly_active_users table | Neil Johnson | 2018-07-31 | 1 | -0/+42 |
|/ | |||||
* | flake8 | Matthew Hodgson | 2018-07-25 | 1 | -12/+12 |
| | |||||
* | add tests for _get_some_state_from_cache | Matthew Hodgson | 2018-07-25 | 1 | -0/+150 |
| | |||||
* | incorporate more review | Matthew Hodgson | 2018-07-24 | 1 | -0/+9 |
| | |||||
* | make test work | Matthew Hodgson | 2018-07-19 | 1 | -37/+46 |
| | |||||
* | first cut of a UT for testing state store (untested) | Matthew Hodgson | 2018-07-19 | 1 | -0/+151 |
| | |||||
* | run isort | Amber Brown | 2018-07-09 | 15 | -36/+44 |
| | |||||
* | fix tests | Richard van der Hoff | 2018-05-29 | 1 | -0/+1 |
| | |||||
* | Send users a server notice about consent | Richard van der Hoff | 2018-05-22 | 1 | -3/+8 |
| | | | | | 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. | ||||
* | Use stream rather depth ordering for push actions | Erik Johnston | 2018-05-11 | 1 | -2/+2 |
| | | | | | | This simplifies things as it is, but will also allow us to change the way we traverse topologically without having to update the way push actions work. | ||||
* | Fix a couple of logcontext leaks in unit tests | Richard van der Hoff | 2018-05-02 | 1 | -1/+0 |
| | | | | | | ... which were making other, innocent, tests, fail. Plus remove a spurious unittest.DEBUG which was making the output noisy. | ||||
* | Merge pull request #3103 from NotAFile/py3-baseexcepton-message | Richard van der Hoff | 2018-04-20 | 1 | -6/+6 |
|\ | | | | | Use str(e) instead of e.message | ||||
| * | Use str(e) instead of e.message | Adrian Tschira | 2018-04-15 | 1 | -6/+6 |
| | | | | | | | | | | | | | | Doing this I learned e.message was pretty shortlived, added in 2.6, they realized it was a bad idea and deprecated it in 2.7 Signed-off-by: Adrian Tschira <nota@notafile.com> | ||||
* | | Avoid creating events with huge numbers of prev_events | Richard van der Hoff | 2018-04-16 | 1 | -0/+68 |
|/ | | | | | | In most cases, we limit the number of prev_events for a given event to 10 events. This fixes a particular code path which created events with huge numbers of prev_events. | ||||
* | s/replication_client/federation_client/ | Erik Johnston | 2018-03-13 | 1 | -5/+5 |
| | |||||
* | Fix tests | Erik Johnston | 2018-03-13 | 1 | -5/+5 |
| | |||||
* | Fix comment typo | Richard van der Hoff | 2018-03-05 | 1 | -1/+1 |
| | |||||
* | Test and fix find_first_stream_ordering_after_ts | Richard van der Hoff | 2018-03-05 | 1 | -0/+67 |
| | | | | It seemed to suffer from a bunch of off-by-one errors. | ||||
* | Merge pull request #2892 from matrix-org/erikj/batch_inserts_push_actions | Erik Johnston | 2018-02-26 | 1 | -1/+1 |
|\ | | | | | Batch inserts into event_push_actions_staging | ||||
| * | Fix unit tests | Erik Johnston | 2018-02-20 | 1 | -1/+1 |
| | | |||||
* | | Fix test | Erik Johnston | 2018-02-20 | 1 | -1/+1 |
|/ | |||||
* | Fix unit test | Erik Johnston | 2018-02-15 | 1 | -4/+6 |
| | |||||
* | s/_create_new_client_event/create_new_client_event/ | Erik Johnston | 2018-02-06 | 2 | -4/+4 |
| | |||||
* | Updates tests | Erik Johnston | 2018-02-05 | 2 | -8/+6 |
| |