c02406ac71 
								
									
								
							
								 
							
						 
						
							
							
								
								Add new module API for adding custom fields to events `unsigned` section ( #16549 )  
							
							
							
						 
						
							2023-10-27 09:04:08 +00:00  
				
					
						
							
							
								 
						
							
							
								dd44ee00b6 
								
									
								
							
								 
							
						 
						
							
							
								
								Add automatic purge after all users forget a room ( #15488 )  
							
							... 
							
							
							
							Also add restore of purge/shutdown rooms after a synapse restart.
Co-authored-by:  Eric Eastwood <erice@matrix.org>
Co-authored-by: Erik Johnston <erikj@matrix.org> 
							
						 
						
							2023-09-15 15:37:44 +02:00  
				
					
						
							
							
								 
						
							
							
								698f6fa250 
								
									
								
							
								 
							
						 
						
							
							
								
								Allow modules to delete rooms. ( #15997 )  
							
							... 
							
							
							
							* Allow user_id to be optional for room deletion
* Add module API method to delete a room
* Newsfile
Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>
* Don't worry about the case block=True && requester_user_id is None
---------
Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org> 
							
						 
						
							2023-09-06 11:50:07 +01:00  
				
					
						
							
							
								 
						
							
							
								dffe095642 
								
									
								
							
								 
							
						 
						
							
							
								
								Only lock when we're backfilling ( #16159 )  
							
							
							
						 
						
							2023-08-23 09:23:41 +01:00  
				
					
						
							
							
								 
						
							
							
								8c3bcea2da 
								
									
								
							
								 
							
						 
						
							
							
								
								Rename pagination&purge locks and add comments explaining them ( #16112 )  
							
							
							
						 
						
							2023-08-16 16:19:54 +02:00  
				
					
						
							
							
								 
						
							
							
								ae55cc1e6b 
								
									
								
							
								 
							
						 
						
							
							
								
								Add ability to wait for locks and add locks to purge history / room deletion ( #15791 )  
							
							... 
							
							
							
							c.f. #13476  
							
						 
						
							2023-07-31 10:58:03 +01:00  
				
					
						
							
							
								 
						
							
							
								0757d59ec4 
								
									
								
							
								 
							
						 
						
							
							
								
								Avoid backfill when we already have messages to return ( #15737 )  
							
							... 
							
							
							
							We now only block the client to backfill when we see a large gap in the events (more than 2 events missing in a row according to `depth`), more than 3 single-event holes, or not enough messages to fill the response. Otherwise, we return the messages directly to the client and backfill in the background for eventual consistency sake. 
Fix https://github.com/matrix-org/synapse/issues/15696  
							
						 
						
							2023-06-13 12:31:08 -05:00  
				
					
						
							
							
								 
						
							
							
								c01343de43 
								
									
								
							
								 
							
						 
						
							
							
								
								Add stricter mypy options ( #15694 )  
							
							... 
							
							
							
							Enable warn_unused_configs, strict_concatenate, disallow_subclassing_any,
and disallow_incomplete_defs. 
							
						 
						
							2023-05-31 07:18:29 -04:00  
				
					
						
							
							
								 
						
							
							
								88efc75bab 
								
									
								
							
								 
							
						 
						
							
							
								
								Include the room ID in more purge room log lines. ( #15222 )  
							
							
							
						 
						
							2023-03-08 20:08:56 +00:00  
				
					
						
							
							
								 
						
							
							
								41f127e068 
								
									
								
							
								 
							
						 
						
							
							
								
								Pass the requester during event serialization. ( #15174 )  
							
							... 
							
							
							
							This allows Synapse to properly include the transaction ID in the
unsigned data of events. 
							
						 
						
							2023-03-06 16:08:39 +00:00  
				
					
						
							
							
								 
						
							
							
								265735db9d 
								
									
								
							
								 
							
						 
						
							
							
								
								Use an enum for direction. ( #14927 )  
							
							... 
							
							
							
							For better type safety we  use an enum instead of strings to
configure direction (backwards or forwards). 
							
						 
						
							2023-01-27 07:27:55 -05:00  
				
					
						
							
							
								 
						
							
							
								ba79fb4a61 
								
									
								
							
								 
							
						 
						
							
							
								
								Use StrCollection in place of Collection[str] in (most) handlers code. ( #14922 )  
							
							... 
							
							
							
							Due to the increased safety of StrCollection over Collection[str]
and Sequence[str]. 
							
						 
						
							2023-01-26 12:31:58 -05:00  
				
					
						
							
							
								 
						
							
							
								b5b5f66084 
								
									
								
							
								 
							
						 
						
							
							
								
								Move `StateFilter` to `synapse.types` ( #14668 )  
							
							... 
							
							
							
							* Move `StateFilter` to `synapse.types`
* Changelog 
							
						 
						
							2022-12-12 16:19:30 +00:00  
				
					
						
							
							
								 
						
							
							
								f6c74d1cb2 
								
									
								
							
								 
							
						 
						
							
							
								
								Implement message forward pagination from start when no from is given,  fixes   #12383  ( #14149 )  
							
							... 
							
							
							
							Fixes https://github.com/matrix-org/synapse/issues/12383  
							
						 
						
							2022-11-24 09:10:51 +00:00  
				
					
						
							
							
								 
						
							
							
								126a15794c 
								
									
								
							
								 
							
						 
						
							
							
								
								Do not allow a None-limit on PaginationConfig. ( #14146 )  
							
							... 
							
							
							
							The callers either set a default limit or manually handle a None-limit
later on (by setting a default value).
Update the callers to always instantiate PaginationConfig with a default
limit and then assume the limit is non-None. 
							
						 
						
							2022-10-14 12:30:05 +00:00  
				
					
						
							
							
								 
						
							
							
								bb5b47b62a 
								
									
								
							
								 
							
						 
						
							
							
								
								Add Admin API to Fetch Messages Within a Particular Window ( #13672 )  
							
							... 
							
							
							
							This adds two new admin APIs that allow us to fetch messages from a room within a particular time. 
							
						 
						
							2022-09-07 10:54:44 +01:00  
				
					
						
							
							
								 
						
							
							
								967d7bad6c 
								
									
								
							
								 
							
						 
						
							
							
								
								Move the execution of the retention purge_jobs to the main worker ( #13632 )  
							
							... 
							
							
							
							Fixes  #9927 
Signed-off-by: Brad Murray brad@beeper.com  
						
							2022-08-26 08:38:10 +01:00  
				
					
						
							
							
								 
						
							
							
								3dd175b628 
								
									
								
							
								 
							
						 
						
							
							
								
								`synapse.api.auth.Auth` cleanup: make permission-related methods use `Requester` instead of the `UserID` ( #13024 )  
							
							... 
							
							
							
							Part of #13019 
This changes all the permission-related methods to rely on the Requester instead of the UserID. This is a first step towards enabling scoped access tokens at some point, since I expect the Requester to have scope-related informations in it.
It also changes methods which figure out the user/device/appservice out of the access token to return a Requester instead of something else. This avoids having store-related objects in the methods signatures. 
							
						 
						
							2022-08-22 14:17:59 +01:00  
				
					
						
							
							
								 
						
							
							
								92d21faf12 
								
									
								
							
								 
							
						 
						
							
							
								
								Instrument `/messages` for understandable traces in Jaeger ( #13368 )  
							
							... 
							
							
							
							In Jaeger:
 - Before: huge list of uncategorized database calls
 - After: nice and collapsible into units of work 
							
						 
						
							2022-08-03 10:57:38 -05:00  
				
					
						
							
							
								 
						
							
							
								1e453053cb 
								
									
								
							
								 
							
						 
						
							
							
								
								Rename storage classes ( #12913 )  
							
							
							
						 
						
							2022-05-31 12:17:50 +00:00  
				
					
						
							
							
								 
						
							
							
								c4f548e05d 
								
									
								
							
								 
							
						 
						
							
							
								
								Don't return `end` from `/messages` if there are no more events ( #12903 )  
							
							... 
							
							
							
							Signed-off-by: Jacek Kusnierz <jacek.kusnierz@tum.de> 
							
						 
						
							2022-05-30 21:03:52 +01:00  
				
					
						
							
							
								 
						
							
							
								4660d9fdcf 
								
									
								
							
								 
							
						 
						
							
							
								
								Fix up `state_store` naming ( #12871 )  
							
							
							
						 
						
							2022-05-25 12:59:04 +01:00  
				
					
						
							
							
								 
						
							
							
								4cc4229cd7 
								
									
								
							
								 
							
						 
						
							
							
								
								Prevent expired events from being filtered out when retention is disabled ( #12611 )  
							
							... 
							
							
							
							Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com> 
							
						 
						
							2022-05-23 17:18:23 +00:00  
				
					
						
							
							
								 
						
							
							
								83be72d76c 
								
									
								
							
								 
							
						 
						
							
							
								
								Add `StreamKeyType` class and replace string literals with constants ( #12567 )  
							
							
							
						 
						
							2022-05-16 15:35:31 +00:00  
				
					
						
							
							
								 
						
							
							
								84facf769e 
								
									
								
							
								 
							
						 
						
							
							
								
								Fix `/messages` throwing a 500 when querying for non-existent room ( #12683 )  
							
							... 
							
							
							
							Fix https://github.com/matrix-org/synapse/issues/12678 
Complement test added:  https://github.com/matrix-org/complement/pull/369 
**Before:** 500 internal server error
**After:** According to the [spec](https://spec.matrix.org/latest/client-server-api/#get_matrixclientv3roomsroomidmessages ), calling `/messages` against a non-existent `room_id` should throw a 403 forbidden (since you're not part of the room). This also matches the behavior before https://github.com/matrix-org/synapse/pull/12370  which regressed Synapse to the 500 behavior.
```json
{
    "errcode": "M_FORBIDDEN",
    "error": "User @test:my.synapse.server not in room !dne:my.synapse.server, and room previews are disabled"
}
``` 
							
						 
						
							2022-05-10 23:39:14 -05:00  
				
					
						
							
							
								 
						
							
							
								793d03e2c5 
								
									
								
							
								 
							
						 
						
							
							
								
								Generate historic pagination token for `/messages` when no `?from` token provided ( #12370 )  
							
							
							
						 
						
							2022-04-06 11:40:28 +01:00  
				
					
						
							
							
								 
						
							
							
								8fe930c215 
								
									
								
							
								 
							
						 
						
							
							
								
								Move get_bundled_aggregations to relations handler. ( #12237 )  
							
							... 
							
							
							
							The get_bundled_aggregations code is fairly high-level and uses
a lot of store methods, we move it into the handler as that seems
like a better fit. 
							
						 
						
							2022-03-18 17:49:32 +00:00  
				
					
						
							
							
								 
						
							
							
								fc9bd620ce 
								
									
								
							
								 
							
						 
						
							
							
								
								Add a relations handler to avoid duplication. ( #12227 )  
							
							... 
							
							
							
							Adds a handler layer between the REST and datastore layers for relations. 
							
						 
						
							2022-03-16 10:39:15 -04:00  
				
					
						
							
							
								 
						
							
							
								605d161d7d 
								
									
								
							
								 
							
						 
						
							
							
								
								Add cancellation support to `ReadWriteLock` ( #12120 )  
							
							... 
							
							
							
							Also convert `ReadWriteLock` to use async context managers.
Signed-off-by: Sean Quah <seanq@element.io> 
							
						 
						
							2022-03-14 18:49:07 +00:00  
				
					
						
							
							
								 
						
							
							
								1d11b452b7 
								
									
								
							
								 
							
						 
						
							
							
								
								Use the proper serialization format when bundling aggregations. ( #12090 )  
							
							... 
							
							
							
							This ensures that the `latest_event` field of the bundled aggregation
for threads uses the same format as the other events in the response. 
							
						 
						
							2022-03-03 10:43:06 -05: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  
				
					
						
							
							
								 
						
							
							
								68acb0a29d 
								
									
								
							
								 
							
						 
						
							
							
								
								Include whether the requesting user has participated in a thread. ( #11577 )  
							
							... 
							
							
							
							Per updates to MSC3440.
This is implement as a separate method since it needs to be cached
on a per-user basis, instead of a per-thread basis. 
							
						 
						
							2022-01-18 11:38:57 -05:00  
				
					
						
							
							
								 
						
							
							
								6bf81a7a61 
								
									
								
							
								 
							
						 
						
							
							
								
								Bundle aggregations outside of the serialization method. ( #11612 )  
							
							... 
							
							
							
							This makes the serialization of events synchronous (and it no
longer access the database), but we must manually calculate and
provide the bundled aggregations.
Overall this should cause no change in behavior, but is prep work
for other improvements. 
							
						 
						
							2022-01-07 09:10:46 -05:00  
				
					
						
							
							
								 
						
							
							
								dd47788752 
								
									
								
							
								 
							
						 
						
							
							
								
								Do not bundle aggregations for APIs which shouldn't include them. ( #11592 )  
							
							... 
							
							
							
							And make bundling aggregations opt-in, instead of opt-out to avoid
having APIs to include extraneous data (and being much heavier than
necessary). 
							
						 
						
							2021-12-20 14:14:38 -05:00  
				
					
						
							
							
								 
						
							
							
								b1ecd19c5d 
								
									
								
							
								 
							
						 
						
							
							
								
								Fix 'delete room' admin api to work on incomplete rooms ( #11523 )  
							
							... 
							
							
							
							If, for some reason, we don't have the create event, we should still be able to
purge a room. 
							
						 
						
							2021-12-07 11:37:54 +00:00  
				
					
						
							
							
								 
						
							
							
								8840a7b7f1 
								
									
								
							
								 
							
						 
						
							
							
								
								Convert delete room admin API to async endpoint ( #11223 )  
							
							... 
							
							
							
							Signed-off-by: Dirk Klimpel dirk@klimpel.org  
							
						 
						
							2021-11-12 12:35:31 +00:00  
				
					
						
							
							
								 
						
							
							
								a19d01c3d9 
								
									
								
							
								 
							
						 
						
							
							
								
								Support filtering by relations per MSC3440 ( #11236 )  
							
							... 
							
							
							
							Adds experimental support for `relation_types` and `relation_senders`
fields for filters. 
							
						 
						
							2021-11-09 08:10:58 -05:00  
				
					
						
							
							
								 
						
							
							
								19d5dc6931 
								
									
								
							
								 
							
						 
						
							
							
								
								Refactor `Filter` to handle fields according to data being filtered. ( #11194 )  
							
							... 
							
							
							
							This avoids filtering against fields which cannot exist on an
event source. E.g. presence updates don't have a room. 
							
						 
						
							2021-10-27 11:26:30 -04:00  
				
					
						
							
							
								 
						
							
							
								5573133348 
								
									
								
							
								 
							
						 
						
							
							
								
								Move experimental & retention config out of the server module. ( #11070 )  
							
							
							
						 
						
							2021-10-15 14:30:48 +00:00  
				
					
						
							
							
								 
						
							
							
								94b620a5ed 
								
									
								
							
								 
							
						 
						
							
							
								
								Use direct references for configuration variables (part 6). ( #10916 )  
							
							
							
						 
						
							2021-09-29 06:44:15 -04:00  
				
					
						
							
							
								 
						
							
							
								eb2c7e51c4 
								
									
								
							
								 
							
						 
						
							
							
								
								Clean-up type hints in server config ( #10915 )  
							
							... 
							
							
							
							By using attrs instead of dicts to store configuration.
Also updates some of the attrs classes to use proper type
hints and auto_attribs. 
							
						 
						
							2021-09-28 09:24:40 -04:00  
				
					
						
							
							
								 
						
							
							
								b3590614da 
								
									
								
							
								 
							
						 
						
							
							
								
								Require type hints in the handlers module. ( #10831 )  
							
							... 
							
							
							
							Adds missing type hints to methods in the synapse.handlers
module and requires all methods to have type hints there.
This also removes the unused construct_auth_difference method
from the FederationHandler. 
							
						 
						
							2021-09-20 08:56:23 -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  
				
					
						
							
							
								 
						
							
							
								98aec1cc9d 
								
									
								
							
								 
							
						 
						
							
							
								
								Use inline type hints in `handlers/` and `rest/`. ( #10382 )  
							
							
							
						 
						
							2021-07-16 18:22:36 +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  
				
					
						
							
							
								 
						
							
							
								7fdc6cefb3 
								
									
								
							
								 
							
						 
						
							
							
								
								Fix additional type hints. ( #9543 )  
							
							... 
							
							
							
							Type hint fixes due to Twisted 21.2.0 adding type hints. 
							
						 
						
							2021-03-09 07:41:32 -05:00  
				
					
						
							
							
								 
						
							
							
								0a00b7ff14 
								
									
								
							
								 
							
						 
						
							
							
								
								Update black, and run auto formatting over the codebase ( #9381 )  
							
							... 
							
							
							
							- Update black version to the latest
 - Run black auto formatting over the codebase
    - Run autoformatting according to [`docs/code_style.md
`](80d6dc9783/docs/code_style.md 
							
						 
						
							2021-02-16 22:32:34 +00:00  
				
					
						
							
							
								 
						
							
							
								a090b86209 
								
									
								
							
								 
							
						 
						
							
							
								
								Add `force_purge` option to delete-room admin api. ( #8843 )  
							
							
							
						 
						
							2020-11-30 16:48:12 +00:00  
				
					
						
							
							
								 
						
							
							
								629a951b49 
								
									
								
							
								 
							
						 
						
							
							
								
								Move additional tasks to the background worker, part 4 ( #8513 )  
							
							
							
						 
						
							2020-10-13 08:20:32 -04:00  
				
					
						
							
							
								 
						
							
							
								c9c0ad5e20 
								
									
								
							
								 
							
						 
						
							
							
								
								Remove the deprecated Handlers object ( #8494 )  
							
							... 
							
							
							
							All handlers now available via get_*_handler() methods on the HomeServer. 
							
						 
						
							2020-10-09 07:24:34 -04:00