From 50ce11b727ebed3d3c3325feedf94e2815144d66 Mon Sep 17 00:00:00 2001 From: MadLittleMods Date: Tue, 29 Sep 2026 16:58:01 +0000 Subject: [PATCH] deploy: 63dc0cbfe514f60743212566374ffeb5e9e295c2 --- latest/404.html | 2 +- latest/CAPTCHA_SETUP.html | 2 +- latest/admin_api/account_validity.html | 2 +- .../client_server_api_extensions.html | 2 +- latest/admin_api/event_reports.html | 2 +- latest/admin_api/experimental_features.html | 2 +- latest/admin_api/fetch_event.html | 2 +- latest/admin_api/media_admin_api.html | 2 +- latest/admin_api/purge_history_api.html | 2 +- latest/admin_api/register_api.html | 2 +- latest/admin_api/room_membership.html | 2 +- latest/admin_api/rooms.html | 2 +- latest/admin_api/scheduled_tasks.html | 2 +- latest/admin_api/server_notices.html | 2 +- latest/admin_api/statistics.html | 2 +- latest/admin_api/user_admin_api.html | 2 +- latest/admin_api/version_api.html | 2 +- latest/application_services.html | 2 +- latest/auth_chain_difference_algorithm.html | 2 +- latest/code_style.html | 2 +- latest/consent_tracking.html | 2 +- latest/delegate.html | 2 +- latest/deprecation_policy.html | 2 +- latest/development/cas.html | 2 +- latest/development/contributing_guide.html | 4 +- latest/development/database_schema.html | 2 +- latest/development/demo.html | 2 +- latest/development/dependencies.html | 2 +- latest/development/experimental_features.html | 2 +- latest/development/git.html | 2 +- .../internal_documentation/index.html | 2 +- .../release_notes_review_checklist.html | 2 +- latest/development/releases.html | 2 +- latest/development/reviews.html | 2 +- latest/development/room-dag-concepts.html | 2 +- latest/development/saml.html | 2 +- .../synapse_architecture/cancellation.html | 7 +- .../synapse_architecture/faster_joins.html | 2 +- .../synapse_architecture/streams.html | 2 +- latest/federate.html | 2 +- latest/index.html | 2 +- latest/jwt.html | 2 +- latest/log_contexts.html | 46 +++++- latest/manhole.html | 2 +- latest/media_repository.html | 2 +- latest/message_retention_policies.html | 2 +- latest/metrics-howto.html | 2 +- latest/modules/account_data_callbacks.html | 2 +- .../modules/account_validity_callbacks.html | 2 +- ...xtra_fields_to_client_events_unsigned.html | 2 +- ...ackground_update_controller_callbacks.html | 2 +- latest/modules/federation_callbacks.html | 2 +- latest/modules/index.html | 2 +- .../modules/media_repository_callbacks.html | 2 +- .../password_auth_provider_callbacks.html | 2 +- latest/modules/porting_legacy_module.html | 2 +- latest/modules/presence_router_callbacks.html | 2 +- latest/modules/ratelimit_callbacks.html | 2 +- latest/modules/spam_checker_callbacks.html | 2 +- .../modules/third_party_rules_callbacks.html | 2 +- latest/modules/writing_a_module.html | 2 +- latest/openid.html | 28 ++-- latest/opentracing.html | 2 +- ...ing_synapse_on_single_board_computers.html | 2 +- latest/password_auth_providers.html | 2 +- latest/postgres.html | 2 +- latest/print.html | 135 ++++++++++++++---- latest/replication.html | 2 +- latest/reverse_proxy.html | 2 +- latest/room_and_user_statistics.html | 2 +- latest/schema/synapse-config.schema.json | 25 +++- latest/searcher-c2a407aa.js | 2 +- latest/searchindex-5430d330.js | 1 + latest/searchindex-cd06e18a.js | 1 - latest/server_notices.html | 2 +- latest/setup/forward_proxy.html | 2 +- latest/setup/installation.html | 2 +- latest/setup/security.html | 19 ++- latest/setup/turn/coturn.html | 2 +- latest/setup/turn/eturnal.html | 2 +- latest/sso_mapping_providers.html | 2 +- latest/structured_logging.html | 2 +- latest/synctl_workers.html | 2 +- latest/systemd-with-workers/index.html | 2 +- latest/tcp_replication.html | 2 +- latest/templates.html | 2 +- latest/turn-howto.html | 2 +- latest/upgrade.html | 4 +- .../admin_api/background_updates.html | 2 +- .../administration/admin_api/federation.html | 2 +- .../usage/administration/admin_api/index.html | 2 +- .../admin_api/registration_tokens.html | 2 +- latest/usage/administration/admin_faq.html | 2 +- latest/usage/administration/backups.html | 2 +- .../database_maintenance_tools.html | 2 +- latest/usage/administration/index.html | 2 +- ...reporting_homeserver_usage_statistics.html | 2 +- .../administration/monthly_active_users.html | 2 +- latest/usage/administration/request_log.html | 2 +- latest/usage/administration/state_groups.html | 2 +- ...anding_synapse_through_grafana_graphs.html | 2 +- .../administration/useful_sql_for_admins.html | 2 +- .../configuration/config_documentation.html | 31 +++- .../homeserver_sample_config.html | 2 +- latest/usage/configuration/index.html | 2 +- .../configuration/logging_sample_config.html | 2 +- .../user_authentication/index.html | 2 +- .../user_authentication/refresh_tokens.html | 2 +- .../single_sign_on/cas.html | 2 +- .../single_sign_on/index.html | 2 +- .../single_sign_on/saml.html | 2 +- latest/user_directory.html | 2 +- latest/welcome_and_overview.html | 2 +- latest/workers.html | 10 +- 114 files changed, 349 insertions(+), 166 deletions(-) create mode 100644 latest/searchindex-5430d330.js delete mode 100644 latest/searchindex-cd06e18a.js diff --git a/latest/404.html b/latest/404.html index df1d6ea5d3..dc5053e4f2 100644 --- a/latest/404.html +++ b/latest/404.html @@ -38,7 +38,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; diff --git a/latest/CAPTCHA_SETUP.html b/latest/CAPTCHA_SETUP.html index d1ef23f114..90a9720f41 100644 --- a/latest/CAPTCHA_SETUP.html +++ b/latest/CAPTCHA_SETUP.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; diff --git a/latest/admin_api/account_validity.html b/latest/admin_api/account_validity.html index 6abe04e97d..a3c891fec4 100644 --- a/latest/admin_api/account_validity.html +++ b/latest/admin_api/account_validity.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/admin_api/client_server_api_extensions.html b/latest/admin_api/client_server_api_extensions.html index 810f7956f9..33d691627b 100644 --- a/latest/admin_api/client_server_api_extensions.html +++ b/latest/admin_api/client_server_api_extensions.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/admin_api/event_reports.html b/latest/admin_api/event_reports.html index 110cd643b2..efaece9192 100644 --- a/latest/admin_api/event_reports.html +++ b/latest/admin_api/event_reports.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/admin_api/experimental_features.html b/latest/admin_api/experimental_features.html index ff8075124d..72f611eb77 100644 --- a/latest/admin_api/experimental_features.html +++ b/latest/admin_api/experimental_features.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/admin_api/fetch_event.html b/latest/admin_api/fetch_event.html index 8697d4be51..8a2e3f8bf3 100644 --- a/latest/admin_api/fetch_event.html +++ b/latest/admin_api/fetch_event.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/admin_api/media_admin_api.html b/latest/admin_api/media_admin_api.html index 82b1241be3..3f1a21a217 100644 --- a/latest/admin_api/media_admin_api.html +++ b/latest/admin_api/media_admin_api.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/admin_api/purge_history_api.html b/latest/admin_api/purge_history_api.html index e0ea3b395e..545ce104f8 100644 --- a/latest/admin_api/purge_history_api.html +++ b/latest/admin_api/purge_history_api.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/admin_api/register_api.html b/latest/admin_api/register_api.html index 8b9fc82d31..1de888b29a 100644 --- a/latest/admin_api/register_api.html +++ b/latest/admin_api/register_api.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/admin_api/room_membership.html b/latest/admin_api/room_membership.html index 3f35ea64e0..6c4210062c 100644 --- a/latest/admin_api/room_membership.html +++ b/latest/admin_api/room_membership.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/admin_api/rooms.html b/latest/admin_api/rooms.html index ebffa75850..baa4e16d58 100644 --- a/latest/admin_api/rooms.html +++ b/latest/admin_api/rooms.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/admin_api/scheduled_tasks.html b/latest/admin_api/scheduled_tasks.html index 323f27fdce..a2e901b9e0 100644 --- a/latest/admin_api/scheduled_tasks.html +++ b/latest/admin_api/scheduled_tasks.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/admin_api/server_notices.html b/latest/admin_api/server_notices.html index b784e0e08b..6e2fcba74b 100644 --- a/latest/admin_api/server_notices.html +++ b/latest/admin_api/server_notices.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/admin_api/statistics.html b/latest/admin_api/statistics.html index 07d77ca967..c064850f83 100644 --- a/latest/admin_api/statistics.html +++ b/latest/admin_api/statistics.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/admin_api/user_admin_api.html b/latest/admin_api/user_admin_api.html index d5adafa047..d0784dc988 100644 --- a/latest/admin_api/user_admin_api.html +++ b/latest/admin_api/user_admin_api.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/admin_api/version_api.html b/latest/admin_api/version_api.html index 34d57bdd3b..22d1833dfe 100644 --- a/latest/admin_api/version_api.html +++ b/latest/admin_api/version_api.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/application_services.html b/latest/application_services.html index bb0a3bebe0..dc2dff11dc 100644 --- a/latest/application_services.html +++ b/latest/application_services.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; diff --git a/latest/auth_chain_difference_algorithm.html b/latest/auth_chain_difference_algorithm.html index d6ca0c8b72..4f3bab3b0a 100644 --- a/latest/auth_chain_difference_algorithm.html +++ b/latest/auth_chain_difference_algorithm.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; diff --git a/latest/code_style.html b/latest/code_style.html index 5405a351ee..8b43985263 100644 --- a/latest/code_style.html +++ b/latest/code_style.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; diff --git a/latest/consent_tracking.html b/latest/consent_tracking.html index e59a6dd979..27fb4a4b80 100644 --- a/latest/consent_tracking.html +++ b/latest/consent_tracking.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; diff --git a/latest/delegate.html b/latest/delegate.html index f91e229513..be8eb78183 100644 --- a/latest/delegate.html +++ b/latest/delegate.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; diff --git a/latest/deprecation_policy.html b/latest/deprecation_policy.html index 2427f36fa5..595f98d194 100644 --- a/latest/deprecation_policy.html +++ b/latest/deprecation_policy.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; diff --git a/latest/development/cas.html b/latest/development/cas.html index 13262ee81d..7c795320da 100644 --- a/latest/development/cas.html +++ b/latest/development/cas.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/development/contributing_guide.html b/latest/development/contributing_guide.html index 33ab888983..5acdc58016 100644 --- a/latest/development/contributing_guide.html +++ b/latest/development/contributing_guide.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; @@ -244,7 +244,7 @@ pipx install poetry

