mirror of
https://github.com/element-hq/synapse.git
synced 2026-07-17 16:32:16 +00:00
deploy: 33d47f43e4
This commit is contained in:
+1
-1
@@ -38,7 +38,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
@@ -602,6 +602,7 @@ is set to <code>true</code>:</p>
|
||||
<ul>
|
||||
<li>Remove the user’s display name</li>
|
||||
<li>Remove the user’s avatar URL</li>
|
||||
<li>Remove the user’s custom profile fields</li>
|
||||
<li>Mark the user as erased</li>
|
||||
</ul>
|
||||
<p>The following actions are <strong>NOT</strong> performed. The list may be incomplete.</p>
|
||||
@@ -731,7 +732,7 @@ member are returned.</p>
|
||||
<h2 id="get-the-number-of-invites-sent-by-the-user"><a class="header" href="#get-the-number-of-invites-sent-by-the-user">Get the number of invites sent by the user</a></h2>
|
||||
<p>Fetches the number of invites sent by the provided user ID across all rooms
|
||||
after the given timestamp.</p>
|
||||
<pre><code>GET /_synapse/admin/v1/users/$user_id/sent_invite_count
|
||||
<pre><code>GET /_synapse/admin/v1/users/<user_id>/sent_invite_count
|
||||
</code></pre>
|
||||
<p><strong>Parameters</strong></p>
|
||||
<p>The following parameters should be set in the URL:</p>
|
||||
@@ -756,7 +757,7 @@ into timestamps and vice versa.</li>
|
||||
<h2 id="get-the-cumulative-number-of-rooms-a-user-has-joined-after-a-given-timestamp"><a class="header" href="#get-the-cumulative-number-of-rooms-a-user-has-joined-after-a-given-timestamp">Get the cumulative number of rooms a user has joined after a given timestamp</a></h2>
|
||||
<p>Fetches the number of rooms that the user joined after the given timestamp, even
|
||||
if they have subsequently left/been banned from those rooms.</p>
|
||||
<pre><code>GET /_synapse/admin/v1/users/$<user_id/cumulative_joined_room_count
|
||||
<pre><code>GET /_synapse/admin/v1/users/<user_id>/cumulative_joined_room_count
|
||||
</code></pre>
|
||||
<p><strong>Parameters</strong></p>
|
||||
<p>The following parameters should be set in the URL:</p>
|
||||
@@ -1430,7 +1431,7 @@ for more information.</p>
|
||||
<a href="https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-register-available">/_matrix/client/r0/register/available</a> API.</p>
|
||||
<h2 id="find-a-user-based-on-their-id-in-an-auth-provider"><a class="header" href="#find-a-user-based-on-their-id-in-an-auth-provider">Find a user based on their ID in an auth provider</a></h2>
|
||||
<p>The API is:</p>
|
||||
<pre><code>GET /_synapse/admin/v1/auth_providers/$provider/users/$external_id
|
||||
<pre><code>GET /_synapse/admin/v1/auth_providers/<provider>/users/<external_id>
|
||||
</code></pre>
|
||||
<p>When a user matched the given ID for the given provider, an HTTP code <code>200</code> with a response body like the following is returned:</p>
|
||||
<pre><code class="language-json">{
|
||||
@@ -1454,7 +1455,7 @@ for more information.</p>
|
||||
<p><em>Added in Synapse 1.68.0.</em></p>
|
||||
<h2 id="find-a-user-based-on-their-third-party-id-threepid-or-3pid"><a class="header" href="#find-a-user-based-on-their-third-party-id-threepid-or-3pid">Find a user based on their Third Party ID (ThreePID or 3PID)</a></h2>
|
||||
<p>The API is:</p>
|
||||
<pre><code>GET /_synapse/admin/v1/threepid/$medium/users/$address
|
||||
<pre><code>GET /_synapse/admin/v1/threepid/<medium>/users/<address>
|
||||
</code></pre>
|
||||
<p>When a user matched the given address for the given medium, an HTTP code <code>200</code> with a response body like the following is returned:</p>
|
||||
<pre><code class="language-json">{
|
||||
@@ -1483,7 +1484,7 @@ Redactions for non-local users are issued using the admin user, and will fail in
|
||||
admin user is not admin/does not have the specified power level to issue redactions. An option
|
||||
is provided to override the default and allow the admin to issue the redactions in all cases.</p>
|
||||
<p>The API is</p>
|
||||
<pre><code>POST /_synapse/admin/v1/user/$user_id/redact
|
||||
<pre><code>POST /_synapse/admin/v1/user/<user_id>/redact
|
||||
|
||||
{
|
||||
"rooms": ["!roomid1", "!roomid2"]
|
||||
@@ -1521,7 +1522,7 @@ where the admin does not have the sufficient power level to issue the redactions
|
||||
The status can be queried up to 24 hours after completion of the task,
|
||||
or until Synapse is restarted (whichever happens first).</p>
|
||||
<p>The API is:</p>
|
||||
<pre><code>GET /_synapse/admin/v1/user/redact_status/$redact_id
|
||||
<pre><code>GET /_synapse/admin/v1/user/redact_status/<redact_id>
|
||||
</code></pre>
|
||||
<p>A response body like the following is returned:</p>
|
||||
<pre><code>{
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
@@ -414,38 +414,8 @@ configuration:</p>
|
||||
</ul>
|
||||
<p>For more details about other configurations, see the <a href="https://github.com/matrix-org/sytest/blob/develop/docker/README.md">Docker-specific documentation in the SyTest repo</a>.</p>
|
||||
<h2 id="run-the-integration-tests-complement"><a class="header" href="#run-the-integration-tests-complement">Run the integration tests (<a href="https://github.com/matrix-org/complement">Complement</a>).</a></h2>
|
||||
<p><a href="https://github.com/matrix-org/complement">Complement</a> is a suite of black box tests that can be run on any homeserver implementation. It can also be thought of as end-to-end (e2e) tests.</p>
|
||||
<p>It’s often nice to develop on Synapse and write Complement tests at the same time.
|
||||
Here is how to run your local Synapse checkout against your local Complement checkout.</p>
|
||||
<p>(checkout <a href="https://github.com/matrix-org/complement"><code>complement</code></a> alongside your <code>synapse</code> checkout)</p>
|
||||
<pre><code class="language-sh">COMPLEMENT_DIR=../complement ./scripts-dev/complement.sh
|
||||
</code></pre>
|
||||
<p>To run a specific test file, you can pass the test name at the end of the command. The name passed comes from the naming structure in your Complement tests. If you’re unsure of the name, you can do a full run and copy it from the test output:</p>
|
||||
<pre><code class="language-sh">COMPLEMENT_DIR=../complement ./scripts-dev/complement.sh -run TestImportHistoricalMessages
|
||||
</code></pre>
|
||||
<p>To run a specific test, you can specify the whole name structure:</p>
|
||||
<pre><code class="language-sh">COMPLEMENT_DIR=../complement ./scripts-dev/complement.sh -run TestImportHistoricalMessages/parallel/Historical_events_resolve_in_the_correct_order
|
||||
</code></pre>
|
||||
<p>The above will run a monolithic (single-process) Synapse with SQLite as the database. For other configurations, try:</p>
|
||||
<ul>
|
||||
<li>Passing <code>POSTGRES=1</code> as an environment variable to use the Postgres database instead.</li>
|
||||
<li>Passing <code>WORKERS=1</code> as an environment variable to use a workerised setup instead. This option implies the use of Postgres.
|
||||
<ul>
|
||||
<li>If setting <code>WORKERS=1</code>, optionally set <code>WORKER_TYPES=</code> to declare which worker
|
||||
types you wish to test. A simple comma-delimited string containing the worker types
|
||||
defined from the <code>WORKERS_CONFIG</code> template in
|
||||
<a href="https://github.com/element-hq/synapse/blob/develop/docker/configure_workers_and_start.py#L54">here</a>.
|
||||
A safe example would be <code>WORKER_TYPES="federation_inbound, federation_sender, synchrotron"</code>.
|
||||
See the <a href="../workers.html">worker documentation</a> for additional information on workers.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Passing <code>ASYNCIO_REACTOR=1</code> as an environment variable to use the Twisted asyncio reactor instead of the default one.</li>
|
||||
<li>Passing <code>PODMAN=1</code> will use the <a href="https://podman.io/">podman</a> container runtime, instead of docker.</li>
|
||||
<li>Passing <code>UNIX_SOCKETS=1</code> will utilise Unix socket functionality for Synapse, Redis, and Postgres(when applicable).</li>
|
||||
</ul>
|
||||
<p>To increase the log level for the tests, set <code>SYNAPSE_TEST_LOG_LEVEL</code>, e.g:</p>
|
||||
<pre><code class="language-sh">SYNAPSE_TEST_LOG_LEVEL=DEBUG COMPLEMENT_DIR=../complement ./scripts-dev/complement.sh -run TestImportHistoricalMessages
|
||||
</code></pre>
|
||||
<p>See our <a href="https://github.com/element-hq/synapse/tree/develop/complement">Complement docs</a>
|
||||
for how to use the <code>./scripts-dev/complement.sh</code> test runner script.</p>
|
||||
<h3 id="prettier-formatting-with-gotestfmt"><a class="header" href="#prettier-formatting-with-gotestfmt">Prettier formatting with <code>gotestfmt</code></a></h3>
|
||||
<p>If you want to format the output of the tests the same way as it looks in CI,
|
||||
install <a href="https://github.com/GoTestTools/gotestfmt">gotestfmt</a>.</p>
|
||||
@@ -453,16 +423,6 @@ install <a href="https://github.com/GoTestTools/gotestfmt">gotestfmt</a>.</p>
|
||||
<pre><code class="language-sh">COMPLEMENT_DIR=../complement ./scripts-dev/complement.sh -json | gotestfmt -hide successful-tests
|
||||
</code></pre>
|
||||
<p>(Remove <code>-hide successful-tests</code> if you don’t want to hide successful tests.)</p>
|
||||
<h3 id="access-database-for-homeserver-after-complement-test-runs"><a class="header" href="#access-database-for-homeserver-after-complement-test-runs">Access database for homeserver after Complement test runs.</a></h3>
|
||||
<p>If you’re curious what the database looks like after you run some tests, here are some steps to get you going in Synapse:</p>
|
||||
<ol>
|
||||
<li>In your Complement test comment out <code>defer deployment.Destroy(t)</code> and replace with <code>defer time.Sleep(2 * time.Hour)</code> to keep the homeserver running after the tests complete</li>
|
||||
<li>Start the Complement tests</li>
|
||||
<li>Find the name of the container, <code>docker ps -f name=complement_</code> (this will filter for just the Compelement related Docker containers)</li>
|
||||
<li>Access the container replacing the name with what you found in the previous step: <code>docker exec -it complement_1_hs_with_application_service.hs1_2 /bin/bash</code></li>
|
||||
<li>Install sqlite (database driver), <code>apt-get update && apt-get install -y sqlite3</code></li>
|
||||
<li>Then run <code>sqlite3</code> and open the database <code>.open /conf/homeserver.db</code> (this db path comes from the Synapse homeserver.yaml)</li>
|
||||
</ol>
|
||||
<h1 id="9-submit-your-patch"><a class="header" href="#9-submit-your-patch">9. Submit your patch.</a></h1>
|
||||
<p>Once you’re happy with your patch, it’s time to prepare a Pull Request.</p>
|
||||
<p>To prepare a Pull Request, please:</p>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
@@ -201,7 +201,7 @@
|
||||
<p>This is a quick cheat sheet for developers on how to use <a href="https://python-poetry.org/"><code>poetry</code></a>.</p>
|
||||
<h1 id="installing"><a class="header" href="#installing">Installing</a></h1>
|
||||
<p>See the <a href="contributing_guide.html#4-install-the-dependencies">contributing guide</a>.</p>
|
||||
<p>Developers should use Poetry 1.3.2 or higher. If you encounter problems related
|
||||
<p>Developers should use Poetry 2.2.0 or higher. If you encounter problems related
|
||||
to poetry, please <a href="#check-the-version-of-poetry-with-poetry---version">double-check your poetry version</a>.</p>
|
||||
<h1 id="background"><a class="header" href="#background">Background</a></h1>
|
||||
<p>Synapse uses a variety of third-party Python packages to function as a homeserver.
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
+45
-54
@@ -38,7 +38,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
@@ -425,6 +425,10 @@ pip install --upgrade pip
|
||||
pip install --upgrade setuptools
|
||||
pip install matrix-synapse
|
||||
</code></pre>
|
||||
<p>If you want to use a logging configuration that references
|
||||
<code>systemd.journal.JournalHandler</code> (for example <code>contrib/systemd/log_config.yaml</code>),
|
||||
you must install <code>systemd-python</code> separately in the same environment.
|
||||
Synapse no longer provides a <code>matrix-synapse[systemd]</code> extra.</p>
|
||||
<p>This will download Synapse from <a href="https://pypi.org/project/matrix-synapse">PyPI</a>
|
||||
and install it, along with the python libraries it uses, into a virtual environment
|
||||
under <code>~/synapse/env</code>. Feel free to pick a different directory if you
|
||||
@@ -2008,7 +2012,7 @@ v1.61.0.</p>
|
||||
<tr><td>v1.85.0 – v1.91.2</td><td>v1.83.0</td></tr>
|
||||
<tr><td>v1.92.0 – v1.97.0</td><td>v1.90.0</td></tr>
|
||||
<tr><td>v1.98.0 – v1.105.0</td><td>v1.96.0</td></tr>
|
||||
<tr><td>v1.105.1 – v1.149.1</td><td>v1.100.0</td></tr>
|
||||
<tr><td>v1.105.1 – v1.150.0</td><td>v1.100.0</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -2028,6 +2032,30 @@ database migrations are complete. You should wait until background updates from
|
||||
each upgrade are complete before moving on to the next upgrade, to avoid
|
||||
stacking them up. You can monitor the currently running background updates with
|
||||
<a href="#status">the Admin API</a>.</p>
|
||||
<h1 id="upgrading-to-v11500"><a class="header" href="#upgrading-to-v11500">Upgrading to v1.150.0</a></h1>
|
||||
<h2 id="removal-of-the-systemd-pip-extra"><a class="header" href="#removal-of-the-systemd-pip-extra">Removal of the <code>systemd</code> pip extra</a></h2>
|
||||
<p>The <code>matrix-synapse[systemd]</code> pip extra has been removed.
|
||||
If you use <code>systemd.journal.JournalHandler</code> in your logging configuration
|
||||
(e.g. <code>contrib/systemd/log_config.yaml</code>), you must now install
|
||||
<code>systemd-python</code> manually in Synapse’s runtime environment:</p>
|
||||
<pre><code class="language-bash">pip install systemd-python
|
||||
</code></pre>
|
||||
<p>No action is needed if you do not use journal logging, or if you installed
|
||||
Synapse from the Debian packages (which handle this automatically).</p>
|
||||
<h2 id="module-api-deprecation-of-the-deactivation-parameter-in-the-set_displayname-method"><a class="header" href="#module-api-deprecation-of-the-deactivation-parameter-in-the-set_displayname-method">Module API: Deprecation of the <code>deactivation</code> parameter in the <code>set_displayname</code> method</a></h2>
|
||||
<p>If you have Synapse modules installed that use the <code>set_displayname</code> method to change
|
||||
the display name of your users, please ensure that it doesn’t pass the optional
|
||||
<code>deactivation</code> parameter.</p>
|
||||
<p>This parameter is now deprecated and it is intended to be removed in 2027.
|
||||
No immediate change is necessary, however once the parameter is removed, modules passing it will produce errors.
|
||||
<a href="https://github.com/element-hq/synapse/issues/19546">Issue #19546</a> tracks this removal.</p>
|
||||
<p>From this version, when the parameter is passed, an error such as
|
||||
<code>Deprecated `deactivation` parameter passed to `set_displayname` Module API (value: False). This will break in 2027.</code> will be logged. The method will otherwise continue to work.</p>
|
||||
<h2 id="updated-request-log-format-processed-request-"><a class="header" href="#updated-request-log-format-processed-request-">Updated request log format (<code>Processed request: ...</code>)</a></h2>
|
||||
<p>The <a href="#request-log-format">request log format</a> has slightly changed to
|
||||
include <code>ru=(...)</code> and <code>db=(...)</code> labels to better disambiguate the number groupings.
|
||||
Previously, these values appeared without labels.</p>
|
||||
<p>This only matters if you have third-party tooling that parses the Synapse logs.</p>
|
||||
<h1 id="upgrading-to-v11460"><a class="header" href="#upgrading-to-v11460">Upgrading to v1.146.0</a></h1>
|
||||
<h2 id="drop-support-for-ubuntu-2504-plucky-puffin-and-add-support-for-2510-questing-quokka"><a class="header" href="#drop-support-for-ubuntu-2504-plucky-puffin-and-add-support-for-2510-questing-quokka">Drop support for Ubuntu 25.04 Plucky Puffin, and add support for 25.10 Questing Quokka</a></h2>
|
||||
<p>Ubuntu 25.04 Plucky Puffin <a href="https://endoflife.date/ubuntu">is end-of-life as of 17 Jan
|
||||
@@ -7967,7 +7995,7 @@ These limits are applied in addition to the <code>max_upload_size</code> limit a
|
||||
</code></pre>
|
||||
<hr>
|
||||
<h3 id="outbound_federation_restricted_to"><a class="header" href="#outbound_federation_restricted_to"><code>outbound_federation_restricted_to</code></a></h3>
|
||||
<p><em>(array)</em> When using workers, you can restrict outbound federation traffic to only go through a specific subset of workers. Any worker specified here must also be in the <a href="#instance_map"><code>instance_map</code></a>. <a href="#worker_replication_secret"><code>worker_replication_secret</code></a> must also be configured to authorize inter-worker communication.</p>
|
||||
<p><em>(array)</em> You can restrict outbound federation traffic to only go through a specific subset of workers including the <a href="https://element.io/en/server-suite/secure-border-gateways">Secure Border Gateway (SBG)</a>. Any worker specified here (including the SBG) must also be in the <a href="#instance_map"><code>instance_map</code></a>. <a href="#worker_replication_secret"><code>worker_replication_secret</code></a> must also be configured to authorize inter-worker communication.</p>
|
||||
<p>Also see the <a href="#restrict-outbound-federation-traffic-to-a-specific-set-of-workers">worker documentation</a> for more info.</p>
|
||||
<p><em>Added in Synapse 1.89.0.</em></p>
|
||||
<p>Defaults to <code>[]</code>.</p>
|
||||
@@ -8274,6 +8302,8 @@ the homeserver config when following the <a href="#installation-instructions">in
|
||||
It should be named <code><SERVERNAME>.log.config</code> by default.</p>
|
||||
<p>Hint: If you’re looking for a guide on what each of the fields in the “Processed request” log lines mean,
|
||||
see <a href="#request-log-format">Request log format</a>.</p>
|
||||
<p>If you use <code>systemd.journal.JournalHandler</code> in your own logging config, ensure
|
||||
<code>systemd-python</code> is installed in Synapse’s runtime environment.</p>
|
||||
<pre><code class="language-yaml"># Log configuration for Synapse.
|
||||
#
|
||||
# This is a YAML file containing a standard Python logging configuration
|
||||
@@ -15802,6 +15832,7 @@ is set to <code>true</code>:</p>
|
||||
<ul>
|
||||
<li>Remove the user’s display name</li>
|
||||
<li>Remove the user’s avatar URL</li>
|
||||
<li>Remove the user’s custom profile fields</li>
|
||||
<li>Mark the user as erased</li>
|
||||
</ul>
|
||||
<p>The following actions are <strong>NOT</strong> performed. The list may be incomplete.</p>
|
||||
@@ -15931,7 +15962,7 @@ member are returned.</p>
|
||||
<h2 id="get-the-number-of-invites-sent-by-the-user"><a class="header" href="#get-the-number-of-invites-sent-by-the-user">Get the number of invites sent by the user</a></h2>
|
||||
<p>Fetches the number of invites sent by the provided user ID across all rooms
|
||||
after the given timestamp.</p>
|
||||
<pre><code>GET /_synapse/admin/v1/users/$user_id/sent_invite_count
|
||||
<pre><code>GET /_synapse/admin/v1/users/<user_id>/sent_invite_count
|
||||
</code></pre>
|
||||
<p><strong>Parameters</strong></p>
|
||||
<p>The following parameters should be set in the URL:</p>
|
||||
@@ -15956,7 +15987,7 @@ into timestamps and vice versa.</li>
|
||||
<h2 id="get-the-cumulative-number-of-rooms-a-user-has-joined-after-a-given-timestamp"><a class="header" href="#get-the-cumulative-number-of-rooms-a-user-has-joined-after-a-given-timestamp">Get the cumulative number of rooms a user has joined after a given timestamp</a></h2>
|
||||
<p>Fetches the number of rooms that the user joined after the given timestamp, even
|
||||
if they have subsequently left/been banned from those rooms.</p>
|
||||
<pre><code>GET /_synapse/admin/v1/users/$<user_id/cumulative_joined_room_count
|
||||
<pre><code>GET /_synapse/admin/v1/users/<user_id>/cumulative_joined_room_count
|
||||
</code></pre>
|
||||
<p><strong>Parameters</strong></p>
|
||||
<p>The following parameters should be set in the URL:</p>
|
||||
@@ -16630,7 +16661,7 @@ for more information.</p>
|
||||
<a href="https://matrix.org/docs/spec/client_server/r0.6.0#get-matrix-client-r0-register-available">/_matrix/client/r0/register/available</a> API.</p>
|
||||
<h2 id="find-a-user-based-on-their-id-in-an-auth-provider"><a class="header" href="#find-a-user-based-on-their-id-in-an-auth-provider">Find a user based on their ID in an auth provider</a></h2>
|
||||
<p>The API is:</p>
|
||||
<pre><code>GET /_synapse/admin/v1/auth_providers/$provider/users/$external_id
|
||||
<pre><code>GET /_synapse/admin/v1/auth_providers/<provider>/users/<external_id>
|
||||
</code></pre>
|
||||
<p>When a user matched the given ID for the given provider, an HTTP code <code>200</code> with a response body like the following is returned:</p>
|
||||
<pre><code class="language-json">{
|
||||
@@ -16654,7 +16685,7 @@ for more information.</p>
|
||||
<p><em>Added in Synapse 1.68.0.</em></p>
|
||||
<h2 id="find-a-user-based-on-their-third-party-id-threepid-or-3pid"><a class="header" href="#find-a-user-based-on-their-third-party-id-threepid-or-3pid">Find a user based on their Third Party ID (ThreePID or 3PID)</a></h2>
|
||||
<p>The API is:</p>
|
||||
<pre><code>GET /_synapse/admin/v1/threepid/$medium/users/$address
|
||||
<pre><code>GET /_synapse/admin/v1/threepid/<medium>/users/<address>
|
||||
</code></pre>
|
||||
<p>When a user matched the given address for the given medium, an HTTP code <code>200</code> with a response body like the following is returned:</p>
|
||||
<pre><code class="language-json">{
|
||||
@@ -16683,7 +16714,7 @@ Redactions for non-local users are issued using the admin user, and will fail in
|
||||
admin user is not admin/does not have the specified power level to issue redactions. An option
|
||||
is provided to override the default and allow the admin to issue the redactions in all cases.</p>
|
||||
<p>The API is</p>
|
||||
<pre><code>POST /_synapse/admin/v1/user/$user_id/redact
|
||||
<pre><code>POST /_synapse/admin/v1/user/<user_id>/redact
|
||||
|
||||
{
|
||||
"rooms": ["!roomid1", "!roomid2"]
|
||||
@@ -16721,7 +16752,7 @@ where the admin does not have the sufficient power level to issue the redactions
|
||||
The status can be queried up to 24 hours after completion of the task,
|
||||
or until Synapse is restarted (whichever happens first).</p>
|
||||
<p>The API is:</p>
|
||||
<pre><code>GET /_synapse/admin/v1/user/redact_status/$redact_id
|
||||
<pre><code>GET /_synapse/admin/v1/user/redact_status/<redact_id>
|
||||
</code></pre>
|
||||
<p>A response body like the following is returned:</p>
|
||||
<pre><code>{
|
||||
@@ -17584,8 +17615,8 @@ VALUES ('USER_ID', (EXTRACT(epoch FROM NOW()) * 1000)::BIGINT);
|
||||
<h1 id="request-log-format"><a class="header" href="#request-log-format">Request log format</a></h1>
|
||||
<p>HTTP request logs are written by synapse (see <a href="https://github.com/element-hq/synapse/tree/develop/synapse/http/site.py"><code>synapse/http/site.py</code></a> for details).</p>
|
||||
<p>See the following for how to decode the dense data available from the default logging configuration.</p>
|
||||
<pre><code>2020-10-01 12:00:00,000 - synapse.access.http.8008 - 311 - INFO - PUT-1000- 192.168.0.1 - 8008 - {another-matrix-server.com} Processed request: 0.100sec/-0.000sec (0.000sec, 0.000sec) (0.001sec/0.090sec/3) 11B !200 "PUT /_matrix/federation/v1/send/1600000000000 HTTP/1.1" "Synapse/1.20.1" [0 dbevts]
|
||||
-AAAAAAAAAAAAAAAAAAAAA- -BBBBBBBBBBBBBBBBBBBBBB- -C- -DD- -EEEEEE- -FFFFFFFFF- -GG- -HHHHHHHHHHHHHHHHHHHHHHH- -IIIIII- -JJJJJJJ- -KKKKKK-, -LLLLLL- -MMMMMMM- -NNNNNN- O -P- -QQ- -RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR- -SSSSSSSSSSSS- -TTTTTT-
|
||||
<pre><code>2020-10-01 12:00:00,000 - synapse.access.http.8008 - 311 - INFO - PUT-1000- 192.168.0.1 - 8008 - {another-matrix-server.com} Processed request: 0.100sec/-0.000sec ru=(0.000sec, 0.000sec) db=(0.001sec/0.090sec/3) 11B !200 "PUT /_matrix/federation/v1/send/1600000000000 HTTP/1.1" "Synapse/1.20.1" [0 dbevts]
|
||||
-AAAAAAAAAAAAAAAAAAAAA- -BBBBBBBBBBBBBBBBBBBBBB- -C- -DD- -EEEEEE- -FFFFFFFFF- -GG- -HHHHHHHHHHHHHHHHHHHHHHH- -IIIIII- -JJJJJJJ- -KKKKKK-, -LLLLLL- -MMMMMM- -NNNNNN- O -P- -QQ- -RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR- -SSSSSSSSSSSS- -TTTTTT-
|
||||
</code></pre>
|
||||
<div class="table-wrapper">
|
||||
<table>
|
||||
@@ -18056,38 +18087,8 @@ configuration:</p>
|
||||
</ul>
|
||||
<p>For more details about other configurations, see the <a href="https://github.com/matrix-org/sytest/blob/develop/docker/README.md">Docker-specific documentation in the SyTest repo</a>.</p>
|
||||
<h2 id="run-the-integration-tests-complement"><a class="header" href="#run-the-integration-tests-complement">Run the integration tests (<a href="https://github.com/matrix-org/complement">Complement</a>).</a></h2>
|
||||
<p><a href="https://github.com/matrix-org/complement">Complement</a> is a suite of black box tests that can be run on any homeserver implementation. It can also be thought of as end-to-end (e2e) tests.</p>
|
||||
<p>It’s often nice to develop on Synapse and write Complement tests at the same time.
|
||||
Here is how to run your local Synapse checkout against your local Complement checkout.</p>
|
||||
<p>(checkout <a href="https://github.com/matrix-org/complement"><code>complement</code></a> alongside your <code>synapse</code> checkout)</p>
|
||||
<pre><code class="language-sh">COMPLEMENT_DIR=../complement ./scripts-dev/complement.sh
|
||||
</code></pre>
|
||||
<p>To run a specific test file, you can pass the test name at the end of the command. The name passed comes from the naming structure in your Complement tests. If you’re unsure of the name, you can do a full run and copy it from the test output:</p>
|
||||
<pre><code class="language-sh">COMPLEMENT_DIR=../complement ./scripts-dev/complement.sh -run TestImportHistoricalMessages
|
||||
</code></pre>
|
||||
<p>To run a specific test, you can specify the whole name structure:</p>
|
||||
<pre><code class="language-sh">COMPLEMENT_DIR=../complement ./scripts-dev/complement.sh -run TestImportHistoricalMessages/parallel/Historical_events_resolve_in_the_correct_order
|
||||
</code></pre>
|
||||
<p>The above will run a monolithic (single-process) Synapse with SQLite as the database. For other configurations, try:</p>
|
||||
<ul>
|
||||
<li>Passing <code>POSTGRES=1</code> as an environment variable to use the Postgres database instead.</li>
|
||||
<li>Passing <code>WORKERS=1</code> as an environment variable to use a workerised setup instead. This option implies the use of Postgres.
|
||||
<ul>
|
||||
<li>If setting <code>WORKERS=1</code>, optionally set <code>WORKER_TYPES=</code> to declare which worker
|
||||
types you wish to test. A simple comma-delimited string containing the worker types
|
||||
defined from the <code>WORKERS_CONFIG</code> template in
|
||||
<a href="https://github.com/element-hq/synapse/blob/develop/docker/configure_workers_and_start.py#L54">here</a>.
|
||||
A safe example would be <code>WORKER_TYPES="federation_inbound, federation_sender, synchrotron"</code>.
|
||||
See the <a href="#scaling-synapse-via-workers">worker documentation</a> for additional information on workers.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Passing <code>ASYNCIO_REACTOR=1</code> as an environment variable to use the Twisted asyncio reactor instead of the default one.</li>
|
||||
<li>Passing <code>PODMAN=1</code> will use the <a href="https://podman.io/">podman</a> container runtime, instead of docker.</li>
|
||||
<li>Passing <code>UNIX_SOCKETS=1</code> will utilise Unix socket functionality for Synapse, Redis, and Postgres(when applicable).</li>
|
||||
</ul>
|
||||
<p>To increase the log level for the tests, set <code>SYNAPSE_TEST_LOG_LEVEL</code>, e.g:</p>
|
||||
<pre><code class="language-sh">SYNAPSE_TEST_LOG_LEVEL=DEBUG COMPLEMENT_DIR=../complement ./scripts-dev/complement.sh -run TestImportHistoricalMessages
|
||||
</code></pre>
|
||||
<p>See our <a href="https://github.com/element-hq/synapse/tree/develop/complement">Complement docs</a>
|
||||
for how to use the <code>./scripts-dev/complement.sh</code> test runner script.</p>
|
||||
<h3 id="prettier-formatting-with-gotestfmt"><a class="header" href="#prettier-formatting-with-gotestfmt">Prettier formatting with <code>gotestfmt</code></a></h3>
|
||||
<p>If you want to format the output of the tests the same way as it looks in CI,
|
||||
install <a href="https://github.com/GoTestTools/gotestfmt">gotestfmt</a>.</p>
|
||||
@@ -18095,16 +18096,6 @@ install <a href="https://github.com/GoTestTools/gotestfmt">gotestfmt</a>.</p>
|
||||
<pre><code class="language-sh">COMPLEMENT_DIR=../complement ./scripts-dev/complement.sh -json | gotestfmt -hide successful-tests
|
||||
</code></pre>
|
||||
<p>(Remove <code>-hide successful-tests</code> if you don’t want to hide successful tests.)</p>
|
||||
<h3 id="access-database-for-homeserver-after-complement-test-runs"><a class="header" href="#access-database-for-homeserver-after-complement-test-runs">Access database for homeserver after Complement test runs.</a></h3>
|
||||
<p>If you’re curious what the database looks like after you run some tests, here are some steps to get you going in Synapse:</p>
|
||||
<ol>
|
||||
<li>In your Complement test comment out <code>defer deployment.Destroy(t)</code> and replace with <code>defer time.Sleep(2 * time.Hour)</code> to keep the homeserver running after the tests complete</li>
|
||||
<li>Start the Complement tests</li>
|
||||
<li>Find the name of the container, <code>docker ps -f name=complement_</code> (this will filter for just the Compelement related Docker containers)</li>
|
||||
<li>Access the container replacing the name with what you found in the previous step: <code>docker exec -it complement_1_hs_with_application_service.hs1_2 /bin/bash</code></li>
|
||||
<li>Install sqlite (database driver), <code>apt-get update && apt-get install -y sqlite3</code></li>
|
||||
<li>Then run <code>sqlite3</code> and open the database <code>.open /conf/homeserver.db</code> (this db path comes from the Synapse homeserver.yaml)</li>
|
||||
</ol>
|
||||
<h1 id="9-submit-your-patch"><a class="header" href="#9-submit-your-patch">9. Submit your patch.</a></h1>
|
||||
<p>Once you’re happy with your patch, it’s time to prepare a Pull Request.</p>
|
||||
<p>To prepare a Pull Request, please:</p>
|
||||
@@ -19049,7 +19040,7 @@ or when the feature is turned on/off</li>
|
||||
<p>This is a quick cheat sheet for developers on how to use <a href="https://python-poetry.org/"><code>poetry</code></a>.</p>
|
||||
<h1 id="installing"><a class="header" href="#installing">Installing</a></h1>
|
||||
<p>See the <a href="#4-install-the-dependencies">contributing guide</a>.</p>
|
||||
<p>Developers should use Poetry 1.3.2 or higher. If you encounter problems related
|
||||
<p>Developers should use Poetry 2.2.0 or higher. If you encounter problems related
|
||||
to poetry, please <a href="#check-the-version-of-poetry-with-poetry---version">double-check your poetry version</a>.</p>
|
||||
<h1 id="background-1"><a class="header" href="#background-1">Background</a></h1>
|
||||
<p>Synapse uses a variety of third-party Python packages to function as a homeserver.
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "https://element-hq.github.io/synapse/latest/schema/v1/meta.schema.json",
|
||||
"$id": "https://element-hq.github.io/synapse/schema/synapse/v1.149/synapse-config.schema.json",
|
||||
"$id": "https://element-hq.github.io/synapse/schema/synapse/v1.150/synapse-config.schema.json",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"modules": {
|
||||
@@ -4610,7 +4610,7 @@
|
||||
},
|
||||
"outbound_federation_restricted_to": {
|
||||
"type": "array",
|
||||
"description": "When using workers, you can restrict outbound federation traffic to only go through a specific subset of workers. Any worker specified here must also be in the [`instance_map`](#instance_map). [`worker_replication_secret`](#worker_replication_secret) must also be configured to authorize inter-worker communication.\n\nAlso see the [worker documentation](../../workers.md#restrict-outbound-federation-traffic-to-a-specific-set-of-workers) for more info.\n\n_Added in Synapse 1.89.0._",
|
||||
"description": "You can restrict outbound federation traffic to only go through a specific subset of workers including the [Secure Border Gateway (SBG)](https://element.io/en/server-suite/secure-border-gateways). Any worker specified here (including the SBG) must also be in the [`instance_map`](#instance_map). [`worker_replication_secret`](#worker_replication_secret) must also be configured to authorize inter-worker communication.\n\nAlso see the [worker documentation](../../workers.md#restrict-outbound-federation-traffic-to-a-specific-set-of-workers) for more info.\n\n_Added in Synapse 1.89.0._",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
|
||||
@@ -437,7 +437,7 @@ window.search = window.search || {};
|
||||
if (yes) {
|
||||
loadSearchScript(
|
||||
window.path_to_searchindex_js ||
|
||||
path_to_root + 'searchindex-e452dd83.js',
|
||||
path_to_root + 'searchindex-402d188d.js',
|
||||
'mdbook-search-index');
|
||||
search_wrap.classList.remove('hidden');
|
||||
searchicon.setAttribute('aria-expanded', 'true');
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
@@ -350,6 +350,10 @@ pip install --upgrade pip
|
||||
pip install --upgrade setuptools
|
||||
pip install matrix-synapse
|
||||
</code></pre>
|
||||
<p>If you want to use a logging configuration that references
|
||||
<code>systemd.journal.JournalHandler</code> (for example <code>contrib/systemd/log_config.yaml</code>),
|
||||
you must install <code>systemd-python</code> separately in the same environment.
|
||||
Synapse no longer provides a <code>matrix-synapse[systemd]</code> extra.</p>
|
||||
<p>This will download Synapse from <a href="https://pypi.org/project/matrix-synapse">PyPI</a>
|
||||
and install it, along with the python libraries it uses, into a virtual environment
|
||||
under <code>~/synapse/env</code>. Feel free to pick a different directory if you
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
|
||||
+26
-2
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="toc-4dc10a98.js"></script>
|
||||
@@ -310,7 +310,7 @@ v1.61.0.</p>
|
||||
<tr><td>v1.85.0 – v1.91.2</td><td>v1.83.0</td></tr>
|
||||
<tr><td>v1.92.0 – v1.97.0</td><td>v1.90.0</td></tr>
|
||||
<tr><td>v1.98.0 – v1.105.0</td><td>v1.96.0</td></tr>
|
||||
<tr><td>v1.105.1 – v1.149.1</td><td>v1.100.0</td></tr>
|
||||
<tr><td>v1.105.1 – v1.150.0</td><td>v1.100.0</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -330,6 +330,30 @@ database migrations are complete. You should wait until background updates from
|
||||
each upgrade are complete before moving on to the next upgrade, to avoid
|
||||
stacking them up. You can monitor the currently running background updates with
|
||||
<a href="usage/administration/admin_api/background_updates.html#status">the Admin API</a>.</p>
|
||||
<h1 id="upgrading-to-v11500"><a class="header" href="#upgrading-to-v11500">Upgrading to v1.150.0</a></h1>
|
||||
<h2 id="removal-of-the-systemd-pip-extra"><a class="header" href="#removal-of-the-systemd-pip-extra">Removal of the <code>systemd</code> pip extra</a></h2>
|
||||
<p>The <code>matrix-synapse[systemd]</code> pip extra has been removed.
|
||||
If you use <code>systemd.journal.JournalHandler</code> in your logging configuration
|
||||
(e.g. <code>contrib/systemd/log_config.yaml</code>), you must now install
|
||||
<code>systemd-python</code> manually in Synapse’s runtime environment:</p>
|
||||
<pre><code class="language-bash">pip install systemd-python
|
||||
</code></pre>
|
||||
<p>No action is needed if you do not use journal logging, or if you installed
|
||||
Synapse from the Debian packages (which handle this automatically).</p>
|
||||
<h2 id="module-api-deprecation-of-the-deactivation-parameter-in-the-set_displayname-method"><a class="header" href="#module-api-deprecation-of-the-deactivation-parameter-in-the-set_displayname-method">Module API: Deprecation of the <code>deactivation</code> parameter in the <code>set_displayname</code> method</a></h2>
|
||||
<p>If you have Synapse modules installed that use the <code>set_displayname</code> method to change
|
||||
the display name of your users, please ensure that it doesn’t pass the optional
|
||||
<code>deactivation</code> parameter.</p>
|
||||
<p>This parameter is now deprecated and it is intended to be removed in 2027.
|
||||
No immediate change is necessary, however once the parameter is removed, modules passing it will produce errors.
|
||||
<a href="https://github.com/element-hq/synapse/issues/19546">Issue #19546</a> tracks this removal.</p>
|
||||
<p>From this version, when the parameter is passed, an error such as
|
||||
<code>Deprecated `deactivation` parameter passed to `set_displayname` Module API (value: False). This will break in 2027.</code> will be logged. The method will otherwise continue to work.</p>
|
||||
<h2 id="updated-request-log-format-processed-request-"><a class="header" href="#updated-request-log-format-processed-request-">Updated request log format (<code>Processed request: ...</code>)</a></h2>
|
||||
<p>The <a href="usage/administration/request_log.html">request log format</a> has slightly changed to
|
||||
include <code>ru=(...)</code> and <code>db=(...)</code> labels to better disambiguate the number groupings.
|
||||
Previously, these values appeared without labels.</p>
|
||||
<p>This only matters if you have third-party tooling that parses the Synapse logs.</p>
|
||||
<h1 id="upgrading-to-v11460"><a class="header" href="#upgrading-to-v11460">Upgrading to v1.146.0</a></h1>
|
||||
<h2 id="drop-support-for-ubuntu-2504-plucky-puffin-and-add-support-for-2510-questing-quokka"><a class="header" href="#drop-support-for-ubuntu-2504-plucky-puffin-and-add-support-for-2510-questing-quokka">Drop support for Ubuntu 25.04 Plucky Puffin, and add support for 25.10 Questing Quokka</a></h2>
|
||||
<p>Ubuntu 25.04 Plucky Puffin <a href="https://endoflife.date/ubuntu">is end-of-life as of 17 Jan
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../toc-4dc10a98.js"></script>
|
||||
@@ -200,8 +200,8 @@
|
||||
<h1 id="request-log-format"><a class="header" href="#request-log-format">Request log format</a></h1>
|
||||
<p>HTTP request logs are written by synapse (see <a href="https://github.com/element-hq/synapse/tree/develop/synapse/http/site.py"><code>synapse/http/site.py</code></a> for details).</p>
|
||||
<p>See the following for how to decode the dense data available from the default logging configuration.</p>
|
||||
<pre><code>2020-10-01 12:00:00,000 - synapse.access.http.8008 - 311 - INFO - PUT-1000- 192.168.0.1 - 8008 - {another-matrix-server.com} Processed request: 0.100sec/-0.000sec (0.000sec, 0.000sec) (0.001sec/0.090sec/3) 11B !200 "PUT /_matrix/federation/v1/send/1600000000000 HTTP/1.1" "Synapse/1.20.1" [0 dbevts]
|
||||
-AAAAAAAAAAAAAAAAAAAAA- -BBBBBBBBBBBBBBBBBBBBBB- -C- -DD- -EEEEEE- -FFFFFFFFF- -GG- -HHHHHHHHHHHHHHHHHHHHHHH- -IIIIII- -JJJJJJJ- -KKKKKK-, -LLLLLL- -MMMMMMM- -NNNNNN- O -P- -QQ- -RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR- -SSSSSSSSSSSS- -TTTTTT-
|
||||
<pre><code>2020-10-01 12:00:00,000 - synapse.access.http.8008 - 311 - INFO - PUT-1000- 192.168.0.1 - 8008 - {another-matrix-server.com} Processed request: 0.100sec/-0.000sec ru=(0.000sec, 0.000sec) db=(0.001sec/0.090sec/3) 11B !200 "PUT /_matrix/federation/v1/send/1600000000000 HTTP/1.1" "Synapse/1.20.1" [0 dbevts]
|
||||
-AAAAAAAAAAAAAAAAAAAAA- -BBBBBBBBBBBBBBBBBBBBBB- -C- -DD- -EEEEEE- -FFFFFFFFF- -GG- -HHHHHHHHHHHHHHHHHHHHHHH- -IIIIII- -JJJJJJJ- -KKKKKK-, -LLLLLL- -MMMMMM- -NNNNNN- O -P- -QQ- -RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR- -SSSSSSSSSSSS- -TTTTTT-
|
||||
</code></pre>
|
||||
<div class="table-wrapper">
|
||||
<table>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../toc-4dc10a98.js"></script>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
const path_to_root = "../../";
|
||||
const default_light_theme = "light";
|
||||
const default_dark_theme = "navy";
|
||||
window.path_to_searchindex_js = "../../searchindex-e452dd83.js";
|
||||
window.path_to_searchindex_js = "../../searchindex-402d188d.js";
|
||||
</script>
|
||||
<!-- Start loading toc.js asap -->
|
||||
<script src="../../toc-4dc10a98.js"></script>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user