summary refs log tree commit diff
path: root/synapse (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Port rest/v1 to async/awaitErik Johnston2019-12-0511-167/+118
|
* Stronger typing in the federation handler (#6480)Richard van der Hoff2019-12-051-24/+57
| | | | | replace the event_info dict with an attrs thing
* Sanity-check the rooms of auth events before pulling them in. (#6472)Richard van der Hoff2019-12-051-9/+25
|
* Merge pull request #6464 from matrix-org/erikj/make_public_sql_baseErik Johnston2019-12-0546-519/+512
|\ | | | | Clean up SQLBaseStore private function usage
| * Remove underscore from SQLBaseStore functionsErik Johnston2019-12-0444-501/+493
| |
| * Don't call SQLBaseStore methods from outside storesErik Johnston2019-12-044-19/+20
| |
* | Merge pull request #6470 from matrix-org/babolivier/port_db_ci_failureBrendan Abolivier2019-12-041-2/+10
|\ \ | | | | | | Make synapse_port_db exit with a non-0 code if something failed
| * | Fix background updates for synapse_port_dbBrendan Abolivier2019-12-041-2/+10
| |/
* / get rid of (most of) have_events from ↵Richard van der Hoff2019-12-042-72/+24
|/ | | | | | | | | | | | | _update_auth_events_and_context_for_auth (#6468) have_events was a map from event_id to rejection reason (or None) for events which are in our local database. It was used as filter on the list of event_ids being passed into get_events_as_list. However, since get_events_as_list will ignore any event_ids that are unknown or rejected, we can equivalently just leave it to get_events_as_list to do the filtering. That means that we don't have to keep `have_events` up-to-date, and can use `have_seen_events` instead of `get_seen_events_with_rejection` in the one place we do need it.
* Merge pull request #6454 from matrix-org/erikj/clean_base_StoreErik Johnston2019-12-048-192/+221
|\ | | | | Move things out of SQLBaseStore
| * Revert "Move get_user_count_txn out of base store"Erik Johnston2019-12-042-12/+12
| | | | | | | | | | | | This reverts commit 00f0d67566cdfe8eae44aeae1c982c42a255cfcd. Its going to get removed soon, so lets not make merge conflicts.
| * _CURRENT_STATE_CACHE_NAME is publicErik Johnston2019-12-042-5/+5
| |
| * Move get_user_count_txn out of base storeErik Johnston2019-12-042-12/+12
| |
| * Move cache invalidation to main data storeErik Johnston2019-12-046-113/+143
| |
| * Move event fetch vars to EventWorkStoreErik Johnston2019-12-044-14/+15
| |
| * Move account validity bg updates to registration storeErik Johnston2019-12-042-66/+64
| |
* | Merge pull request #6441 from syamgk/fix-parameter-mismatchErik Johnston2019-12-041-1/+1
|\ \ | | | | | | Fix issue #6406 parameter mismatch
| * | Issue #6406 Fix parameter mismatchSyam G Krishnan2019-12-041-1/+1
| | | | | | | | | | | | Signed-off-by: Syam G Krishnan <syamgk01@gmail.com>
* | | Merge pull request #6329 from matrix-org/babolivier/context_filtersBrendan Abolivier2019-12-045-3/+23
|\ \ \ | |_|/ |/| | Filter state, events_before and events_after in /context requests
| * | Merge branch 'develop' into babolivier/context_filtersBrendan Abolivier2019-12-0487-1315/+3016
| |\ \
| * | | Incorporate reviewBrendan Abolivier2019-12-041-2/+1
| | | |
| * | | Also filter state eventsBrendan Abolivier2019-11-061-1/+7
| | | |
| * | | Only filter if a filter was providedBrendan Abolivier2019-11-051-4/+6
| | | |
| * | | Update copyrightBrendan Abolivier2019-11-051-1/+2
| | | |
| * | | Update copyrightsBrendan Abolivier2019-11-054-1/+11
| | | |
| * | | Filter events_before and events_after in /context requestsBrendan Abolivier2019-11-051-2/+4
| | | | | | | | | | | | | | | | While the current version of the spec doesn't say much about how this endpoint uses filters (see https://github.com/matrix-org/matrix-doc/issues/2338), the current implementation is that some fields of an EventFilter apply (the ones that are used when running the SQL query) and others don't (the ones that are used by the filter itself) because we don't call event_filter.filter(...). This seems counter-intuitive and probably not what we want so this commit fixes it.
* | | | Merge pull request #6451 from matrix-org/uhoreg/cross_signing_signatures_indexErik Johnston2019-12-042-1/+24
|\ \ \ \ | | | | | | | | | | make cross signing signature index non-unique
| * | | | apply changes from reviewHubert Chathi2019-12-031-1/+2
| | | | |
| * | | | make cross signing signature index non-uniqueHubert Chathi2019-12-022-1/+23
| | | | |
* | | | | privacy by default for room dir (#6355)Neil Johnson2019-12-041-12/+14
| | | | | | | | | | | | | | | | | | | | Ensure that the the default settings for the room directory are that the it is hidden from public view by default.
* | | | | Fix exception when a cross-signed device is deleted (#6462)Richard van der Hoff2019-12-041-4/+19
| | | | | | | | | | | | | | | | | | | | | | | | | (hopefully) ... and deobfuscate the relevant bit of code.
* | | | | Add ephemeral messages support (MSC2228) (#6409)Brendan Abolivier2019-12-036-7/+277
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | Implement part [MSC2228](https://github.com/matrix-org/matrix-doc/pull/2228). The parts that differ are: * the feature is hidden behind a configuration flag (`enable_ephemeral_messages`) * self-destruction doesn't happen for state events * only implement support for the `m.self_destruct_after` field (not the `m.self_destruct` one) * doesn't send synthetic redactions to clients because for this specific case we consider the clients to be able to destroy an event themselves, instead we just censor it (by pruning its JSON) in the database
* | | | Add benchmarks for structured logging performance (#6266)Amber Brown2019-12-031-0/+1
|/ / /
* | | Transfer power level state events on room upgrade (#6237)Andrew Morgan2019-12-021-5/+31
| | |
* | | Fix: Pillow error when uploading RGBA image (#3325) (#6241)Filip Štědronský2019-12-021-1/+4
| |/ |/| | | Signed-Off-By: Filip Štědronský <g@regnarg.cz>
* | Add User-Interactive Auth to /account/3pid/add (#6119)Andrew Morgan2019-11-291-0/+5
| |
* | Merge pull request #6434 from matrix-org/erikj/msc2367_membership_reasonsErik Johnston2019-11-295-10/+21
|\ \ | | | | | | Implement MSC 2367 - Membership Reasons
| * | Propagate reason in remotely rejected invitesErik Johnston2019-11-284-9/+20
| | |
| * | MSC2367 Allow reason field on all member eventsErik Johnston2019-11-281-1/+1
| | |
* | | Merge pull request #6436 from matrix-org/babolivier/fix-state-retrievalBrendan Abolivier2019-11-292-9/+19
|\ \ \ | | | | | | | | Discard retention policies when retrieving state
| * | | LintBrendan Abolivier2019-11-281-4/+8
| | | |
| * | | Discard retention policies when retrieving stateBrendan Abolivier2019-11-282-9/+15
| |/ / | | | | | | | | | | | | | | | | | | | | | Purge jobs don't delete the latest event in a room in order to keep the forward extremity and not break the room. On the other hand, get_state_events, when given an at_token argument calls filter_events_for_client to know if the user can see the event that matches that (sync) token. That function uses the retention policies of the events it's given to filter out those that are too old from a client's view. Some clients, such as Riot, when loading a room, request the list of members for the latest sync token it knows about, and get confused to the point of refusing to send any message if the server tells it that it can't get that information. This can happen very easily with the message retention feature turned on and a room with low activity so that the last event sent becomes too old according to the room's retention policy. An easy and clean fix for that issue is to discard the room's retention policies when retrieving state.
* | | Merge branch 'master' into developAndrew Morgan2019-11-281-1/+1
|\ \ \ | |/ / |/| |
| * | 1.6.1 v1.6.1 github/release-v1.6.1 release-v1.6.1Andrew Morgan2019-11-281-1/+1
| | |
| * | Remove local threepids on account deactivation (#6426)Andrew Morgan2019-11-282-0/+16
| | |
| * | Fix startup error when http proxy is defined. (#6421)Richard van der Hoff2019-11-272-4/+4
| | | | | | | | | | | | | | | Guess I only tested this on python 2 :/ Fixes #6419.
* | | Remove local threepids on account deactivation (#6426)Andrew Morgan2019-11-282-0/+16
| | |
* | | Clarifications for the email configuration settings. (#6423)Richard van der Hoff2019-11-281-1/+16
| | | | | | | | | Cf #6422
* | | Implementation of MSC2314 (#6176)Amber Brown2019-11-282-12/+20
| | |
* | | add etag and count to key backup endpoints (#5858)Hubert Chathi2019-11-274-120/+261
| | |
* | | Merge pull request #6358 from matrix-org/babolivier/message_retentionBrendan Abolivier2019-11-2710-8/+698
|\ \ \ | | | | | | | | Implement message retention policies (MSC1763)
| * \ \ Merge branch 'develop' into babolivier/message_retentionBrendan Abolivier2019-11-2672-1202/+2058
| |\ \ \
| * | | | Fix worker modeBrendan Abolivier2019-11-191-56/+56
| | | | |
| * | | | Fix 3PID invite exchangeBrendan Abolivier2019-11-191-1/+1
| | | | |
| * | | | Lint againBrendan Abolivier2019-11-191-1/+1
| | | | |
| * | | | Lint againBrendan Abolivier2019-11-191-1/+1
| | | | |
| * | | | LintBrendan Abolivier2019-11-193-51/+54
| | | | |
| * | | | Don't apply retention policy based filtering on state eventsBrendan Abolivier2019-11-061-6/+9
| | | | | | | | | | | | | | | | | | | | As per MSC1763, 'Retention is only considered for non-state events.', so don't filter out state events based on the room's retention policy.
| * | | | Implement per-room message retention policiesBrendan Abolivier2019-11-0410-6/+690
| | | | |
* | | | | Remove assertion and provide a clear warning on startup for missing ↵Andrew Morgan2019-11-262-0/+9
| | | | | | | | | | | | | | | | | | | | public_baseurl (#6379)
* | | | | Merge pull request #6343 from matrix-org/rav/event_auth/4Richard van der Hoff2019-11-261-37/+44
|\ \ \ \ \ | | | | | | | | | | | | Refactor _update_auth_events_and_context_for_auth
| * | | | | remove confusing fixmeRichard van der Hoff2019-11-261-6/+0
| | | | | |
| * | | | | Merge remote-tracking branch 'origin/develop' into rav/event_auth/4Richard van der Hoff2019-11-1821-42/+52
| |\ \ \ \ \
| * | | | | | Use get_events_as_list rather than lots of calls to get_eventRichard van der Hoff2019-11-081-16/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It's more efficient and clearer.
| * | | | | | Update some docstrings and commentsRichard van der Hoff2019-11-081-8/+31
| | | | | | |
| * | | | | | Simplify _update_auth_events_and_context_for_authRichard van der Hoff2019-11-081-11/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | move event_key calculation into _update_context_for_auth_events, since it's only used there.
* | | | | | | Fix startup error when http proxy is defined. (#6421)Richard van der Hoff2019-11-262-4/+4
| |_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | Guess I only tested this on python 2 :/ Fixes #6419.
* | | | | | Don't construct a setErik Johnston2019-11-261-6/+3
| | | | | |
* | | | | | Fix find_next_generated_user_id_localpartErik Johnston2019-11-261-10/+7
| | | | | |
* | | | | | Merge branch 'master' into developAndrew Morgan2019-11-262-2/+2
|\ \ \ \ \ \ | | |_|_|/ / | |/| | | |
| * | | | | 1.6.0 v1.6.0 github/release-v1.6.0 release-v1.6.0Andrew Morgan2019-11-261-1/+1
| | | | | |
| * | | | | Fix phone home stats (#6418)Erik Johnston2019-11-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Fix phone home stats
* | | | | | Prevent account_data content from being sent over TCP replication (#6333)Andrew Morgan2019-11-262-7/+6
|\ \ \ \ \ \
| * \ \ \ \ \ Merge branch 'develop' of github.com:matrix-org/synapse into ↵Andrew Morgan2019-11-141-1/+1
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | anoa/fix_account_data_sync * 'develop' of github.com:matrix-org/synapse: Blacklist PurgeRoomTestCase (#6361) Set room version default to 5
| * | | | | | | lintAndrew Morgan2019-11-081-2/+1
| | | | | | | |
| * | | | | | | Remove content from being sent for account data rdata streamAndrew Morgan2019-11-082-6/+6
| | |_|/ / / / | |/| | | | |
* | | | | | | Merge pull request #6332 from matrix-org/erikj/query_devices_fixErik Johnston2019-11-263-4/+98
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Fix caching devices for remote servers in worker.
| * | | | | | | Fixup docsErik Johnston2019-11-261-1/+5
| | | | | | | |
| * | | | | | | Fix caching devices for remote servers in worker.Erik Johnston2019-11-053-4/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the `/keys/query` API is hit on client_reader worker Synapse may decide that it needs to resync some remote deivces. Usually this happens on master, and then gets cached. However, that fails on workers and so it falls back to fetching devices from remotes directly, which may in turn fail if the remote is down.
* | | | | | | | Make sure that we close cursors before returning from a query (#6408)Richard van der Hoff2019-11-252-10/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are lots of words in the comment as to why this is a good idea. Fixes #6403.
* | | | | | | | Merge tag 'v1.6.0rc2' into developRichard van der Hoff2019-11-252-19/+26
|\ \ \ \ \ \ \ \ | | |_|_|/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Synapse 1.6.0rc2 (2019-11-25) ============================= Bugfixes -------- - Fix a bug which could cause the background database update hander for event labels to get stuck in a loop raising exceptions. ([\#6407](https://github.com/matrix-org/synapse/issues/6407))
| * | | | | | | 1.6.0rc2 v1.6.0rc2Richard van der Hoff2019-11-251-1/+1
| | | | | | | |
| * | | | | | | Fix exceptions from background database update for event labels. (#6407)Richard van der Hoff2019-11-251-18/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add some exception handling here so that events whose json cannot be parsed are ignored rather than getting us stuck in a loop. Fixes #6404.
* | | | | | | | Improve the performance of structured logging (#6322)Amber Brown2019-11-262-30/+90
| | | | | | | |
* | | | | | | | Clean up newline quote marks around the codebase (#6362)Andrew Morgan2019-11-2125-46/+42
|/ / / / / / /
* | | | | | | 1.6.0rc1 v1.6.0rc1Andrew Morgan2019-11-201-1/+1
| | | | | | |
* | | | | | | Move admin endpoints into separate files (#6308)Manuel Stahl2019-11-204-555/+621
| | | | | | |
* | | | | | | Merge pull request #6335 from matrix-org/erikj/rc_login_cleanupsBrendan Abolivier2019-11-202-70/+125
|\ \ \ \ \ \ \ | |_|_|_|/ / / |/| | | | | | Only do `rc_login` ratelimiting on succesful login.
| * | | | | | LintBrendan Abolivier2019-11-201-1/+3
| | | | | | |
| * | | | | | Apply suggestions from code reviewErik Johnston2019-11-182-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> Co-Authored-By: Brendan Abolivier <babolivier@matrix.org>
| * | | | | | Add failed auth ratelimiting to UIAErik Johnston2019-11-061-1/+32
| | | | | | |
| * | | | | | Only do `rc_login` ratelimiting on succesful login.Erik Johnston2019-11-062-72/+94
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were doing this in a number of places which meant that some login code paths incremented the counter multiple times. It was also applying ratelimiting to UIA endpoints, which was probably not intentional. In particular, some custom auth modules were calling `check_user_exists`, which incremented the counters, meaning that people would fail to login sometimes.
* | | | | | Replace UPDATE with UPSERT on device_max_stream_id table (#6363)Andrew Morgan2019-11-151-2/+15
| | | | | |
* | | | | | Fix guest -> real account upgrade with account validity enabled (#6359)Andrew Morgan2019-11-141-6/+3
| | | | | |
* | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Andrew Morgan2019-11-141-1/+1
|\ \ \ \ \ \ | | |_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | anoa/homeserver_copy * 'develop' of github.com:matrix-org/synapse: Blacklist PurgeRoomTestCase (#6361) Set room version default to 5
| * | | | | Merge pull request #6220 from matrix-org/neilj/set_room_version_default_to_5Brendan Abolivier2019-11-141-1/+1
| |\ \ \ \ \ | | |_|/ / / | |/| | | | Set room version default to 5
| | * | | | Set room version default to 5Neil Johnson2019-10-191-1/+1
| | | | | |
* | | | | | A couple more instancesAndrew Morgan2019-11-122-2/+2
| | | | | |
* | | | | | Replace instance variations of homeserver with correct case/spacingAndrew Morgan2019-11-1218-31/+31
|/ / / / /
* | | | | Merge pull request #6340 from matrix-org/babolivier/pagination_queryBrendan Abolivier2019-11-081-8/+32
|\ \ \ \ \ | | | | | | | | | | | | Fix the SQL SELECT query in _paginate_room_events_txn
| * | | | | Incorporate reviewBrendan Abolivier2019-11-081-12/+12
| | | | | |
| * | | | | LintBrendan Abolivier2019-11-071-2/+2
| | | | | |
| * | | | | Only join on event_labels if we're filtering on labelsBrendan Abolivier2019-11-071-9/+24
| | | | | |
| * | | | | Handle lack of filterBrendan Abolivier2019-11-071-5/+3
| | | | | |
| * | | | | Fix the SQL SELECT query in _paginate_room_events_txnBrendan Abolivier2019-11-071-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | Doing a SELECT DISTINCT when paginating is quite expensive, because it requires the engine to do sorting on the entire events table. However, we only need to run it if we're filtering on 2+ labels, so this PR is changing the request so that DISTINCT is only used then.
* | | | | | Merge pull request #6295 from matrix-org/erikj/split_purge_historyErik Johnston2019-11-085-174/+323
|\ \ \ \ \ \ | | | | | | | | | | | | | | Split purge API into events vs state and add PurgeEventsStorage
| * | | | | | Move type annotation into docstringErik Johnston2019-11-081-3/+3
| | | | | | |
| * | | | | | Fix deleting state groups during room purge.Erik Johnston2019-11-061-13/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | And fix the tests to actually test that things got deleted.
| * | | | | | Use correct type annotationErik Johnston2019-11-061-2/+2
| | | | | | |
| * | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-11-053-83/+94
| |\ \ \ \ \ \ | | | |_|_|_|/ | | |/| | | | | | | | | | | erikj/split_purge_history
| * | | | | | Change to not require a state_groups.room_id index.Erik Johnston2019-11-044-53/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This does mean that we won't clean up orphaned state groups (i.e. state groups that were persisted but the associated event wasn't).
| * | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-11-0464-336/+1288
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | erikj/split_purge_history
| * | | | | | | Fix up commentErik Johnston2019-11-011-2/+1
| | | | | | | |
| * | | | | | | Update log line to lie a little lessErik Johnston2019-10-311-1/+1
| | | | | | | |
| * | | | | | | Add state_groups.room_id indexErik Johnston2019-10-312-0/+24
| | | | | | | |
| * | | | | | | DocstringsErik Johnston2019-10-311-3/+11
| | | | | | | |
| * | | | | | | Fix purge room APIErik Johnston2019-10-311-5/+8
| | | | | | | |
| * | | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-10-3179-218/+562
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | erikj/split_purge_history
| * | | | | | | | Split purge API into events vs stateErik Johnston2019-10-305-177/+300
| | | | | | | | |
* | | | | | | | | Merge pull request #6310 from matrix-org/babolivier/msc2326_bg_updateBrendan Abolivier2019-11-072-0/+80
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | MSC2326: Add background update to take previous events into account
| * | | | | | | | | Update synapse/storage/data_stores/main/events_bg_updates.pyBrendan Abolivier2019-11-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
| * | | | | | | | | Update synapse/storage/data_stores/main/events_bg_updates.pyBrendan Abolivier2019-11-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
| * | | | | | | | | Copy resultsBrendan Abolivier2019-11-071-1/+3
| | | | | | | | | |
| * | | | | | | | | Revert "Back to using cursor_to_dict"Brendan Abolivier2019-11-071-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 1186612d6cd728e6b7ed7806579db3cea7410b54.
| * | | | | | | | | Back to using cursor_to_dictBrendan Abolivier2019-11-071-9/+9
| | | | | | | | | |
| * | | | | | | | | Initialise value before loopingBrendan Abolivier2019-11-071-4/+8
| | | | | | | | | |
| * | | | | | | | | Incorporate reviewBrendan Abolivier2019-11-071-14/+9
| | | | | | | | | |
| * | | | | | | | | Fix field nameBrendan Abolivier2019-11-061-1/+1
| | | | | | | | | |
| * | | | | | | | | Update insertBrendan Abolivier2019-11-061-1/+6
| | | | | | | | | |
| * | | | | | | | | Merge branch 'develop' into babolivier/msc2326_bg_updateBrendan Abolivier2019-11-046-92/+189
| |\ \ \ \ \ \ \ \ \ | | | |_|_|/ / / / / | | |/| | | | | | |
| * | | | | | | | | Print out the actual number of affected rowsBrendan Abolivier2019-11-041-4/+4
| | | | | | | | | |
| * | | | | | | | | Correctly order resultsBrendan Abolivier2019-11-041-5/+5
| | | | | | | | | |
| * | | | | | | | | TODOBrendan Abolivier2019-11-041-0/+2
| | | | | | | | | |
| * | | | | | | | | Fix exit conditionBrendan Abolivier2019-11-041-1/+3
| | | | | | | | | |
| * | | | | | | | | LintBrendan Abolivier2019-11-041-6/+3
| | | | | | | | | |
| * | | | | | | | | Don't try to process events we already have a label forBrendan Abolivier2019-11-041-1/+2
| | | | | | | | | |
| * | | | | | | | | Use a sensible default value for labelsBrendan Abolivier2019-11-041-1/+1
| | | | | | | | | |
| * | | | | | | | | Use the right format for rowsBrendan Abolivier2019-11-041-1/+1
| | | | | | | | | |
| * | | | | | | | | MSC2326: Add background update to take previous events into accountBrendan Abolivier2019-11-042-0/+72
| | |_|_|_|_|_|_|/ | |/| | | | | | |
* | | | | | | | | Merge pull request #6235 from matrix-org/anoa/room_upgrade_groupsAndrew Morgan2019-11-073-1/+29
|\ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ Merge branch 'develop' of github.com:matrix-org/synapse into ↵Andrew Morgan2019-11-043-83/+94
| |\ \ \ \ \ \ \ \ \ | | | |/ / / / / / / | | |/| | | | | | | | | | | | | | | | | anoa/room_upgrade_groups
| * | | | | | | | | Re-add docstring, with caveats detailedAndrew Morgan2019-11-043-3/+7
| | | | | | | | | |
| * | | | | | | | | Transfer upgraded rooms on groupsAndrew Morgan2019-11-042-0/+24
| | |_|_|_|/ / / / | |/| | | | | | |
* | | | | | | | | Fix LruCache callback deduplication (#6213)V024602019-11-071-11/+37
| | | | | | | | |
* | | | | | | | | Make numeric user_id checker start at @0, and don't ratelimit on checking ↵Andrew Morgan2019-11-063-21/+39
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#6338)
| * | | | | | | | | raise exception after multiple failuresAndrew Morgan2019-11-061-3/+10
| | | | | | | | | |
| * | | | | | | | | Address review commentsAndrew Morgan2019-11-062-13/+13
| | | | | | | | | |
| * | | | | | | | | Don't forget to ratelimit calls outside of RegistrationHandlerAndrew Morgan2019-11-062-2/+4
| | | | | | | | | |
| * | | | | | | | | Numeric ID checker now checks @0, don't ratelimit on checkingAndrew Morgan2019-11-062-20/+29
| | |_|_|_|_|/ / / | |/| | | | | | |
* | | | | | | | | Merge branch 'master' into developRichard van der Hoff2019-11-061-1/+1
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / / |/| | | | | | | |
| * | | | | | | | 1.5.1 v1.5.1Richard van der Hoff2019-11-061-1/+1
| | | | | | | | |
* | | | | | | | | Fix bug which caused rejected events to be stored with the wrong room state ↵Richard van der Hoff2019-11-064-92/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#6320) Fixes a bug where rejected events were persisted with the wrong state group. Also fixes an occasional internal-server-error when receiving events over federation which are rejected and (possibly because they are backwards-extremities) have no prev_group. Fixes #6289.
* | | | | | | | | Add some checks that we aren't using state from rejected events (#6330)Richard van der Hoff2019-11-052-6/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Raise an exception if accessing state for rejected events Add some sanity checks on accessing state_group etc for rejected events. * Skip calculating push actions for rejected events It didn't actually cause any bugs, because rejected events get filtered out at various later points, but there's not point in trying to calculate the push actions for a rejected event.
* | | | | | | | | Merge pull request #6336 from matrix-org/erikj/fix_phone_home_statsErik Johnston2019-11-051-2/+2
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Fix phone home stats
| * | | | | | | | | Fix phone home statsErik Johnston2019-11-051-2/+2
| | |_|_|_|_|_|_|/ | |/| | | | | | |
* | | | | | | | | Merge pull request #6334 from matrix-org/rav/url_preview_limit_title_2Richard van der Hoff2019-11-051-1/+2
|\ \ \ \ \ \ \ \ \ | | |/ / / / / / / | |/| | | | | | | Fix exception when OpenGraph tag values are ints
| * | | | | | | | Fix exception when OpenGraph tag values are intsRichard van der Hoff2019-11-051-1/+2
| | | | | | | | |
* | | | | | | | | Merge branch 'develop' into rav/url_preview_limit_titleRichard van der Hoff2019-11-05143-1693/+3109
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / / |/| / / / / / / / | |/ / / / / / /
| * | / / / / / Improve documentation for EventContext fields (#6319)Richard van der Hoff2019-11-052-26/+68
| | |/ / / / / | |/| | | | |
| * | | | | | Remove the psutil dependency (#6318)Amber Brown2019-11-053-83/+94
| |/ / / / / | | | | | | | | | | | | * remove psutil and replace with resource
| * / / / / document the REPLICATE command a bit better (#6305)Richard van der Hoff2019-11-043-9/+95
| |/ / / / | | | | | | | | | | | | | | | since I found myself wonder how it works
| * | | | Merge pull request #6301 from matrix-org/babolivier/msc2326Brendan Abolivier2019-11-016-4/+98
| |\ \ \ \ | | | | | | | | | | | | Implement MSC2326 (label based filtering)
| | * | | | Incorporate reviewBrendan Abolivier2019-11-014-3/+9
| | | | | |
| | * | | | Update synapse/storage/data_stores/main/schema/delta/56/event_labels.sqlBrendan Abolivier2019-11-011-1/+1
| | | | | | | | | | | | | | | | | | Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
| | * | | | Add more data to the event_labels table and fix the indexesBrendan Abolivier2019-11-013-5/+21
| | | | | |
| | * | | | Add unstable feature flagBrendan Abolivier2019-11-011-0/+3
| | | | | |
| | * | | | LintBrendan Abolivier2019-11-012-1/+2
| | | | | |
| | * | | | Incorporate reviewBrendan Abolivier2019-11-013-5/+18
| | | | | |
| | * | | | LintBrendan Abolivier2019-10-301-7/+1
| | | | | |
| | * | | | Add more integration testingBrendan Abolivier2019-10-301-1/+1
| | | | | |
| | * | | | Add unit testsBrendan Abolivier2019-10-301-1/+1
| | | | | |
| | * | | | Add index on labelBrendan Abolivier2019-10-301-1/+3
| | | | | |
| | * | | | Implement filteringBrendan Abolivier2019-10-302-2/+20
| | | | | |
| | * | | | Store labels for new eventsBrendan Abolivier2019-10-302-1/+22
| | | | | |
| | * | | | Add database table for keeping track of labels on eventsBrendan Abolivier2019-10-291-0/+20
| | | | | |
| * | | | | Factor out an _AsyncEventContextImpl (#6298)Richard van der Hoff2019-11-012-84/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The intention here is to make it clearer which fields we can expect to be populated when: notably, that the _event_type etc aren't used for the synchronous impl of EventContext.
| * | | | | Merge pull request #6313 from matrix-org/uhoreg/cross_signing_fix_sqlite_schemaHubert Chathi2019-11-011-0/+42
| |\ \ \ \ \ | | | | | | | | | | | | | | fix hidden field in devices table for older sqlite
| | * | | | | fix hidden field in devices table for older sqliteHubert Chathi2019-10-311-0/+42
| | | | | | |
| * | | | | | Support for routing outbound HTTP requests via a proxy (#6239)Richard van der Hoff2019-11-0110-6/+429
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `http_proxy` and `HTTPS_PROXY` env vars can be set to a `host[:port]` value which should point to a proxy. The address of the proxy should be excluded from IP blacklists such as the `url_preview_ip_range_blacklist`. The proxy will then be used for * push * url previews * phone-home stats * recaptcha validation * CAS auth validation It will *not* be used for: * Application Services * Identity servers * Outbound federation * In worker configurations, connections from workers to masters Fixes #4198.
| * | | | | | Remove last usages of deprecated logging.warn method (#6314)Andrew Morgan2019-11-012-3/+3
| | | | | | |
| * | | | | | Depublish a room from the public rooms list when it is upgraded (#6232)Andrew Morgan2019-11-014-30/+91
| | | | | | |
| * | | | | | Update synapse/storage/data_stores/main/devices.pyHubert Chathi2019-10-311-1/+1
| | | | | | | | | | | | | | | | | | | | | Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
| * | | | | | Merge branch 'develop' into cross-signing_federationHubert Chathi2019-10-31108-380/+803
| |\| | | | |
| | * | | | | Merge pull request #6254 from matrix-org/uhoreg/cross_signing_fix_workers_notifyHubert Chathi2019-10-315-3/+58
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | make notification of signatures work with workers
| | | * \ \ \ \ Merge branch 'develop' into uhoreg/cross_signing_fix_workers_notifyHubert Chathi2019-10-31103-376/+742
| | | |\ \ \ \ \
| | | * | | | | | clean up code a bitHubert Chathi2019-10-311-5/+9
| | | | | | | | |
| | | * | | | | | make user signatures a separate streamHubert Chathi2019-10-305-14/+50
| | | | | | | | |
| | | * | | | | | Merge branch 'develop' into uhoreg/cross_signing_fix_workers_notifyHubert Chathi2019-10-3043-1142/+1234
| | | |\ \ \ \ \ \ | | | | | |_|/ / / | | | | |/| | | |
| | | * | | | | | make notification of signatures work with workersHubert Chathi2019-10-243-2/+17
| | | | | | | | |
| | * | | | | | | rstrip slashes from url on appservice (#6306)Will Hunt2019-10-311-1/+3
| | | |_|/ / / / | | |/| | | | |
| | * | | | | | Update black to 19.10b0 (#6304)Amber Brown2019-11-0137-158/+179
| | | |_|_|/ / | | |/| | | | | | | | | | | * update version of black and also fix the mypy config being overridden
| | * | | | | Merge pull request #6294 from matrix-org/erikj/add_state_storageErik Johnston2019-10-3119-66/+338
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | Add StateGroupStorage interface
| | | * | | | | Apply suggestions from code review Erik Johnston2019-10-311-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix docstring Co-Authored-By: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
| | | * | | | | Port to use state storageErik Johnston2019-10-3016-65/+102
| | | | | | | |
| | | * | | | | Add StateGroupStorage interfaceErik Johnston2019-10-303-1/+235
| | | | |/ / / | | | |/| | |
| | * | | | | Expose some homeserver functionality to spam checkers (#6259)Travis Ralston2019-10-312-1/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Offer the homeserver instance to the spam checker * Newsfile * Linting * Expose a Spam Checker API instead of passing the homeserver object * Alter changelog * s/hs/api
| | * | | | | Fix /purge_room API.Erik Johnston2019-10-311-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It fails trying to clean the `topic` table which was recently removed.
| | * | | | | Remove usage of deprecated logger.warn method from codebase (#6271)Andrew Morgan2019-10-3162-145/+159
| | | | | | | | | | | | | | | | | | | | | Replace every instance of `logger.warn` with `logger.warning` as the former is deprecated.
| | * | | | | fix delete_existing for _persist_events (#6300)Richard van der Hoff2019-10-302-5/+2
| | |/ / / / | | | | | | | | | | | | this is part of _retry_on_integrity_error, so should only be on _persist_events_and_state_updates
| * | | | | rename get_devices_by_remote to get_device_updates_by_remoteHubert Chathi2019-10-302-6/+6
| | | | | |
| * | | | | Merge branch 'develop' into cross-signing_federationHubert Chathi2019-10-3042-1075/+1167
| |\| | | |
| | * | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-10-3045-542/+555
| | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | erikj/split_out_persistence_store
| | | * \ \ \ Merge pull request #6291 from matrix-org/erikj/fix_cache_descriptorErik Johnston2019-10-301-4/+5
| | | |\ \ \ \ | | | | | | | | | | | | | | | | Make ObservableDeferred.observe() always return deferred.
| | | | * | | | Clarify docstringErik Johnston2019-10-301-0/+4
| | | | | | | |
| | | | * | | | Make ObservableDeferred.observe() always return deferred.Erik Johnston2019-10-301-5/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| | | * | | | | Fix log line that was printing undefined value (#6278)Andrew Morgan2019-10-301-1/+1
| | | | | | | |
| | | * | | | | Fix small typo in comment (#6269)Andrew Morgan2019-10-301-1/+1
| | | |/ / / /
| | | * | | | Fix typo in domain name in account_threepid_delegates config option (#6273)Andrew Morgan2019-10-301-1/+1
| | | | | | |
| | | * | | | Handle FileNotFound error in checking git repository version (#6284)Andrew Morgan2019-10-301-4/+6
| | | | | | |
| | | * | | | Merge pull request #6280 from matrix-org/erikj/receipts_async_awaitErik Johnston2019-10-306-53/+32
| | | |\ \ \ \ | | | | | | | | | | | | | | | | Port receipt and read markers to async/wait
| | | | * \ \ \ Merge branch 'erikj/federation_server_async_await' of ↵Erik Johnston2019-10-291-1/+1
| | | | |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | github.com:matrix-org/synapse into erikj/receipts_async_await
| | | | * | | | | Port receipt and read markers to async/waitErik Johnston2019-10-296-53/+32
| | | | | | | | |
| | | * | | | | | Merge pull request #6274 from matrix-org/erikj/replication_asyncErik Johnston2019-10-306-44/+26
| | | |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Port replication http server endpoints to async/await
| | | | * \ \ \ \ \ Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-10-291-1/+1
| | | | |\ \ \ \ \ \ | | | | | | |_|_|/ / | | | | | |/| | | | | | | | | | | | | | erikj/replication_async
| | | | * | | | | | Port replication http server endpoints to async/awaitErik Johnston2019-10-296-44/+26
| | | | | | | | | |
| | | * | | | | | | Merge pull request #6275 from matrix-org/erikj/port_rest_eventsErik Johnston2019-10-301-94/+72
| | | |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | Port room rest handlers to async/await
| | | | * \ \ \ \ \ \ Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-10-291-1/+1
| | | | |\ \ \ \ \ \ \ | | | | | | |/ / / / / | | | | | |/| | | | | | | | | | | | | | | | erikj/port_rest_events
| | | | * | | | | | | Port room rest handlers to async/awaitErik Johnston2019-10-291-94/+72
| | | | | |/ / / / / | | | | |/| | | | |
| | | * | | | | | | Don't return coroutinesErik Johnston2019-10-291-6/+6
| | | | |_|_|/ / / | | | |/| | | | |
| | | * | | | | | Merge branch 'develop' of github.com:matrix-org/synapse into ↵Erik Johnston2019-10-291-1/+1
| | | |\ \ \ \ \ \ | | | | | |/ / / / | | | | |/| / / / | | | | |_|/ / / | | | |/| | | | erikj/federation_server_async_await
| | | | * | | | Merge branch 'master' into developRichard van der Hoff2019-10-291-1/+1
| | | | |\ \ \ \ | | | | | |/ / / | | | | |/| | |
| | | * | | | | Make concurrently_execute work with async/awaitErik Johnston2019-10-291-4/+3
| | | | | | | |
| | | * | | | | Port federation_server to async/awaitErik Johnston2019-10-291-118/+87
| | | |/ / / /
| | | * | | | Merge pull request #6263 from matrix-org/erikj/caches_return_deferredsErik Johnston2019-10-293-7/+6
| | | |\ \ \ \ | | | | | | | | | | | | | | | | Quick fix to ensure cache descriptors always return deferreds
| | | | * | | | Update docstringErik Johnston2019-10-291-3/+2
| | | | | | | |
| | | | * | | | Quick fix to ensure cache descriptors always return deferredsErik Johnston2019-10-283-4/+4
| | | | | | | |
| | | * | | | | Merge branch 'release-v1.5.0' of github.com:matrix-org/synapse into developErik Johnston2019-10-291-4/+8
| | | |\ \ \ \ \
| | | * | | | | | Add CI for synapse_port_db (#6140)Brendan Abolivier2019-10-281-3/+6
| | | | |/ / / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds: * a test sqlite database * a configuration file for the sqlite database * a configuration file for a postgresql database (using the credentials in `.buildkite/docker-compose.pyXX.pgXX.yaml`) as well as a new script named `.buildkite/scripts/test_synapse_port_db.sh` that: 1. installs Synapse 2. updates the test sqlite database to the latest schema and runs background updates on it 3. creates an empty postgresql database 4. run the `synapse_port_db` script to migrate the test sqlite database to the empty postgresql database (with coverage) Step `2` is done via a new script located at `scripts-dev/update_database`. The test sqlite database is extracted from a SyTest run, so that it can be considered as an actual homeserver's database with actual data in it.
| | | * | | | | Merge tag 'v1.5.0rc2' into developRichard van der Hoff2019-10-284-8/+28
| | | |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Synapse 1.5.0rc2 (2019-10-28) ============================= Bugfixes -------- - Update list of boolean columns in `synapse_port_db`. ([\#6247](https://github.com/matrix-org/synapse/issues/6247)) - Fix /keys/query API on workers. ([\#6256](https://github.com/matrix-org/synapse/issues/6256)) - Improve signature checking on some federation APIs. ([\#6262](https://github.com/matrix-org/synapse/issues/6262)) Internal Changes ---------------- - Move schema delta files to the correct data store. ([\#6248](https://github.com/matrix-org/synapse/issues/6248)) - Small performance improvement by removing repeated config lookups in room stats calculation. ([\#6255](https://github.com/matrix-org/synapse/issues/6255))
| | | * | | | | | Convert EventContext to attrs (#6218)Richard van der Hoff2019-10-282-62/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * make EventContext use an attr
| | | * | | | | | Merge pull request #6253 from matrix-org/uhoreg/e2e_backup_delete_keysHubert Chathi2019-10-252-0/+33
| | | |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | delete keys when deleting backup versions
| | | | * | | | | | delete keys when deleting backupsHubert Chathi2019-10-242-0/+33
| | | | | |_|_|/ / | | | | |/| | | |
| | | * | | | | | Merge branch 'release-v1.5.0' of github.com:matrix-org/synapse into developErik Johnston2019-10-251-1/+3
| | | |\ \ \ \ \ \
| | | * \ \ \ \ \ \ Merge branch 'release-v1.5.0' of github.com:matrix-org/synapse into developErik Johnston2019-10-251-67/+67
| | | |\ \ \ \ \ \ \
| | | * \ \ \ \ \ \ \ Merge pull request #6251 from matrix-org/michaelkaye/debug_guard_loggingErik Johnston2019-10-256-17/+24
| | | |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Reduce debug logging overhead
| | | | * | | | | | | | Address codestyle concernsMichael Kaye2019-10-243-5/+10
| | | | | | | | | | | |
| | | | * | | | | | | | Delay printf until logging is required.Michael Kaye2019-10-242-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using % will cause the string to be generated even if debugging is off.
| | | | * | | | | | | | use %r to __repr__ objectsMichael Kaye2019-10-243-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids calculating __repr__ unless we are going to log.
| | | | * | | | | | | | Don't encode object as UTF-8 string if not needed.Michael Kaye2019-10-241-2/+4
| | | | | |_|/ / / / / | | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I believe that string formatting ~10-15 sized events will take a proportion of CPU time.
| | | * / | | | | | | Make user/room stats log line less verbose.Michael Kaye2019-10-241-1/+1
| | | |/ / / / / / /
| | * | | | | | | | Review commentsErik Johnston2019-10-304-13/+28
| | | | | | | | | |
| | * | | | | | | | Use new EventPersistenceStoreErik Johnston2019-10-233-3/+12
| | | | | | | | | |
| | * | | | | | | | Add DataStores and Storage classes.Erik Johnston2019-10-233-4/+34
| | | | | | | | | |
| | * | | | | | | | Move persist_events out from main data store.Erik Johnston2019-10-232-634/+711
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is in preparation for splitting out of state_groups_state from the main store into it own one, as persisting events depends on calculating state.
| * | | | | | | | | blackHubert Chathi2019-10-301-1/+3
| | | | | | | | | |
| * | | | | | | | | apply changes as a result of PR reviewHubert Chathi2019-10-302-55/+46
| | | | | | | | | |
| * | | | | | | | | Merge branch 'develop' into cross-signing_federationHubert Chathi2019-10-24277-4434/+4751
| |\ \ \ \ \ \ \ \ \ | | | |/ / / / / / / | | |/| | | | | | |
| * | | | | | | | | don't error if federation query doesn't have cross-signing keysHubert Chathi2019-10-241-7/+9
| | | | | | | | | |
| * | | | | | | | | move get_e2e_cross_signing_key to EndToEndKeyWorkerStore so it works with ↵Hubert Chathi2019-10-231-67/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | workers
| * | | | | | | | | blackHubert Chathi2019-10-221-1/+2
| | | | | | | | | |