but see poetry’s installation instructions for other installation methods.

-

Developing Synapse requires Poetry version 1.3.2 or later.

+

The minimum poetry version is specified by the requires-poetry line in pyproject.toml.

Next, open a terminal and install dependencies as follows:

cd path/where/you/have/cloned/the/repository
 poetry install --extras all
diff --git a/latest/development/database_schema.html b/latest/development/database_schema.html
index 536fadf906..47e6fa3fa1 100644
--- a/latest/development/database_schema.html
+++ b/latest/development/database_schema.html
@@ -37,7 +37,7 @@
             const path_to_root = "../";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "../searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "../searchindex-5430d330.js";
         
         
         
diff --git a/latest/development/demo.html b/latest/development/demo.html
index 1e17914533..6fbd8dcbe9 100644
--- a/latest/development/demo.html
+++ b/latest/development/demo.html
@@ -37,7 +37,7 @@
             const path_to_root = "../";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "../searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "../searchindex-5430d330.js";
         
         
         
diff --git a/latest/development/dependencies.html b/latest/development/dependencies.html
index cb7013807f..e525b41848 100644
--- a/latest/development/dependencies.html
+++ b/latest/development/dependencies.html
@@ -37,7 +37,7 @@
             const path_to_root = "../";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "../searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "../searchindex-5430d330.js";
         
         
         
