Eric Eastwood
d2d48cce85
Refactor Sync handler to be able to return different sync responses (SyncVersion
) ( #17200 )
...
Refactor Sync handler to be able to be able to return different sync
responses (`SyncVersion`). Preparation to be able support sync v2 and a
new Sliding Sync `/sync/e2ee` endpoint which returns a subset of sync
v2.
Split upon request:
https://github.com/element-hq/synapse/pull/17167#discussion_r1601497279
Split from https://github.com/element-hq/synapse/pull/17167 where we
will add `SyncVersion.E2EE_SYNC` and a new type of sync response.
2024-05-16 11:36:54 +01:00
Erik Johnston
284d85dee3
Cache literal sync filter validation ( #17186 )
...
The sliding sync proxy (amongst other things) use literal json blobs as
filters, and repeatedly validating them takes a bunch of CPU.
2024-05-14 15:08:46 +01:00
Erik Johnston
038b9ec59a
An federation whitelist query endpoint extension ( #16848 )
...
This is to allow clients to query the configured federation whitelist.
Disabled by default.
---------
Co-authored-by: Devon Hudson <devonhudson@librem.one>
Co-authored-by: devonh <devon.dmytro@gmail.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2024-05-13 19:38:45 +00:00
Tulir Asokan
6f07fc4e00
Merge remote-tracking branch 'upstream/release-v1.107'
2024-05-10 19:19:53 +03:00
Hugh Nimmo-Smith
212f150208
Add note about MSC3886 being closed ( #17151 )
2024-05-08 12:49:32 +01:00
devonh
7ab0f630da
Apply user email
& picture
during OIDC registration if present & selected ( #17120 )
...
This change will apply the `email` & `picture` provided by OIDC to the
new user account when registering a new user via OIDC. If the user is
directed to the account details form, this change makes sure they have
been selected before applying them, otherwise they are omitted. In
particular, this change ensures the values are carried through when
Synapse has consent configured, and the redirect to the consent form/s
are followed.
I have tested everything manually. Including:
- with/without consent configured
- allowing/not allowing the use of email/avatar (via
`sso_auth_account_details.html`)
- with/without automatic account detail population (by un/commenting the
`localpart_template` option in synapse config).
### Pull Request Checklist
<!-- Please read
https://element-hq.github.io/synapse/latest/development/contributing_guide.html
before submitting your pull request -->
* [X] Pull request is based on the develop branch
* [X] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog ).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
- Use markdown where necessary, mostly for `code blocks`.
- End with either a period (.) or an exclamation mark (!).
- Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [X] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html ) is
correct
(run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters ))
2024-04-29 15:23:05 +00:00
Patrick Cloke
38bc7a009d
Declare support for Matrix v1.10. ( #17082 )
...
Pretty straightforward. 😄
Fixes #17021
2024-04-29 14:09:03 +01:00
Tulir Asokan
ef1db42843
Merge remote-tracking branch 'upstream/release-v1.106'
2024-04-26 17:46:42 +02:00
Michael Telatynski
41fbe387d6
Improve error message for cross signing reset with MSC3861 enabled ( #17121 )
2024-04-26 09:54:30 +01:00
Andrew Ferrazzutti
516fd891ee
Use recommended endpoint for MSC3266 requests ( #17078 )
...
Keep the existing endpoint for backwards compatibility
Signed-off-by: Andrew Ferrazzutti <andrewf@element.io>
2024-04-26 09:46:42 +01:00
Quentin Gliech
2e92b718d5
MSC4108 implementation ( #17056 )
...
Co-authored-by: Hugh Nimmo-Smith <hughns@element.io>
Co-authored-by: Hugh Nimmo-Smith <hughns@users.noreply.github.com>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2024-04-25 12:50:12 +00:00
mcalinghee
ae181233aa
Send an email if the address is already bound to an user account ( #16819 )
...
Co-authored-by: Mathieu Velten <mathieu.velten@beta.gouv.fr>
Co-authored-by: Olivier D <odelcroi@gmail.com>
2024-04-23 16:45:24 +01:00
Gordan Trevis
1d47532310
Parse json validation ( #16923 )
...
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2024-04-18 13:57:38 +01:00
Quentin Gliech
c8e0bed426
Support for MSC4108 via delegation ( #17086 )
...
This adds support for MSC4108 via delegation, similar to what has been done for MSC3886
---------
Co-authored-by: Hugh Nimmo-Smith <hughns@element.io>
2024-04-17 16:47:35 +02:00
Gordan Trevis
f0d6f14047
Parse Integer negative value validation ( #16920 )
2024-04-16 19:12:36 +00:00
Kegan Dougal
259442fa4c
bugfix: make msc3967 idempotent ( #16943 )
...
MSC3967 was updated recently to make it more robust to network failures:
> there is an existing cross-signing master key and it exactly matches
the cross-signing master key provided in the request body. If there are
any additional keys provided in the request (self signing key, user
signing key) they MUST also match the existing keys stored on the
server. In other words, the request contains no new keys. If there are
new keys, UIA MUST be performed.
https://github.com/matrix-org/matrix-spec-proposals/blob/hughns/device-signing-upload-uia/proposals/3967-device-signing-upload-uia.md#proposal
This covers the case where the 200 OK is lost in transit so the client
retries the upload, only to then get UIA'd.
Complement tests: https://github.com/matrix-org/complement/pull/713 -
passing example
https://github.com/element-hq/synapse/actions/runs/7976948122/job/21778795094?pr=16943#step:7:8820
### Pull Request Checklist
<!-- Please read
https://element-hq.github.io/synapse/latest/development/contributing_guide.html
before submitting your pull request -->
* [x] Pull request is based on the develop branch
* [x] Pull request includes a [changelog
file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog ).
The entry should:
- Be a short description of your change which makes sense to users.
"Fixed a bug that prevented receiving messages from other servers."
instead of "Moved X method from `EventStore` to `EventWorkerStore`.".
- Use markdown where necessary, mostly for `code blocks`.
- End with either a period (.) or an exclamation mark (!).
- Start with a capital letter.
- Feel free to credit yourself, by adding a sentence "Contributed by
@github_username." or "Contributed by [Your Name]." to the end of the
entry.
* [x] [Code
style](https://element-hq.github.io/synapse/latest/code_style.html ) is
correct
(run the
[linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters ))
---------
Co-authored-by: reivilibre <oliverw@matrix.org>
2024-04-15 10:57:56 +00:00
Tulir Asokan
15947bbd71
Merge remote-tracking branch 'upstream/release-v1.105'
2024-04-11 14:56:52 +03:00
Patrick Cloke
657b8cc75c
Stabilize support for MSC4010: push rules & account data. ( #17022 )
...
See
[MSC4010](https://github.com/matrix-org/matrix-spec-proposals/pull/4010 ),
but this is pretty much just removing an experimental flag.
Part of #17021
2024-04-09 17:11:50 +01:00
Patrick Cloke
a2a543fd12
Stabliize support for MSC3981: recurse /relations ( #17023 )
...
See
[MSC3981](https://github.com/matrix-org/matrix-spec-proposals/pull/3981 ),
this pretty much just removes flags though.
Part of #17021
2024-04-09 17:11:08 +01:00
Erik Johnston
fd48fc4585
Fixups to new push stream ( #17038 )
...
Follow on from #17037
2024-03-28 16:29:23 +00:00
Erik Johnston
ea6bfae0fc
Add support for moving /push_rules
off of main process ( #17037 )
2024-03-28 15:44:07 +00:00
Tulir Asokan
67b2fad49e
Merge remote-tracking branch 'upstream/release-v1.104'
2024-03-26 16:24:35 +02:00
dependabot[bot]
1e68b56a62
Bump black from 23.10.1 to 24.2.0 ( #16936 )
2024-03-13 16:46:44 +00:00
Tulir Asokan
2ba175485f
Merge remote-tracking branch 'upstream/release-v1.103'
2024-03-12 17:29:44 +02:00
Alexander Fechler
48f59d3806
deactivated flag refactored to filter deactivated users. ( #16874 )
...
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2024-03-11 16:08:04 +00:00
Tulir Asokan
1cf18958a4
Merge remote-tracking branch 'upstream/release-v1.101'
2024-02-06 19:25:50 +02:00
David Baker
71ca199165
Accept unprefixed form of MSC3981 recurse parameter ( #16842 )
...
Now that the MSC3981 has passed FCP
2024-02-06 09:48:39 +00:00
Tulir Asokan
de89885d15
Allow specific users to use timestamp massaging without being appservices
2024-01-23 19:08:15 +02:00
Tulir Asokan
3108b67232
Allow custom content in read receipts
2024-01-23 19:08:15 +02:00
Erik Johnston
23740eaa3d
Correctly mention previous copyright ( #16820 )
...
During the migration the automated script to update the copyright
headers accidentally got rid of some of the existing copyright lines.
Reinstate them.
2024-01-23 11:26:48 +00:00
Hanadi
42e1aaea68
feat: add msc4028 to versions api ( #16787 )
...
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2024-01-16 14:36:08 +00:00
Adam Jędrzejewski
c7d0d02be7
Search non ASCII display names using Admin API ( #16767 )
...
Closes #16370
Signed-off-by: Adam Jedrzejewski <adamjedrzejewski@icloud.com>
2024-01-04 09:36:57 +00:00
FadhlanR
eabedd9520
Fix email verification redirection ( #16761 )
...
Previously, the response status of `HTMLResource` was hardcoded as
`200`. However, for proper redirection after the user verifies their
email, we require the status to be `302`. This PR addresses that issue
by using `code` as response status.
2024-01-02 16:25:26 +00:00
Dirk Klimpel
14ed84ac33
Enable user without password ( #16770 )
...
Closes:
- https://github.com/matrix-org/synapse/issues/10397
- #10397
An administrator should know whether he wants to set a password or not.
There are many uses cases where a blank password is required.
- Use of only some users with SSO.
- Use of bots with password, users with SSO
2024-01-02 11:52:51 +00:00
Erik Johnston
eaad9bb156
Merge remote-tracking branch 'gitlab/clokep/license-license' into new_develop
2023-12-13 15:11:56 +00:00
David Robertson
fcf3c493c2
Expose OIDC discovery information under the CSAPI ( #16726 )
...
Co-authored-by: Quentin Gliech <quenting@element.io>
2023-12-06 13:48:09 +00:00
Will Hunt
ea783550bb
Set response values to zero if None for /_synapse/admin/v1/federation/destinations ( #16729 )
2023-12-05 11:40:27 +00:00
Travis Ralston
d6e194b2bc
Implement MSC4069: Inhibit profile propagation ( #16636 )
...
MSC: https://github.com/matrix-org/matrix-spec-proposals/pull/4069
2023-12-04 11:36:12 +00:00
Andrew Yasinishyn
63d96bfc61
ModuleAPI SSO auth callbacks ( #15207 )
...
Signed-off-by: Andrii Yasynyshyn yasinishyn.a.n@gmail.com
2023-12-01 14:31:50 +00:00
Patrick Cloke
dcf949cd87
Declare support for Matrix v1.7, v1.8, and v1.9. ( #16707 )
2023-11-29 15:02:09 -05:00
Charles Wright
1a5f9bb651
Enable refreshable tokens on the admin registration endpoint ( #16642 )
...
Signed-off-by: Charles Wright <cvwright@futo.org>
2023-11-22 15:01:09 +00:00
Patrick Cloke
8e1e62c9e0
Update license headers
2023-11-21 15:29:58 -05:00
David Robertson
43d1aa75e8
Add an Admin API to temporarily grant the ability to update an existing cross-signing key without UIA ( #16634 )
2023-11-15 17:28:10 +00:00
Sumner Evans
999bd77d3a
Asynchronous Uploads ( #15503 )
...
Support asynchronous uploads as defined in MSC2246.
2023-11-15 09:19:24 -05:00
reivilibre
dc7f068d9c
Fix a long-standing bug where Synapse would not unbind third-party identifiers for Application Service users when deactivated and would not emit a compliant response. ( #16617 )
...
* Don't skip unbinding 3PIDs and returning success status when deactivating AS user
Fixes #16608
* Newsfile
Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>
---------
Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>
2023-11-09 20:18:25 +00:00
Patrick Cloke
ab3f1b3b53
Convert simple_select_one_txn and simple_select_one to return tuples. ( #16612 )
2023-11-09 11:13:31 -05:00
Patrick Cloke
ff716b483b
Return attrs for more media repo APIs. ( #16611 )
2023-11-09 11:00:30 -05:00
Patrick Cloke
cfb6d38c47
Remove remaining usage of cursor_to_dict. ( #16564 )
2023-10-31 13:13:28 -04:00
Erik Johnston
c02406ac71
Add new module API for adding custom fields to events unsigned
section ( #16549 )
2023-10-27 09:04:08 +00:00
Patrick Cloke
679c691f6f
Remove more usages of cursor_to_dict. ( #16551 )
...
Mostly to improve type safety.
2023-10-26 15:12:28 -04:00
Patrick Cloke
85e5f2dc25
Add a new module API to update user presence state. ( #16544 )
...
This adds a module API which allows a module to update a user's
presence state/status message. This is useful for controlling presence
from an external system.
To fully control presence from the module the presence.enabled config
parameter gains a new state of "untracked" which disables internal tracking
of presence changes via user actions, etc. Only updates from the module will
be persisted and sent down sync properly).
2023-10-26 15:11:24 -04:00
Patrick Cloke
cc865fffc0
Convert user_get_threepids response to attrs. ( #16468 )
...
This improves type annotations by not having a dictionary of Any values.
2023-10-11 20:08:11 -04:00
Patrick Cloke
f1e43018b7
Inline simple_search_list/simple_search_list_txn. ( #16434 )
...
This only has a single use and is over abstracted. Inline it so that
we can improve type hints.
2023-10-10 12:16:36 -04:00
Patrick Cloke
06bbf1029c
Convert simple_select_list_paginate_txn to return tuples. ( #16433 )
2023-10-06 11:41:57 -04:00
Patrick Cloke
7615e2bf48
Return ThumbnailInfo in more places ( #16438 )
...
Improves type hints by using concrete types instead of
dictionaries.
2023-10-06 10:12:43 -04:00
Patrick Cloke
26b960b08b
Register media servlets via regex. ( #16419 )
...
This converts the media servlet URLs in the same way as
(most) of the rest of Synapse. This will give more flexibility
in the versions each endpoint exists under.
2023-10-06 07:22:55 -04:00
Erik Johnston
009b47badf
Factor out MultiWriter
token from RoomStreamToken
( #16427 )
2023-10-05 10:46:28 +01:00
MomentQYC
5725712d47
Remove Python version from /_synapse/admin/v1/server_version
( #16380 )
...
There's no reason to expose the full Python version over what is
frequently a public API.
2023-10-02 09:07:53 -04:00
Maxwell G
12611bfcdd
Add support for pydantic v2 via pydantic.v1 compat module ( #16332 )
...
While maintaining support with pydantic v1.
2023-09-25 15:19:08 +00:00
Patrick Cloke
c9a0e1673a
Add missing license header. ( #16359 )
2023-09-21 09:47:29 -04:00
Patrick Cloke
7ec0a141b4
Convert more cached return values to immutable types ( #16356 )
2023-09-20 07:48:55 -04:00
Hanadi
eef2b9e344
Filter locked users in the admin API ( #16328 )
...
Co-authored-by: Hanadi Tamimi <hanadi.tamimi@sdui.de>
2023-09-18 15:37:51 +01:00
Patrick Cloke
c1e244c8f7
Make cached account data/tags/admin types immutable ( #16325 )
2023-09-18 09:55:04 -04:00
Patrick Cloke
63d28a88c1
Additional validation of receipts ( #16327 )
...
Reject invalid receipts with a reasonable error message &
expands tests for receipts.
2023-09-18 13:02:12 +00:00
Mathieu Velten
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
Erik Johnston
954921736b
Refactor get_user_by_id
( #16316 )
2023-09-14 12:46:30 +01:00
Patrick Cloke
d38d0dffc9
Use StrCollection in additional places. ( #16301 )
2023-09-13 07:57:19 -04:00
Patrick Cloke
9400dc0535
Add the List-Unsubscribe header for notification emails. ( #16274 )
...
Adds both the List-Unsubscribe (RFC2369) and List-Unsubscribe-Post (RFC8058)
headers to push notification emails, which together should:
* Show an "Unsubscribe" link in the MUA UI when viewing Synapse notification emails.
* Enable "one-click" unsubscribe (the user never leaves their MUA, which automatically
makes a POST request to the specified endpoint).
2023-09-11 09:49:48 -04:00
Patrick Cloke
69b74d9330
Avoid temporary storage of sensitive information. ( #16272 )
...
During the UI auth process, avoid storing sensitive information
into the database.
2023-09-08 08:57:56 -04:00
Erik Johnston
d23c394669
Reduce CPU overhead of change password endpoint ( #16264 )
2023-09-08 13:06:00 +01:00
Erik Johnston
8940d1b28e
Add /notifications
endpoint to workers ( #16265 )
2023-09-07 09:26:07 +00:00
Patrick Cloke
55c20da4a3
Merge remote-tracking branch 'origin/release-v1.91' into release-v1.92
2023-09-06 11:25:28 -04:00
Quentin Gliech
1940d990a3
Revert MSC3861 introspection cache, admin impersonation and account lock ( #16258 )
2023-09-06 15:19:51 +01:00
Mathieu Velten
dcb2778341
Add last_seen_ts to the admin users API ( #16218 )
2023-09-04 18:13:28 +02:00
David Robertson
62a1a9be52
Describe which rate limiter was hit in logs ( #16135 )
2023-08-30 00:39:39 +01:00
dependabot[bot]
001fc7bd19
Bump ruff from 0.0.277 to 0.0.286 ( #16198 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-29 09:41:43 -04:00
Patrick Cloke
40901af5e0
Pass the device ID around in the presence handler ( #16171 )
...
Refactoring to pass the device ID (in addition to the user ID) through
the presence handler (specifically the `user_syncing`, `set_state`,
and `bump_presence_active_time` methods and their replication
versions).
2023-08-28 13:08:49 -04:00
Patrick Cloke
82699428e3
Validate input to POST /key/v2/query endpoint. ( #16183 )
...
To avoid 500 internal server errors with garbage input.
2023-08-25 14:10:31 -04:00
Shay
69048f7b48
Add an admin endpoint to allow authorizing server to signal token revocations ( #16125 )
2023-08-22 14:15:34 +00:00
Alexander Fechler
54317d34b7
Allow filtering for admins in the list accounts admin API ( #16114 )
2023-08-18 12:26:38 +01:00
Erik Johnston
0aba4a4eaa
Add cache to get_server_keys_json_for_remote
( #16123 )
2023-08-18 11:05:01 +01:00
Mathieu Velten
8c3bcea2da
Rename pagination&purge locks and add comments explaining them ( #16112 )
2023-08-16 16:19:54 +02:00
Nick Mills-Barrett
614efc488b
Add linearizer on user ID to push rule PUT/DELETE requests ( #16052 )
...
See: #16053
Signed off by Nick @ Beeper (@Fizzadar)
2023-08-11 11:37:09 +00:00
Mathieu Velten
dac97642e4
Implements admin API to lock an user (MSC3939) ( #15870 )
2023-08-10 09:10:55 +00:00
Shay
0328b56468
Support MSC3814: Dehydrated Devices Part 2 ( #16010 )
2023-08-08 12:04:46 -07:00
Shay
8af3f33d84
Fix endpoint improperly declaring support for MSC3814 ( #16068 )
2023-08-07 10:52:15 -07:00
Shay
84ae2e3f6f
Fix deletion for Dehydrated Devices ( #16046 )
2023-08-04 10:49:54 -07:00
Patrick Cloke
d98a43d922
Stabilize support for MSC3970: updated transaction semantics (scope to device_id
) ( #15629 )
...
For now this maintains compatible with old Synapses by falling back
to using transaction semantics on a per-access token. A future version
of Synapse will drop support for this.
2023-08-04 07:47:18 -04:00
Erik Johnston
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
Shay
641ff9ef7e
Support MSC3814: Dehydrated Devices ( #15929 )
...
Signed-off-by: Nicolas Werner <n.werner@famedly.com>
Co-authored-by: Nicolas Werner <n.werner@famedly.com>
Co-authored-by: Nicolas Werner <89468146+nico-famedly@users.noreply.github.com>
Co-authored-by: Hubert Chathi <hubert@uhoreg.ca>
2023-07-24 08:23:19 -07:00
Patrick Cloke
6d81aec09f
Support room version 11 ( #15912 )
...
And fix a bug in the implementation of the updated redaction
format (MSC2174) where the top-level redacts field was not
properly added for backwards-compatibility.
2023-07-18 08:44:59 -04:00
Patrick Cloke
20ae617d14
Stop accepting 'user' parameter for application service registration. ( #15928 )
...
This is unspecced, but has existed for a very long time.
2023-07-13 07:23:56 -04:00
Michael Weimann
c8e81898b6
Add not_user_type param to the list accounts admin API ( #15844 )
...
Signed-off-by: Michael Weimann <michaelw@element.io>
2023-07-04 15:03:20 -07:00
Erik Johnston
25c55a9d22
Add login spam checker API ( #15838 )
2023-06-26 14:12:20 +00:00
Eric Eastwood
0f02f0b4da
Remove experimental MSC2716 implementation to incrementally import history into existing rooms ( #15748 )
...
Context for why we're removing the implementation:
- https://github.com/matrix-org/matrix-spec-proposals/pull/2716#issuecomment-1487441010
- https://github.com/matrix-org/matrix-spec-proposals/pull/2716#issuecomment-1504262734
Anyone wanting to continue MSC2716, should also address these leftover tasks: https://github.com/matrix-org/synapse/issues/10737
Closes https://github.com/matrix-org/synapse/issues/10737 in the fact that it is not longer necessary to track those things.
2023-06-16 14:12:24 -05:00
Sean Quah
dfd77f426e
Remove some unused server_name
fields ( #15723 )
...
Signed-off-by: Sean Quah <seanq@matrix.org>
2023-06-06 12:32:29 +01:00
Patrick Cloke
f880e64b11
Stabilize support for MSC3952: Intentional mentions. ( #15520 )
2023-06-06 09:11:07 +01:00
Shay
d0c4257f14
N + 3
: Read from column full_user_id
rather than user_id
of tables profiles
and user_filters
(#15649 )
2023-06-02 17:24:13 -07:00
Hugh Nimmo-Smith
d1693f0362
Implement stable support for MSC3882 to allow an existing device/session to generate a login token for use on a new device/session ( #15388 )
...
Implements stable support for MSC3882; this involves updating Synapse's support to
match the MSC / the spec says.
Continue to support the unstable version to allow clients to transition.
2023-06-01 08:52:51 -04:00
Quentin Gliech
e343125b38
Disable incompatible Admin API endpoints
2023-05-30 09:43:06 -04:00