Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | use stream ID generator instead of timestamp | Hubert Chathi | 2019-08-28 | 3 | -19/+20 |
| | |||||
* | apply PR review suggestions | Hubert Chathi | 2019-08-21 | 2 | -10/+11 |
| | |||||
* | make changes from PR review | Hubert Chathi | 2019-08-01 | 2 | -41/+55 |
| | |||||
* | Merge branch 'cross-signing_hidden' into cross-signing_keys | Hubert Chathi | 2019-08-01 | 40 | -452/+566 |
|\ | |||||
| * | don't need to return the hidden column any more | Hubert Chathi | 2019-08-01 | 1 | -1/+1 |
| | | |||||
| * | really fix queries to work with Postgres | Hubert Chathi | 2019-07-31 | 1 | -19/+11 |
| | | | | | | | | (by going back to not using SQL directly) | ||||
| * | PostgreSQL, Y U no like? | Hubert Chathi | 2019-07-31 | 1 | -3/+4 |
| | | |||||
| * | remove extra SQL query param | Hubert Chathi | 2019-07-31 | 1 | -1/+0 |
| | | |||||
| * | Merge branch 'develop' into cross-signing_hidden | Hubert Chathi | 2019-07-30 | 40 | -432/+554 |
| |\ | |||||
| | * | Don't recreate column | Erik Johnston | 2019-07-30 | 2 | -1/+22 |
| | | | |||||
| | * | Fix current_state_events membership background update. | Erik Johnston | 2019-07-30 | 2 | -1/+1 |
| | | | | | | | | | | | | | | | | | | Turns out not all rooms are in `rooms`, so lets fetch the room list from `current_state_events`. We move the delta file to force it to be run again. | ||||
| | * | Merge pull request #5774 from matrix-org/erikj/fix_rejected_membership | Erik Johnston | 2019-07-29 | 1 | -0/+6 |
| | |\ | | | | | | | | | Fix room summary when rejected events are in state | ||||
| | | * | Fix room summary when rejected events are in state | Erik Johnston | 2019-07-26 | 1 | -0/+6 |
| | | | | | | | | | | | | | | | | | | | | | | | | Annoyingly, `current_state_events` table can include rejected events, in which case the membership column will be null. To work around this lets just always filter out null membership for now. | ||||
| | * | | Merge pull request #5752 from matrix-org/erikj/forgotten_user | Erik Johnston | 2019-07-29 | 2 | -35/+123 |
| | |\ \ | | | | | | | | | | | Remove some more joins on room_memberships | ||||
| | | * | | Expand comment | Erik Johnston | 2019-07-29 | 1 | -0/+5 |
| | | | | | |||||
| | | * | | Remove lost comment | Erik Johnston | 2019-07-29 | 1 | -7/+0 |
| | | |/ | |||||
| | | * | Remove join when calculating room summaries. | Erik Johnston | 2019-07-24 | 1 | -13/+21 |
| | | | | |||||
| | | * | Remove join on room_memberships when fetching rooms for user. | Erik Johnston | 2019-07-24 | 1 | -22/+36 |
| | | | | |||||
| | | * | Add function to get all forgotten rooms for user | Erik Johnston | 2019-07-24 | 2 | -0/+68 |
| | | | | | | | | | | | | | | | | | | | | | | | | This will allow us to efficiently filter out rooms that have been forgotten in other queries without having to join against the `room_memberships` table. | ||||
| | * | | Fix current_state bg update to work on old SQLite | Erik Johnston | 2019-07-29 | 1 | -2/+2 |
| | | | | |||||
| | * | | Merge branch 'master' into develop | Richard van der Hoff | 2019-07-26 | 1 | -0/+4 |
| | |\ \ | |||||
| | | * | | Fix DoS when there is a cycle in redaction events | Richard van der Hoff | 2019-07-26 | 1 | -0/+4 |
| | | | | | | | | | | | | | | | | | | | | | | | | | Make sure that synapse doesn't explode when a redaction redacts itself, or there is a larger cycle. | ||||
| | * | | | Merge pull request #5767 from matrix-org/rav/redactions/cross_room_id | Richard van der Hoff | 2019-07-25 | 1 | -0/+27 |
| | |\| | | | | | | | | | | | | log when a redaction attempts to redact an event in a different room | ||||
| | | * | | log when a redaction attempts to redact an event in a different room | Richard van der Hoff | 2019-07-25 | 1 | -0/+27 |
| | | | | | |||||
| | * | | | Stop trying to fetch events with event_id=None. (#5753) | Richard van der Hoff | 2019-07-24 | 2 | -10/+15 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `None` is not a valid event id, so queuing up a database fetch for it seems like a silly thing to do. I considered making `get_event` return `None` if `event_id is None`, but then its interaction with `allow_none` seemed uninituitive, and strong typing ftw. | ||||
| | * | | | Replace returnValue with return (#5736) | Amber Brown | 2019-07-23 | 37 | -362/+321 |
| | | |/ | | |/| | |||||
| | * | | Speed up current state background update. | Erik Johnston | 2019-07-23 | 1 | -18/+30 |
| | | | | | | | | | | | | | | | | | | | | Turns out that storing huge JSON arrays in the progress JSON isn't something that postgres particularly likes. | ||||
| | * | | Add `user_type` to returned fields in admin API user list endpoints | Jason Robinson | 2019-07-22 | 1 | -3/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Mostly user type will be empty (normal user) but there is also the "support" user type. Signed-off-by: Jason Robinson <jasonr@matrix.org> | ||||
* | | | | Merge branch 'cross-signing_hidden' into cross-signing_keys | Hubert Chathi | 2019-07-30 | 3 | -21/+17 |
|\| | | | |||||
| * | | | apply changes from PR review | Hubert Chathi | 2019-07-30 | 3 | -20/+17 |
| | | | | |||||
* | | | | allow uploading keys for cross-signing | Hubert Chathi | 2019-07-25 | 4 | -3/+274 |
|/ / / | |||||
* / / | allow devices to be marked as "hidden" | Hubert Chathi | 2019-07-24 | 2 | -16/+65 |
|/ / | | | | | | | | | This is a prerequisite for cross-signing, as it allows us to create other things that live within the device namespace, so they can be used for signatures. | ||||
* | | Merge pull request #5720 from matrix-org/erikj/transactions_upsert | Erik Johnston | 2019-07-19 | 1 | -0/+20 |
|\ \ | | | | | | | Use upsert when updating destination retry interval | ||||
| * | | Use upsert when updating destination retry interval | Erik Johnston | 2019-07-19 | 1 | -0/+20 |
| |/ | |||||
* | | Merge pull request #5713 from matrix-org/erikj/use_cache_for_filtered_state | Erik Johnston | 2019-07-19 | 1 | -2/+6 |
|\ \ | | | | | | | Delegate to cached version when using get_filtered_current_state_ids | ||||
| * | | Delegate to cached version when using get_filtered_current_state_ids | Erik Johnston | 2019-07-18 | 1 | -2/+6 |
| |/ | | | | | | | In the case where it gets called with `StateFilter.all()` | ||||
* | | Merge pull request #5706 from matrix-org/erikj/add_memberships_to_current_state | Erik Johnston | 2019-07-19 | 7 | -41/+194 |
|\ \ | |/ |/| | Add membership column to current_state_events table | ||||
| * | LoggingTransaction accepts None for callback lists. | Erik Johnston | 2019-07-19 | 3 | -6/+16 |
| | | | | | | | | | | Its a bit disingenuousto give LoggingTransaction lists to append callbacks to if we're not going to run the callbacks. | ||||
| * | Update comment for new column | Erik Johnston | 2019-07-19 | 1 | -0/+3 |
| | | |||||
| * | Use the current_state_events.membership column | Erik Johnston | 2019-07-18 | 1 | -17/+37 |
| | | |||||
| * | Track if current_state_events.membership is up to date | Erik Johnston | 2019-07-18 | 1 | -0/+45 |
| | | |||||
| * | Add background update for current_state_events.membership column | Erik Johnston | 2019-07-18 | 2 | -0/+54 |
| | | |||||
| * | Add membership column to current_state_events table. | Erik Johnston | 2019-07-18 | 5 | -20/+41 |
| | | | | | | | | | | It turns out that doing a join is surprisingly expensive for the DB to do when room_membership table is larger than the disk cache. | ||||
* | | Ignore redactions of m.room.create events (#5701) | Richard van der Hoff | 2019-07-17 | 1 | -0/+12 |
| | | |||||
* | | More refactoring in `get_events_as_list` (#5707) | Richard van der Hoff | 2019-07-17 | 1 | -27/+37 |
| | | | | | | | | | | | | | | | | We can now use `_get_events_from_cache_or_db` rather than going right back to the database, which means that (a) we can benefit from caching, and (b) it opens the way forward to more extensive checks on the original event. We now always require the original event to exist before we will serve up a redaction. | ||||
* | | Fix redaction authentication (#5700) | Richard van der Hoff | 2019-07-17 | 1 | -85/+129 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ensures that redactions are correctly authenticated for recent room versions. There are a few things going on here: * `_fetch_event_rows` is updated to return a dict rather than a list of rows. * Rather than returning multiple copies of an event which was redacted multiple times, it returns the redactions as a list within the dict. * It also returns the actual rejection reason, rather than merely the fact that it was rejected, so that we don't have to query the table again in `_get_event_from_row`. * The redaction handling is factored out of `_get_event_from_row`, and now checks if any of the redactions are valid. | ||||
* | | Refactor `get_events_as_list` (#5699) | Richard van der Hoff | 2019-07-17 | 1 | -48/+74 |
|/ | | | | | | | | | | | A couple of changes here: * get rid of a redundant `allow_rejected` condition - we should already have filtered out any rejected events before we get to that point in the code, and the redundancy is confusing. Instead, let's stick in an assertion just to make double-sure we aren't leaking rejected events by mistake. * factor out a `_get_events_from_cache_or_db` method, which is going to be important for a forthcoming fix to redactions. | ||||
* | Merge pull request #5589 from matrix-org/erikj/admin_exfiltrate_data | Erik Johnston | 2019-07-15 | 2 | -6/+28 |
|\ | | | | | Add basic function to get all data for a user out of synapse | ||||
| * | Fixup docstrings | Erik Johnston | 2019-07-12 | 1 | -7/+5 |
| | | |||||
| * | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2019-07-05 | 6 | -39/+25 |
| |\ | | | | | | | | | | erikj/admin_exfiltrate_data | ||||
| * | | Assume key existence. Update docstrings | Erik Johnston | 2019-07-05 | 1 | -6/+10 |
| | | | |||||
| * | | Add basic function to get all data for a user out of synapse | Erik Johnston | 2019-07-02 | 1 | -0/+20 |
| | | | |||||
* | | | Implement access token expiry (#5660) | Richard van der Hoff | 2019-07-12 | 2 | -5/+32 |
| | | | | | | | | | | | | Record how long an access token is valid for, and raise a soft-logout once it expires. | ||||
* | | | fix typo: backgroud -> background | Andrew Morgan | 2019-07-12 | 1 | -4/+4 |
| | | | |||||
* | | | small typo fix (#5655) | Andrew Morgan | 2019-07-11 | 1 | -1/+1 |
| | | | |||||
* | | | Remove access-token support from RegistrationStore.register (#5642) | Richard van der Hoff | 2019-07-10 | 1 | -20/+4 |
| | | | | | | | | | | | | | | | The 'token' param is no longer used anywhere except the tests, so let's kill that off too. | ||||
* | | | Include the original event in /relations (#5626) | Andrew Morgan | 2019-07-09 | 1 | -1/+1 |
| | | | | | | | | | When asking for the relations of an event, include the original event in the response. This will mostly be used for efficiently showing edit history, but could be useful in other circumstances. | ||||
* | | | Remove support for invite_3pid_guest. (#5625) | Richard van der Hoff | 2019-07-05 | 1 | -47/+0 |
| |/ |/| | | | | | | | | | | | | | | | This has never been documented, and I'm not sure it's ever been used outside sytest. It's quite a lot of poorly-maintained code, so I'd like to get rid of it. For now I haven't removed the database table; I suggest we leave that for a future clearout. | ||||
* | | remove dead transaction persist code (#5622) | Richard van der Hoff | 2019-07-05 | 1 | -28/+0 |
| | | | | | | | | this hasn't done anything for years | ||||
* | | Move logging utilities out of the side drawer of util/ and into logging/ (#5606) | Amber Brown | 2019-07-04 | 4 | -7/+7 |
| | | |||||
* | | Fix a number of "Starting txn from sentinel context" warnings (#5605) | Richard van der Hoff | 2019-07-03 | 2 | -4/+18 |
|/ | | | | Fixes #5602, #5603 | ||||
* | Review comments | Erik Johnston | 2019-06-27 | 1 | -3/+1 |
| | |||||
* | Use batch_iter and correct docstring | Erik Johnston | 2019-06-26 | 1 | -15/+12 |
| | |||||
* | Rename get_users_whose_devices_changed | Erik Johnston | 2019-06-26 | 1 | -3/+3 |
| | |||||
* | Refactor get_user_ids_changed to pull less from DB | Erik Johnston | 2019-06-26 | 1 | -10/+41 |
| | | | | | | | | | | | When a client asks for users whose devices have changed since a token we used to pull *all* users from the database since the token, which could easily be thousands of rows for old tokens. This PR changes this to only check for changes for users the client is actually interested in. Fixes #5553 | ||||
* | Merge pull request #5499 from matrix-org/rav/cleanup_metrics | Richard van der Hoff | 2019-06-24 | 1 | -22/+13 |
|\ | | | | | Cleanups and sanity-checking in cpu and db metrics | ||||
| * | black | Richard van der Hoff | 2019-06-24 | 1 | -6/+2 |
| | | |||||
| * | Merge branch 'develop' into rav/cleanup_metrics | Richard van der Hoff | 2019-06-24 | 33 | -254/+306 |
| |\ | |||||
| * | | Simplify PerformanceCounters.update interface | Richard van der Hoff | 2019-06-19 | 1 | -11/+12 |
| | | | | | | | | | | | | | | | we already have the duration for the update, so may as well use it rather than passing extra params around and recalculating it. | ||||
| * | | Remove unused _get_event_counters | Richard van der Hoff | 2019-06-19 | 1 | -7/+1 |
| | | | | | | | | | | | | This has been redundant since cdb3757942fefdcdc3d33b9c6d7c9e44decefd6f. | ||||
* | | | Merge pull request #5498 from matrix-org/rav/fix_clock_reversal | Richard van der Hoff | 2019-06-24 | 1 | -6/+14 |
|\ \ \ | |_|/ |/| | | Use monotonic clock where possible for metrics | ||||
| * | | Use monotonic clock where possible for metrics | Richard van der Hoff | 2019-06-19 | 1 | -6/+14 |
| | | | | | | | | | | | | | | | | | | | | | | | | Fixes intermittent errors observed on Apple hardware which were caused by time.clock() appearing to go backwards when called from different threads. Also fixes a bug where database activity times were logged as 1/1000 of their correct ratio due to confusion between milliseconds and seconds. | ||||
* | | | Fix "Unexpected entry in 'full_schemas'" log warning (#5509) | Richard van der Hoff | 2019-06-21 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | There is a README.txt which always sets off this warning, which is a bit alarming when you first start synapse. I don't think we need to warn about this. | ||||
* | | | Black | Erik Johnston | 2019-06-20 | 1 | -2/+2 |
| | | | |||||
* | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2019-06-20 | 34 | -276/+286 |
|\ \ \ | | | | | | | | | | | | | erikj/histogram_extremities | ||||
| * | | | Run Black. (#5482) | Amber Brown | 2019-06-20 | 33 | -253/+252 |
| | | | | |||||
| * | | | Merge pull request #5480 from matrix-org/erikj/extremities_dummy_events | Erik Johnston | 2019-06-19 | 1 | -0/+29 |
| |\ \ \ | | | | | | | | | | | Add experimental option to reduce extremities. | ||||
| | * | | | Add experimental option to reduce extremities. | Erik Johnston | 2019-06-18 | 1 | -0/+29 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. | ||||
| * | | | | Fix typo in deactivation background job | Brendan Abolivier | 2019-06-19 | 1 | -1/+1 |
| | |_|/ | |/| | | |||||
| * | | | Remove Postgres 9.4 support (#5448) | Amber Brown | 2019-06-18 | 2 | -24/+6 |
| |/ / | |||||
* | | | Add descriptions and remove redundant set(..) | Erik Johnston | 2019-06-19 | 1 | -3/+5 |
| | | | |||||
* | | | Add metrics for len of new extremities persisted. | Erik Johnston | 2019-06-17 | 1 | -1/+23 |
|/ / | | | | | | | | | Of new events being persisted add metrics for total size of forward extremities and number of unchanged, "stale" extremities. | ||||
* | | Merge pull request #5461 from matrix-org/erikj/histograms_are_cumalitive | Erik Johnston | 2019-06-14 | 1 | -1/+2 |
|\ \ | | | | | | | Prometheus histograms are cumalative | ||||
| * | | Prometheus histograms are cumalative | Erik Johnston | 2019-06-14 | 1 | -1/+2 |
| | | | |||||
* | | | Fix background job for deactivated flag | Brendan Abolivier | 2019-06-14 | 1 | -2/+4 |
| | | | |||||
* | | | Don't send renewal emails to deactivated users | Brendan Abolivier | 2019-06-14 | 2 | -2/+16 |
|/ / | |||||
* | | Track deactivated accounts in the database (#5378) | Brendan Abolivier | 2019-06-14 | 2 | -0/+133 |
| | | |||||
* | | Expose statistics on extrems to prometheus (#5384) | Amber Brown | 2019-06-13 | 1 | -13/+31 |
| | | |||||
* | | Merge branch 'release-v1.0.0' of github.com:matrix-org/synapse into develop | Erik Johnston | 2019-06-11 | 2 | -1/+5 |
|\| | |||||
| * | Fix defaults on checking threepids | Erik Johnston | 2019-06-10 | 1 | -1/+1 |
| | | |||||
| * | Fix bug sending federation transactions with lots of EDUs | Erik Johnston | 2019-06-10 | 1 | -0/+4 |
| | | | | | | | | | | | | If we try and send a transaction with lots of EDUs and we run out of space, we call get_new_device_msgs_for_remote with a limit of 0, which then failed. | ||||
* | | add monthly active users to phonehome stats (#5252) | Neil Johnson | 2019-06-10 | 1 | -15/+29 |
|/ | | | | * add monthly active users to phonehome stats | ||||
* | Fix key verification when key stored with null valid_until_ms | Erik Johnston | 2019-06-10 | 1 | -0/+8 |
| | | | | | | | | | | Some keys are stored in the synapse database with a null valid_until_ms which caused an exception to be thrown when using that key. We fix this by treating nulls as zeroes, i.e. they keys will match verification requests with a minimum_valid_until_ms of zero (i.e. don't validate ts) but will not match requests with a non-zero minimum_valid_until_ms. Fixes #5391. | ||||
* | Prevent multiple device list updates from breaking a batch send (#5156) | Andrew Morgan | 2019-06-06 | 1 | -29/+123 |
| | | | fixes #5153 | ||||
* | Merge pull request #5320 from matrix-org/hawkowl/full-schema-v1 | Erik Johnston | 2019-06-06 | 5 | -2/+2352 |
|\ | | | | | Make a full SQL schema | ||||
| * | fix maybe | Amber H. Brown | 2019-06-07 | 1 | -20/+2 |
| | | |||||
| * | just user dir? | Amber H. Brown | 2019-06-07 | 1 | -1/+19 |
| | | |||||
| * | remove background updates that arent needed | Amber H. Brown | 2019-06-07 | 1 | -33/+1 |
| | | |||||
| * | add more comments | Amber Brown | 2019-06-06 | 1 | -0/+5 |
| | | |||||
| * | add stuff in bg updates | Amber Brown | 2019-06-04 | 1 | -10/+62 |
| | | |||||
| * | WHY IS THIS CALLED A SLIGHTLY DIFFERENT THING | Amber Brown | 2019-06-03 | 1 | -0/+1 |
| | | |||||
| * | more fix | Amber Brown | 2019-06-03 | 1 | -0/+38 |
| | | |||||
| * | fix schemas | Amber Brown | 2019-06-03 | 4 | -61/+20 |
| | | |||||
| * | full schema | Amber Brown | 2019-06-03 | 3 | -0/+2315 |
| | | |||||
| * | prepare | Amber Brown | 2019-06-03 | 1 | -2/+14 |
| | | |||||
* | | Add ability to perform password reset via email without trusting the ↵ | Andrew Morgan | 2019-06-06 | 4 | -5/+324 |
| | | | | | | | | | | | | | | | | | | | | | | | | identity server (#5377) Sends password reset emails from the homeserver instead of proxying to the identity server. This is now the default behaviour for security reasons. If you wish to continue proxying password reset requests to the identity server you must now enable the email.trust_identity_server_for_password_resets option. This PR is a culmination of 3 smaller PRs which have each been separately reviewed: * #5308 * #5345 * #5368 | ||||
* | | Merge pull request #5221 from matrix-org/erikj/fix_worker_sytest | Erik Johnston | 2019-06-06 | 1 | -1/+11 |
|\ \ | | | | | | | Fix get_max_topological_token to never return None | ||||
| * | | Better words | Erik Johnston | 2019-06-06 | 1 | -1/+1 |
| | | | |||||
| * | | Fix get_max_topological_token to never return None | Erik Johnston | 2019-05-21 | 1 | -1/+11 |
| | | | |||||
* | | | Fix background updates to handle redactions/rejections (#5352) | Erik Johnston | 2019-06-06 | 1 | -0/+37 |
| | | | | | | | | | | | | | | | | | | | | | | | | * Fix background updates to handle redactions/rejections In background updates based on current state delta stream we need to handle that we may not have all the events (or at least that `get_events` may raise an exception). | ||||
* | | | Fix | Erik Johnston | 2019-06-03 | 1 | -1/+2 |
| | | | |||||
* | | | Ignore room state with null bytes in for room stats | Erik Johnston | 2019-06-03 | 1 | -0/+15 |
| |/ |/| | |||||
* | | Merge pull request #5276 from matrix-org/babolivier/account_validity_job_delta | Erik Johnston | 2019-05-31 | 1 | -2/+20 |
|\ \ | | | | | | | Allow configuring a range for the account validity startup job | ||||
| * | | Move delta from +10% to -10% | Brendan Abolivier | 2019-05-31 | 1 | -2/+2 |
| | | | |||||
| * | | Make max_delta equal to period * 10% | Brendan Abolivier | 2019-05-31 | 1 | -4/+3 |
| | | | |||||
| * | | Allow configuring a range for the account validity startup job | Brendan Abolivier | 2019-05-28 | 1 | -2/+21 |
| | | | | | | | | | | | | | | | When enabling the account validity feature, Synapse will look at startup for registered account without an expiration date, and will set one equals to 'now + validity_period' for them. On large servers, it can mean that a large number of users will have the same expiration date, which means that they will all be sent a renewal email at the same time, which isn't ideal. In order to mitigate this, this PR allows server admins to define a 'max_delta' so that the expiration date is a random value in the [now + validity_period ; now + validity_period + max_delta] range. This allows renewal emails to be progressively sent over a configured period instead of being sent all in one big batch. | ||||
* | | | Merge pull request #5294 from matrix-org/erikj/speed_up_room_stats | Erik Johnston | 2019-05-31 | 4 | -87/+111 |
|\ \ \ | | | | | | | | | Speed up room stats background update | ||||
| * | | | Add indices. Remove room_ids accidentally added | Erik Johnston | 2019-05-31 | 2 | -13/+56 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have to do this by re-inserting a background update and recreating tables, as the tables only get created during a background update and will later be deleted. We also make sure that we remove any entries that should have been removed but weren't due to a race that has been fixed in a previous commit. | ||||
| * | | | Join against events to use its room_id index | Erik Johnston | 2019-05-30 | 1 | -1/+6 |
| | | | | |||||
| * | | | Move deletion from table inside txn | Erik Johnston | 2019-05-30 | 1 | -2/+5 |
| | | | | |||||
| * | | | Fetch membership counts all at once | Erik Johnston | 2019-05-30 | 2 | -38/+18 |
| | | | | |||||
| * | | | Get events all at once | Erik Johnston | 2019-05-30 | 1 | -33/+26 |
| | | | | |||||
* | | | | Add index to temp table | Erik Johnston | 2019-05-30 | 1 | -0/+1 |
|/ / / | |||||
* | | | Merge pull request #5278 from matrix-org/erikj/cleanup_bad_extremities | Erik Johnston | 2019-05-30 | 5 | -181/+436 |
|\ \ \ | | | | | | | | | Add DB bg update to cleanup extremities. | ||||
| * | | | Update synapse/storage/events_bg_updates.py | Erik Johnston | 2019-05-30 | 1 | -1/+1 |
| | | | | | | | | | | | | Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | ||||
| * | | | Rename constant | Erik Johnston | 2019-05-30 | 1 | -3/+3 |
| | | | | |||||
| * | | | Move event background updates to a separate file | Erik Johnston | 2019-05-30 | 3 | -369/+405 |
| | | | | |||||
| * | | | Fixup comments and logging | Erik Johnston | 2019-05-30 | 2 | -9/+15 |
| | | | | |||||
| * | | | Log actual number of entries deleted | Erik Johnston | 2019-05-29 | 2 | -5/+13 |
| | | | | |||||
| * | | | Add DB bg update to cleanup extremities. | Erik Johnston | 2019-05-29 | 2 | -0/+205 |
| | | | | | | | | | | | | | | | | | | | | Due to #5269 we may have extremities in our DB that we shouldn't have, so lets add a cleanup task such to remove those. | ||||
* | | | | Implement the SHHS complexity API (#5216) | Amber Brown | 2019-05-30 | 1 | -1/+49 |
|/ / / | |||||
* | | | Correctly filter out extremities with soft failed prevs (#5274) | Erik Johnston | 2019-05-29 | 1 | -3/+79 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we receive a soft failed event we, correctly, *do not* update the forward extremity table with the event. However, if we later receive an event that references the soft failed event we then need to remove the soft failed events prev events from the forward extremities table, otherwise we just build up forward extremities. Fixes #5269 | ||||
* | | | Merge pull request #5268 from matrix-org/babolivier/account_validity_fix_schema | Brendan Abolivier | 2019-05-28 | 1 | -0/+3 |
|\| | | | | | | | | Fix schema update for account validity | ||||
| * | | Fix schema update for account validity | Brendan Abolivier | 2019-05-28 | 1 | -0/+3 |
| | | | |||||
* | | | Fix logging for room stats background update | Travis Ralston | 2019-05-25 | 1 | -1/+1 |
| | | | |||||
* | | | Store key validity time in the storage layer | Richard van der Hoff | 2019-05-23 | 2 | -10/+44 |
| | | | | | | | | | | | | | | | | | | | | | | | | This is a first step to checking that the key is valid at the required moment. The idea here is that, rather than passing VerifyKey objects in and out of the storage layer, we instead pass FetchKeyResult objects, which simply wrap the VerifyKey and add a valid_until_ts field. | ||||
* | | | Rewrite store_server_verify_key to store several keys at once (#5234) | Richard van der Hoff | 2019-05-23 | 1 | -26/+39 |
| | | | | | | | | | | | | | | | 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. | ||||
* | | | Simplifications and comments in do_auth (#5227) | Richard van der Hoff | 2019-05-23 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | I was staring at this function trying to figure out wtf it was actually doing. This is (hopefully) a non-functional refactor which makes it a bit clearer. | ||||
* | | | Room Statistics (#4338) | Amber Brown | 2019-05-21 | 6 | -3/+597 |
| | | | |||||
* | | | Merge pull request #5203 from matrix-org/erikj/aggregate_by_sender | Erik Johnston | 2019-05-21 | 1 | -1/+1 |
|\ \ \ | | | | | | | | | Only count aggregations from distinct senders | ||||
| * | | | Only count aggregations from distinct senders | Erik Johnston | 2019-05-17 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | As a user isn't allowed to send a single emoji more than once. | ||||
* | | | | Merge pull request #5212 from matrix-org/erikj/deny_multiple_reactions | Erik Johnston | 2019-05-21 | 1 | -3/+45 |
|\ \ \ \ | | | | | | | | | | | Block attempts to annotate the same event twice | ||||
| * | | | | Block attempts to annotate the same event twice | Erik Johnston | 2019-05-20 | 1 | -3/+45 |
| | |_|/ | |/| | | |||||
* | | | | Exclude soft-failed events from fwd-extremity candidates. (#5146) | Richard van der Hoff | 2019-05-21 | 1 | -2/+7 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When considering the candidates to be forward-extremities, we must exclude soft failures. Hopefully fixes #5090. | ||||
* | | | | Merge pull request #5204 from ↵ | Brendan Abolivier | 2019-05-21 | 2 | -12/+62 |
|\ \ \ \ | |/ / / |/| | / | | |/ | |/| | matrix-org/babolivier/account_validity_expiration_date Add startup background job for account validity | ||||
| * | | Do the select and insert in a single transaction | Brendan Abolivier | 2019-05-21 | 1 | -10/+6 |
| | | | |||||
| * | | Add startup background job for account validity | Brendan Abolivier | 2019-05-17 | 2 | -12/+66 |
| | | | | | | | | | | | | If account validity is enabled in the server's configuration, this job will run at startup as a background job and will stick an expiration date to any registered account missing one. | ||||
* | | | Rename relation types to match MSC | Erik Johnston | 2019-05-20 | 1 | -4/+4 |
| | | | |||||
* | | | Merge pull request #5209 from matrix-org/erikj/reactions_base | Erik Johnston | 2019-05-20 | 4 | -4/+476 |
|\ \ \ | | | | | | | | | Land basic reaction and edit support. | ||||
| * | | | Correctly update aggregation counts after redaction | Erik Johnston | 2019-05-20 | 2 | -0/+20 |
| | |/ | |/| | |||||
| * | | Fixup bsaed on review comments | Erik Johnston | 2019-05-17 | 1 | -15/+17 |
| | | | |||||
| * | | Add basic editing support | Erik Johnston | 2019-05-16 | 1 | -2/+58 |
| | | | |||||
| * | | Move parsing of tokens out of storage layer | Erik Johnston | 2019-05-16 | 1 | -14/+2 |
| | | | |||||
| * | | Indirect tuple conversion | Erik Johnston | 2019-05-16 | 1 | -0/+6 |
| | | | |||||
| * | | Fix relations in worker mode | Erik Johnston | 2019-05-16 | 2 | -5/+11 |
| | | | |||||
| * | | Add cache to relations | Erik Johnston | 2019-05-16 | 1 | -0/+8 |
| | | | |||||
| * | | Add aggregations API | Erik Johnston | 2019-05-16 | 1 | -6/+219 |
| | | | |||||
| * | | Actually check for None rather falsey | Erik Johnston | 2019-05-15 | 1 | -2/+2 |
| | | | |||||
| * | | Add simple pagination API | Erik Johnston | 2019-05-15 | 1 | -0/+80 |
| | | | |||||
| * | | Add simple send_relation API and track in DB | Erik Johnston | 2019-05-15 | 4 | -0/+93 |
| | | | |||||
* | | | Spelling and clarifications | Erik Johnston | 2019-05-17 | 1 | -5/+9 |
| | | | |||||
* | | | Update docstring | Erik Johnston | 2019-05-16 | 1 | -1/+12 |
|/ / | |||||
* / | Make generating SQL bounds for pagination generic | Erik Johnston | 2019-05-15 | 1 | -61/+118 |
|/ | | | | | This will allow us to reuse the same structure when we paginate e.g. relations | ||||
* | Update docstring with correct type | Erik Johnston | 2019-05-15 | 1 | -1/+1 |
| | | | Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | ||||
* | Expose DataStore._get_events as get_events_as_list | Erik Johnston | 2019-05-14 | 5 | -29/+53 |
| | | | | This is in preparation for reaction work which requires it. | ||||
* | Limit the number of EDUs in transactions to 100 as expected by receiver (#5138) | Quentin Dufour | 2019-05-09 | 1 | -1/+1 |
| | | | Fixes #3951. | ||||
* | Fix infinite loop in presence handler | Richard van der Hoff | 2019-04-26 | 1 | -0/+18 |
| | | | | Fixes #5102 | ||||
* | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2019-04-17 | 69 | -3786/+2805 |
|\ | | | | | | | babolivier/account_expiration | ||||
| * | Merge pull request #5047 from matrix-org/babolivier/account_expiration | Brendan Abolivier | 2019-04-17 | 2 | -18/+159 |
| |\ | | | | | | | Send out emails with links to extend an account's validity period | ||||
| * \ | Merge pull request #5033 from matrix-org/erikj/fix_schema_delta | Erik Johnston | 2019-04-10 | 1 | -1/+3 |
| |\ \ | | | | | | | | | Fix schema upgrade when dropping tables | ||||
| | * | | Fix schema upgrade when dropping tables | Erik Johnston | 2019-04-09 | 1 | -1/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to drop tables in the correct order due to foreign table constraints (on `application_services`), otherwise the DROP TABLE command will fail. Introduced in #4992. | ||||
| * | | | Merge pull request #5027 from matrix-org/babolivier/account_expiration | Brendan Abolivier | 2019-04-09 | 2 | -0/+54 |
| |\ \ \ | | |/ / | |/| | | Add time-based account expiration | ||||
| * | | | Rewrite Datastore.get_server_verify_keys | Richard van der Hoff | 2019-04-09 | 1 | -28/+46 |
| | | | | | | | | | | | | | | | | Rewrite this so that it doesn't hammer the database. | ||||
| * | | | Remove unused server_tls_certificates functions (#5028) | Richard van der Hoff | 2019-04-08 | 3 | -59/+5 |
| | | | | | | | | | | | | | | | | These have been unused since #4120, and with the demise of perspectives, it is unlikely that they will ever be used again. | ||||
| * | | | drop tables listed in #1830 (#4992) | Neil Johnson | 2019-04-08 | 24 | -752/+42 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tables dropped: * application_services, * application_services_regex, * transaction_id_to_pdu, * stats_reporting * current_state_resets * event_content_hashes * event_destinations * event_edge_hashes * event_signatures * feedback * room_hosts * state_forward_extremities | ||||
| * | | | Merge pull request #5001 from matrix-org/rav/keyring_cleanups | Richard van der Hoff | 2019-04-08 | 1 | -2/+2 |
| |\ \ \ | | | | | | | | | | | Cleanups in the Keyring | ||||
| | * | | | Fix docstring on get_server_keys_json | Richard van der Hoff | 2019-04-04 | 1 | -2/+2 |
| | | | | | |||||
| * | | | | Clean up the database pagination code (#5007) | Amber Brown | 2019-04-05 | 2 | -67/+63 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rewrite & simplify * changelog * cleanup potential sql injection | ||||
| * | | | | Add functions to delete a group | Erik Johnston | 2019-04-03 | 1 | -0/+37 |
| | | | | | |||||
| * | | | | Fix grammar and document get_current_users_in_room (#4998) | Andrew Morgan | 2019-04-03 | 1 | -1/+1 |
| |/ / / | |||||
| * | | | Remove presence lists (#4989) | Neil Johnson | 2019-04-03 | 4 | -96/+20 |
| | | | | | | | | | | | | Remove presence list support as per MSC 1819 | ||||
| * | | | Merge pull request #4982 from matrix-org/erikj/msc1915 | Erik Johnston | 2019-04-03 | 2 | -0/+141 |
| |\ \ \ | | | | | | | | | | | Implement MSC1915 - 3PID unbind APIs | ||||
| | * | | | Fixup docstrings | Erik Johnston | 2019-04-02 | 2 | -5/+5 |
| | | | | | |||||
| | * | | | Grandfather in existing user threepids | Erik Johnston | 2019-04-01 | 2 | -0/+37 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We assume, as we did before, that users bound their threepid to one of the trusted identity servers. So we simply fill the new table with all threepids in `user_threepids` joined with the trusted identity servers. | ||||
| | * | | | Track IS used to bind 3PIDs | Erik Johnston | 2019-04-01 | 2 | -0/+104 |
| | | | | | | | | | | | | | | | | | | | | | | | | | This will then be used to know which IS to default to when unbinding the threepid. | ||||
| * | | | | Run black on the rest of the storage module (#4996) | Amber Brown | 2019-04-03 | 41 | -2455/+2130 |
| | | | | | |||||
| * | | | | Make starting pushers faster during start up | Erik Johnston | 2019-04-02 | 1 | -0/+30 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We start all pushers on start up and immediately start a background process to fetch push to send. This makes start up incredibly painful when dealing with many pushers. Instead, let's do a quick fast DB check to see if there *may* be push to send and only start the background processes for those pushers. We also stagger starting up and doing those checks so that we don't try and handle all pushers at once. | ||||
| * | | | | Fix sync bug when accepting invites (#4956) | Richard van der Hoff | 2019-04-02 | 2 | -11/+18 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hopefully this time we really will fix #4422. We need to make sure that the cache on `get_rooms_for_user_with_stream_ordering` is invalidated *before* the SyncHandler is notified for the new events, and we can now do so reliably via the `events` stream. | ||||
| * | | | | Collect room-version variations into one place (#4969) | Richard van der Hoff | 2019-04-01 | 1 | -1/+2 |
| |/ / / | | | | | | | | | | | | | 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. | ||||
| * | | | Merge pull request #4955 from matrix-org/rav/merge_state_into_events | Richard van der Hoff | 2019-03-28 | 1 | -3/+0 |
| |\ \ \ | | | | | | | | | | | Combine the CurrentStateDeltaStream into the EventStream | ||||
| | * | | | Combine the CurrentStateDeltaStream into the EventStream | Richard van der Hoff | 2019-03-27 | 1 | -3/+0 |
| | | | | | |||||
| * | | | | Run `black` on some storage modules that the stats branch touches (#4959) | Amber Brown | 2019-03-29 | 2 | -380/+335 |
| |/ / / | |||||
* | | / | Add management endpoints for account validity | Brendan Abolivier | 2019-04-17 | 1 | -12/+17 |
| |_|/ |/| | | |||||
* | | | Send out emails with links to extend an account's validity period | Brendan Abolivier | 2019-04-17 | 2 | -18/+159 |
| |/ |/| | |||||
* | | Add account expiration feature | Brendan Abolivier | 2019-04-09 | 3 | -1/+55 |
|/ | |||||
* | Use the state event amount for userdir import batching, not room count (#4944) | Amber Brown | 2019-03-27 | 1 | -8/+20 |
| | |||||
* | Fix bug where read-receipts lost their timestamps (#4927) | Richard van der Hoff | 2019-03-25 | 1 | -1/+3 |
| | | | | | Make sure that they are sent correctly over the replication stream. Fixes: #4898 | ||||
* | Refactor out state delta handling into its own class (#4917) | Amber Brown | 2019-03-25 | 2 | -64/+76 |
| | |||||
* | Fix upsert | Erik Johnston | 2019-03-21 | 1 | -0/+1 |
| | |||||
* | comment block_room | Erik Johnston | 2019-03-20 | 1 | -0/+9 |
| | |||||
* | Allow blocking a room multiple times | Erik Johnston | 2019-03-20 | 1 | -2/+4 |
| | |||||
* | Batching in the user directory import (#4900) | Amber Brown | 2019-03-21 | 1 | -0/+13 |
| | |||||
* | Fix user directory background update (#4887) | Erik Johnston | 2019-03-19 | 1 | -1/+1 |
| | |||||
* | Migrate the user directory initial population to a background task (#4864) | Amber Brown | 2019-03-19 | 3 | -96/+312 |
| | |||||
* | Merge pull request #4846 from matrix-org/hawkowl/userdir-search | Erik Johnston | 2019-03-14 | 4 | -75/+92 |
|\ | | | | | Improve searching in the userdir | ||||
| * | fixup | Amber Brown | 2019-03-13 | 1 | -1/+1 |
| | | |||||
| * | fixup | Amber Brown | 2019-03-13 | 2 | -55/+11 |
| | | |||||
| * | fixup | Amber Brown | 2019-03-12 | 1 | -1/+1 |
| | | |||||
| * | fixup | Amber Brown | 2019-03-12 | 1 | -1/+2 |
| | | |||||
| * | fixup | Amber Brown | 2019-03-12 | 2 | -113/+69 |
| | | |||||
| * | fixup | Amber Brown | 2019-03-12 | 1 | -1/+1 |
| | | |||||
| * | use the old method | Amber Brown | 2019-03-12 | 1 | -3/+2 |
| | | |||||
| * | fix | Amber Brown | 2019-03-12 | 1 | -1/+1 |
| | | |||||
| * | pep8 | Amber Brown | 2019-03-12 | 1 | -2/+1 |
| | | |||||
| * | fixes | Amber Brown | 2019-03-12 | 2 | -9/+56 |
| | | |||||
| * | Merge remote-tracking branch 'origin/develop' into hawkowl/userdir-search | Amber Brown | 2019-03-11 | 2 | -15/+2 |
| |\ | |||||
| * | | initial | Amber Brown | 2019-03-11 | 3 | -3/+62 |
| | | | |||||
* | | | Transfer local user's push rules on room upgrade (#4838) | Andrew Morgan | 2019-03-12 | 1 | -0/+57 |
| |/ |/| | | | Transfer push rules (notifications) on room upgrade | ||||
* | | Add comment to schema | Erik Johnston | 2019-03-08 | 1 | -0/+2 |
| | | |||||
* | | Make `prev_state` field optional | Erik Johnston | 2019-03-08 | 1 | -15/+0 |
|/ | | | | | | | The `prev_state` field on events is not specced and so synapse shouldn't explode if an event is missing the field. Fixes #4787 | ||||
* | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2019-03-08 | 3 | -181/+156 |
|\ | | | | | | | erikj/soft_fail_impl | ||||
| * | Rewrite userdir to be faster (#4537) | Amber Brown | 2019-03-07 | 2 | -181/+137 |
| | | |||||
| * | Add docstrings from matrix-org-hotfixes | Erik Johnston | 2019-03-06 | 1 | -0/+19 |
| | | |||||
* | | Implement soft fail | Erik Johnston | 2019-03-06 | 1 | -0/+1 |
|/ | |||||
* | Merge pull request #4699 from matrix-org/erikj/stop_fed_not_in_room | Erik Johnston | 2019-03-05 | 1 | -0/+22 |
|\ | | | | | Stop backpaginating when events not visible | ||||
| * | s/get_forward_events/get_successor_events/ | Erik Johnston | 2019-03-04 | 1 | -2/+2 |
| | | |||||
| * | Merge branch 'develop' of github.com:matrix-org/synapse into ↵ | Erik Johnston | 2019-03-04 | 4 | -43/+120 |
| |\ | | | | | | | | | | erikj/stop_fed_not_in_room | ||||
| * | | Stop backpaginating when events not visible | Erik Johnston | 2019-02-20 | 1 | -0/+22 |
| | | | |||||
* | | | Merge pull request #4796 from matrix-org/erikj/factor_out_e2e_keys | Erik Johnston | 2019-03-05 | 3 | -541/+546 |
|\ \ \ | | | | | | | | | Allow /keys/{changes,query} API to run on worker | ||||
| * | | | Fixup slave stores | Erik Johnston | 2019-03-04 | 3 | -541/+546 |
| | |/ | |/| | |||||
* / | | Add some debug about processing read receipts. | Richard van der Hoff | 2019-03-04 | 1 | -6/+20 |
|/ / | | | | | | | | | I'm hoping to establish which rooms are having lots of RRs sent for them, and how old the events are when they are sent. | ||||
* | | Move /account/3pid to client_reader | Erik Johnston | 2019-02-27 | 1 | -33/+33 |
| | | |||||
* | | Limit cache invalidation replication line length (#4748) | Erik Johnston | 2019-02-27 | 1 | -4/+11 |
| | | |||||
* | | Add database version to phonehome stats. (#4753) | Richard van der Hoff | 2019-02-27 | 3 | -0/+42 |
| | | |||||
* | | Fix state cache invalidation on workers | Erik Johnston | 2019-02-22 | 1 | -6/+34 |
|/ | |||||
* | UPSERT many functionality (#4644) | Amber Brown | 2019-02-20 | 1 | -12/+134 |
| | |||||
* | Merge pull request #4671 from matrix-org/erikj/state_cache_invalidation | Erik Johnston | 2019-02-19 | 2 | -25/+58 |
|\ | | | | | Batch cache invalidation over replication | ||||
| * | Docs | Erik Johnston | 2019-02-19 | 1 | -2/+3 |
| | | |||||
| * | Use itertools | Erik Johnston | 2019-02-19 | 1 | -2/+2 |
| | | |||||
| * | Documentation | Erik Johnston | 2019-02-19 | 1 | -4/+4 |
| | | |||||
| * | Batch cache invalidation over replication | Erik Johnston | 2019-02-18 | 2 | -25/+57 |
| | | | | | | | | | | | | | | | | | | | | Currently whenever the current state changes in a room invalidate a lot of caches, which cause *a lot* of traffic over replication. Instead, lets batch up all those invalidations and send a single poke down the replication streams. Hopefully this will reduce load on the master process by substantially reducing traffic. | ||||
* | | Split /login into client_reader | Erik Johnston | 2019-02-18 | 1 | -41/+41 |
|/ | |||||
* | Split out registration to worker | Erik Johnston | 2019-02-18 | 1 | -115/+115 |
| | | | | | | | | This allows registration to be handled by a worker, though the actual write to the database still happens on master. Note: due to the in-memory session map all registration requests must be handled by the same worker. | ||||
* | Add configurable room list publishing rules | Erik Johnston | 2019-02-14 | 1 | -0/+25 |
| | | | | | This allows specifying who and what is allowed to be published onto the public room list | ||||
* | Run `black` on user directory code (#4635) | Amber Brown | 2019-02-13 | 1 | -87/+66 |
| | |||||
* | Merge pull request #4627 from matrix-org/erikj/user_ips_analyze | Erik Johnston | 2019-02-12 | 2 | -3/+31 |
|\ | | | | | Analyze user_ips before running deduplication | ||||
| * | Fix pep8 | Erik Johnston | 2019-02-12 | 1 | -1/+1 |
| | | |||||
| * | Analyze user_ips before running deduplication | Erik Johnston | 2019-02-12 | 2 | -3/+31 |
| | | | | | | | | | | | | | | Due to the table locks taken out by the naive upsert, the table statistics may be out of date. During deduplication it is important that the correct index is used as otherwise a full table scan may be incorrectly used, which can end up thrashing the database badly. | ||||
* | | Reduce user_ips bloat during dedupe background update | Erik Johnston | 2019-02-12 | 1 | -3/+60 |
|/ | | | | | | | | | | | | The background update to remove duplicate rows naively deleted and reinserted the duplicates. For large tables with a large number of duplicates this causes a lot of bloat (with postgres), as the inserted rows are appended to the table, since deleted rows will not be overwritten until a VACUUM has happened. This should hopefully also help ensure that the query in the last batch uses the correct index, as inserting a large number of new rows without analyzing will upset the query planner. | ||||
* | Merge pull request #4580 from matrix-org/uhoreg/e2e_backup_add_updating | Erik Johnston | 2019-02-11 | 1 | -0/+21 |
|\ | | | | | add updating of backup versions |