diff --git a/latest/development/experimental_features.html b/latest/development/experimental_features.html
index 9b5c9c1b9f..1c51822f31 100644
--- a/latest/development/experimental_features.html
+++ b/latest/development/experimental_features.html
@@ -37,7 +37,7 @@
             const path_to_root = "../";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "../searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "../searchindex-5430d330.js";
         
         
         
diff --git a/latest/development/git.html b/latest/development/git.html
index d06b627356..f30f3279c7 100644
--- a/latest/development/git.html
+++ b/latest/development/git.html
@@ -37,7 +37,7 @@
             const path_to_root = "../";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "../searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "../searchindex-5430d330.js";
         
         
         
diff --git a/latest/development/internal_documentation/index.html b/latest/development/internal_documentation/index.html
index ad3df4e7b3..ea0257afda 100644
--- a/latest/development/internal_documentation/index.html
+++ b/latest/development/internal_documentation/index.html
@@ -37,7 +37,7 @@
             const path_to_root = "../../";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "../../searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "../../searchindex-5430d330.js";
         
         
         
diff --git a/latest/development/internal_documentation/release_notes_review_checklist.html b/latest/development/internal_documentation/release_notes_review_checklist.html
index f6404513e6..abd0e81355 100644
--- a/latest/development/internal_documentation/release_notes_review_checklist.html
+++ b/latest/development/internal_documentation/release_notes_review_checklist.html
@@ -37,7 +37,7 @@
             const path_to_root = "../../";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "../../searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "../../searchindex-5430d330.js";
         
         
         
