c604d2c218 
								
									
								
							
								 
							
						 
						
							
							
								
								Mark /relations endpoint as usable on workers. ( #14028 )  
							
							... 
							
							
							
							Co-authored-by: Eric Eastwood <erice@element.io> 
							
						 
						
							2022-10-12 06:46:13 -04:00  
				
					
						
							
							
								 
						
							
							
								be4250c7a8 
								
									
								
							
								 
							
						 
						
							
							
								
								Add experimental configuration option to allow disabling legacy Prometheus metric names. ( #13540 )  
							
							... 
							
							
							
							Co-authored-by: David Robertson <davidr@element.io> 
							
						 
						
							2022-08-24 11:35:54 +00:00  
				
					
						
							
							
								 
						
							
							
								f4ab6a4a96 
								
									
								
							
								 
							
						 
						
							
							
								
								Refuse to start when `faster_joins` is enabled on a worker deployment ( #13531 )  
							
							... 
							
							
							
							Synapse does not currently support faster room joins on deployments with
workers.
Signed-off-by: Sean Quah <seanq@matrix.org> 
							
						 
						
							2022-08-16 16:21:55 +01:00  
				
					
						
							
							
								 
						
							
							
								86e366a46e 
								
									
								
							
								 
							
						 
						
							
							
								
								Remove old empty/redundant slaved stores. ( #13349 )  
							
							
							
						 
						
							2022-07-21 17:56:45 +00:00  
				
					
						
							
							
								 
						
							
							
								190f49d8ab 
								
									
								
							
								 
							
						 
						
							
							
								
								Use cache store remove base slaved ( #13329 )  
							
							... 
							
							
							
							This comes from two identical definitions in each of the base stores, and means the base slaved store is now empty and can be removed. 
							
						 
						
							2022-07-21 11:51:30 +01:00  
				
					
						
							
							
								 
						
							
							
								f30bcbd84a 
								
									
								
							
								 
							
						 
						
							
							
								
								Fix Synapse git info missing in version strings ( #12973 )  
							
							
							
						 
						
							2022-06-07 15:24:11 +01:00  
				
					
						
							
							
								 
						
							
							
								cf05258f76 
								
									
								
							
								 
							
						 
						
							
							
								
								Remove groups replication code. ( #12900 )  
							
							... 
							
							
							
							The replication logic for groups is no longer used, so the message
passing infrastructure can be removed. 
							
						 
						
							2022-05-31 13:04:08 -04:00  
				
					
						
							
							
								 
						
							
							
								a8db8c6eba 
								
									
								
							
								 
							
						 
						
							
							
								
								Remove user-visible groups/communities code ( #12553 )  
							
							... 
							
							
							
							Makes it so that groups/communities no longer exist from a user-POV. E.g. we remove:
* All API endpoints (including Client-Server, Server-Server, and admin).
* Documented configuration options (and the experimental flag, which is now unused).
* Special handling during room upgrades.
* The `groups` section of the `/sync` response. 
							
						 
						
							2022-05-25 07:53:40 -04:00  
				
					
						
							
							
								 
						
							
							
								1f9013ce60 
								
									
								
							
								 
							
						 
						
							
							
								
								Add the `batch_send` endpoint to generic workers ( #12868 )  
							
							
							
						 
						
							2022-05-25 09:51:07 +00:00  
				
					
						
							
							
								 
						
							
							
								2e5f88b5e6 
								
									
								
							
								 
							
						 
						
							
							
								
								Add the `/account/whoami` endpoint to generic workers ( #12866 )  
							
							
							
						 
						
							2022-05-25 10:41:41 +01:00  
				
					
						
							
							
								 
						
							
							
								699192fc1a 
								
									
								
							
								 
							
						 
						
							
							
								
								Add the `update_user_directory_from_worker` configuration option (superseding `update_user_directory`) to allow a generic worker to be designated as the worker to update the user directory. ( #12654 )  
							
							... 
							
							
							
							Co-authored-by: Shay <hillerys@element.io> 
							
						 
						
							2022-05-10 11:08:45 +01:00  
				
					
						
							
							
								 
						
							
							
								c2d50e9f6c 
								
									
								
							
								 
							
						 
						
							
							
								
								Add the `notify_appservices_from_worker` configuration option (superseding `notify_appservices`) to allow a generic worker to be designated as the worker to send traffic to Application Services. ( #12452 )  
							
							
							
						 
						
							2022-05-06 11:43:53 +01:00  
				
					
						
							
							
								 
						
							
							
								f871222880 
								
									
								
							
								 
							
						 
						
							
							
								
								Move `update_client_ip` background job from the main process to the background worker. ( #12251 )  
							
							
							
						 
						
							2022-04-01 13:08:55 +01:00  
				
					
						
							
							
								 
						
							
							
								54f674f7a9 
								
									
								
							
								 
							
						 
						
							
							
								
								Deprecate the groups/communities endpoints and add an experimental configuration flag. ( #12200 )  
							
							
							
						 
						
							2022-03-12 13:23:37 -05:00  
				
					
						
							
							
								 
						
							
							
								3e4af36bc8 
								
									
								
							
								 
							
						 
						
							
							
								
								Rename get_tcp_replication to get_replication_command_handler. ( #12192 )  
							
							... 
							
							
							
							Since the object it returns is a ReplicationCommandHandler.
This is clean-up from adding support to Redis where the command handler
was added as an additional layer of abstraction from the TCP protocol. 
							
						 
						
							2022-03-10 13:01:56 +00:00  
				
					
						
							
							
								 
						
							
							
								e24ff8ebe3 
								
									
								
							
								 
							
						 
						
							
							
								
								Remove `HomeServer.get_datastore()` ( #12031 )  
							
							... 
							
							
							
							The presence of this method was confusing, and mostly present for backwards
compatibility. Let's get rid of it.
Part of #11733  
							
						 
						
							2022-02-23 11:04:02 +00:00  
				
					
						
							
							
								 
						
							
							
								4ae956c8bb 
								
									
								
							
								 
							
						 
						
							
							
								
								Use version string helper from matrix-common ( #11979 )  
							
							... 
							
							
							
							* Require latest matrix-common
* Use the common function 
							
						 
						
							2022-02-14 13:12:22 +00:00  
				
					
						
							
							
								 
						
							
							
								42bf020463 
								
									
								
							
								 
							
						 
						
							
							
								
								Expose worker & homeserver as entrypoints in `setup.py` ( #11449 )  
							
							... 
							
							
							
							Co-authored-by: reivilibre <oliverw@matrix.org> 
							
						 
						
							2021-11-30 16:52:45 +00:00  
				
					
						
							
							
								 
						
							
							
								7b4e228e41 
								
									
								
							
								 
							
						 
						
							
							
								
								Fix using MSC2716 batch sending with event persistence workers ( #11220 )  
							
							... 
							
							
							
							Signed-off-by: Tulir Asokan <tulir@beeper.com> 
							
						 
						
							2021-11-29 13:13:23 +00:00  
				
					
						
							
							
								 
						
							
							
								d993c3bb1e 
								
									
								
							
								 
							
						 
						
							
							
								
								Add support for `/_matrix/media/v3` APIs ( #11371 )  
							
							... 
							
							
							
							* Add support for `/_matrix/media/v3` APIs
Signed-off-by: Aaron Raimist <aaron@raim.ist>
* Update `workers.md` to use v3 client and media APIs
Signed-off-by: Aaron Raimist <aaron@raim.ist>
* Add changelog
Signed-off-by: Aaron Raimist <aaron@raim.ist> 
							
						 
						
							2021-11-17 15:30:24 +00:00  
				
					
						
							
							
								 
						
							
							
								5cace20bf1 
								
									
								
							
								 
							
						 
						
							
							
								
								Add missing type hints to `synapse.app`. ( #11287 )  
							
							
							
						 
						
							2021-11-10 15:06:54 -05:00  
				
					
						
							
							
								 
						
							
							
								71f9966f27 
								
									
								
							
								 
							
						 
						
							
							
								
								Support for serving server well-known files ( #11211 )  
							
							... 
							
							
							
							Fixes https://github.com/matrix-org/synapse/issues/8308  
							
						 
						
							2021-11-01 15:10:16 +00:00  
				
					
						
							
							
								 
						
							
							
								2b82ec425f 
								
									
								
							
								 
							
						 
						
							
							
								
								Add type hints for most `HomeServer` parameters ( #11095 )  
							
							
							
						 
						
							2021-10-22 18:15:41 +01:00  
				
					
						
							
							
								 
						
							
							
								94b620a5ed 
								
									
								
							
								 
							
						 
						
							
							
								
								Use direct references for configuration variables (part 6). ( #10916 )  
							
							
							
						 
						
							2021-09-29 06:44:15 -04:00  
				
					
						
							
							
								 
						
							
							
								bb7fdd821b 
								
									
								
							
								 
							
						 
						
							
							
								
								Use direct references for configuration variables (part 5). ( #10897 )  
							
							
							
						 
						
							2021-09-24 07:25:21 -04:00  
				
					
						
							
							
								 
						
							
							
								47854c71e9 
								
									
								
							
								 
							
						 
						
							
							
								
								Use direct references for configuration variables (part 4). ( #10893 )  
							
							
							
						 
						
							2021-09-23 12:03:01 -04:00  
				
					
						
							
							
								 
						
							
							
								01c88a09cd 
								
									
								
							
								 
							
						 
						
							
							
								
								Use direct references for some configuration variables ( #10798 )  
							
							... 
							
							
							
							Instead of proxying through the magic getter of the RootConfig
object. This should be more performant (and is more explicit). 
							
						 
						
							2021-09-13 13:07:12 -04:00  
				
					
						
							
							
								 
						
							
							
								1fdf2cf8e8 
								
									
								
							
								 
							
						 
						
							
							
								
								Document that /spaces & /hierarchy can be routed to workers. ( #10648 )  
							
							... 
							
							
							
							Also refactors some of the registration of endpoints on workers. 
							
						 
						
							2021-09-08 11:02:31 -04:00  
				
					
						
							
							
								 
						
							
							
								6e895366ea 
								
									
								
							
								 
							
						 
						
							
							
								
								Add config option to use non-default manhole password and keys ( #10643 )  
							
							
							
						 
						
							2021-09-06 16:08:03 +01:00  
				
					
						
							
							
								 
						
							
							
								d12ba52f17 
								
									
								
							
								 
							
						 
						
							
							
								
								Persist room hierarchy pagination sessions to the database. ( #10613 )  
							
							
							
						 
						
							2021-08-24 08:14:03 -04:00  
				
					
						
							
							
								 
						
							
							
								947dbbdfd1 
								
									
								
							
								 
							
						 
						
							
							
								
								Implement MSC3231: Token authenticated registration ( #10142 )  
							
							... 
							
							
							
							Signed-off-by: Callum Brown <callum@calcuode.com>
This is part of my GSoC project implementing [MSC3231](https://github.com/matrix-org/matrix-doc/pull/3231 ). 
							
						 
						
							2021-08-21 22:14:43 +01:00  
				
					
						
							
							
								 
						
							
							
								84469bdac7 
								
									
								
							
								 
							
						 
						
							
							
								
								Remove the unused public_room_list_stream ( #10565 )  
							
							... 
							
							
							
							Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com> 
							
						 
						
							2021-08-17 14:02:50 +01:00  
				
					
						
							
							
								 
						
							
							
								642a42edde 
								
									
								
							
								 
							
						 
						
							
							
								
								Flatten the synapse.rest.client package ( #10600 )  
							
							
							
						 
						
							2021-08-17 11:57:58 +00:00  
				
					
						
							
							
								 
						
							
							
								b7f7ca24b1 
								
									
								
							
								 
							
						 
						
							
							
								
								Remove shebang line from module files ( #10415 )  
							
							... 
							
							
							
							Signed-off-by: Kai A. Hiller <V02460@gmail.com> 
							
						 
						
							2021-07-29 21:34:14 +01:00  
				
					
						
							
							
								 
						
							
							
								95e47b2e78 
								
									
								
							
								 
							
						 
						
							
							
								
								[pyupgrade] `synapse/` ( #10348 )  
							
							... 
							
							
							
							This PR is tantamount to running 
```
pyupgrade --py36-plus --keep-percent-format `find synapse/ -type f -name "*.py"`
```
Part of #9744  
							
						 
						
							2021-07-19 15:28:05 +01:00  
				
					
						
							
							
								 
						
							
							
								bf72d10dbf 
								
									
								
							
								 
							
						 
						
							
							
								
								Use inline type hints in various other places (in `synapse/`) ( #10380 )  
							
							
							
						 
						
							2021-07-15 11:02:43 +01:00  
				
					
						
							
							
								 
						
							
							
								85d237eba7 
								
									
								
							
								 
							
						 
						
							
							
								
								Add a distributed lock ( #10269 )  
							
							... 
							
							
							
							This adds a simple best effort locking mechanism that works cross workers. 
							
						 
						
							2021-06-29 19:15:47 +01:00  
				
					
						
							
							
								 
						
							
							
								107c06081f 
								
									
								
							
								 
							
						 
						
							
							
								
								Ensure that errors during startup are written to the logs and the console. ( #10191 )  
							
							... 
							
							
							
							* Defer stdio redirection until we are about to start the reactor
* Catch and handle exceptions during startup 
							
						 
						
							2021-06-21 11:41:25 +01:00  
				
					
						
							
							
								 
						
							
							
								1b3e398bea 
								
									
								
							
								 
							
						 
						
							
							
								
								Standardise the module interface ( #10062 )  
							
							... 
							
							
							
							This PR adds a common configuration section for all modules (see docs). These modules are then loaded at startup by the homeserver. Modules register their hooks and web resources using the new `register_[...]_callbacks` and `register_web_resource` methods of the module API. 
							
						 
						
							2021-06-18 12:15:52 +01:00  
				
					
						
							
							
								 
						
							
							
								5eed6348ce 
								
									
								
							
								 
							
						 
						
							
							
								
								Move some more endpoints off master ( #10084 )  
							
							
							
						 
						
							2021-05-27 22:45:43 +01:00  
				
					
						
							
							
								 
						
							
							
								3e831f24ff 
								
									
								
							
								 
							
						 
						
							
							
								
								Don't hammer the database for destination retry timings every ~5mins ( #10036 )  
							
							
							
						 
						
							2021-05-21 17:57:08 +01:00  
				
					
						
							
							
								 
						
							
							
								ef889c98a6 
								
									
								
							
								 
							
						 
						
							
							
								
								Optionally track memory usage of each LruCache ( #9881 )  
							
							... 
							
							
							
							This will double count slightly in the presence of interned strings. It's off by default as it can consume a lot of resources. 
							
						 
						
							2021-05-05 16:54:36 +01:00  
				
					
						
							
							
								 
						
							
							
								1fb9a2d0bf 
								
									
								
							
								 
							
						 
						
							
							
								
								Limit how often GC happens by time. ( #9902 )  
							
							... 
							
							
							
							Synapse can be quite memory intensive, and unless care is taken to tune
the GC thresholds it can end up thrashing, causing noticable performance
problems for large servers. We fix this by limiting how often we GC a
given generation, regardless of current counts/thresholds.
This does not help with the reverse problem where the thresholds are set
too high, but that should only happen in situations where they've been
manually configured.
Adds a `gc_min_seconds_between` config option to override the defaults.
Fixes  #9890 . 
							
						 
						
							2021-05-05 16:53:45 +01:00  
				
					
						
							
							
								 
						
							
							
								3ff2251754 
								
									
								
							
								 
							
						 
						
							
							
								
								Improved validation for received requests ( #9817 )  
							
							... 
							
							
							
							* Simplify `start_listening` callpath
* Correctly check the size of uploaded files 
							
						 
						
							2021-04-23 19:20:44 +01:00  
				
					
						
							
							
								 
						
							
							
								59d24c5bef 
								
									
								
							
								 
							
						 
						
							
							
								
								pass a reactor into SynapseSite ( #9874 )  
							
							
							
						 
						
							2021-04-23 17:06:47 +01:00  
				
					
						
							
							
								 
						
							
							
								9d25a0ae65 
								
									
								
							
								 
							
						 
						
							
							
								
								Split presence out of master ( #9820 )  
							
							
							
						 
						
							2021-04-23 12:21:55 +01:00  
				
					
						
							
							
								 
						
							
							
								5a153772c1 
								
									
								
							
								 
							
						 
						
							
							
								
								remove `HomeServer.get_config` ( #9815 )  
							
							... 
							
							
							
							Every single time I want to access the config object, I have to remember
whether or not we use `get_config`. Let's just get rid of it. 
							
						 
						
							2021-04-14 19:09:08 +01:00  
				
					
						
							
							
								 
						
							
							
								00a6db9676 
								
									
								
							
								 
							
						 
						
							
							
								
								Move some replication processing out of generic_worker ( #9796 )  
							
							... 
							
							
							
							Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> 
							
						 
						
							2021-04-14 17:06:06 +01:00  
				
					
						
							
							
								 
						
							
							
								4b965c862d 
								
									
								
							
								 
							
						 
						
							
							
								
								Remove redundant "coding: utf-8" lines ( #9786 )  
							
							... 
							
							
							
							Part of #9744 
Removes all redundant `# -*- coding: utf-8 -*-` lines from files, as python 3 automatically reads source code as utf-8 now.
`Signed-off-by: Jonathan de Jong <jonathan@automatia.nl>` 
							
						 
						
							2021-04-14 15:34:27 +01:00  
				
					
						
							
							
								 
						
							
							
								04819239ba 
								
									
								
							
								 
							
						 
						
							
							
								
								Add a Synapse Module for configuring presence update routing ( #9491 )  
							
							... 
							
							
							
							At the moment, if you'd like to share presence between local or remote users, those users must be sharing a room together. This isn't always the most convenient or useful situation though.
This PR adds a module to Synapse that will allow deployments to set up extra logic on where presence updates should be routed. The module must implement two methods, `get_users_for_states` and `get_interested_users`. These methods are given presence updates or user IDs and must return information that Synapse will use to grant passing presence updates around.
A method is additionally added to `ModuleApi` which allows triggering a set of users to receive the current, online presence information for all users they are considered interested in. This is the equivalent of that user receiving presence information during an initial sync. 
The goal of this module is to be fairly generic and useful for a variety of applications, with hard requirements being:
* Sending state for a specific set or all known users to a defined set of local and remote users.
* The ability to trigger an initial sync for specific users, so they receive all current state. 
							
						 
						
							2021-04-06 14:38:30 +01:00