diff --git a/latest/development/releases.html b/latest/development/releases.html
index 4a373cc996..6e17b88a5f 100644
--- a/latest/development/releases.html
+++ b/latest/development/releases.html
@@ -37,7 +37,7 @@
             const path_to_root = "../";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "../searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "../searchindex-5430d330.js";
         
         
         
diff --git a/latest/development/reviews.html b/latest/development/reviews.html
index 5637f33fd7..75df6723cd 100644
--- a/latest/development/reviews.html
+++ b/latest/development/reviews.html
@@ -37,7 +37,7 @@
             const path_to_root = "../";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "../searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "../searchindex-5430d330.js";
         
         
         
diff --git a/latest/development/room-dag-concepts.html b/latest/development/room-dag-concepts.html
index f4ad892293..04889d2136 100644
--- a/latest/development/room-dag-concepts.html
+++ b/latest/development/room-dag-concepts.html
@@ -37,7 +37,7 @@
             const path_to_root = "../";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "../searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "../searchindex-5430d330.js";
         
         
         
diff --git a/latest/development/saml.html b/latest/development/saml.html
index 87c3debbc7..a14b797768 100644
--- a/latest/development/saml.html
+++ b/latest/development/saml.html
@@ -37,7 +37,7 @@
             const path_to_root = "../";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "../searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "../searchindex-5430d330.js";
         
         
         
diff --git a/latest/development/synapse_architecture/cancellation.html b/latest/development/synapse_architecture/cancellation.html
index 7691be3a61..2a320d7fad 100644
--- a/latest/development/synapse_architecture/cancellation.html
+++ b/latest/development/synapse_architecture/cancellation.html
@@ -37,7 +37,7 @@
             const path_to_root = "../../";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "../../searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "../../searchindex-5430d330.js";
         
         
         
@@ -459,6 +459,9 @@ await wait_for_room("!aAAaaAaaaAAAaAaAA:matrix.org")
 await wait_for_room("!aAAaaAaaaAAAaAaAA:matrix.org")
 
+ + +

Uncancelled processing

Some async functions may kick off some async processing which is @@ -560,8 +563,6 @@ with LoggingContext("request-1"): - - diff --git a/latest/development/synapse_architecture/faster_joins.html b/latest/development/synapse_architecture/faster_joins.html index 89cbaec8b6..e82fbb1618 100644 --- a/latest/development/synapse_architecture/faster_joins.html +++ b/latest/development/synapse_architecture/faster_joins.html @@ -37,7 +37,7 @@ const path_to_root = "../../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../../searchindex-5430d330.js"; diff --git a/latest/development/synapse_architecture/streams.html b/latest/development/synapse_architecture/streams.html index e7de2977a1..9c1f98cbf5 100644 --- a/latest/development/synapse_architecture/streams.html +++ b/latest/development/synapse_architecture/streams.html @@ -37,7 +37,7 @@ const path_to_root = "../../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../../searchindex-5430d330.js"; diff --git a/latest/federate.html b/latest/federate.html index e6d48c723d..f97bb4091b 100644 --- a/latest/federate.html +++ b/latest/federate.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; diff --git a/latest/index.html b/latest/index.html index 5712ad02a7..35a18fde7d 100644 --- a/latest/index.html +++ b/latest/index.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; diff --git a/latest/jwt.html b/latest/jwt.html index 799a05a038..e0eaba06df 100644 --- a/latest/jwt.html +++ b/latest/jwt.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; diff --git a/latest/log_contexts.html b/latest/log_contexts.html index 29ff0dc670..7519af769e 100644 --- a/latest/log_contexts.html +++ b/latest/log_contexts.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; @@ -200,9 +200,15 @@

Log Contexts

To help track the processing of individual requests, synapse uses a ‘log context’ to track which request it is handling at any given -moment. This is done via a thread-local variable; a logging.Filter is -then used to fish the information back out of the thread-local variable -and add it to each log record.

+moment. The “current” log context is stored in the Rust extension +(synapse.synapse_rust.logcontext), which resolves it from the current +tokio task (if we are running inside one) and otherwise from the current OS +thread; a logging.Filter is then used to fish the information back out and +add it to each log record. Storing it in Rust means a single source of truth is +visible from both Python (the reactor and its thread pool) and Rust (tokio +tasks), so log records emitted from either — including from Rust code polled on +a worker thread — are attributed to the right request. See +the Rust side below.

Logcontexts are also used for CPU and database accounting, so that we can track which requests were responsible for high CPU use or database activity.

@@ -642,6 +648,26 @@ chain are dropped. Dropping the the reference to an awaitable you’re supposed to be awaiting is bad practice, so this doesn’t actually happen too much. Unfortunately, when it does happen, it will lead to leaked logcontexts which are incredibly hard to track down.

+

The Rust side

+

The “current” logcontext is stored in the Rust extension rather than in a +Python thread-local, so that it is visible from both Python and Rust. +current_context() and set_current_context() are imported from +synapse.logging.context as usual — the Rust storage is an implementation +detail that Python code does not need to care about.

+

set_current_context only ever runs on a Python thread, i.e. the reactor or one +of its thread pools, where it does the getrusage CPU accounting. It is never +called from a tokio worker thread. Therefore, CPU accounting is not captured +when executing purely Rust work.

+

What Rust code does need to be aware of is that when spawning a future onto +the tokio runtime, the current logcontext must be captured and carried along, so +that log records emitted while the future is polled (including any log:: +records from dependencies, and any Python invoked back from Rust) are attributed +correctly. Don’t use a bare tokio::spawn. Instead use +LogContextHandle::capture(py) plus LogContextHandle::scope, which capture +the caller’s logcontext from the Python side and record it on the spawned task; +this is what create_deferred does. current_context() returns the task’s +captured context first, so LoggingContextFilter — and therefore pyo3-log — +sees the right context on worker threads without any per-log-record work.

Debugging logcontext issues

Debugging logcontext issues can be tricky as leaking or losing a logcontext will surface downstream and can point to an unrelated part of the codebase. It’s best to enable debug @@ -652,6 +678,18 @@ backwards in the logs from the point where the issue is observed to find the roo # Unlike other loggers, this one needs to be explicitly configured to see debug logs. synapse.logging.context.debug: level: DEBUG + +

Note that some of these traces (LoggingContext(...).__enter__/__exit__) are +emitted from Rust via pyo3-log, which caches logger levels for performance. +Configuring the logger in the logging config (as above) works — the cache is +flushed whenever the config is (re)loaded, including on SIGHUP — but enabling +the logger at runtime (e.g. setLevel(logging.DEBUG) from the manhole) will +not surface the Rust-emitted traces until you also flush the cache:

+
import logging
+from synapse.synapse_rust import reset_logging_config
+
+logging.getLogger("synapse.logging.context.debug").setLevel(logging.DEBUG)
+reset_logging_config()
 
diff --git a/latest/manhole.html b/latest/manhole.html index 76ace2e072..7909ba8f29 100644 --- a/latest/manhole.html +++ b/latest/manhole.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; diff --git a/latest/media_repository.html b/latest/media_repository.html index f5885c7214..bcdb71d88e 100644 --- a/latest/media_repository.html +++ b/latest/media_repository.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; diff --git a/latest/message_retention_policies.html b/latest/message_retention_policies.html index c5a89dc65b..89d6eb8fcb 100644 --- a/latest/message_retention_policies.html +++ b/latest/message_retention_policies.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; diff --git a/latest/metrics-howto.html b/latest/metrics-howto.html index 4d90859fe4..73dec57a3f 100644 --- a/latest/metrics-howto.html +++ b/latest/metrics-howto.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; diff --git a/latest/modules/account_data_callbacks.html b/latest/modules/account_data_callbacks.html index b56a58d4e5..9a62f3f600 100644 --- a/latest/modules/account_data_callbacks.html +++ b/latest/modules/account_data_callbacks.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/modules/account_validity_callbacks.html b/latest/modules/account_validity_callbacks.html index 609610f284..9253d5389a 100644 --- a/latest/modules/account_validity_callbacks.html +++ b/latest/modules/account_validity_callbacks.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/modules/add_extra_fields_to_client_events_unsigned.html b/latest/modules/add_extra_fields_to_client_events_unsigned.html index 9024520873..f0c3606256 100644 --- a/latest/modules/add_extra_fields_to_client_events_unsigned.html +++ b/latest/modules/add_extra_fields_to_client_events_unsigned.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/modules/background_update_controller_callbacks.html b/latest/modules/background_update_controller_callbacks.html index bfa6028bc1..b950da74bb 100644 --- a/latest/modules/background_update_controller_callbacks.html +++ b/latest/modules/background_update_controller_callbacks.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/modules/federation_callbacks.html b/latest/modules/federation_callbacks.html index 9fea0a0538..45a543e4ff 100644 --- a/latest/modules/federation_callbacks.html +++ b/latest/modules/federation_callbacks.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/modules/index.html b/latest/modules/index.html index 5a65e7d622..8ec6ed98f4 100644 --- a/latest/modules/index.html +++ b/latest/modules/index.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/modules/media_repository_callbacks.html b/latest/modules/media_repository_callbacks.html index 8a92051d5f..150b0f9a2a 100644 --- a/latest/modules/media_repository_callbacks.html +++ b/latest/modules/media_repository_callbacks.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/modules/password_auth_provider_callbacks.html b/latest/modules/password_auth_provider_callbacks.html index fdd748a51c..1e0f25171d 100644 --- a/latest/modules/password_auth_provider_callbacks.html +++ b/latest/modules/password_auth_provider_callbacks.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/modules/porting_legacy_module.html b/latest/modules/porting_legacy_module.html index 1160b75c8c..61fe4d32a1 100644 --- a/latest/modules/porting_legacy_module.html +++ b/latest/modules/porting_legacy_module.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/modules/presence_router_callbacks.html b/latest/modules/presence_router_callbacks.html index 1f82e67503..b0f5537359 100644 --- a/latest/modules/presence_router_callbacks.html +++ b/latest/modules/presence_router_callbacks.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/modules/ratelimit_callbacks.html b/latest/modules/ratelimit_callbacks.html index c8e2cd11e9..e3096f5265 100644 --- a/latest/modules/ratelimit_callbacks.html +++ b/latest/modules/ratelimit_callbacks.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/modules/spam_checker_callbacks.html b/latest/modules/spam_checker_callbacks.html index 09b6ab3f3f..7168a3e558 100644 --- a/latest/modules/spam_checker_callbacks.html +++ b/latest/modules/spam_checker_callbacks.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/modules/third_party_rules_callbacks.html b/latest/modules/third_party_rules_callbacks.html index 763e64cb9a..7c351d9d8b 100644 --- a/latest/modules/third_party_rules_callbacks.html +++ b/latest/modules/third_party_rules_callbacks.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/modules/writing_a_module.html b/latest/modules/writing_a_module.html index 6c4d550110..3cfdd6a9ba 100644 --- a/latest/modules/writing_a_module.html +++ b/latest/modules/writing_a_module.html @@ -37,7 +37,7 @@ const path_to_root = "../"; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "../searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "../searchindex-5430d330.js"; diff --git a/latest/openid.html b/latest/openid.html index 22a5e05fe3..41164ed99c 100644 --- a/latest/openid.html +++ b/latest/openid.html @@ -37,7 +37,7 @@ const path_to_root = ""; const default_light_theme = "light"; const default_dark_theme = "navy"; - window.path_to_searchindex_js = "searchindex-cd06e18a.js"; + window.path_to_searchindex_js = "searchindex-5430d330.js"; @@ -307,18 +307,15 @@ has more information on setting up SiWA.

Auth0

Auth0 is a hosted SaaS IdP solution.

    -
  1. -

    Create a regular web application for Synapse

    -
  2. -
  3. -

    Set the Allowed Callback URLs to [synapse public baseurl]/_synapse/client/oidc/callback

    -
  4. -
  5. -

    Add a rule with any name to add the preferred_username claim. -(See https://auth0.com/docs/customize/rules/create-rules for more information on how to create rules.)

    -
    - Code sample -
    function addPersistenceAttribute(user, context, callback) {
    +
  6. Create a regular web application for Synapse
  7. +
  8. Set the Allowed Callback URLs to [synapse public baseurl]/_synapse/client/oidc/callback
  9. +
  10. Add a rule with any name to add the preferred_username claim. +(See https://auth0.com/docs/customize/rules/create-rules for more information on how to create rules.)
  11. +
+
+ Code sample +
```js
+function addPersistenceAttribute(user, context, callback) {
   user.user_metadata = user.user_metadata || {};
   user.user_metadata.preferred_username = user.user_metadata.preferred_username || user.user_id;
   context.idToken.preferred_username = user.user_metadata.preferred_username;
@@ -331,10 +328,9 @@ has more information on setting up SiWA.

callback(err); }); } +```
-
- - +

Synapse config:

oidc_providers:
   - idp_id: auth0
diff --git a/latest/opentracing.html b/latest/opentracing.html
index 426cb6a7e3..8e7277314f 100644
--- a/latest/opentracing.html
+++ b/latest/opentracing.html
@@ -37,7 +37,7 @@
             const path_to_root = "";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "searchindex-5430d330.js";
         
         
         
diff --git a/latest/other/running_synapse_on_single_board_computers.html b/latest/other/running_synapse_on_single_board_computers.html
index 9bad42693c..207897b711 100644
--- a/latest/other/running_synapse_on_single_board_computers.html
+++ b/latest/other/running_synapse_on_single_board_computers.html
@@ -37,7 +37,7 @@
             const path_to_root = "../";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "../searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "../searchindex-5430d330.js";
         
         
         
diff --git a/latest/password_auth_providers.html b/latest/password_auth_providers.html
index 766232edc5..6cc68daea8 100644
--- a/latest/password_auth_providers.html
+++ b/latest/password_auth_providers.html
@@ -37,7 +37,7 @@
             const path_to_root = "";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "searchindex-5430d330.js";
         
         
         
diff --git a/latest/postgres.html b/latest/postgres.html
index 246eec4248..7e6c3ab649 100644
--- a/latest/postgres.html
+++ b/latest/postgres.html
@@ -37,7 +37,7 @@
             const path_to_root = "";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "searchindex-5430d330.js";
         
         
         
diff --git a/latest/print.html b/latest/print.html
index 5ebd20807d..06403a5817 100644
--- a/latest/print.html
+++ b/latest/print.html
@@ -38,7 +38,7 @@
             const path_to_root = "";
             const default_light_theme = "light";
             const default_dark_theme = "navy";
-            window.path_to_searchindex_js = "searchindex-cd06e18a.js";
+            window.path_to_searchindex_js = "searchindex-5430d330.js";
         
         
         
@@ -774,6 +774,23 @@ However, you should not host your Synapse on A.example1.com
 

Following this advice ensures that even if an XSS is found in Synapse, the impact to other applications will be minimal.

+

Firewall configuration

+

If your Matrix server is secured by a firewall, firewall rules for two different purposes are required.

+

Client access to a Synapse server runs via the client port which is TCP port 443 by default. The client port has to be allowed inbound.

+

Federation to exchange messages with other Matrix servers runs via TCP port 8448 by default or alternatively via regular HTTPS TCP port 443 (usually if run with delegation and/or behind a reverse proxy). So to allow federation in a firewall, make sure to allow the federation port of your Synapse server inbound.

+

If you have outbound access limited by a firewall allowlist, make sure both TCP ports 443 and 8448 are allowed outbound.

+
+ + + + + + + + + +
DirectionPortProtocolDescription
Inbound443TCPClient access
Inbound8448 and/or 443TCPFederation inbound, depending on the federation port used
Outbound8448 and 443TCPFederation outbound, both ports are usually used
+

Using Postgres

The minimum supported version of PostgreSQL is determined by the Dependency @@ -2092,7 +2109,7 @@ v1.61.0.

v1.85.0 – v1.91.2v1.83.0 v1.92.0 – v1.97.0v1.90.0 v1.98.0 – v1.105.0v1.96.0 -v1.105.1 – v1.161.0v1.100.0 +v1.105.1 – v1.162.0v1.100.0 @@ -4589,8 +4606,9 @@ This feature is under development and should be used with caution on busy server

Known room versions are listed here

For example, for room version 1, default_room_version should be set to “1”.

Changed in Synapse 1.76: the default version room version was increased from 9 to 10. -Changed in Synapse 1.157: the default version room version was increased from 10 to 11.

-

Defaults to "11".

+Changed in Synapse 1.157: the default version room version was increased from 10 to 11. +Changed in Synapse 1.162: the default room version was increased from 11 to 12

+

Defaults to "12".

Example configuration:

default_room_version: '8'
 
@@ -6157,6 +6175,25 @@ Setting this to a high value allows users to report content quickly, possibly in burst_count: 200.0

+

rc_profile

+

(object) This option allows admins to ratelimit profile lookups by clients.

+

Requests are limited per user when the request is authenticated, otherwise per client IP address.

+

Added in Synapse 1.162.0.

+

This setting has the following sub-options:

+ +

Default configuration:

+
rc_profile:
+  per_second: 1.0
+  burst_count: 500.0
+
+

federation_rr_transactions_per_room_per_second

(integer) Sets outgoing federation transaction frequency for sending read-receipts, per-room.

If we end up trying to send out more read-receipts, they will get buffered up into fewer transactions.

@@ -8271,6 +8308,7 @@ It’s recommended to leave this option as it is. We expect to remove this optio

Changed in Synapse 1.84.0: Added use_tls, certificate_file, private_key_file, ca_file and ca_path attributes

Changed in Synapse 1.85.0: Added path option to use a local Unix socket

Changed in Synapse 1.116.0: Added password_path

+

Changed in Synapse 1.162.0: Added username

This setting has the following sub-options: