This commit is contained in:
anoadragon453 2024-01-16 16:12:52 +00:00
parent dfe009101d
commit 6f83706554
110 changed files with 657 additions and 757 deletions

View file

@ -1,12 +1,12 @@
# This file is maintained as an up-to-date snapshot of the default # This file is maintained as an up-to-date snapshot of the default
# homeserver.yaml configuration generated by Synapse. You can find a # homeserver.yaml configuration generated by Synapse. You can find a
# complete accounting of possible configuration options at # complete accounting of possible configuration options at
# https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html # https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html
# #
# It is *not* intended to be copied and used as the basis for a real # It is *not* intended to be copied and used as the basis for a real
# homeserver.yaml. Instead, if you are starting from scratch, please generate # homeserver.yaml. Instead, if you are starting from scratch, please generate
# a fresh config using Synapse by following the instructions in # a fresh config using Synapse by following the instructions in
# https://matrix-org.github.io/synapse/latest/setup/installation.html. # https://element-hq.github.io/synapse/latest/setup/installation.html.
# #
################################################################################ ################################################################################

View file

@ -125,7 +125,7 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/CAPTCHA_SETUP.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/CAPTCHA_SETUP.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -1,7 +1,7 @@
Admin APIs Admin APIs
========== ==========
**Note**: The latest documentation can be viewed `here <https://matrix-org.github.io/synapse>`_. **Note**: The latest documentation can be viewed `here <https://element-hq.github.io/synapse>`_.
See `docs/README.md <../README.md>`_ for more information. See `docs/README.md <../README.md>`_ for more information.
**Please update links to point to the website instead.** Existing files in this directory **Please update links to point to the website instead.** Existing files in this directory
@ -11,4 +11,3 @@ This directory includes documentation for the various synapse specific admin
APIs available. Updates to the existing Admin API documentation should still APIs available. Updates to the existing Admin API documentation should still
be made to these files, but any new documentation files should instead be placed under be made to these files, but any new documentation files should instead be placed under
`docs/usage/administration/admin_api <../usage/administration/admin_api>`_. `docs/usage/administration/admin_api <../usage/administration/admin_api>`_.

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/admin_api/account_validity.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/admin_api/account_validity.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/admin_api/event_reports.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/admin_api/event_reports.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/admin_api/experimental_features.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/admin_api/experimental_features.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/admin_api/media_admin_api.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/admin_api/media_admin_api.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/admin_api/purge_history_api.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/admin_api/purge_history_api.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/admin_api/register_api.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/admin_api/register_api.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/admin_api/room_membership.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/admin_api/room_membership.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/admin_api/rooms.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/admin_api/rooms.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/admin_api/server_notices.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/admin_api/server_notices.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/admin_api/statistics.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/admin_api/statistics.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/admin_api/user_admin_api.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/admin_api/user_admin_api.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -311,11 +311,12 @@ granting them access to the Admin API, among other things.</p>
</li> </li>
<li> <li>
<p><code>deactivated</code> - <strong>bool</strong>, optional. If unspecified, deactivation state will be left unchanged.</p> <p><code>deactivated</code> - <strong>bool</strong>, optional. If unspecified, deactivation state will be left unchanged.</p>
<p>Note: the <code>password</code> field must also be set if both of the following are true:</p> <p>Note:</p>
<ul> <ul>
<li><code>deactivated</code> is set to <code>false</code> and the user was previously deactivated (you are reactivating this user)</li> <li>For the password field there is no strict check of the necessity for its presence.
<li>Users are allowed to set their password on this homeserver (both <code>password_config.enabled</code> and It is possible to have active users without a password, e.g. when authenticating with OIDC is configured.
<code>password_config.localdb_enabled</code> config options are set to <code>true</code>). You must check yourself whether a password is required when reactivating a user or not.</li>
<li>It is not possible to set a password if the config option <code>password_config.localdb_enabled</code> is set <code>false</code>.
Users' passwords are wiped upon account deactivation, hence the need to set a new one here.</li> Users' passwords are wiped upon account deactivation, hence the need to set a new one here.</li>
</ul> </ul>
<p>Note: a user cannot be erased with this API. For more details on <p>Note: a user cannot be erased with this API. For more details on
@ -451,7 +452,7 @@ User objects contain the following fields:</p>
<li><code>is_guest</code> - bool - Status if that user is a guest account.</li> <li><code>is_guest</code> - bool - Status if that user is a guest account.</li>
<li><code>admin</code> - bool - Status if that user is a server administrator.</li> <li><code>admin</code> - bool - Status if that user is a server administrator.</li>
<li><code>user_type</code> - string - Type of the user. Normal users are type <code>None</code>. <li><code>user_type</code> - string - Type of the user. Normal users are type <code>None</code>.
This allows user type specific behaviour. There are also types <code>support</code> and <code>bot</code>. </li> This allows user type specific behaviour. There are also types <code>support</code> and <code>bot</code>.</li>
<li><code>deactivated</code> - bool - Status if that user has been marked as deactivated.</li> <li><code>deactivated</code> - bool - Status if that user has been marked as deactivated.</li>
<li><code>erased</code> - bool - Status if that user has been marked as erased.</li> <li><code>erased</code> - bool - Status if that user has been marked as erased.</li>
<li><code>shadow_banned</code> - bool - Status if that user has been marked as shadow banned.</li> <li><code>shadow_banned</code> - bool - Status if that user has been marked as shadow banned.</li>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/admin_api/version_api.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/admin_api/version_api.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/application_services.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/application_services.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/auth_chain_difference_algorithm.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/auth_chain_difference_algorithm.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/code_style.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/code_style.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/consent_tracking.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/consent_tracking.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -176,7 +176,7 @@ database and shows a success page.</p>
<p>To enable this, first create templates for the policy and success pages. <p>To enable this, first create templates for the policy and success pages.
These should be stored on the local filesystem.</p> These should be stored on the local filesystem.</p>
<p>These templates use the <a href="http://jinja.pocoo.org">Jinja2</a> templating language, <p>These templates use the <a href="http://jinja.pocoo.org">Jinja2</a> templating language,
and <a href="https://github.com/matrix-org/synapse/tree/develop/docs/privacy_policy_templates/">docs/privacy_policy_templates</a> and <a href="https://github.com/element-hq/synapse/tree/develop/docs/privacy_policy_templates/">docs/privacy_policy_templates</a>
gives examples of the sort of thing that can be done.</p> gives examples of the sort of thing that can be done.</p>
<p>Note that the templates must be stored under a name giving the language of the <p>Note that the templates must be stored under a name giving the language of the
template - currently this must always be <code>en</code> (for &quot;English&quot;); template - currently this must always be <code>en</code> (for &quot;English&quot;);

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/delegate.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/delegate.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/deprecation_policy.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/deprecation_policy.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/development/cas.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/development/cas.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/development/contributing_guide.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/development/contributing_guide.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -162,14 +162,15 @@
<h1 id="contributing"><a class="header" href="#contributing">Contributing</a></h1> <h1 id="contributing"><a class="header" href="#contributing">Contributing</a></h1>
<p>This document aims to get you started with contributing to Synapse!</p> <p>This document aims to get you started with contributing to Synapse!</p>
<h1 id="1-who-can-contribute-to-synapse"><a class="header" href="#1-who-can-contribute-to-synapse">1. Who can contribute to Synapse?</a></h1> <h1 id="1-who-can-contribute-to-synapse"><a class="header" href="#1-who-can-contribute-to-synapse">1. Who can contribute to Synapse?</a></h1>
<p>Everyone is welcome to contribute code to <a href="https://github.com/matrix-org">matrix.org <p>Everyone is welcome to contribute code to
projects</a>, provided that they are willing to <a href="https://github.com/element-hq/synapse">Synapse</a>, provided that they are willing
license their contributions under the same license as the project itself. We to license their contributions to Element under a <a href="https://cla-assistant.io/element-hq/synapse">Contributor License
follow a simple 'inbound=outbound' model for contributions: the act of Agreement</a> (CLA). This ensures that
submitting an 'inbound' contribution means that the contributor agrees to their contribution will be made available under an OSI-approved open-source
license the code under the same terms as the project's overall 'outbound' license, currently Affero General Public License v3 (AGPLv3).</p>
license - in our case, this is almost always Apache Software License v2 (see <p>Please see the
<a href="https://github.com/matrix-org/synapse/blob/develop/LICENSE">LICENSE</a>).</p> <a href="https://element.io/blog/synapse-now-lives-at-github-com-element-hq-synapse/">Element blog post</a>
for the full rationale.</p>
<h1 id="2-what-do-i-need"><a class="header" href="#2-what-do-i-need">2. What do I need?</a></h1> <h1 id="2-what-do-i-need"><a class="header" href="#2-what-do-i-need">2. What do I need?</a></h1>
<p>If you are running Windows, the Windows Subsystem for Linux (WSL) is strongly <p>If you are running Windows, the Windows Subsystem for Linux (WSL) is strongly
recommended for development. More information about WSL can be found at recommended for development. More information about WSL can be found at
@ -222,8 +223,8 @@ cp docs/sample_log_config.yaml log_config.yaml
<ul> <ul>
<li>Set a <code>server_name</code></li> <li>Set a <code>server_name</code></li>
<li>Adjusting paths to be correct for your system like the <code>log_config</code> to point to the log config you just copied</li> <li>Adjusting paths to be correct for your system like the <code>log_config</code> to point to the log config you just copied</li>
<li>Using a <a href="https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#database">PostgreSQL database instead of SQLite</a></li> <li>Using a <a href="https://vector-im.github.io/synapse/latest/usage/configuration/config_documentation.html#database">PostgreSQL database instead of SQLite</a></li>
<li>Adding a <a href="https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#registration_shared_secret"><code>registration_shared_secret</code></a> so you can use <a href="https://matrix-org.github.io/synapse/latest/setup/installation.html#registering-a-user"><code>register_new_matrix_user</code> command</a>.</li> <li>Adding a <a href="https://vector-im.github.io/synapse/latest/usage/configuration/config_documentation.html#registration_shared_secret"><code>registration_shared_secret</code></a> so you can use <a href="https://vector-im.github.io/synapse/latest/setup/installation.html#registering-a-user"><code>register_new_matrix_user</code> command</a>.</li>
</ul> </ul>
<p>And then run Synapse with the following command:</p> <p>And then run Synapse with the following command:</p>
<pre><code class="language-sh">poetry run python -m synapse.app.homeserver -c homeserver.yaml <pre><code class="language-sh">poetry run python -m synapse.app.homeserver -c homeserver.yaml
@ -236,19 +237,19 @@ resolve any issues and re-run until successful.</p>
<h1 id="5-get-in-touch"><a class="header" href="#5-get-in-touch">5. Get in touch.</a></h1> <h1 id="5-get-in-touch"><a class="header" href="#5-get-in-touch">5. Get in touch.</a></h1>
<p>Join our developer community on Matrix: <a href="https://matrix.to/#/#synapse-dev:matrix.org">#synapse-dev:matrix.org</a>!</p> <p>Join our developer community on Matrix: <a href="https://matrix.to/#/#synapse-dev:matrix.org">#synapse-dev:matrix.org</a>!</p>
<h1 id="6-pick-an-issue"><a class="header" href="#6-pick-an-issue">6. Pick an issue.</a></h1> <h1 id="6-pick-an-issue"><a class="header" href="#6-pick-an-issue">6. Pick an issue.</a></h1>
<p>Fix your favorite problem or perhaps find a <a href="https://github.com/matrix-org/synapse/issues?q=is%3Aopen+is%3Aissue+label%3A%22Good+First+Issue%22">Good First Issue</a> <p>Fix your favorite problem or perhaps find a <a href="https://github.com/element-hq/synapse/issues?q=is%3Aopen+is%3Aissue+label%3A%22Good+First+Issue%22">Good First Issue</a>
to work on.</p> to work on.</p>
<h1 id="7-turn-coffee-into-code-and-documentation"><a class="header" href="#7-turn-coffee-into-code-and-documentation">7. Turn coffee into code and documentation!</a></h1> <h1 id="7-turn-coffee-into-code-and-documentation"><a class="header" href="#7-turn-coffee-into-code-and-documentation">7. Turn coffee into code and documentation!</a></h1>
<p>There is a growing amount of documentation located in the <p>There is a growing amount of documentation located in the
<a href="https://github.com/matrix-org/synapse/tree/develop/docs"><code>docs</code></a> <a href="https://github.com/element-hq/synapse/tree/develop/docs"><code>docs</code></a>
directory, with a rendered version <a href="https://matrix-org.github.io/synapse">available online</a>. directory, with a rendered version <a href="https://vector-im.github.io/synapse">available online</a>.
This documentation is intended primarily for sysadmins running their This documentation is intended primarily for sysadmins running their
own Synapse instance, as well as developers interacting externally with own Synapse instance, as well as developers interacting externally with
Synapse. Synapse.
<a href="https://github.com/matrix-org/synapse/tree/develop/docs/development"><code>docs/development</code></a> <a href="https://github.com/element-hq/synapse/tree/develop/docs/development"><code>docs/development</code></a>
exists primarily to house documentation for exists primarily to house documentation for
Synapse developers. Synapse developers.
<a href="https://github.com/matrix-org/synapse/tree/develop/docs/admin_api"><code>docs/admin_api</code></a> houses documentation <a href="https://github.com/element-hq/synapse/tree/develop/docs/admin_api"><code>docs/admin_api</code></a> houses documentation
regarding Synapse's Admin API, which is used mostly by sysadmins and external regarding Synapse's Admin API, which is used mostly by sysadmins and external
service developers.</p> service developers.</p>
<p>Synapse's code style is documented <a href="../code_style.html">here</a>. Please follow <p>Synapse's code style is documented <a href="../code_style.html">here</a>. Please follow
@ -256,12 +257,9 @@ it, including the conventions for <a href="../code_style.html#configuration-code
options and documentation</a>.</p> options and documentation</a>.</p>
<p>We welcome improvements and additions to our documentation itself! When <p>We welcome improvements and additions to our documentation itself! When
writing new pages, please writing new pages, please
<a href="https://github.com/matrix-org/synapse/tree/develop/docs#adding-to-the-documentation">build <code>docs</code> to a book</a> <a href="https://github.com/element-hq/synapse/tree/develop/docs#adding-to-the-documentation">build <code>docs</code> to a book</a>
to check that your contributions render correctly. The docs are written in to check that your contributions render correctly. The docs are written in
<a href="https://guides.github.com/features/mastering-markdown/">GitHub-Flavoured Markdown</a>.</p> <a href="https://guides.github.com/features/mastering-markdown/">GitHub-Flavoured Markdown</a>.</p>
<p>Some documentation also exists in <a href="https://github.com/matrix-org/synapse/wiki">Synapse's GitHub
Wiki</a>, although this is primarily
contributed to by community authors.</p>
<p>When changes are made to any Rust code then you must call either <code>poetry install</code> <p>When changes are made to any Rust code then you must call either <code>poetry install</code>
or <code>maturin develop</code> (if installed) to rebuild the Rust code. Using <a href="https://github.com/PyO3/maturin"><code>maturin</code></a> or <code>maturin develop</code> (if installed) to rebuild the Rust code. Using <a href="https://github.com/PyO3/maturin"><code>maturin</code></a>
is quicker than <code>poetry install</code>, so is recommended when making frequent is quicker than <code>poetry install</code>, so is recommended when making frequent
@ -376,7 +374,7 @@ configuration:</p>
<li>To run with Postgres, supply the <code>-e POSTGRES=1 -e MULTI_POSTGRES=1</code> environment flags.</li> <li>To run with Postgres, supply the <code>-e POSTGRES=1 -e MULTI_POSTGRES=1</code> environment flags.</li>
<li>To run with Synapse in worker mode, supply the <code>-e WORKERS=1 -e REDIS=1</code> environment flags (in addition to the Postgres flags).</li> <li>To run with Synapse in worker mode, supply the <code>-e WORKERS=1 -e REDIS=1</code> environment flags (in addition to the Postgres flags).</li>
</ul> </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> <p>For more details about other configurations, see the <a href="https://github.com/vector-im/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> <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><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. <p>It's often nice to develop on Synapse and write Complement tests at the same time.
@ -398,7 +396,7 @@ Here is how to run your local Synapse checkout against your local Complement che
<li>If setting <code>WORKERS=1</code>, optionally set <code>WORKER_TYPES=</code> to declare which worker <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 types you wish to test. A simple comma-delimited string containing the worker types
defined from the <code>WORKERS_CONFIG</code> template in defined from the <code>WORKERS_CONFIG</code> template in
<a href="https://github.com/matrix-org/synapse/blob/develop/docker/configure_workers_and_start.py#L54">here</a>. <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=&quot;federation_inbound, federation_sender, synchrotron&quot;</code>. A safe example would be <code>WORKER_TYPES=&quot;federation_inbound, federation_sender, synchrotron&quot;</code>.
See the <a href="../workers.html">worker documentation</a> for additional information on workers.</li> See the <a href="../workers.html">worker documentation</a> for additional information on workers.</li>
</ul> </ul>
@ -452,7 +450,7 @@ in the format of <code>PRnumber.type</code>. The type can be one of the followin
<li><code>removal</code> (also used for deprecations)</li> <li><code>removal</code> (also used for deprecations)</li>
<li><code>misc</code> (for internal-only changes)</li> <li><code>misc</code> (for internal-only changes)</li>
</ul> </ul>
<p>This file will become part of our <a href="https://github.com/matrix-org/synapse/blob/master/CHANGES.md">changelog</a> at the next <p>This file will become part of our <a href="https://github.com/element-hq/synapse/blob/master/CHANGES.md">changelog</a> at the next
release, so the content of the file should be a short description of your release, so the content of the file should be a short description of your
change in the same style as the rest of the changelog. The file can contain Markdown change in the same style as the rest of the changelog. The file can contain Markdown
formatting, and must end with a full stop (.) or an exclamation mark (!) for formatting, and must end with a full stop (.) or an exclamation mark (!) for
@ -480,7 +478,7 @@ chicken-and-egg problem.</p>
add the changelog file to your branch, or:</p> add the changelog file to your branch, or:</p>
</li> </li>
<li> <li>
<p>Look at the <a href="https://github.com/matrix-org/synapse/issues?q=">list of all <p>Look at the <a href="https://github.com/element-hq/synapse/issues?q=">list of all
issues/PRs</a>, add one to the issues/PRs</a>, add one to the
highest number you see, and quickly open the PR before somebody else claims highest number you see, and quickly open the PR before somebody else claims
your number.</p> your number.</p>
@ -507,70 +505,16 @@ directory, you will need both a regular newsfragment <em>and</em> an entry in th
debian changelog. (Though typically such changes should be submitted as two debian changelog. (Though typically such changes should be submitted as two
separate pull requests.)</p> separate pull requests.)</p>
<h2 id="sign-off"><a class="header" href="#sign-off">Sign off</a></h2> <h2 id="sign-off"><a class="header" href="#sign-off">Sign off</a></h2>
<p>In order to have a concrete record that your contribution is intentional <p>After you make a PR a comment from @CLAassistant will appear asking you to sign
and you agree to license it under the same terms as the project's license, we've adopted the the <a href="https://cla-assistant.io/element-hq/synapse">CLA</a>.
same lightweight approach that the Linux Kernel This will link a page to allow you to confirm that you have read and agreed to
<a href="https://www.kernel.org/doc/html/latest/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin%3E">submitting patches process</a>, the CLA by signing in with GitHub.</p>
<a href="https://github.com/docker/docker/blob/master/CONTRIBUTING.md">Docker</a>, and many other <p>Alternatively, you can sign off before opening a PR by going to
projects use: the DCO (<a href="http://developercertificate.org/">Developer Certificate of Origin</a>). <a href="https://cla-assistant.io/element-hq/synapse">https://cla-assistant.io/element-hq/synapse</a>.</p>
This is a simple declaration that you wrote
the contribution or otherwise have the right to contribute it to Matrix:</p>
<pre><code>Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
</code></pre>
<p>If you agree to this for your contribution, then all that's needed is to
include the line in your commit or pull request comment:</p>
<pre><code>Signed-off-by: Your Name &lt;your@email.example.org&gt;
</code></pre>
<p>We accept contributions under a legally identifiable name, such as <p>We accept contributions under a legally identifiable name, such as
your name on government documentation or common-law names (names your name on government documentation or common-law names (names
claimed by legitimate usage or repute). Unfortunately, we cannot claimed by legitimate usage or repute). Unfortunately, we cannot
accept anonymous contributions at this time.</p> accept anonymous contributions at this time.</p>
<p>Git allows you to add this signoff automatically when using the <code>-s</code>
flag to <code>git commit</code>, which uses the name and email set in your
<code>user.name</code> and <code>user.email</code> git configs.</p>
<h3 id="private-sign-off"><a class="header" href="#private-sign-off">Private Sign off</a></h3>
<p>If you would like to provide your legal name privately to the Matrix.org
Foundation (instead of in a public commit or comment), you can do so
by emailing your legal name and a link to the pull request to
<a href="mailto:dco@matrix.org?subject=Private%20sign%20off">dco@matrix.org</a>.
It helps to include &quot;sign off&quot; or similar in the subject line. You will then
be instructed further.</p>
<p>Once private sign off is complete, doing so for future contributions will not
be required.</p>
<h1 id="10-turn-feedback-into-better-code"><a class="header" href="#10-turn-feedback-into-better-code">10. Turn feedback into better code.</a></h1> <h1 id="10-turn-feedback-into-better-code"><a class="header" href="#10-turn-feedback-into-better-code">10. Turn feedback into better code.</a></h1>
<p>Once the Pull Request is opened, you will see a few things:</p> <p>Once the Pull Request is opened, you will see a few things:</p>
<ol> <ol>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/development/database_schema.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/development/database_schema.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/development/demo.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/development/demo.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -161,7 +161,7 @@
<h1 id="synapse-demo-setup"><a class="header" href="#synapse-demo-setup">Synapse demo setup</a></h1> <h1 id="synapse-demo-setup"><a class="header" href="#synapse-demo-setup">Synapse demo setup</a></h1>
<p><strong>DO NOT USE THESE DEMO SERVERS IN PRODUCTION</strong></p> <p><strong>DO NOT USE THESE DEMO SERVERS IN PRODUCTION</strong></p>
<p>Requires you to have a <a href="https://matrix-org.github.io/synapse/develop/development/contributing_guide.html#4-install-the-dependencies">Synapse development environment setup</a>.</p> <p>Requires you to have a <a href="https://element-hq.github.io/synapse/develop/development/contributing_guide.html#4-install-the-dependencies">Synapse development environment setup</a>.</p>
<p>The demo setup allows running three federation Synapse servers, with server <p>The demo setup allows running three federation Synapse servers, with server
names <code>localhost:8480</code>, <code>localhost:8481</code>, and <code>localhost:8482</code>.</p> names <code>localhost:8480</code>, <code>localhost:8481</code>, and <code>localhost:8482</code>.</p>
<p>You can access them via any Matrix client over HTTP at <code>localhost:8080</code>, <p>You can access them via any Matrix client over HTTP at <code>localhost:8080</code>,

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/development/dependencies.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/development/dependencies.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -216,9 +216,9 @@ phonenumbers = [
] ]
</code></pre> </code></pre>
<p>We can see this pinned version inside the docker image for that release:</p> <p>We can see this pinned version inside the docker image for that release:</p>
<pre><code>$ docker pull matrixdotorg/synapse:v1.57.0 <pre><code>$ docker pull vectorim/synapse:v1.97.0
... ...
$ docker run --entrypoint pip matrixdotorg/synapse:v1.57.0 show phonenumbers $ docker run --entrypoint pip vectorim/synapse:v1.97.0 show phonenumbers
Name: phonenumbers Name: phonenumbers
Version: 8.12.44 Version: 8.12.44
Summary: Python version of Google's common library for parsing, formatting, storing and validating international phone numbers. Summary: Python version of Google's common library for parsing, formatting, storing and validating international phone numbers.

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/development/experimental_features.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/development/experimental_features.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/development/git.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/development/git.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -168,10 +168,10 @@ before. Here, by way of an arbitrary example, is the top of <code>git log --grap
<p>Note how the commit comment explains clearly what is changing and why. Also <p>Note how the commit comment explains clearly what is changing and why. Also
note the <em>absence</em> of merge commits, as well as the absence of commits called note the <em>absence</em> of merge commits, as well as the absence of commits called
things like (to pick a few culprits): things like (to pick a few culprits):
<a href="https://github.com/matrix-org/synapse/commit/84691da6c">“pep8”</a>, <a href="https://github.com/matrix-org/synapse/commit/474810d9d">“fix broken <a href="https://github.com/element-hq/synapse/commit/84691da6c">“pep8”</a>, <a href="https://github.com/element-hq/synapse/commit/474810d9d">“fix broken
test”</a>, test”</a>,
<a href="https://github.com/matrix-org/synapse/commit/c9d72e457">“oops”</a>, <a href="https://github.com/element-hq/synapse/commit/c9d72e457">“oops”</a>,
<a href="https://github.com/matrix-org/synapse/commit/836358823">“typo”</a>, or <a href="https://github.com/matrix-org/synapse/commit/707374d5d">“Who's <a href="https://github.com/element-hq/synapse/commit/836358823">“typo”</a>, or <a href="https://github.com/element-hq/synapse/commit/707374d5d">“Who's
the president?”</a>.</p> the president?”</a>.</p>
<p>There are a number of reasons why keeping a clean commit history is a good <p>There are a number of reasons why keeping a clean commit history is a good
thing:</p> thing:</p>

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/development/internal_documentation/README.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/development/internal_documentation/README.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/development/releases.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/development/releases.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/development/reviews.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/development/reviews.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/development/room-dag-concepts.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/development/room-dag-concepts.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/development/saml.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/development/saml.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/development/synapse_architecture/cancellation.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/development/synapse_architecture/cancellation.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/development/synapse_architecture/faster_joins.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/development/synapse_architecture/faster_joins.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/development/synapse_architecture/streams.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/development/synapse_architecture/streams.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -160,7 +160,7 @@
</div> </div>
<h2 id="streams"><a class="header" href="#streams">Streams</a></h2> <h2 id="streams"><a class="header" href="#streams">Streams</a></h2>
<p>Synapse has a concept of &quot;streams&quot;, which are roughly described in <a href="https://github.com/matrix-org/synapse/blob/develop/synapse/storage/util/id_generators.py"><code>id_generators.py</code></a>. <p>Synapse has a concept of &quot;streams&quot;, which are roughly described in <a href="https://github.com/element-hq/synapse/blob/develop/synapse/storage/util/id_generators.py"><code>id_generators.py</code></a>.
Generally speaking, streams are a series of notifications that something in Synapse's database has changed that the application might need to respond to. Generally speaking, streams are a series of notifications that something in Synapse's database has changed that the application might need to respond to.
For example:</p> For example:</p>
<ul> <ul>
@ -168,9 +168,9 @@ For example:</p>
<li>The account data stream reports changes to users' <a href="https://spec.matrix.org/v1.7/client-server-api/#client-config">account data</a>.</li> <li>The account data stream reports changes to users' <a href="https://spec.matrix.org/v1.7/client-server-api/#client-config">account data</a>.</li>
<li>The to-device stream reports when a device has a new <a href="https://spec.matrix.org/v1.7/client-server-api/#send-to-device-messaging">to-device message</a>.</li> <li>The to-device stream reports when a device has a new <a href="https://spec.matrix.org/v1.7/client-server-api/#send-to-device-messaging">to-device message</a>.</li>
</ul> </ul>
<p>See <a href="https://github.com/matrix-org/synapse/blob/develop/synapse/replication/tcp/streams/__init__.py"><code>synapse.replication.tcp.streams</code></a> for the full list of streams.</p> <p>See <a href="https://github.com/element-hq/synapse/blob/develop/synapse/replication/tcp/streams/__init__.py"><code>synapse.replication.tcp.streams</code></a> for the full list of streams.</p>
<p>It is very helpful to understand the streams mechanism when working on any part of Synapse that needs to respond to changes—especially if those changes are made by different workers. <p>It is very helpful to understand the streams mechanism when working on any part of Synapse that needs to respond to changes—especially if those changes are made by different workers.
To that end, let's describe streams formally, paraphrasing from the docstring of <a href="https://github.com/matrix-org/synapse/blob/a719b703d9bd0dade2565ddcad0e2f3a7a9d4c37/synapse/storage/util/id_generators.py#L96"><code>AbstractStreamIdGenerator</code></a>.</p> To that end, let's describe streams formally, paraphrasing from the docstring of <a href="https://github.com/element-hq/synapse/blob/a719b703d9bd0dade2565ddcad0e2f3a7a9d4c37/synapse/storage/util/id_generators.py#L96"><code>AbstractStreamIdGenerator</code></a>.</p>
<h3 id="definition"><a class="header" href="#definition">Definition</a></h3> <h3 id="definition"><a class="header" href="#definition">Definition</a></h3>
<p>A stream is an append-only log <code>T1, T2, ..., Tn, ...</code> of facts<sup class="footnote-reference"><a href="#1">1</a></sup> which grows over time. <p>A stream is an append-only log <code>T1, T2, ..., Tn, ...</code> of facts<sup class="footnote-reference"><a href="#1">1</a></sup> which grows over time.
Only &quot;writers&quot; can add facts to a stream, and there may be multiple writers.</p> Only &quot;writers&quot; can add facts to a stream, and there may be multiple writers.</p>

View file

@ -1 +1 @@
window.SYNAPSE_VERSION = 'v1.98'; window.SYNAPSE_VERSION = "latest";

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/federate.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/federate.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -211,7 +211,7 @@ release of Synapse.</p>
<p>If you want to get up and running quickly with a trio of homeservers in a <p>If you want to get up and running quickly with a trio of homeservers in a
private federation, there is a script in the <code>demo</code> directory. This is mainly private federation, there is a script in the <code>demo</code> directory. This is mainly
useful just for development purposes. See useful just for development purposes. See
<a href="https://matrix-org.github.io/synapse/develop/development/demo.html">demo scripts</a>.</p> <a href="https://element-hq.github.io/synapse/develop/development/demo.html">demo scripts</a>.</p>
</main> </main>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/welcome_and_overview.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/welcome_and_overview.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -161,8 +161,7 @@
<h1 id="introduction"><a class="header" href="#introduction">Introduction</a></h1> <h1 id="introduction"><a class="header" href="#introduction">Introduction</a></h1>
<p>Welcome to the documentation repository for Synapse, a <p>Welcome to the documentation repository for Synapse, a
<a href="https://matrix.org">Matrix</a> homeserver implementation developed by the matrix.org core <a href="https://matrix.org">Matrix</a> homeserver implementation developed by Element.</p>
team.</p>
<h2 id="installing-and-using-synapse"><a class="header" href="#installing-and-using-synapse">Installing and using Synapse</a></h2> <h2 id="installing-and-using-synapse"><a class="header" href="#installing-and-using-synapse">Installing and using Synapse</a></h2>
<p>This documentation covers topics for <strong>installation</strong>, <strong>configuration</strong> and <p>This documentation covers topics for <strong>installation</strong>, <strong>configuration</strong> and
<strong>maintenance</strong> of your Synapse process:</p> <strong>maintenance</strong> of your Synapse process:</p>
@ -201,7 +200,7 @@ following documentation:</p>
<li> <li>
<p>Read the <a href="development/contributing_guide.html">Contributing Guide</a>. It is meant <p>Read the <a href="development/contributing_guide.html">Contributing Guide</a>. It is meant
to walk new contributors through the process of developing and submitting a to walk new contributors through the process of developing and submitting a
change to the Synapse codebase (which is <a href="https://github.com/matrix-org/synapse">hosted on change to the Synapse codebase (which is <a href="https://github.com/element-hq/synapse">hosted on
GitHub</a>).</p> GitHub</a>).</p>
</li> </li>
<li> <li>
@ -211,9 +210,9 @@ how to <a href="development/contributing_guide.html#run-the-linters">lint</a> an
<a href="development/contributing_guide.html#8-test-test-test">test</a> your code.</p> <a href="development/contributing_guide.html#8-test-test-test">test</a> your code.</p>
</li> </li>
<li> <li>
<p>Look at <a href="https://github.com/matrix-org/synapse/issues">the issue tracker</a> for <p>Look at <a href="https://github.com/element-hq/synapse/issues">the issue tracker</a> for
bugs to fix or features to add. If you're new, it may be best to start with bugs to fix or features to add. If you're new, it may be best to start with
those labeled <a href="https://github.com/matrix-org/synapse/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22">good first those labeled <a href="https://github.com/element-hq/synapse/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22">good first
issue</a>.</p> issue</a>.</p>
</li> </li>
<li> <li>
@ -229,17 +228,9 @@ do so!</p>
</li> </li>
<li> <li>
<p>And finally, contribute to this documentation! The source for which is <p>And finally, contribute to this documentation! The source for which is
<a href="https://github.com/matrix-org/synapse/tree/develop/docs">located here</a>.</p> <a href="https://github.com/element-hq/synapse/tree/develop/docs">located here</a>.</p>
</li> </li>
</ul> </ul>
<h2 id="donating-to-synapse-development"><a class="header" href="#donating-to-synapse-development">Donating to Synapse development</a></h2>
<p>Want to help keep Synapse going but don't know how to code? Synapse is a
<a href="https://matrix.org">Matrix.org Foundation</a> project. Consider becoming a
supporter on <a href="https://liberapay.com/matrixdotorg">Liberapay</a>,
<a href="https://patreon.com/matrixdotorg">Patreon</a> or through
<a href="https://paypal.me/matrixdotorg">PayPal</a> via a one-time donation.</p>
<p>If you are an organisation or enterprise and would like to sponsor development,
reach out to us over email at: support (at) matrix.org</p>
<h2 id="reporting-a-security-vulnerability"><a class="header" href="#reporting-a-security-vulnerability">Reporting a security vulnerability</a></h2> <h2 id="reporting-a-security-vulnerability"><a class="header" href="#reporting-a-security-vulnerability">Reporting a security vulnerability</a></h2>
<p>If you've found a security issue in Synapse or any other Matrix.org Foundation <p>If you've found a security issue in Synapse or any other Matrix.org Foundation
project, please report it to us in accordance with our <a href="https://www.matrix.org/security-disclosure-policy/">Security Disclosure project, please report it to us in accordance with our <a href="https://www.matrix.org/security-disclosure-policy/">Security Disclosure

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/jwt.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/jwt.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/log_contexts.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/log_contexts.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/manhole.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/manhole.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -186,7 +186,7 @@ ensures that access to the <code>manhole</code> is only possible for local users
--mount type=volume,src=synapse-data,dst=/data \ --mount type=volume,src=synapse-data,dst=/data \
-p 8008:8008 \ -p 8008:8008 \
-p 127.0.0.1:9000:9000 \ -p 127.0.0.1:9000:9000 \
matrixdotorg/synapse:latest vectorim/synapse:latest
</code></pre> </code></pre>
<h4 id="native-config"><a class="header" href="#native-config">Native config</a></h4> <h4 id="native-config"><a class="header" href="#native-config">Native config</a></h4>
<p>If you are not using docker, set <code>bind_addresses</code> to <code>['::1', '127.0.0.1']</code> as shown. <p>If you are not using docker, set <code>bind_addresses</code> to <code>['::1', '127.0.0.1']</code> as shown.

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/media_repository.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/media_repository.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/message_retention_policies.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/message_retention_policies.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/metrics-howto.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/metrics-howto.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -239,8 +239,8 @@ the listener port configured with the <code>metrics</code> resource.</p>
<p>Restart Prometheus.</p> <p>Restart Prometheus.</p>
</li> </li>
<li> <li>
<p>Consider using the <a href="https://github.com/matrix-org/synapse/tree/master/contrib/grafana/">grafana dashboard</a> <p>Consider using the <a href="https://github.com/element-hq/synapse/tree/master/contrib/grafana/">grafana dashboard</a>
and required <a href="https://github.com/matrix-org/synapse/tree/master/contrib/prometheus/">recording rules</a> </p> and required <a href="https://github.com/element-hq/synapse/tree/master/contrib/prometheus/">recording rules</a></p>
</li> </li>
</ol> </ol>
<h2 id="monitoring-workers"><a class="header" href="#monitoring-workers">Monitoring workers</a></h2> <h2 id="monitoring-workers"><a class="header" href="#monitoring-workers">Monitoring workers</a></h2>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/modules/account_data_callbacks.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/modules/account_data_callbacks.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/modules/account_validity_callbacks.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/modules/account_validity_callbacks.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/modules/add_extra_fields_to_client_events_unsigned.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/modules/add_extra_fields_to_client_events_unsigned.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/modules/background_update_controller_callbacks.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/modules/background_update_controller_callbacks.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/modules/index.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/modules/index.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/modules/password_auth_provider_callbacks.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/modules/password_auth_provider_callbacks.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/modules/porting_legacy_module.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/modules/porting_legacy_module.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/modules/presence_router_callbacks.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/modules/presence_router_callbacks.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/modules/spam_checker_callbacks.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/modules/spam_checker_callbacks.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/modules/third_party_rules_callbacks.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/modules/third_party_rules_callbacks.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -322,7 +322,7 @@ wishing this callback to be called on every profile change are encouraged to dis
per-room profiles globally using the <code>allow_per_room_profiles</code> configuration setting in per-room profiles globally using the <code>allow_per_room_profiles</code> configuration setting in
Synapse's configuration file. Synapse's configuration file.
This callback is not called when registering a user, even when setting it through the This callback is not called when registering a user, even when setting it through the
<a href="https://matrix-org.github.io/synapse/latest/modules/password_auth_provider_callbacks.html#get_displayname_for_registration"><code>get_displayname_for_registration</code></a> <a href="https://element-hq.github.io/synapse/latest/modules/password_auth_provider_callbacks.html#get_displayname_for_registration"><code>get_displayname_for_registration</code></a>
module callback.</p> module callback.</p>
<p>If multiple modules implement this callback, Synapse runs them all in order.</p> <p>If multiple modules implement this callback, Synapse runs them all in order.</p>
<h3 id="on_user_deactivation_status_changed"><a class="header" href="#on_user_deactivation_status_changed"><code>on_user_deactivation_status_changed</code></a></h3> <h3 id="on_user_deactivation_status_changed"><a class="header" href="#on_user_deactivation_status_changed"><code>on_user_deactivation_status_changed</code></a></h3>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/modules/writing_a_module.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/modules/writing_a_module.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -168,7 +168,7 @@ the <code>synapse.module_api.ModuleApi</code> class. The configuration is a dict
either the output of the module's <code>parse_config</code> static method (see below), or the either the output of the module's <code>parse_config</code> static method (see below), or the
configuration associated with the module in Synapse's configuration file.</p> configuration associated with the module in Synapse's configuration file.</p>
<p>See the documentation for the <code>ModuleApi</code> class <p>See the documentation for the <code>ModuleApi</code> class
<a href="https://github.com/matrix-org/synapse/blob/master/synapse/module_api/__init__.py">here</a>.</p> <a href="https://github.com/element-hq/synapse/blob/master/synapse/module_api/__init__.py">here</a>.</p>
<h2 id="when-synapse-runs-with-several-modules-configured"><a class="header" href="#when-synapse-runs-with-several-modules-configured">When Synapse runs with several modules configured</a></h2> <h2 id="when-synapse-runs-with-several-modules-configured"><a class="header" href="#when-synapse-runs-with-several-modules-configured">When Synapse runs with several modules configured</a></h2>
<p>If Synapse is running with other modules configured, the order each module appears in <p>If Synapse is running with other modules configured, the order each module appears in
within the <code>modules</code> section of the Synapse configuration file might restrict what it can within the <code>modules</code> section of the Synapse configuration file might restrict what it can
@ -219,7 +219,7 @@ methods. The callback functions are passed to these methods as keyword arguments
the callback name as the argument name and the function as its value. A the callback name as the argument name and the function as its value. A
<code>register_[...]_callbacks</code> method exists for each category.</p> <code>register_[...]_callbacks</code> method exists for each category.</p>
<p>Callbacks for each category can be found on their respective page of the <p>Callbacks for each category can be found on their respective page of the
<a href="https://matrix-org.github.io/synapse">Synapse documentation website</a>.</p> <a href="https://element-hq.github.io/synapse">Synapse documentation website</a>.</p>
<h2 id="caching"><a class="header" href="#caching">Caching</a></h2> <h2 id="caching"><a class="header" href="#caching">Caching</a></h2>
<p><em>Added in Synapse 1.74.0.</em></p> <p><em>Added in Synapse 1.74.0.</em></p>
<p>Modules can leverage Synapse's caching tools to manage their own cached functions. This <p>Modules can leverage Synapse's caching tools to manage their own cached functions. This

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/openid.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/openid.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/opentracing.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/opentracing.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/other/running_synapse_on_single_board_computers.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/other/running_synapse_on_single_board_computers.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/password_auth_providers.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/password_auth_providers.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/postgres.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/postgres.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -125,7 +125,7 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
</div> </div>
@ -159,8 +159,7 @@
<div style="break-before: page; page-break-before: always;"></div><h1 id="introduction"><a class="header" href="#introduction">Introduction</a></h1> <div style="break-before: page; page-break-before: always;"></div><h1 id="introduction"><a class="header" href="#introduction">Introduction</a></h1>
<p>Welcome to the documentation repository for Synapse, a <p>Welcome to the documentation repository for Synapse, a
<a href="https://matrix.org">Matrix</a> homeserver implementation developed by the matrix.org core <a href="https://matrix.org">Matrix</a> homeserver implementation developed by Element.</p>
team.</p>
<h2 id="installing-and-using-synapse"><a class="header" href="#installing-and-using-synapse">Installing and using Synapse</a></h2> <h2 id="installing-and-using-synapse"><a class="header" href="#installing-and-using-synapse">Installing and using Synapse</a></h2>
<p>This documentation covers topics for <strong>installation</strong>, <strong>configuration</strong> and <p>This documentation covers topics for <strong>installation</strong>, <strong>configuration</strong> and
<strong>maintenance</strong> of your Synapse process:</p> <strong>maintenance</strong> of your Synapse process:</p>
@ -199,7 +198,7 @@ following documentation:</p>
<li> <li>
<p>Read the <a href="development/contributing_guide.html">Contributing Guide</a>. It is meant <p>Read the <a href="development/contributing_guide.html">Contributing Guide</a>. It is meant
to walk new contributors through the process of developing and submitting a to walk new contributors through the process of developing and submitting a
change to the Synapse codebase (which is <a href="https://github.com/matrix-org/synapse">hosted on change to the Synapse codebase (which is <a href="https://github.com/element-hq/synapse">hosted on
GitHub</a>).</p> GitHub</a>).</p>
</li> </li>
<li> <li>
@ -209,9 +208,9 @@ how to <a href="development/contributing_guide.html#run-the-linters">lint</a> an
<a href="development/contributing_guide.html#8-test-test-test">test</a> your code.</p> <a href="development/contributing_guide.html#8-test-test-test">test</a> your code.</p>
</li> </li>
<li> <li>
<p>Look at <a href="https://github.com/matrix-org/synapse/issues">the issue tracker</a> for <p>Look at <a href="https://github.com/element-hq/synapse/issues">the issue tracker</a> for
bugs to fix or features to add. If you're new, it may be best to start with bugs to fix or features to add. If you're new, it may be best to start with
those labeled <a href="https://github.com/matrix-org/synapse/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22">good first those labeled <a href="https://github.com/element-hq/synapse/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22">good first
issue</a>.</p> issue</a>.</p>
</li> </li>
<li> <li>
@ -227,17 +226,9 @@ do so!</p>
</li> </li>
<li> <li>
<p>And finally, contribute to this documentation! The source for which is <p>And finally, contribute to this documentation! The source for which is
<a href="https://github.com/matrix-org/synapse/tree/develop/docs">located here</a>.</p> <a href="https://github.com/element-hq/synapse/tree/develop/docs">located here</a>.</p>
</li> </li>
</ul> </ul>
<h2 id="donating-to-synapse-development"><a class="header" href="#donating-to-synapse-development">Donating to Synapse development</a></h2>
<p>Want to help keep Synapse going but don't know how to code? Synapse is a
<a href="https://matrix.org">Matrix.org Foundation</a> project. Consider becoming a
supporter on <a href="https://liberapay.com/matrixdotorg">Liberapay</a>,
<a href="https://patreon.com/matrixdotorg">Patreon</a> or through
<a href="https://paypal.me/matrixdotorg">PayPal</a> via a one-time donation.</p>
<p>If you are an organisation or enterprise and would like to sponsor development,
reach out to us over email at: support (at) matrix.org</p>
<h2 id="reporting-a-security-vulnerability"><a class="header" href="#reporting-a-security-vulnerability">Reporting a security vulnerability</a></h2> <h2 id="reporting-a-security-vulnerability"><a class="header" href="#reporting-a-security-vulnerability">Reporting a security vulnerability</a></h2>
<p>If you've found a security issue in Synapse or any other Matrix.org Foundation <p>If you've found a security issue in Synapse or any other Matrix.org Foundation
project, please report it to us in accordance with our <a href="https://www.matrix.org/security-disclosure-policy/">Security Disclosure project, please report it to us in accordance with our <a href="https://www.matrix.org/security-disclosure-policy/">Security Disclosure
@ -261,9 +252,9 @@ that your email address is probably <code>user@example.com</code> rather than
for most users.</p> for most users.</p>
<h4 id="docker-images-and-ansible-playbooks"><a class="header" href="#docker-images-and-ansible-playbooks">Docker images and Ansible playbooks</a></h4> <h4 id="docker-images-and-ansible-playbooks"><a class="header" href="#docker-images-and-ansible-playbooks">Docker images and Ansible playbooks</a></h4>
<p>There is an official synapse image available at <p>There is an official synapse image available at
<a href="https://hub.docker.com/r/matrixdotorg/synapse">https://hub.docker.com/r/matrixdotorg/synapse</a> or at <a href="https://ghcr.io/matrix-org/synapse"><code>ghcr.io/matrix-org/synapse</code></a> <a href="https://hub.docker.com/r/vectorim/synapse">https://hub.docker.com/r/vectorim/synapse</a> or at <a href="https://ghcr.io/element-hq/synapse"><code>ghcr.io/element-hq/synapse</code></a>
which can be used with the docker-compose file available at which can be used with the docker-compose file available at
<a href="https://github.com/matrix-org/synapse/tree/develop/contrib/docker">contrib/docker</a>. <a href="https://github.com/element-hq/synapse/tree/develop/contrib/docker">contrib/docker</a>.
Further information on this including configuration options is available in the README Further information on this including configuration options is available in the README
on hub.docker.com.</p> on hub.docker.com.</p>
<p>Alternatively, Andreas Peters (previously Silvio Fricke) has contributed a <p>Alternatively, Andreas Peters (previously Silvio Fricke) has contributed a
@ -280,6 +271,7 @@ For more details, see
<p>Matrix.org provides Debian/Ubuntu packages of Synapse, for the amd64 <p>Matrix.org provides Debian/Ubuntu packages of Synapse, for the amd64
architecture via <a href="https://packages.matrix.org/debian/">https://packages.matrix.org/debian/</a>.</p> architecture via <a href="https://packages.matrix.org/debian/">https://packages.matrix.org/debian/</a>.</p>
<p>To install the latest release:</p> <p>To install the latest release:</p>
<p>TODO UPDATE ALL THIS</p>
<pre><code class="language-sh">sudo apt install -y lsb-release wget apt-transport-https <pre><code class="language-sh">sudo apt install -y lsb-release wget apt-transport-https
sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
echo &quot;deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main&quot; | echo &quot;deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main&quot; |
@ -1822,7 +1814,7 @@ v1.61.0.</p>
<tr><td>v1.83.0 v1.84.1</td><td>v1.77.0</td></tr> <tr><td>v1.83.0 v1.84.1</td><td>v1.77.0</td></tr>
<tr><td>v1.85.0 v1.91.2</td><td>v1.83.0</td></tr> <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.92.0 v1.97.0</td><td>v1.90.0</td></tr>
<tr><td>v1.98.0 v1.98.0</td><td>v1.96.0</td></tr> <tr><td>v1.98.0 v1.99.0</td><td>v1.96.0</td></tr>
</tbody></table> </tbody></table>
<h1 id="upgrading-to-v1930"><a class="header" href="#upgrading-to-v1930">Upgrading to v1.93.0</a></h1> <h1 id="upgrading-to-v1930"><a class="header" href="#upgrading-to-v1930">Upgrading to v1.93.0</a></h1>
<h2 id="minimum-supported-rust-version"><a class="header" href="#minimum-supported-rust-version">Minimum supported Rust version</a></h2> <h2 id="minimum-supported-rust-version"><a class="header" href="#minimum-supported-rust-version">Minimum supported Rust version</a></h2>
@ -1835,8 +1827,8 @@ date.</p>
considered insecure - and from Synapse v1.71.0 forwards the application service token has also been sent via considered insecure - and from Synapse v1.71.0 forwards the application service token has also been sent via
<a href="https://spec.matrix.org/v1.6/application-service-api/#authorization">the <code>Authorization</code> header</a>], making the insecure <a href="https://spec.matrix.org/v1.6/application-service-api/#authorization">the <code>Authorization</code> header</a>], making the insecure
query parameter authorization redundant. Since removing the ability to continue to use query parameters could break query parameter authorization redundant. Since removing the ability to continue to use query parameters could break
backwards compatibility it has now been put behind a configuration option, <code>use_appservice_legacy_authorization</code>.<br /> backwards compatibility it has now been put behind a configuration option, <code>use_appservice_legacy_authorization</code>.
This option defaults to false, but can be activated by adding </p> This option defaults to false, but can be activated by adding</p>
<pre><code class="language-yaml">use_appservice_legacy_authorization: true <pre><code class="language-yaml">use_appservice_legacy_authorization: true
</code></pre> </code></pre>
<p>to your configuration.</p> <p>to your configuration.</p>
@ -1856,9 +1848,9 @@ packages or Docker images, no action is required.</p>
<p>As mentioned previously in <a href="upgrade.html#upgrading-to-v1840">Upgrading to v1.84.0</a>, the following deprecated settings <p>As mentioned previously in <a href="upgrade.html#upgrading-to-v1840">Upgrading to v1.84.0</a>, the following deprecated settings
are being removed in this release of Synapse:</p> are being removed in this release of Synapse:</p>
<ul> <ul>
<li><a href="https://matrix-org.github.io/synapse/v1.86/usage/configuration/config_documentation.html#worker_replication_host"><code>worker_replication_host</code></a></li> <li><a href="https://element-hq.github.io/synapse/v1.86/usage/configuration/config_documentation.html#worker_replication_host"><code>worker_replication_host</code></a></li>
<li><a href="https://matrix-org.github.io/synapse/v1.86/usage/configuration/config_documentation.html#worker_replication_http_port"><code>worker_replication_http_port</code></a></li> <li><a href="https://element-hq.github.io/synapse/v1.86/usage/configuration/config_documentation.html#worker_replication_http_port"><code>worker_replication_http_port</code></a></li>
<li><a href="https://matrix-org.github.io/synapse/v1.86/usage/configuration/config_documentation.html#worker_replication_http_tls"><code>worker_replication_http_tls</code></a></li> <li><a href="https://element-hq.github.io/synapse/v1.86/usage/configuration/config_documentation.html#worker_replication_http_tls"><code>worker_replication_http_tls</code></a></li>
</ul> </ul>
<p>Please ensure that you have migrated to using <code>main</code> on your shared configuration's <code>instance_map</code> <p>Please ensure that you have migrated to using <code>main</code> on your shared configuration's <code>instance_map</code>
(or create one if necessary). This is required if you have <em><strong>any</strong></em> workers at all; (or create one if necessary). This is required if you have <em><strong>any</strong></em> workers at all;
@ -1945,7 +1937,7 @@ worker_listeners:
worker_log_config: /etc/matrix-synapse/generic-worker-log.yaml worker_log_config: /etc/matrix-synapse/generic-worker-log.yaml
</code></pre> </code></pre>
<p>Notes: </p> <p>Notes:</p>
<ul> <ul>
<li><code>tls</code> is optional but mirrors the functionality of <code>worker_replication_http_tls</code></li> <li><code>tls</code> is optional but mirrors the functionality of <code>worker_replication_http_tls</code></li>
</ul> </ul>
@ -2105,7 +2097,7 @@ because current versions of Synapse emit both old and new names.</p>
the names of Prometheus metrics. the names of Prometheus metrics.
If you want to test your changes before legacy names are disabled by default, If you want to test your changes before legacy names are disabled by default,
you may specify <code>enable_legacy_metrics: false</code> in your homeserver configuration.</p> you may specify <code>enable_legacy_metrics: false</code> in your homeserver configuration.</p>
<p>A list of affected metrics is available on the <a href="https://matrix-org.github.io/synapse/v1.69/metrics-howto.html?highlight=metrics%20deprecated#renaming-of-metrics--deprecation-of-old-names-in-12">Metrics How-to page</a>.</p> <p>A list of affected metrics is available on the <a href="https://element-hq.github.io/synapse/v1.69/metrics-howto.html?highlight=metrics%20deprecated#renaming-of-metrics--deprecation-of-old-names-in-12">Metrics How-to page</a>.</p>
<h2 id="deprecation-of-the-generate_short_term_login_token-module-api-method"><a class="header" href="#deprecation-of-the-generate_short_term_login_token-module-api-method">Deprecation of the <code>generate_short_term_login_token</code> module API method</a></h2> <h2 id="deprecation-of-the-generate_short_term_login_token-module-api-method"><a class="header" href="#deprecation-of-the-generate_short_term_login_token-module-api-method">Deprecation of the <code>generate_short_term_login_token</code> module API method</a></h2>
<p>The following method of the module API has been deprecated, and is scheduled to <p>The following method of the module API has been deprecated, and is scheduled to
be remove in v1.71.0:</p> be remove in v1.71.0:</p>
@ -2145,7 +2137,7 @@ Synapse's database.</p>
<h2 id="rust-requirement-when-building-from-source"><a class="header" href="#rust-requirement-when-building-from-source">Rust requirement when building from source.</a></h2> <h2 id="rust-requirement-when-building-from-source"><a class="header" href="#rust-requirement-when-building-from-source">Rust requirement when building from source.</a></h2>
<p>Building from a source checkout of Synapse now requires a recent Rust compiler <p>Building from a source checkout of Synapse now requires a recent Rust compiler
(currently Rust 1.58.1, but see also the (currently Rust 1.58.1, but see also the
<a href="https://matrix-org.github.io/synapse/latest/deprecation_policy.html">Platform Dependency Policy</a>).</p> <a href="https://element-hq.github.io/synapse/latest/deprecation_policy.html">Platform Dependency Policy</a>).</p>
<p>Installations using</p> <p>Installations using</p>
<ul> <ul>
<li>Docker images <a href="https://hub.docker.com/r/matrixdotorg/synapse">from <code>matrixdotorg</code></a>,</li> <li>Docker images <a href="https://hub.docker.com/r/matrixdotorg/synapse">from <code>matrixdotorg</code></a>,</li>
@ -2193,7 +2185,7 @@ This removal was previously planned for Synapse 1.64.0, but was
homeserver administrators more notice of the change.</p> homeserver administrators more notice of the change.</p>
<p>To continue to allow users to add email addresses to their homeserver accounts, <p>To continue to allow users to add email addresses to their homeserver accounts,
and perform password resets, make sure that Synapse is configured with a working and perform password resets, make sure that Synapse is configured with a working
email server in the <a href="https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#email"><code>email</code> configuration email server in the <a href="https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html#email"><code>email</code> configuration
section</a> section</a>
(including, at a minimum, a <code>notif_from</code> setting.)</p> (including, at a minimum, a <code>notif_from</code> setting.)</p>
<p>Specifying an <code>email</code> setting under <code>account_threepid_delegates</code> will now cause <p>Specifying an <code>email</code> setting under <code>account_threepid_delegates</code> will now cause
@ -2202,7 +2194,7 @@ an error at startup.</p>
<h2 id="deprecation-of-the-ability-to-delegate-e-mail-verification-to-identity-servers"><a class="header" href="#deprecation-of-the-ability-to-delegate-e-mail-verification-to-identity-servers">Deprecation of the ability to delegate e-mail verification to identity servers</a></h2> <h2 id="deprecation-of-the-ability-to-delegate-e-mail-verification-to-identity-servers"><a class="header" href="#deprecation-of-the-ability-to-delegate-e-mail-verification-to-identity-servers">Deprecation of the ability to delegate e-mail verification to identity servers</a></h2>
<p>Synapse v1.66.0 will remove the ability to delegate the tasks of verifying email address ownership, and password reset confirmation, to an identity server.</p> <p>Synapse v1.66.0 will remove the ability to delegate the tasks of verifying email address ownership, and password reset confirmation, to an identity server.</p>
<p>If you require your homeserver to verify e-mail addresses or to support password resets via e-mail, please configure your homeserver with SMTP access so that it can send e-mails on its own behalf. <p>If you require your homeserver to verify e-mail addresses or to support password resets via e-mail, please configure your homeserver with SMTP access so that it can send e-mails on its own behalf.
<a href="https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#email">Consult the configuration documentation for more information.</a></p> <a href="https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html#email">Consult the configuration documentation for more information.</a></p>
<p>The option that will be removed is <code>account_threepid_delegates.email</code>.</p> <p>The option that will be removed is <code>account_threepid_delegates.email</code>.</p>
<h2 id="changes-to-the-event-replication-streams"><a class="header" href="#changes-to-the-event-replication-streams">Changes to the event replication streams</a></h2> <h2 id="changes-to-the-event-replication-streams"><a class="header" href="#changes-to-the-event-replication-streams">Changes to the event replication streams</a></h2>
<p>Synapse now includes a flag indicating if an event is an outlier when <p>Synapse now includes a flag indicating if an event is an outlier when
@ -2352,7 +2344,7 @@ has queries that can be used to check a database for this problem in advance.</p
<p>The names of user devices are no longer visible to users on other homeservers by default. <p>The names of user devices are no longer visible to users on other homeservers by default.
Device IDs are unaffected, as these are necessary to facilitate end-to-end encryption.</p> Device IDs are unaffected, as these are necessary to facilitate end-to-end encryption.</p>
<p>To re-enable this functionality, set the <p>To re-enable this functionality, set the
<a href="https://matrix-org.github.io/synapse/v1.59/usage/configuration/config_documentation.html#federation"><code>allow_device_name_lookup_over_federation</code></a> <a href="https://element-hq.github.io/synapse/v1.59/usage/configuration/config_documentation.html#federation"><code>allow_device_name_lookup_over_federation</code></a>
homeserver config option to <code>true</code>.</p> homeserver config option to <code>true</code>.</p>
<h2 id="deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types"><a class="header" href="#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types">Deprecation of the <code>synapse.app.appservice</code> and <code>synapse.app.user_dir</code> worker application types</a></h2> <h2 id="deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types"><a class="header" href="#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types">Deprecation of the <code>synapse.app.appservice</code> and <code>synapse.app.user_dir</code> worker application types</a></h2>
<p>The <code>synapse.app.appservice</code> worker application type allowed you to configure a <p>The <code>synapse.app.appservice</code> worker application type allowed you to configure a
@ -2437,7 +2429,7 @@ be disabled by default in Synapse v1.58.0.</p>
<h2 id="change-in-behaviour-for-postgresql-databases-with-unsafe-locale"><a class="header" href="#change-in-behaviour-for-postgresql-databases-with-unsafe-locale">Change in behaviour for PostgreSQL databases with unsafe locale</a></h2> <h2 id="change-in-behaviour-for-postgresql-databases-with-unsafe-locale"><a class="header" href="#change-in-behaviour-for-postgresql-databases-with-unsafe-locale">Change in behaviour for PostgreSQL databases with unsafe locale</a></h2>
<p>Synapse now refuses to start when using PostgreSQL with non-<code>C</code> values for <code>COLLATE</code> and <p>Synapse now refuses to start when using PostgreSQL with non-<code>C</code> values for <code>COLLATE</code> and
<code>CTYPE</code> unless the config flag <code>allow_unsafe_locale</code>, found in the database section of <code>CTYPE</code> unless the config flag <code>allow_unsafe_locale</code>, found in the database section of
the configuration file, is set to <code>true</code>. See the <a href="https://matrix-org.github.io/synapse/latest/postgres.html#fixing-incorrect-collate-or-ctype">PostgreSQL documentation</a> the configuration file, is set to <code>true</code>. See the <a href="https://element-hq.github.io/synapse/latest/postgres.html#fixing-incorrect-collate-or-ctype">PostgreSQL documentation</a>
for more information and instructions on how to fix a database with incorrect values.</p> for more information and instructions on how to fix a database with incorrect values.</p>
<h1 id="upgrading-to-v1550"><a class="header" href="#upgrading-to-v1550">Upgrading to v1.55.0</a></h1> <h1 id="upgrading-to-v1550"><a class="header" href="#upgrading-to-v1550">Upgrading to v1.55.0</a></h1>
<h2 id="synctl-script-has-been-moved"><a class="header" href="#synctl-script-has-been-moved"><code>synctl</code> script has been moved</a></h2> <h2 id="synctl-script-has-been-moved"><a class="header" href="#synctl-script-has-been-moved"><code>synctl</code> script has been moved</a></h2>
@ -2467,7 +2459,7 @@ please upgrade Mjolnir to version 1.3.2 or later before upgrading Synapse.</p>
<p>This release removes support for the <code>structured: true</code> logging configuration <p>This release removes support for the <code>structured: true</code> logging configuration
which was deprecated in Synapse v1.23.0. If your logging configuration contains which was deprecated in Synapse v1.23.0. If your logging configuration contains
<code>structured: true</code> then it should be modified based on the <code>structured: true</code> then it should be modified based on the
<a href="https://matrix-org.github.io/synapse/v1.56/structured_logging.html#upgrading-from-legacy-structured-logging-configuration">structured logging documentation</a>.</p> <a href="https://element-hq.github.io/synapse/v1.56/structured_logging.html#upgrading-from-legacy-structured-logging-configuration">structured logging documentation</a>.</p>
<h1 id="upgrading-to-v1530"><a class="header" href="#upgrading-to-v1530">Upgrading to v1.53.0</a></h1> <h1 id="upgrading-to-v1530"><a class="header" href="#upgrading-to-v1530">Upgrading to v1.53.0</a></h1>
<h2 id="dropping-support-for-webclient-listeners-and-non-https-web_client_location"><a class="header" href="#dropping-support-for-webclient-listeners-and-non-https-web_client_location">Dropping support for <code>webclient</code> listeners and non-HTTP(S) <code>web_client_location</code></a></h2> <h2 id="dropping-support-for-webclient-listeners-and-non-https-web_client_location"><a class="header" href="#dropping-support-for-webclient-listeners-and-non-https-web_client_location">Dropping support for <code>webclient</code> listeners and non-HTTP(S) <code>web_client_location</code></a></h2>
<p>Per the deprecation notice in Synapse v1.51.0, listeners of type <code>webclient</code> <p>Per the deprecation notice in Synapse v1.51.0, listeners of type <code>webclient</code>
@ -2510,10 +2502,10 @@ becomes stable.</p>
<h2 id="removal-of-user_may_create_room_with_invites"><a class="header" href="#removal-of-user_may_create_room_with_invites">Removal of <code>user_may_create_room_with_invites</code></a></h2> <h2 id="removal-of-user_may_create_room_with_invites"><a class="header" href="#removal-of-user_may_create_room_with_invites">Removal of <code>user_may_create_room_with_invites</code></a></h2>
<p>As announced with the release of <a href="upgrade.html#deprecation-of-the-user_may_create_room_with_invites-module-callback">Synapse 1.47.0</a>, <p>As announced with the release of <a href="upgrade.html#deprecation-of-the-user_may_create_room_with_invites-module-callback">Synapse 1.47.0</a>,
the deprecated <code>user_may_create_room_with_invites</code> module callback has been removed.</p> the deprecated <code>user_may_create_room_with_invites</code> module callback has been removed.</p>
<p>Modules relying on it can instead implement <a href="https://matrix-org.github.io/synapse/latest/modules/spam_checker_callbacks.html#user_may_invite"><code>user_may_invite</code></a> <p>Modules relying on it can instead implement <a href="https://element-hq.github.io/synapse/latest/modules/spam_checker_callbacks.html#user_may_invite"><code>user_may_invite</code></a>
and use the <a href="https://github.com/matrix-org/synapse/blob/872f23b95fa980a61b0866c1475e84491991fa20/synapse/module_api/__init__.py#L869-L876"><code>get_room_state</code></a> and use the <a href="https://github.com/element-hq/synapse/blob/872f23b95fa980a61b0866c1475e84491991fa20/synapse/module_api/__init__.py#L869-L876"><code>get_room_state</code></a>
module API to infer whether the invite is happening while creating a room (see <a href="https://github.com/matrix-org/synapse-domain-rule-checker/blob/e7d092dd9f2a7f844928771dbfd9fd24c2332e48/synapse_domain_rule_checker/__init__.py#L56-L89">this function</a> module API to infer whether the invite is happening while creating a room (see <a href="https://github.com/matrix-org/synapse-domain-rule-checker/blob/e7d092dd9f2a7f844928771dbfd9fd24c2332e48/synapse_domain_rule_checker/__init__.py#L56-L89">this function</a>
as an example). Alternately, modules can also implement <a href="https://matrix-org.github.io/synapse/latest/modules/third_party_rules_callbacks.html#on_create_room"><code>on_create_room</code></a>.</p> as an example). Alternately, modules can also implement <a href="https://element-hq.github.io/synapse/latest/modules/third_party_rules_callbacks.html#on_create_room"><code>on_create_room</code></a>.</p>
<h1 id="upgrading-to-v1520"><a class="header" href="#upgrading-to-v1520">Upgrading to v1.52.0</a></h1> <h1 id="upgrading-to-v1520"><a class="header" href="#upgrading-to-v1520">Upgrading to v1.52.0</a></h1>
<h2 id="twisted-security-release"><a class="header" href="#twisted-security-release">Twisted security release</a></h2> <h2 id="twisted-security-release"><a class="header" href="#twisted-security-release">Twisted security release</a></h2>
<p>Note that <a href="https://github.com/twisted/twisted/releases/tag/twisted-22.1.0">Twisted 22.1.0</a> <p>Note that <a href="https://github.com/twisted/twisted/releases/tag/twisted-22.1.0">Twisted 22.1.0</a>
@ -2543,12 +2535,12 @@ longer supported upstream.</p>
<li><code>POST /_synapse/admin/v1/&lt;room_id&gt;/delete</code></li> <li><code>POST /_synapse/admin/v1/&lt;room_id&gt;/delete</code></li>
</ul> </ul>
<p>Any scripts still using the above APIs should be converted to use the <p>Any scripts still using the above APIs should be converted to use the
<a href="https://matrix-org.github.io/synapse/latest/admin_api/rooms.html#delete-room-api">Delete Room API</a>.</p> <a href="https://element-hq.github.io/synapse/latest/admin_api/rooms.html#delete-room-api">Delete Room API</a>.</p>
<h2 id="deprecation-of-the-user_may_create_room_with_invites-module-callback"><a class="header" href="#deprecation-of-the-user_may_create_room_with_invites-module-callback">Deprecation of the <code>user_may_create_room_with_invites</code> module callback</a></h2> <h2 id="deprecation-of-the-user_may_create_room_with_invites-module-callback"><a class="header" href="#deprecation-of-the-user_may_create_room_with_invites-module-callback">Deprecation of the <code>user_may_create_room_with_invites</code> module callback</a></h2>
<p>The <code>user_may_create_room_with_invites</code> is deprecated and will be removed in a future <p>The <code>user_may_create_room_with_invites</code> is deprecated and will be removed in a future
version of Synapse. Modules implementing this callback can instead implement version of Synapse. Modules implementing this callback can instead implement
<a href="https://matrix-org.github.io/synapse/latest/modules/spam_checker_callbacks.html#user_may_invite"><code>user_may_invite</code></a> <a href="https://element-hq.github.io/synapse/latest/modules/spam_checker_callbacks.html#user_may_invite"><code>user_may_invite</code></a>
and use the <a href="https://github.com/matrix-org/synapse/blob/872f23b95fa980a61b0866c1475e84491991fa20/synapse/module_api/__init__.py#L869-L876"><code>get_room_state</code></a> and use the <a href="https://github.com/element-hq/synapse/blob/872f23b95fa980a61b0866c1475e84491991fa20/synapse/module_api/__init__.py#L869-L876"><code>get_room_state</code></a>
module API method to infer whether the invite is happening in the context of creating a module API method to infer whether the invite is happening in the context of creating a
room.</p> room.</p>
<p>We plan to remove this callback in January 2022.</p> <p>We plan to remove this callback in January 2022.</p>
@ -2565,7 +2557,7 @@ no longer mirrored to storage providers. These two directories can be safely
deleted from any configured storage providers to reclaim space.</p> deleted from any configured storage providers to reclaim space.</p>
<h1 id="upgrading-to-v1430"><a class="header" href="#upgrading-to-v1430">Upgrading to v1.43.0</a></h1> <h1 id="upgrading-to-v1430"><a class="header" href="#upgrading-to-v1430">Upgrading to v1.43.0</a></h1>
<h2 id="the-spaces-summary-apis-can-now-be-handled-by-workers"><a class="header" href="#the-spaces-summary-apis-can-now-be-handled-by-workers">The spaces summary APIs can now be handled by workers</a></h2> <h2 id="the-spaces-summary-apis-can-now-be-handled-by-workers"><a class="header" href="#the-spaces-summary-apis-can-now-be-handled-by-workers">The spaces summary APIs can now be handled by workers</a></h2>
<p>The <a href="https://matrix-org.github.io/synapse/latest/workers.html#available-worker-applications">available worker applications documentation</a> <p>The <a href="https://element-hq.github.io/synapse/latest/workers.html#available-worker-applications">available worker applications documentation</a>
has been updated to reflect that calls to the <code>/spaces</code>, <code>/hierarchy</code>, and has been updated to reflect that calls to the <code>/spaces</code>, <code>/hierarchy</code>, and
<code>/summary</code> endpoints can now be routed to workers for both client API and <code>/summary</code> endpoints can now be routed to workers for both client API and
federation requests.</p> federation requests.</p>
@ -2578,11 +2570,11 @@ federation requests.</p>
<li><code>POST /_synapse/admin/v1/shutdown_room/&lt;room_id&gt;</code></li> <li><code>POST /_synapse/admin/v1/shutdown_room/&lt;room_id&gt;</code></li>
</ul> </ul>
<p>Any scripts still using the above APIs should be converted to use the <p>Any scripts still using the above APIs should be converted to use the
<a href="https://matrix-org.github.io/synapse/latest/admin_api/rooms.html#delete-room-api">Delete Room API</a>.</p> <a href="https://element-hq.github.io/synapse/latest/admin_api/rooms.html#delete-room-api">Delete Room API</a>.</p>
<h2 id="user-interactive-authentication-fallback-templates-can-now-display-errors"><a class="header" href="#user-interactive-authentication-fallback-templates-can-now-display-errors">User-interactive authentication fallback templates can now display errors</a></h2> <h2 id="user-interactive-authentication-fallback-templates-can-now-display-errors"><a class="header" href="#user-interactive-authentication-fallback-templates-can-now-display-errors">User-interactive authentication fallback templates can now display errors</a></h2>
<p>This may affect you if you make use of custom HTML templates for the <p>This may affect you if you make use of custom HTML templates for the
<a href="https://github.com/matrix-org/synapse/tree/develop/synapse/res/templates/recaptcha.html">reCAPTCHA (<code>synapse/res/templates/recaptcha.html</code>)</a> or <a href="https://github.com/element-hq/synapse/tree/develop/synapse/res/templates/recaptcha.html">reCAPTCHA (<code>synapse/res/templates/recaptcha.html</code>)</a> or
<a href="https://github.com/matrix-org/synapse/tree/develop/synapse/res/templates/terms.html">terms (<code>synapse/res/templates/terms.html</code>)</a> fallback pages.</p> <a href="https://github.com/element-hq/synapse/tree/develop/synapse/res/templates/terms.html">terms (<code>synapse/res/templates/terms.html</code>)</a> fallback pages.</p>
<p>The template is now provided an <code>error</code> variable if the authentication <p>The template is now provided an <code>error</code> variable if the authentication
process failed. See the default templates linked above for an example.</p> process failed. See the default templates linked above for an example.</p>
<h2 id="removal-of-out-of-date-email-pushers"><a class="header" href="#removal-of-out-of-date-email-pushers">Removal of out-of-date email pushers</a></h2> <h2 id="removal-of-out-of-date-email-pushers"><a class="header" href="#removal-of-out-of-date-email-pushers">Removal of out-of-date email pushers</a></h2>
@ -2617,11 +2609,11 @@ details.</p>
configuration file are now deprecated. Server admins should use the new configuration file are now deprecated. Server admins should use the new
<code>templates.custom_template_directory</code> setting in the configuration file and use one single <code>templates.custom_template_directory</code> setting in the configuration file and use one single
custom template directory for all aforementioned features. Template file names remain custom template directory for all aforementioned features. Template file names remain
unchanged. See <a href="https://matrix-org.github.io/synapse/latest/templates.html">the related documentation</a> unchanged. See <a href="https://element-hq.github.io/synapse/latest/templates.html">the related documentation</a>
for more information and examples.</p> for more information and examples.</p>
<p>We plan to remove support for these settings in October 2021.</p> <p>We plan to remove support for these settings in October 2021.</p>
<h2 id="_synapseadminv1usersuseridmedia-must-be-handled-by-media-workers"><a class="header" href="#_synapseadminv1usersuseridmedia-must-be-handled-by-media-workers"><code>/_synapse/admin/v1/users/{userId}/media</code> must be handled by media workers</a></h2> <h2 id="_synapseadminv1usersuseridmedia-must-be-handled-by-media-workers"><a class="header" href="#_synapseadminv1usersuseridmedia-must-be-handled-by-media-workers"><code>/_synapse/admin/v1/users/{userId}/media</code> must be handled by media workers</a></h2>
<p>The <a href="https://matrix-org.github.io/synapse/latest/workers.html#synapseappmedia_repository">media repository worker documentation</a> <p>The <a href="https://element-hq.github.io/synapse/latest/workers.html#synapseappmedia_repository">media repository worker documentation</a>
has been updated to reflect that calls to <code>/_synapse/admin/v1/users/{userId}/media</code> has been updated to reflect that calls to <code>/_synapse/admin/v1/users/{userId}/media</code>
must now be handled by media repository workers. This is due to the new <code>DELETE</code> method must now be handled by media repository workers. This is due to the new <code>DELETE</code> method
of this endpoint modifying the media store.</p> of this endpoint modifying the media store.</p>
@ -2933,7 +2925,7 @@ lock down external access to the Admin API endpoints.</p>
<p>This release deprecates use of the <code>structured: true</code> logging <p>This release deprecates use of the <code>structured: true</code> logging
configuration for structured logging. If your logging configuration configuration for structured logging. If your logging configuration
contains <code>structured: true</code> then it should be modified based on the contains <code>structured: true</code> then it should be modified based on the
<a href="https://matrix-org.github.io/synapse/v1.56/structured_logging.html#upgrading-from-legacy-structured-logging-configuration">structured logging documentation</a>.</p> <a href="https://element-hq.github.io/synapse/v1.56/structured_logging.html#upgrading-from-legacy-structured-logging-configuration">structured logging documentation</a>.</p>
<p>The <code>structured</code> and <code>drains</code> logging options are now deprecated and <p>The <code>structured</code> and <code>drains</code> logging options are now deprecated and
should be replaced by standard logging configuration of <code>handlers</code> and should be replaced by standard logging configuration of <code>handlers</code> and
<code>formatters</code>.</p> <code>formatters</code>.</p>
@ -2966,7 +2958,7 @@ endpoint can be handled</p>
update your reverse proxy configuration to reflect this change.</p> update your reverse proxy configuration to reflect this change.</p>
<h2 id="new-html-templates"><a class="header" href="#new-html-templates">New HTML templates</a></h2> <h2 id="new-html-templates"><a class="header" href="#new-html-templates">New HTML templates</a></h2>
<p>A new HTML template, <p>A new HTML template,
<a href="https://github.com/matrix-org/synapse/blob/develop/synapse/res/templates/password_reset_confirmation.html">password_reset_confirmation.html</a>, <a href="https://github.com/element-hq/synapse/blob/develop/synapse/res/templates/password_reset_confirmation.html">password_reset_confirmation.html</a>,
has been added to the <code>synapse/res/templates</code> directory. If you are has been added to the <code>synapse/res/templates</code> directory. If you are
using a custom template directory, you may want to copy the template using a custom template directory, you may want to copy the template
over and modify it.</p> over and modify it.</p>
@ -3008,7 +3000,7 @@ updated.</p>
<p>When setting up worker processes, we now recommend the use of a Redis <p>When setting up worker processes, we now recommend the use of a Redis
server for replication. <strong>The old direct TCP connection method is server for replication. <strong>The old direct TCP connection method is
deprecated and will be removed in a future release.</strong> See deprecated and will be removed in a future release.</strong> See
the <a href="https://matrix-org.github.io/synapse/v1.66/workers.html">worker documentation</a> for more details.</p> the <a href="https://element-hq.github.io/synapse/v1.66/workers.html">worker documentation</a> for more details.</p>
<h1 id="upgrading-to-v1140"><a class="header" href="#upgrading-to-v1140">Upgrading to v1.14.0</a></h1> <h1 id="upgrading-to-v1140"><a class="header" href="#upgrading-to-v1140">Upgrading to v1.14.0</a></h1>
<p>This version includes a database update which is run as part of the <p>This version includes a database update which is run as part of the
upgrade, and which may take a couple of minutes in the case of a large upgrade, and which may take a couple of minutes in the case of a large
@ -3046,7 +3038,7 @@ INSERT INTO background_updates (update_name, progress_json, depends_on) VALUES
is configured to use SSO and a custom is configured to use SSO and a custom
<code>sso_redirect_confirm_template_dir</code> configuration then these templates <code>sso_redirect_confirm_template_dir</code> configuration then these templates
will need to be copied from will need to be copied from
<a href="https://github.com/matrix-org/synapse/tree/develop/synapse/res/templates"><code>synapse/res/templates</code></a> into that directory.</p> <a href="https://github.com/element-hq/synapse/tree/develop/synapse/res/templates"><code>synapse/res/templates</code></a> into that directory.</p>
<h2 id="synapse-sso-plugins-method-deprecation"><a class="header" href="#synapse-sso-plugins-method-deprecation">Synapse SSO Plugins Method Deprecation</a></h2> <h2 id="synapse-sso-plugins-method-deprecation"><a class="header" href="#synapse-sso-plugins-method-deprecation">Synapse SSO Plugins Method Deprecation</a></h2>
<p>Plugins using the <code>complete_sso_login</code> method of <p>Plugins using the <code>complete_sso_login</code> method of
<code>synapse.module_api.ModuleApi</code> should update to using the async/await <code>synapse.module_api.ModuleApi</code> should update to using the async/await
@ -3177,7 +3169,7 @@ included.</p>
<p>Synapse will expect these files to exist inside the configured template <p>Synapse will expect these files to exist inside the configured template
directory, and <strong>will fail to start</strong> if they are absent. To view the directory, and <strong>will fail to start</strong> if they are absent. To view the
default templates, see default templates, see
<a href="https://github.com/matrix-org/synapse/tree/master/synapse/res/templates">synapse/res/templates</a>.</p> <a href="https://github.com/element-hq/synapse/tree/master/synapse/res/templates">synapse/res/templates</a>.</p>
<h2 id="3pid-verification-changes"><a class="header" href="#3pid-verification-changes">3pid verification changes</a></h2> <h2 id="3pid-verification-changes"><a class="header" href="#3pid-verification-changes">3pid verification changes</a></h2>
<p><strong>Note: As of this release, users will be unable to add phone numbers or <p><strong>Note: As of this release, users will be unable to add phone numbers or
email addresses to their accounts, without changes to the Synapse email addresses to their accounts, without changes to the Synapse
@ -3729,7 +3721,7 @@ release of Synapse.</p>
<p>If you want to get up and running quickly with a trio of homeservers in a <p>If you want to get up and running quickly with a trio of homeservers in a
private federation, there is a script in the <code>demo</code> directory. This is mainly private federation, there is a script in the <code>demo</code> directory. This is mainly
useful just for development purposes. See useful just for development purposes. See
<a href="https://matrix-org.github.io/synapse/develop/development/demo.html">demo scripts</a>.</p> <a href="https://element-hq.github.io/synapse/develop/development/demo.html">demo scripts</a>.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="configuration-2"><a class="header" href="#configuration-2">Configuration</a></h1> <div style="break-before: page; page-break-before: always;"></div><h1 id="configuration-2"><a class="header" href="#configuration-2">Configuration</a></h1>
<p>This section contains information on tweaking Synapse via the various options in the configuration file. A configuration <p>This section contains information on tweaking Synapse via the various options in the configuration file. A configuration
file should have been generated when you <a href="usage/configuration/../../setup/installation.html">installed Synapse</a>.</p> file should have been generated when you <a href="usage/configuration/../../setup/installation.html">installed Synapse</a>.</p>
@ -4199,7 +4191,7 @@ for <a href="usage/configuration/../../workers.html">workers</a> and containers
# that unwraps TLS. # that unwraps TLS.
# #
# If you plan to use a reverse proxy, please see # If you plan to use a reverse proxy, please see
# https://matrix-org.github.io/synapse/latest/reverse_proxy.html. # https://element-hq.github.io/synapse/latest/reverse_proxy.html.
# #
- port: 8008 - port: 8008
tls: false tls: false
@ -4230,7 +4222,7 @@ for <a href="usage/configuration/../../workers.html">workers</a> and containers
# conflicts, and providing enhanced security through system file permissions. # conflicts, and providing enhanced security through system file permissions.
# #
# Note that x_forwarded will default to true, when using a UNIX socket. Please see # Note that x_forwarded will default to true, when using a UNIX socket. Please see
# https://matrix-org.github.io/synapse/latest/reverse_proxy.html. # https://element-hq.github.io/synapse/latest/reverse_proxy.html.
# #
- path: /run/synapse/main_public.sock - path: /run/synapse/main_public.sock
type: http type: http
@ -4335,6 +4327,12 @@ has missed. Disabled by default.</p>
notifications for new users. Enabled by default.</p> notifications for new users. Enabled by default.</p>
</li> </li>
<li> <li>
<p><code>notif_delay_before_mail</code>: The time to wait before emailing about a notification.
This gives the user a chance to view the message via push or an open client.
Defaults to 10 minutes.</p>
<p><em>New in Synapse 1.99.0.</em></p>
</li>
<li>
<p><code>client_base_url</code>: Custom URL for client links within the email notifications. By default <p><code>client_base_url</code>: Custom URL for client links within the email notifications. By default
links will be based on &quot;https://matrix.to&quot;. (This setting used to be called <code>riot_base_url</code>; links will be based on &quot;https://matrix.to&quot;. (This setting used to be called <code>riot_base_url</code>;
the old name is still supported for backwards-compatibility but is now deprecated.)</p> the old name is still supported for backwards-compatibility but is now deprecated.)</p>
@ -4935,7 +4933,7 @@ caches:
</code></pre> </code></pre>
<p>If you are running multiple workers, you must individually update the worker <p>If you are running multiple workers, you must individually update the worker
config file and send this signal to each worker process.</p> config file and send this signal to each worker process.</p>
<p>If you're using the <a href="https://github.com/matrix-org/synapse/blob/develop/contrib/systemd/matrix-synapse.service">example systemd service</a> <p>If you're using the <a href="https://github.com/element-hq/synapse/blob/develop/contrib/systemd/matrix-synapse.service">example systemd service</a>
file in Synapse's <code>contrib</code> directory, you can send a <code>SIGHUP</code> signal by using file in Synapse's <code>contrib</code> directory, you can send a <code>SIGHUP</code> signal by using
<code>systemctl reload matrix-synapse</code>.</p> <code>systemctl reload matrix-synapse</code>.</p>
<hr /> <hr />
@ -5944,7 +5942,7 @@ existing sessions until they are refreshed.</p>
<pre><code class="language-yaml">refreshable_access_token_lifetime: 10m <pre><code class="language-yaml">refreshable_access_token_lifetime: 10m
</code></pre> </code></pre>
<hr /> <hr />
<h3 id="refresh_token_lifetime-24h"><a class="header" href="#refresh_token_lifetime-24h"><code>refresh_token_lifetime: 24h</code></a></h3> <h3 id="refresh_token_lifetime"><a class="header" href="#refresh_token_lifetime"><code>refresh_token_lifetime</code></a></h3>
<p>Time that a refresh token remains valid for (provided that it is not <p>Time that a refresh token remains valid for (provided that it is not
exchanged for another one first). exchanged for another one first).
This option can be used to automatically log-out inactive sessions. This option can be used to automatically log-out inactive sessions.
@ -6014,6 +6012,9 @@ Defaults to false.</p>
<h3 id="sentry"><a class="header" href="#sentry"><code>sentry</code></a></h3> <h3 id="sentry"><a class="header" href="#sentry"><code>sentry</code></a></h3>
<p>Use this option to enable sentry integration. Provide the DSN assigned to you by sentry <p>Use this option to enable sentry integration. Provide the DSN assigned to you by sentry
with the <code>dsn</code> setting.</p> with the <code>dsn</code> setting.</p>
<p>An optional <code>environment</code> field can be used to specify an environment. This allows
for log maintenance based on different environments, ensuring better organization
and analysis..</p>
<p>NOTE: While attempts are made to ensure that the logs don't contain <p>NOTE: While attempts are made to ensure that the logs don't contain
any sensitive information, this cannot be guaranteed. By enabling any sensitive information, this cannot be guaranteed. By enabling
this option the sentry server may therefore receive sensitive this option the sentry server may therefore receive sensitive
@ -6021,6 +6022,7 @@ information, and it in turn may then disseminate sensitive information
through insecure notification channels if so configured.</p> through insecure notification channels if so configured.</p>
<p>Example configuration:</p> <p>Example configuration:</p>
<pre><code class="language-yaml">sentry: <pre><code class="language-yaml">sentry:
environment: &quot;production&quot;
dsn: &quot;...&quot; dsn: &quot;...&quot;
</code></pre> </code></pre>
<hr /> <hr />
@ -6832,7 +6834,7 @@ validation will fail without configuring audiences.</li>
<li><code>enabled</code>: Defaults to true. <li><code>enabled</code>: Defaults to true.
Set to false to disable password authentication. Set to false to disable password authentication.
Set to <code>only_for_reauth</code> to allow users with existing passwords to use them Set to <code>only_for_reauth</code> to allow users with existing passwords to use them
to log in and reauthenticate, whilst preventing new users from setting passwords.</li> to reauthenticate (not log in), whilst preventing new users from setting passwords.</li>
<li><code>localdb_enabled</code>: Set to false to disable authentication against the local password <li><code>localdb_enabled</code>: Set to false to disable authentication against the local password
database. This is ignored if <code>enabled</code> is false, and is only useful database. This is ignored if <code>enabled</code> is false, and is only useful
if you have other <code>password_providers</code>. Defaults to true.</li> if you have other <code>password_providers</code>. Defaults to true.</li>
@ -7047,15 +7049,20 @@ notices.</p>
<li><code>system_mxid_display_name</code>: set the display name of the &quot;notices&quot; user</li> <li><code>system_mxid_display_name</code>: set the display name of the &quot;notices&quot; user</li>
<li><code>system_mxid_avatar_url</code>: set the avatar for the &quot;notices&quot; user</li> <li><code>system_mxid_avatar_url</code>: set the avatar for the &quot;notices&quot; user</li>
<li><code>room_name</code>: set the room name of the server notices room</li> <li><code>room_name</code>: set the room name of the server notices room</li>
<li><code>room_avatar_url</code>: optional string. The room avatar to use for server notice rooms. If set to the empty string <code>&quot;&quot;</code>, notice rooms will not be given an avatar. Defaults to the empty string. <em>Added in Synapse 1.99.0.</em></li>
<li><code>room_topic</code>: optional string. The topic to use for server notice rooms. If set to the empty string <code>&quot;&quot;</code>, notice rooms will not be given a topic. Defaults to the empty string. <em>Added in Synapse 1.99.0.</em></li>
<li><code>auto_join</code>: boolean. If true, the user will be automatically joined to the room instead of being invited. <li><code>auto_join</code>: boolean. If true, the user will be automatically joined to the room instead of being invited.
Defaults to false. <em>Added in Synapse 1.98.0.</em></li> Defaults to false. <em>Added in Synapse 1.98.0.</em></li>
</ul> </ul>
<p>Note that the name, topic and avatar of existing server notice rooms will only be updated when a new notice event is sent.</p>
<p>Example configuration:</p> <p>Example configuration:</p>
<pre><code class="language-yaml">server_notices: <pre><code class="language-yaml">server_notices:
system_mxid_localpart: notices system_mxid_localpart: notices
system_mxid_display_name: &quot;Server Notices&quot; system_mxid_display_name: &quot;Server Notices&quot;
system_mxid_avatar_url: &quot;mxc://server.com/oumMVlgDnLYFaPVkExemNVVZ&quot; system_mxid_avatar_url: &quot;mxc://example.com/oumMVlgDnLYFaPVkExemNVVZ&quot;
room_name: &quot;Server Notices&quot; room_name: &quot;Server Notices&quot;
room_avatar_url: &quot;mxc://example.com/oumMVlgDnLYFaPVkExemNVVZ&quot;
room_topic: &quot;Room used by your server admin to notice you of important information&quot;
auto_join: true auto_join: true
</code></pre> </code></pre>
<hr /> <hr />
@ -7618,12 +7625,12 @@ a fresh config using Synapse by following the instructions in
<pre><code class="language-yaml"># This file is maintained as an up-to-date snapshot of the default <pre><code class="language-yaml"># This file is maintained as an up-to-date snapshot of the default
# homeserver.yaml configuration generated by Synapse. You can find a # homeserver.yaml configuration generated by Synapse. You can find a
# complete accounting of possible configuration options at # complete accounting of possible configuration options at
# https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html # https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html
# #
# It is *not* intended to be copied and used as the basis for a real # It is *not* intended to be copied and used as the basis for a real
# homeserver.yaml. Instead, if you are starting from scratch, please generate # homeserver.yaml. Instead, if you are starting from scratch, please generate
# a fresh config using Synapse by following the instructions in # a fresh config using Synapse by following the instructions in
# https://matrix-org.github.io/synapse/latest/setup/installation.html. # https://element-hq.github.io/synapse/latest/setup/installation.html.
# #
################################################################################ ################################################################################
@ -7637,7 +7644,7 @@ a fresh config using Synapse by following the instructions in
# #
# For more information on how to configure Synapse, including a complete accounting of # For more information on how to configure Synapse, including a complete accounting of
# each option, go to docs/usage/configuration/config_documentation.md or # each option, go to docs/usage/configuration/config_documentation.md or
# https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html # https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html
server_name: &quot;SERVERNAME&quot; server_name: &quot;SERVERNAME&quot;
pid_file: DATADIR/homeserver.pid pid_file: DATADIR/homeserver.pid
listeners: listeners:
@ -7677,7 +7684,7 @@ It should be named <code>&lt;SERVERNAME&gt;.log.config</code> by default.</p>
# be ingested by ELK stacks. See [2] for details. # be ingested by ELK stacks. See [2] for details.
# #
# [1]: https://docs.python.org/3/library/logging.config.html#configuration-dictionary-schema # [1]: https://docs.python.org/3/library/logging.config.html#configuration-dictionary-schema
# [2]: https://matrix-org.github.io/synapse/latest/structured_logging.html # [2]: https://element-hq.github.io/synapse/latest/structured_logging.html
version: 1 version: 1
@ -7816,7 +7823,7 @@ remote endpoint at 10.1.2.3:9999.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="templates"><a class="header" href="#templates">Templates</a></h1> <div style="break-before: page; page-break-before: always;"></div><h1 id="templates"><a class="header" href="#templates">Templates</a></h1>
<p>Synapse uses parametrised templates to generate the content of emails it sends and <p>Synapse uses parametrised templates to generate the content of emails it sends and
webpages it shows to users.</p> webpages it shows to users.</p>
<p>By default, Synapse will use the templates listed <a href="https://github.com/matrix-org/synapse/tree/master/synapse/res/templates">here</a>. <p>By default, Synapse will use the templates listed <a href="https://github.com/element-hq/synapse/tree/master/synapse/res/templates">here</a>.
Server admins can configure an additional directory for Synapse to look for templates Server admins can configure an additional directory for Synapse to look for templates
in, allowing them to specify custom templates:</p> in, allowing them to specify custom templates:</p>
<pre><code class="language-yaml">templates: <pre><code class="language-yaml">templates:
@ -7939,7 +7946,7 @@ and failure that a user will see when they confirm the password reset flow using
page above. page above.
When rendering, <code>password_reset_success.html</code> is given no variable, and When rendering, <code>password_reset_success.html</code> is given no variable, and
<code>password_reset_failure.html</code> is given a <code>failure_reason</code>, which contains the reason <code>password_reset_failure.html</code> is given a <code>failure_reason</code>, which contains the reason
for the password reset failure. </li> for the password reset failure.</li>
<li><code>registration_success.html</code> and <code>registration_failure.html</code>: HTML pages for success and <li><code>registration_success.html</code> and <code>registration_failure.html</code>: HTML pages for success and
failure that a user will see when they follow the link in an address verification email failure that a user will see when they follow the link in an address verification email
sent during registration. sent during registration.
@ -8895,7 +8902,7 @@ usually returned as part of the <a href="https://spec.matrix.org/latest/client-s
<h3 id="default-openid-mapping-provider"><a class="header" href="#default-openid-mapping-provider">Default OpenID Mapping Provider</a></h3> <h3 id="default-openid-mapping-provider"><a class="header" href="#default-openid-mapping-provider">Default OpenID Mapping Provider</a></h3>
<p>Synapse has a built-in OpenID mapping provider if a custom provider isn't <p>Synapse has a built-in OpenID mapping provider if a custom provider isn't
specified in the config. It is located at specified in the config. It is located at
<a href="https://github.com/matrix-org/synapse/blob/develop/synapse/handlers/oidc.py"><code>synapse.handlers.oidc.JinjaOidcMappingProvider</code></a>.</p> <a href="https://github.com/element-hq/synapse/blob/develop/synapse/handlers/oidc.py"><code>synapse.handlers.oidc.JinjaOidcMappingProvider</code></a>.</p>
<h2 id="saml-mapping-providers"><a class="header" href="#saml-mapping-providers">SAML Mapping Providers</a></h2> <h2 id="saml-mapping-providers"><a class="header" href="#saml-mapping-providers">SAML Mapping Providers</a></h2>
<p>The SAML mapping provider can be customized by editing the <p>The SAML mapping provider can be customized by editing the
<a href="usage/configuration/config_documentation.html#saml2_config"><code>saml2_config.user_mapping_provider.module</code></a> <a href="usage/configuration/config_documentation.html#saml2_config"><code>saml2_config.user_mapping_provider.module</code></a>
@ -9010,7 +9017,7 @@ complete registration using methods from the <code>ModuleApi</code>.</p>
<h3 id="default-saml-mapping-provider"><a class="header" href="#default-saml-mapping-provider">Default SAML Mapping Provider</a></h3> <h3 id="default-saml-mapping-provider"><a class="header" href="#default-saml-mapping-provider">Default SAML Mapping Provider</a></h3>
<p>Synapse has a built-in SAML mapping provider if a custom provider isn't <p>Synapse has a built-in SAML mapping provider if a custom provider isn't
specified in the config. It is located at specified in the config. It is located at
<a href="https://github.com/matrix-org/synapse/blob/develop/synapse/handlers/saml.py"><code>synapse.handlers.saml.DefaultSamlMappingProvider</code></a>.</p> <a href="https://github.com/element-hq/synapse/blob/develop/synapse/handlers/saml.py"><code>synapse.handlers.saml.DefaultSamlMappingProvider</code></a>.</p>
<div style="break-before: page; page-break-before: always;"></div><h2 style="color:red"> <div style="break-before: page; page-break-before: always;"></div><h2 style="color:red">
This page of the Synapse documentation is now deprecated. For up to date This page of the Synapse documentation is now deprecated. For up to date
documentation on setting up or writing a password auth provider module, please see documentation on setting up or writing a password auth provider module, please see
@ -9438,13 +9445,15 @@ section, which should look like this:</p>
<pre><code class="language-yaml">server_notices: <pre><code class="language-yaml">server_notices:
system_mxid_localpart: server system_mxid_localpart: server
system_mxid_display_name: &quot;Server Notices&quot; system_mxid_display_name: &quot;Server Notices&quot;
system_mxid_avatar_url: &quot;mxc://server.com/oumMVlgDnLYFaPVkExemNVVZ&quot; system_mxid_avatar_url: &quot;mxc://example.com/oumMVlgDnLYFaPVkExemNVVZ&quot;
room_name: &quot;Server Notices&quot; room_name: &quot;Server Notices&quot;
room_avatar_url: &quot;mxc://example.com/oumMVlgDnLYFaPVkExemNVVZ&quot;
room_topic: &quot;Room used by your server admin to notice you of important information&quot;
auto_join: true auto_join: true
</code></pre> </code></pre>
<p>The only compulsory setting is <code>system_mxid_localpart</code>, which defines the user <p>The only compulsory setting is <code>system_mxid_localpart</code>, which defines the user
id of the Server Notices user, as above. <code>room_name</code> defines the name of the id of the Server Notices user, as above. <code>room_name</code> defines the name of the
room which will be created.</p> room which will be created, <code>room_avatar_url</code> its avatar and <code>room_topic</code> its topic.</p>
<p><code>system_mxid_display_name</code> and <code>system_mxid_avatar_url</code> can be used to set the <p><code>system_mxid_display_name</code> and <code>system_mxid_avatar_url</code> can be used to set the
displayname and avatar of the Server Notices user.</p> displayname and avatar of the Server Notices user.</p>
<p><code>auto_join</code> will autojoin users to the notices room instead of sending an invite.</p> <p><code>auto_join</code> will autojoin users to the notices room instead of sending an invite.</p>
@ -9468,7 +9477,7 @@ database and shows a success page.</p>
<p>To enable this, first create templates for the policy and success pages. <p>To enable this, first create templates for the policy and success pages.
These should be stored on the local filesystem.</p> These should be stored on the local filesystem.</p>
<p>These templates use the <a href="http://jinja.pocoo.org">Jinja2</a> templating language, <p>These templates use the <a href="http://jinja.pocoo.org">Jinja2</a> templating language,
and <a href="https://github.com/matrix-org/synapse/tree/develop/docs/privacy_policy_templates/">docs/privacy_policy_templates</a> and <a href="https://github.com/element-hq/synapse/tree/develop/docs/privacy_policy_templates/">docs/privacy_policy_templates</a>
gives examples of the sort of thing that can be done.</p> gives examples of the sort of thing that can be done.</p>
<p>Note that the templates must be stored under a name giving the language of the <p>Note that the templates must be stored under a name giving the language of the
template - currently this must always be <code>en</code> (for &quot;English&quot;); template - currently this must always be <code>en</code> (for &quot;English&quot;);
@ -9949,7 +9958,7 @@ the <code>synapse.module_api.ModuleApi</code> class. The configuration is a dict
either the output of the module's <code>parse_config</code> static method (see below), or the either the output of the module's <code>parse_config</code> static method (see below), or the
configuration associated with the module in Synapse's configuration file.</p> configuration associated with the module in Synapse's configuration file.</p>
<p>See the documentation for the <code>ModuleApi</code> class <p>See the documentation for the <code>ModuleApi</code> class
<a href="https://github.com/matrix-org/synapse/blob/master/synapse/module_api/__init__.py">here</a>.</p> <a href="https://github.com/element-hq/synapse/blob/master/synapse/module_api/__init__.py">here</a>.</p>
<h2 id="when-synapse-runs-with-several-modules-configured"><a class="header" href="#when-synapse-runs-with-several-modules-configured">When Synapse runs with several modules configured</a></h2> <h2 id="when-synapse-runs-with-several-modules-configured"><a class="header" href="#when-synapse-runs-with-several-modules-configured">When Synapse runs with several modules configured</a></h2>
<p>If Synapse is running with other modules configured, the order each module appears in <p>If Synapse is running with other modules configured, the order each module appears in
within the <code>modules</code> section of the Synapse configuration file might restrict what it can within the <code>modules</code> section of the Synapse configuration file might restrict what it can
@ -10000,7 +10009,7 @@ methods. The callback functions are passed to these methods as keyword arguments
the callback name as the argument name and the function as its value. A the callback name as the argument name and the function as its value. A
<code>register_[...]_callbacks</code> method exists for each category.</p> <code>register_[...]_callbacks</code> method exists for each category.</p>
<p>Callbacks for each category can be found on their respective page of the <p>Callbacks for each category can be found on their respective page of the
<a href="https://matrix-org.github.io/synapse">Synapse documentation website</a>.</p> <a href="https://element-hq.github.io/synapse">Synapse documentation website</a>.</p>
<h2 id="caching-1"><a class="header" href="#caching-1">Caching</a></h2> <h2 id="caching-1"><a class="header" href="#caching-1">Caching</a></h2>
<p><em>Added in Synapse 1.74.0.</em></p> <p><em>Added in Synapse 1.74.0.</em></p>
<p>Modules can leverage Synapse's caching tools to manage their own cached functions. This <p>Modules can leverage Synapse's caching tools to manage their own cached functions. This
@ -10591,7 +10600,7 @@ wishing this callback to be called on every profile change are encouraged to dis
per-room profiles globally using the <code>allow_per_room_profiles</code> configuration setting in per-room profiles globally using the <code>allow_per_room_profiles</code> configuration setting in
Synapse's configuration file. Synapse's configuration file.
This callback is not called when registering a user, even when setting it through the This callback is not called when registering a user, even when setting it through the
<a href="https://matrix-org.github.io/synapse/latest/modules/password_auth_provider_callbacks.html#get_displayname_for_registration"><code>get_displayname_for_registration</code></a> <a href="https://element-hq.github.io/synapse/latest/modules/password_auth_provider_callbacks.html#get_displayname_for_registration"><code>get_displayname_for_registration</code></a>
module callback.</p> module callback.</p>
<p>If multiple modules implement this callback, Synapse runs them all in order.</p> <p>If multiple modules implement this callback, Synapse runs them all in order.</p>
<h3 id="on_user_deactivation_status_changed"><a class="header" href="#on_user_deactivation_status_changed"><code>on_user_deactivation_status_changed</code></a></h3> <h3 id="on_user_deactivation_status_changed"><a class="header" href="#on_user_deactivation_status_changed"><code>on_user_deactivation_status_changed</code></a></h3>
@ -11260,8 +11269,8 @@ virtualenv, these can be installed with:</p>
<pre><code class="language-sh">pip install &quot;matrix-synapse[redis]&quot; <pre><code class="language-sh">pip install &quot;matrix-synapse[redis]&quot;
</code></pre> </code></pre>
<p>Note that these dependencies are included when synapse is installed with <code>pip install matrix-synapse[all]</code>. They are also included in the debian packages from <p>Note that these dependencies are included when synapse is installed with <code>pip install matrix-synapse[all]</code>. They are also included in the debian packages from
<code>matrix.org</code> and in the docker images at <code>packages.matrix.org</code> and in the docker images at
https://hub.docker.com/r/matrixdotorg/synapse/.</p> https://hub.docker.com/r/ectorim/synapse/.</p>
<p>To make effective use of the workers, you will need to configure an HTTP <p>To make effective use of the workers, you will need to configure an HTTP
reverse-proxy such as nginx or haproxy, which will direct incoming requests to reverse-proxy such as nginx or haproxy, which will direct incoming requests to
the correct worker, or to the main synapse instance. See the correct worker, or to the main synapse instance. See
@ -11602,7 +11611,7 @@ of the main process to a particular worker.</p>
<li>An <a href="usage/configuration/config_documentation.html#listeners">HTTP <code>replication</code> listener</a> configured,</li> <li>An <a href="usage/configuration/config_documentation.html#listeners">HTTP <code>replication</code> listener</a> configured,</li>
<li>Have a <a href="usage/configuration/config_documentation.html#worker_name"><code>worker_name</code></a> <li>Have a <a href="usage/configuration/config_documentation.html#worker_name"><code>worker_name</code></a>
and be listed in the <a href="usage/configuration/config_documentation.html#instance_map"><code>instance_map</code></a> and be listed in the <a href="usage/configuration/config_documentation.html#instance_map"><code>instance_map</code></a>
config. </li> config.</li>
<li>Have the main process declared on the <a href="usage/configuration/config_documentation.html#instance_map"><code>instance_map</code></a> as well.</li> <li>Have the main process declared on the <a href="usage/configuration/config_documentation.html#instance_map"><code>instance_map</code></a> as well.</li>
</ul> </ul>
<p>Note: The same worker can handle multiple streams, but unless otherwise documented, <p>Note: The same worker can handle multiple streams, but unless otherwise documented,
@ -11767,7 +11776,7 @@ worker application type.</p>
<h4 id="push-notifications"><a class="header" href="#push-notifications">Push Notifications</a></h4> <h4 id="push-notifications"><a class="header" href="#push-notifications">Push Notifications</a></h4>
<p>You can designate generic worker to sending push notifications to <p>You can designate generic worker to sending push notifications to
a <a href="https://spec.matrix.org/v1.5/push-gateway-api/">push gateway</a> such as a <a href="https://spec.matrix.org/v1.5/push-gateway-api/">push gateway</a> such as
<a href="https://github.com/matrix-org/sygnal">sygnal</a> and email.</p> <a href="https://github.com/vector-im/sygnal">sygnal</a> and email.</p>
<p>This will stop the main process sending push notifications.</p> <p>This will stop the main process sending push notifications.</p>
<p>The workers responsible for sending push notifications can be defined using the <p>The workers responsible for sending push notifications can be defined using the
<a href="usage/configuration/config_documentation.html#pusher_instances"><code>pusher_instances</code></a> <a href="usage/configuration/config_documentation.html#pusher_instances"><code>pusher_instances</code></a>
@ -11974,9 +11983,9 @@ managing workers. It provides a <code>matrix-synapse</code> service for the mast
well as a <code>matrix-synapse-worker@</code> service template for any workers you well as a <code>matrix-synapse-worker@</code> service template for any workers you
require. Additionally, to group the required services, it sets up a require. Additionally, to group the required services, it sets up a
<code>matrix-synapse.target</code>.</p> <code>matrix-synapse.target</code>.</p>
<p>See the folder <a href="https://github.com/matrix-org/synapse/tree/develop/docs/systemd-with-workers/system/">system</a> <p>See the folder <a href="https://github.com/element-hq/synapse/tree/develop/docs/systemd-with-workers/system/">system</a>
for the systemd unit files.</p> for the systemd unit files.</p>
<p>The folder <a href="https://github.com/matrix-org/synapse/tree/develop/docs/systemd-with-workers/workers/">workers</a> <p>The folder <a href="https://github.com/element-hq/synapse/tree/develop/docs/systemd-with-workers/workers/">workers</a>
contains an example configuration for the <code>generic_worker</code> worker.</p> contains an example configuration for the <code>generic_worker</code> worker.</p>
<h2 id="synapse-configuration-files"><a class="header" href="#synapse-configuration-files">Synapse configuration files</a></h2> <h2 id="synapse-configuration-files"><a class="header" href="#synapse-configuration-files">Synapse configuration files</a></h2>
<p>See <a href="systemd-with-workers/../workers.html">the worker documentation</a> for information on how to set up the <p>See <a href="systemd-with-workers/../workers.html">the worker documentation</a> for information on how to set up the
@ -12003,7 +12012,7 @@ the provided <code>*.service</code> files accordingly.</p>
<h2 id="set-up"><a class="header" href="#set-up">Set up</a></h2> <h2 id="set-up"><a class="header" href="#set-up">Set up</a></h2>
<ol> <ol>
<li>Adjust synapse configuration files as above.</li> <li>Adjust synapse configuration files as above.</li>
<li>Copy the <code>*.service</code> and <code>*.target</code> files in <a href="https://github.com/matrix-org/synapse/tree/develop/docs/systemd-with-workers/system/">system</a> <li>Copy the <code>*.service</code> and <code>*.target</code> files in <a href="https://github.com/element-hq/synapse/tree/develop/docs/systemd-with-workers/system/">system</a>
to <code>/etc/systemd/system</code>.</li> to <code>/etc/systemd/system</code>.</li>
<li>Run <code>systemctl daemon-reload</code> to tell systemd to load the new unit files.</li> <li>Run <code>systemctl daemon-reload</code> to tell systemd to load the new unit files.</li>
<li>Run <code>systemctl enable matrix-synapse.service</code>. This will configure the <li>Run <code>systemctl enable matrix-synapse.service</code>. This will configure the
@ -12038,7 +12047,7 @@ systemctl restart matrix-synapse.target
<h2 id="hardening"><a class="header" href="#hardening">Hardening</a></h2> <h2 id="hardening"><a class="header" href="#hardening">Hardening</a></h2>
<p><strong>Optional:</strong> If further hardening is desired, the file <p><strong>Optional:</strong> If further hardening is desired, the file
<code>override-hardened.conf</code> may be copied from <code>override-hardened.conf</code> may be copied from
<a href="https://github.com/matrix-org/synapse/tree/develop/contrib/systemd/">contrib/systemd/override-hardened.conf</a> <a href="https://github.com/element-hq/synapse/tree/develop/contrib/systemd/">contrib/systemd/override-hardened.conf</a>
in this repository to the location in this repository to the location
<code>/etc/systemd/system/matrix-synapse.service.d/override-hardened.conf</code> (the <code>/etc/systemd/system/matrix-synapse.service.d/override-hardened.conf</code> (the
directory may have to be created). It enables certain sandboxing features in directory may have to be created). It enables certain sandboxing features in
@ -14255,11 +14264,12 @@ granting them access to the Admin API, among other things.</p>
</li> </li>
<li> <li>
<p><code>deactivated</code> - <strong>bool</strong>, optional. If unspecified, deactivation state will be left unchanged.</p> <p><code>deactivated</code> - <strong>bool</strong>, optional. If unspecified, deactivation state will be left unchanged.</p>
<p>Note: the <code>password</code> field must also be set if both of the following are true:</p> <p>Note:</p>
<ul> <ul>
<li><code>deactivated</code> is set to <code>false</code> and the user was previously deactivated (you are reactivating this user)</li> <li>For the password field there is no strict check of the necessity for its presence.
<li>Users are allowed to set their password on this homeserver (both <code>password_config.enabled</code> and It is possible to have active users without a password, e.g. when authenticating with OIDC is configured.
<code>password_config.localdb_enabled</code> config options are set to <code>true</code>). You must check yourself whether a password is required when reactivating a user or not.</li>
<li>It is not possible to set a password if the config option <code>password_config.localdb_enabled</code> is set <code>false</code>.
Users' passwords are wiped upon account deactivation, hence the need to set a new one here.</li> Users' passwords are wiped upon account deactivation, hence the need to set a new one here.</li>
</ul> </ul>
<p>Note: a user cannot be erased with this API. For more details on <p>Note: a user cannot be erased with this API. For more details on
@ -14395,7 +14405,7 @@ User objects contain the following fields:</p>
<li><code>is_guest</code> - bool - Status if that user is a guest account.</li> <li><code>is_guest</code> - bool - Status if that user is a guest account.</li>
<li><code>admin</code> - bool - Status if that user is a server administrator.</li> <li><code>admin</code> - bool - Status if that user is a server administrator.</li>
<li><code>user_type</code> - string - Type of the user. Normal users are type <code>None</code>. <li><code>user_type</code> - string - Type of the user. Normal users are type <code>None</code>.
This allows user type specific behaviour. There are also types <code>support</code> and <code>bot</code>. </li> This allows user type specific behaviour. There are also types <code>support</code> and <code>bot</code>.</li>
<li><code>deactivated</code> - bool - Status if that user has been marked as deactivated.</li> <li><code>deactivated</code> - bool - Status if that user has been marked as deactivated.</li>
<li><code>erased</code> - bool - Status if that user has been marked as erased.</li> <li><code>erased</code> - bool - Status if that user has been marked as erased.</li>
<li><code>shadow_banned</code> - bool - Status if that user has been marked as shadow banned.</li> <li><code>shadow_banned</code> - bool - Status if that user has been marked as shadow banned.</li>
@ -15477,7 +15487,7 @@ ensures that access to the <code>manhole</code> is only possible for local users
--mount type=volume,src=synapse-data,dst=/data \ --mount type=volume,src=synapse-data,dst=/data \
-p 8008:8008 \ -p 8008:8008 \
-p 127.0.0.1:9000:9000 \ -p 127.0.0.1:9000:9000 \
matrixdotorg/synapse:latest vectorim/synapse:latest
</code></pre> </code></pre>
<h4 id="native-config"><a class="header" href="#native-config">Native config</a></h4> <h4 id="native-config"><a class="header" href="#native-config">Native config</a></h4>
<p>If you are not using docker, set <code>bind_addresses</code> to <code>['::1', '127.0.0.1']</code> as shown. <p>If you are not using docker, set <code>bind_addresses</code> to <code>['::1', '127.0.0.1']</code> as shown.
@ -15599,8 +15609,8 @@ the listener port configured with the <code>metrics</code> resource.</p>
<p>Restart Prometheus.</p> <p>Restart Prometheus.</p>
</li> </li>
<li> <li>
<p>Consider using the <a href="https://github.com/matrix-org/synapse/tree/master/contrib/grafana/">grafana dashboard</a> <p>Consider using the <a href="https://github.com/element-hq/synapse/tree/master/contrib/grafana/">grafana dashboard</a>
and required <a href="https://github.com/matrix-org/synapse/tree/master/contrib/prometheus/">recording rules</a> </p> and required <a href="https://github.com/element-hq/synapse/tree/master/contrib/prometheus/">recording rules</a></p>
</li> </li>
</ol> </ol>
<h2 id="monitoring-workers"><a class="header" href="#monitoring-workers">Monitoring workers</a></h2> <h2 id="monitoring-workers"><a class="header" href="#monitoring-workers">Monitoring workers</a></h2>
@ -15860,6 +15870,7 @@ consider using one of the following known implementations:</p>
<ul> <ul>
<li><a href="https://github.com/matrix-org/panopticon">Matrix.org's Panopticon</a></li> <li><a href="https://github.com/matrix-org/panopticon">Matrix.org's Panopticon</a></li>
<li><a href="https://gitlab.com/famedly/infra/services/barad-dur">Famedly's Barad-dûr</a></li> <li><a href="https://gitlab.com/famedly/infra/services/barad-dur">Famedly's Barad-dûr</a></li>
<li><a href="https://github.com/loelkes/synapse-usage-exporter">Synapse Usage Exporter</a> for Prometheus</li>
</ul> </ul>
<div style="break-before: page; page-break-before: always;"></div><h1 id="monthly-active-users"><a class="header" href="#monthly-active-users">Monthly Active Users</a></h1> <div style="break-before: page; page-break-before: always;"></div><h1 id="monthly-active-users"><a class="header" href="#monthly-active-users">Monthly Active Users</a></h1>
<p>Synapse can be configured to record the number of monthly active users (also referred to as MAU) on a given homeserver. <p>Synapse can be configured to record the number of monthly active users (also referred to as MAU) on a given homeserver.
@ -15929,11 +15940,11 @@ registered accounts on the homeserver.</p>
<p>It is possible to monitor much of the internal state of Synapse using <a href="https://prometheus.io">Prometheus</a> <p>It is possible to monitor much of the internal state of Synapse using <a href="https://prometheus.io">Prometheus</a>
metrics and <a href="https://grafana.com/">Grafana</a>. metrics and <a href="https://grafana.com/">Grafana</a>.
A guide for configuring Synapse to provide metrics is available <a href="usage/administration/../../metrics-howto.html">here</a> A guide for configuring Synapse to provide metrics is available <a href="usage/administration/../../metrics-howto.html">here</a>
and information on setting up Grafana is <a href="https://github.com/matrix-org/synapse/tree/master/contrib/grafana">here</a>. and information on setting up Grafana is <a href="https://github.com/element-hq/synapse/tree/master/contrib/grafana">here</a>.
In this setup, Prometheus will periodically scrape the information Synapse provides and In this setup, Prometheus will periodically scrape the information Synapse provides and
store a record of it over time. Grafana is then used as an interface to query and store a record of it over time. Grafana is then used as an interface to query and
present this information through a series of pretty graphs.</p> present this information through a series of pretty graphs.</p>
<p>Once you have grafana set up, and assuming you're using <a href="https://github.com/matrix-org/synapse/blob/master/contrib/grafana/synapse.json">our grafana dashboard template</a>, look for the following graphs when debugging a slow/overloaded Synapse:</p> <p>Once you have grafana set up, and assuming you're using <a href="https://github.com/element-hq/synapse/blob/master/contrib/grafana/synapse.json">our grafana dashboard template</a>, look for the following graphs when debugging a slow/overloaded Synapse:</p>
<h2 id="message-event-send-time"><a class="header" href="#message-event-send-time">Message Event Send Time</a></h2> <h2 id="message-event-send-time"><a class="header" href="#message-event-send-time">Message Event Send Time</a></h2>
<p><img src="https://user-images.githubusercontent.com/1342360/82239409-a1c8e900-9930-11ea-8081-e4614e0c63f4.png" alt="image" /></p> <p><img src="https://user-images.githubusercontent.com/1342360/82239409-a1c8e900-9930-11ea-8081-e4614e0c63f4.png" alt="image" /></p>
<p>This, along with the CPU and Memory graphs, is a good way to check the general health of your Synapse instance. It represents how long it takes for a user on your homeserver to send a message.</p> <p>This, along with the CPU and Memory graphs, is a good way to check the general health of your Synapse instance. It represents how long it takes for a user on your homeserver to send a message.</p>
@ -15960,7 +15971,7 @@ present this information through a series of pretty graphs.</p>
<p>This is quite a useful graph. It shows how many times Synapse attempts to retrieve a piece of data from a cache which the cache did not contain, thus resulting in a call to the database. We can see here that the <code>_get_joined_profile_from_event_id</code> cache is being requested a lot, and often the data we're after is not cached.</p> <p>This is quite a useful graph. It shows how many times Synapse attempts to retrieve a piece of data from a cache which the cache did not contain, thus resulting in a call to the database. We can see here that the <code>_get_joined_profile_from_event_id</code> cache is being requested a lot, and often the data we're after is not cached.</p>
<p>Cross-referencing this with the Eviction Rate graph, which shows that entries are being evicted from <code>_get_joined_profile_from_event_id</code> quite often:</p> <p>Cross-referencing this with the Eviction Rate graph, which shows that entries are being evicted from <code>_get_joined_profile_from_event_id</code> quite often:</p>
<p><img src="https://user-images.githubusercontent.com/1342360/82240766-de95df80-9932-11ea-8c15-5acfc57c48da.png" alt="image" /></p> <p><img src="https://user-images.githubusercontent.com/1342360/82240766-de95df80-9932-11ea-8c15-5acfc57c48da.png" alt="image" /></p>
<p>we should probably consider raising the size of that cache by raising its cache factor (a multiplier value for the size of an individual cache). Information on doing so is available <a href="https://github.com/matrix-org/synapse/blob/ee421e524478c1ad8d43741c27379499c2f6135c/docs/sample_config.yaml#L608-L642">here</a> (note that the configuration of individual cache factors through the configuration file is available in Synapse v1.14.0+, whereas doing so through environment variables has been supported for a very long time). Note that this will increase Synapse's overall memory usage.</p> <p>we should probably consider raising the size of that cache by raising its cache factor (a multiplier value for the size of an individual cache). Information on doing so is available <a href="https://github.com/element-hq/synapse/blob/ee421e524478c1ad8d43741c27379499c2f6135c/docs/sample_config.yaml#L608-L642">here</a> (note that the configuration of individual cache factors through the configuration file is available in Synapse v1.14.0+, whereas doing so through environment variables has been supported for a very long time). Note that this will increase Synapse's overall memory usage.</p>
<h2 id="forward-extremities"><a class="header" href="#forward-extremities">Forward Extremities</a></h2> <h2 id="forward-extremities"><a class="header" href="#forward-extremities">Forward Extremities</a></h2>
<p><img src="https://user-images.githubusercontent.com/1342360/82241440-13566680-9934-11ea-8b88-ba468db937ed.png" alt="image" /></p> <p><img src="https://user-images.githubusercontent.com/1342360/82241440-13566680-9934-11ea-8b88-ba468db937ed.png" alt="image" /></p>
<p>Forward extremities are the leaf events at the end of a DAG in a room, aka events that have no children. The more that exist in a room, the more <a href="https://spec.matrix.org/v1.1/server-server-api/#room-state-resolution">state resolution</a> that Synapse needs to perform (hint: it's an expensive operation). While Synapse has code to prevent too many of these existing at one time in a room, bugs can sometimes make them crop up again.</p> <p>Forward extremities are the leaf events at the end of a DAG in a room, aka events that have no children. The more that exist in a room, the more <a href="https://spec.matrix.org/v1.1/server-server-api/#room-state-resolution">state resolution</a> that Synapse needs to perform (hint: it's an expensive operation). While Synapse has code to prevent too many of these existing at one time in a room, bugs can sometimes make them crop up again.</p>
@ -16171,7 +16182,7 @@ WHERE room_stats_state.room_id = event_json.room_id&quot; | psql -d synapse -h l
<h2 id="compression-tool"><a class="header" href="#compression-tool">Compression tool</a></h2> <h2 id="compression-tool"><a class="header" href="#compression-tool">Compression tool</a></h2>
<p>There is a tool at https://github.com/matrix-org/rust-synapse-compress-state which can compress the <code>state_groups_state</code> on a room by-room basis (essentially, it reduces the number of &quot;full&quot; state groups). This can result in dramatic reductions of the storage used.</p> <p>There is a tool at https://github.com/matrix-org/rust-synapse-compress-state which can compress the <code>state_groups_state</code> on a room by-room basis (essentially, it reduces the number of &quot;full&quot; state groups). This can result in dramatic reductions of the storage used.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="request-log-format"><a class="header" href="#request-log-format">Request log format</a></h1> <div style="break-before: page; page-break-before: always;"></div><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/matrix-org/synapse/tree/develop/synapse/http/site.py"><code>synapse/http/site.py</code></a> for details).</p> <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> <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 &quot;PUT /_matrix/federation/v1/send/1600000000000 HTTP/1.1&quot; &quot;Synapse/1.20.1&quot; [0 dbevts] <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 &quot;PUT /_matrix/federation/v1/send/1600000000000 HTTP/1.1&quot; &quot;Synapse/1.20.1&quot; [0 dbevts]
-AAAAAAAAAAAAAAAAAAAAA- -BBBBBBBBBBBBBBBBBBBBBB- -C- -DD- -EEEEEE- -FFFFFFFFF- -GG- -HHHHHHHHHHHHHHHHHHHHHHH- -IIIIII- -JJJJJJJ- -KKKKKK-, -LLLLLL- -MMMMMMM- -NNNNNN- O -P- -QQ- -RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR- -SSSSSSSSSSSS- -TTTTTT- -AAAAAAAAAAAAAAAAAAAAA- -BBBBBBBBBBBBBBBBBBBBBB- -C- -DD- -EEEEEE- -FFFFFFFFF- -GG- -HHHHHHHHHHHHHHHHHHHHHHH- -IIIIII- -JJJJJJJ- -KKKKKK-, -LLLLLL- -MMMMMMM- -NNNNNN- O -P- -QQ- -RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR- -SSSSSSSSSSSS- -TTTTTT-
@ -16417,14 +16428,15 @@ you see this failure mode so we can help debug it, however.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="contributing"><a class="header" href="#contributing">Contributing</a></h1> <div style="break-before: page; page-break-before: always;"></div><h1 id="contributing"><a class="header" href="#contributing">Contributing</a></h1>
<p>This document aims to get you started with contributing to Synapse!</p> <p>This document aims to get you started with contributing to Synapse!</p>
<h1 id="1-who-can-contribute-to-synapse"><a class="header" href="#1-who-can-contribute-to-synapse">1. Who can contribute to Synapse?</a></h1> <h1 id="1-who-can-contribute-to-synapse"><a class="header" href="#1-who-can-contribute-to-synapse">1. Who can contribute to Synapse?</a></h1>
<p>Everyone is welcome to contribute code to <a href="https://github.com/matrix-org">matrix.org <p>Everyone is welcome to contribute code to
projects</a>, provided that they are willing to <a href="https://github.com/element-hq/synapse">Synapse</a>, provided that they are willing
license their contributions under the same license as the project itself. We to license their contributions to Element under a <a href="https://cla-assistant.io/element-hq/synapse">Contributor License
follow a simple 'inbound=outbound' model for contributions: the act of Agreement</a> (CLA). This ensures that
submitting an 'inbound' contribution means that the contributor agrees to their contribution will be made available under an OSI-approved open-source
license the code under the same terms as the project's overall 'outbound' license, currently Affero General Public License v3 (AGPLv3).</p>
license - in our case, this is almost always Apache Software License v2 (see <p>Please see the
<a href="https://github.com/matrix-org/synapse/blob/develop/LICENSE">LICENSE</a>).</p> <a href="https://element.io/blog/synapse-now-lives-at-github-com-element-hq-synapse/">Element blog post</a>
for the full rationale.</p>
<h1 id="2-what-do-i-need"><a class="header" href="#2-what-do-i-need">2. What do I need?</a></h1> <h1 id="2-what-do-i-need"><a class="header" href="#2-what-do-i-need">2. What do I need?</a></h1>
<p>If you are running Windows, the Windows Subsystem for Linux (WSL) is strongly <p>If you are running Windows, the Windows Subsystem for Linux (WSL) is strongly
recommended for development. More information about WSL can be found at recommended for development. More information about WSL can be found at
@ -16477,8 +16489,8 @@ cp docs/sample_log_config.yaml log_config.yaml
<ul> <ul>
<li>Set a <code>server_name</code></li> <li>Set a <code>server_name</code></li>
<li>Adjusting paths to be correct for your system like the <code>log_config</code> to point to the log config you just copied</li> <li>Adjusting paths to be correct for your system like the <code>log_config</code> to point to the log config you just copied</li>
<li>Using a <a href="https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#database">PostgreSQL database instead of SQLite</a></li> <li>Using a <a href="https://vector-im.github.io/synapse/latest/usage/configuration/config_documentation.html#database">PostgreSQL database instead of SQLite</a></li>
<li>Adding a <a href="https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#registration_shared_secret"><code>registration_shared_secret</code></a> so you can use <a href="https://matrix-org.github.io/synapse/latest/setup/installation.html#registering-a-user"><code>register_new_matrix_user</code> command</a>.</li> <li>Adding a <a href="https://vector-im.github.io/synapse/latest/usage/configuration/config_documentation.html#registration_shared_secret"><code>registration_shared_secret</code></a> so you can use <a href="https://vector-im.github.io/synapse/latest/setup/installation.html#registering-a-user"><code>register_new_matrix_user</code> command</a>.</li>
</ul> </ul>
<p>And then run Synapse with the following command:</p> <p>And then run Synapse with the following command:</p>
<pre><code class="language-sh">poetry run python -m synapse.app.homeserver -c homeserver.yaml <pre><code class="language-sh">poetry run python -m synapse.app.homeserver -c homeserver.yaml
@ -16491,19 +16503,19 @@ resolve any issues and re-run until successful.</p>
<h1 id="5-get-in-touch"><a class="header" href="#5-get-in-touch">5. Get in touch.</a></h1> <h1 id="5-get-in-touch"><a class="header" href="#5-get-in-touch">5. Get in touch.</a></h1>
<p>Join our developer community on Matrix: <a href="https://matrix.to/#/#synapse-dev:matrix.org">#synapse-dev:matrix.org</a>!</p> <p>Join our developer community on Matrix: <a href="https://matrix.to/#/#synapse-dev:matrix.org">#synapse-dev:matrix.org</a>!</p>
<h1 id="6-pick-an-issue"><a class="header" href="#6-pick-an-issue">6. Pick an issue.</a></h1> <h1 id="6-pick-an-issue"><a class="header" href="#6-pick-an-issue">6. Pick an issue.</a></h1>
<p>Fix your favorite problem or perhaps find a <a href="https://github.com/matrix-org/synapse/issues?q=is%3Aopen+is%3Aissue+label%3A%22Good+First+Issue%22">Good First Issue</a> <p>Fix your favorite problem or perhaps find a <a href="https://github.com/element-hq/synapse/issues?q=is%3Aopen+is%3Aissue+label%3A%22Good+First+Issue%22">Good First Issue</a>
to work on.</p> to work on.</p>
<h1 id="7-turn-coffee-into-code-and-documentation"><a class="header" href="#7-turn-coffee-into-code-and-documentation">7. Turn coffee into code and documentation!</a></h1> <h1 id="7-turn-coffee-into-code-and-documentation"><a class="header" href="#7-turn-coffee-into-code-and-documentation">7. Turn coffee into code and documentation!</a></h1>
<p>There is a growing amount of documentation located in the <p>There is a growing amount of documentation located in the
<a href="https://github.com/matrix-org/synapse/tree/develop/docs"><code>docs</code></a> <a href="https://github.com/element-hq/synapse/tree/develop/docs"><code>docs</code></a>
directory, with a rendered version <a href="https://matrix-org.github.io/synapse">available online</a>. directory, with a rendered version <a href="https://vector-im.github.io/synapse">available online</a>.
This documentation is intended primarily for sysadmins running their This documentation is intended primarily for sysadmins running their
own Synapse instance, as well as developers interacting externally with own Synapse instance, as well as developers interacting externally with
Synapse. Synapse.
<a href="https://github.com/matrix-org/synapse/tree/develop/docs/development"><code>docs/development</code></a> <a href="https://github.com/element-hq/synapse/tree/develop/docs/development"><code>docs/development</code></a>
exists primarily to house documentation for exists primarily to house documentation for
Synapse developers. Synapse developers.
<a href="https://github.com/matrix-org/synapse/tree/develop/docs/admin_api"><code>docs/admin_api</code></a> houses documentation <a href="https://github.com/element-hq/synapse/tree/develop/docs/admin_api"><code>docs/admin_api</code></a> houses documentation
regarding Synapse's Admin API, which is used mostly by sysadmins and external regarding Synapse's Admin API, which is used mostly by sysadmins and external
service developers.</p> service developers.</p>
<p>Synapse's code style is documented <a href="development/../code_style.html">here</a>. Please follow <p>Synapse's code style is documented <a href="development/../code_style.html">here</a>. Please follow
@ -16511,12 +16523,9 @@ it, including the conventions for <a href="development/../code_style.html#config
options and documentation</a>.</p> options and documentation</a>.</p>
<p>We welcome improvements and additions to our documentation itself! When <p>We welcome improvements and additions to our documentation itself! When
writing new pages, please writing new pages, please
<a href="https://github.com/matrix-org/synapse/tree/develop/docs#adding-to-the-documentation">build <code>docs</code> to a book</a> <a href="https://github.com/element-hq/synapse/tree/develop/docs#adding-to-the-documentation">build <code>docs</code> to a book</a>
to check that your contributions render correctly. The docs are written in to check that your contributions render correctly. The docs are written in
<a href="https://guides.github.com/features/mastering-markdown/">GitHub-Flavoured Markdown</a>.</p> <a href="https://guides.github.com/features/mastering-markdown/">GitHub-Flavoured Markdown</a>.</p>
<p>Some documentation also exists in <a href="https://github.com/matrix-org/synapse/wiki">Synapse's GitHub
Wiki</a>, although this is primarily
contributed to by community authors.</p>
<p>When changes are made to any Rust code then you must call either <code>poetry install</code> <p>When changes are made to any Rust code then you must call either <code>poetry install</code>
or <code>maturin develop</code> (if installed) to rebuild the Rust code. Using <a href="https://github.com/PyO3/maturin"><code>maturin</code></a> or <code>maturin develop</code> (if installed) to rebuild the Rust code. Using <a href="https://github.com/PyO3/maturin"><code>maturin</code></a>
is quicker than <code>poetry install</code>, so is recommended when making frequent is quicker than <code>poetry install</code>, so is recommended when making frequent
@ -16631,7 +16640,7 @@ configuration:</p>
<li>To run with Postgres, supply the <code>-e POSTGRES=1 -e MULTI_POSTGRES=1</code> environment flags.</li> <li>To run with Postgres, supply the <code>-e POSTGRES=1 -e MULTI_POSTGRES=1</code> environment flags.</li>
<li>To run with Synapse in worker mode, supply the <code>-e WORKERS=1 -e REDIS=1</code> environment flags (in addition to the Postgres flags).</li> <li>To run with Synapse in worker mode, supply the <code>-e WORKERS=1 -e REDIS=1</code> environment flags (in addition to the Postgres flags).</li>
</ul> </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> <p>For more details about other configurations, see the <a href="https://github.com/vector-im/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> <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><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. <p>It's often nice to develop on Synapse and write Complement tests at the same time.
@ -16653,7 +16662,7 @@ Here is how to run your local Synapse checkout against your local Complement che
<li>If setting <code>WORKERS=1</code>, optionally set <code>WORKER_TYPES=</code> to declare which worker <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 types you wish to test. A simple comma-delimited string containing the worker types
defined from the <code>WORKERS_CONFIG</code> template in defined from the <code>WORKERS_CONFIG</code> template in
<a href="https://github.com/matrix-org/synapse/blob/develop/docker/configure_workers_and_start.py#L54">here</a>. <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=&quot;federation_inbound, federation_sender, synchrotron&quot;</code>. A safe example would be <code>WORKER_TYPES=&quot;federation_inbound, federation_sender, synchrotron&quot;</code>.
See the <a href="development/../workers.html">worker documentation</a> for additional information on workers.</li> See the <a href="development/../workers.html">worker documentation</a> for additional information on workers.</li>
</ul> </ul>
@ -16707,7 +16716,7 @@ in the format of <code>PRnumber.type</code>. The type can be one of the followin
<li><code>removal</code> (also used for deprecations)</li> <li><code>removal</code> (also used for deprecations)</li>
<li><code>misc</code> (for internal-only changes)</li> <li><code>misc</code> (for internal-only changes)</li>
</ul> </ul>
<p>This file will become part of our <a href="https://github.com/matrix-org/synapse/blob/master/CHANGES.md">changelog</a> at the next <p>This file will become part of our <a href="https://github.com/element-hq/synapse/blob/master/CHANGES.md">changelog</a> at the next
release, so the content of the file should be a short description of your release, so the content of the file should be a short description of your
change in the same style as the rest of the changelog. The file can contain Markdown change in the same style as the rest of the changelog. The file can contain Markdown
formatting, and must end with a full stop (.) or an exclamation mark (!) for formatting, and must end with a full stop (.) or an exclamation mark (!) for
@ -16735,7 +16744,7 @@ chicken-and-egg problem.</p>
add the changelog file to your branch, or:</p> add the changelog file to your branch, or:</p>
</li> </li>
<li> <li>
<p>Look at the <a href="https://github.com/matrix-org/synapse/issues?q=">list of all <p>Look at the <a href="https://github.com/element-hq/synapse/issues?q=">list of all
issues/PRs</a>, add one to the issues/PRs</a>, add one to the
highest number you see, and quickly open the PR before somebody else claims highest number you see, and quickly open the PR before somebody else claims
your number.</p> your number.</p>
@ -16762,70 +16771,16 @@ directory, you will need both a regular newsfragment <em>and</em> an entry in th
debian changelog. (Though typically such changes should be submitted as two debian changelog. (Though typically such changes should be submitted as two
separate pull requests.)</p> separate pull requests.)</p>
<h2 id="sign-off"><a class="header" href="#sign-off">Sign off</a></h2> <h2 id="sign-off"><a class="header" href="#sign-off">Sign off</a></h2>
<p>In order to have a concrete record that your contribution is intentional <p>After you make a PR a comment from @CLAassistant will appear asking you to sign
and you agree to license it under the same terms as the project's license, we've adopted the the <a href="https://cla-assistant.io/element-hq/synapse">CLA</a>.
same lightweight approach that the Linux Kernel This will link a page to allow you to confirm that you have read and agreed to
<a href="https://www.kernel.org/doc/html/latest/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin%3E">submitting patches process</a>, the CLA by signing in with GitHub.</p>
<a href="https://github.com/docker/docker/blob/master/CONTRIBUTING.md">Docker</a>, and many other <p>Alternatively, you can sign off before opening a PR by going to
projects use: the DCO (<a href="http://developercertificate.org/">Developer Certificate of Origin</a>). <a href="https://cla-assistant.io/element-hq/synapse">https://cla-assistant.io/element-hq/synapse</a>.</p>
This is a simple declaration that you wrote
the contribution or otherwise have the right to contribute it to Matrix:</p>
<pre><code>Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
</code></pre>
<p>If you agree to this for your contribution, then all that's needed is to
include the line in your commit or pull request comment:</p>
<pre><code>Signed-off-by: Your Name &lt;your@email.example.org&gt;
</code></pre>
<p>We accept contributions under a legally identifiable name, such as <p>We accept contributions under a legally identifiable name, such as
your name on government documentation or common-law names (names your name on government documentation or common-law names (names
claimed by legitimate usage or repute). Unfortunately, we cannot claimed by legitimate usage or repute). Unfortunately, we cannot
accept anonymous contributions at this time.</p> accept anonymous contributions at this time.</p>
<p>Git allows you to add this signoff automatically when using the <code>-s</code>
flag to <code>git commit</code>, which uses the name and email set in your
<code>user.name</code> and <code>user.email</code> git configs.</p>
<h3 id="private-sign-off"><a class="header" href="#private-sign-off">Private Sign off</a></h3>
<p>If you would like to provide your legal name privately to the Matrix.org
Foundation (instead of in a public commit or comment), you can do so
by emailing your legal name and a link to the pull request to
<a href="mailto:dco@matrix.org?subject=Private%20sign%20off">dco@matrix.org</a>.
It helps to include &quot;sign off&quot; or similar in the subject line. You will then
be instructed further.</p>
<p>Once private sign off is complete, doing so for future contributions will not
be required.</p>
<h1 id="10-turn-feedback-into-better-code"><a class="header" href="#10-turn-feedback-into-better-code">10. Turn feedback into better code.</a></h1> <h1 id="10-turn-feedback-into-better-code"><a class="header" href="#10-turn-feedback-into-better-code">10. Turn feedback into better code.</a></h1>
<p>Once the Pull Request is opened, you will see a few things:</p> <p>Once the Pull Request is opened, you will see a few things:</p>
<ol> <ol>
@ -17058,10 +17013,10 @@ before. Here, by way of an arbitrary example, is the top of <code>git log --grap
<p>Note how the commit comment explains clearly what is changing and why. Also <p>Note how the commit comment explains clearly what is changing and why. Also
note the <em>absence</em> of merge commits, as well as the absence of commits called note the <em>absence</em> of merge commits, as well as the absence of commits called
things like (to pick a few culprits): things like (to pick a few culprits):
<a href="https://github.com/matrix-org/synapse/commit/84691da6c">“pep8”</a>, <a href="https://github.com/matrix-org/synapse/commit/474810d9d">“fix broken <a href="https://github.com/element-hq/synapse/commit/84691da6c">“pep8”</a>, <a href="https://github.com/element-hq/synapse/commit/474810d9d">“fix broken
test”</a>, test”</a>,
<a href="https://github.com/matrix-org/synapse/commit/c9d72e457">“oops”</a>, <a href="https://github.com/element-hq/synapse/commit/c9d72e457">“oops”</a>,
<a href="https://github.com/matrix-org/synapse/commit/836358823">“typo”</a>, or <a href="https://github.com/matrix-org/synapse/commit/707374d5d">“Who's <a href="https://github.com/element-hq/synapse/commit/836358823">“typo”</a>, or <a href="https://github.com/element-hq/synapse/commit/707374d5d">“Who's
the president?”</a>.</p> the president?”</a>.</p>
<p>There are a number of reasons why keeping a clean commit history is a good <p>There are a number of reasons why keeping a clean commit history is a good
thing:</p> thing:</p>
@ -17172,7 +17127,7 @@ the history of Synapse), we've had two releases in flight at once. Obviously,
<code>release-v1.2</code> is more-stable than <code>release-v1.3</code>. <a href="development/git.html#a3">^</a></p> <code>release-v1.2</code> is more-stable than <code>release-v1.3</code>. <a href="development/git.html#a3">^</a></p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="synapse-demo-setup"><a class="header" href="#synapse-demo-setup">Synapse demo setup</a></h1> <div style="break-before: page; page-break-before: always;"></div><h1 id="synapse-demo-setup"><a class="header" href="#synapse-demo-setup">Synapse demo setup</a></h1>
<p><strong>DO NOT USE THESE DEMO SERVERS IN PRODUCTION</strong></p> <p><strong>DO NOT USE THESE DEMO SERVERS IN PRODUCTION</strong></p>
<p>Requires you to have a <a href="https://matrix-org.github.io/synapse/develop/development/contributing_guide.html#4-install-the-dependencies">Synapse development environment setup</a>.</p> <p>Requires you to have a <a href="https://element-hq.github.io/synapse/develop/development/contributing_guide.html#4-install-the-dependencies">Synapse development environment setup</a>.</p>
<p>The demo setup allows running three federation Synapse servers, with server <p>The demo setup allows running three federation Synapse servers, with server
names <code>localhost:8480</code>, <code>localhost:8481</code>, and <code>localhost:8482</code>.</p> names <code>localhost:8480</code>, <code>localhost:8481</code>, and <code>localhost:8482</code>.</p>
<p>You can access them via any Matrix client over HTTP at <code>localhost:8080</code>, <p>You can access them via any Matrix client over HTTP at <code>localhost:8080</code>,
@ -17705,9 +17660,9 @@ phonenumbers = [
] ]
</code></pre> </code></pre>
<p>We can see this pinned version inside the docker image for that release:</p> <p>We can see this pinned version inside the docker image for that release:</p>
<pre><code>$ docker pull matrixdotorg/synapse:v1.57.0 <pre><code>$ docker pull vectorim/synapse:v1.97.0
... ...
$ docker run --entrypoint pip matrixdotorg/synapse:v1.57.0 show phonenumbers $ docker run --entrypoint pip vectorim/synapse:v1.97.0 show phonenumbers
Name: phonenumbers Name: phonenumbers
Version: 8.12.44 Version: 8.12.44
Summary: Python version of Google's common library for parsing, formatting, storing and validating international phone numbers. Summary: Python version of Google's common library for parsing, formatting, storing and validating international phone numbers.
@ -18537,7 +18492,7 @@ minimal.</p>
the classes interact, can be found in the classes interact, can be found in
<code>synapse/replication/tcp/__init__.py</code></p> <code>synapse/replication/tcp/__init__.py</code></p>
<div style="break-before: page; page-break-before: always;"></div><h2 id="streams"><a class="header" href="#streams">Streams</a></h2> <div style="break-before: page; page-break-before: always;"></div><h2 id="streams"><a class="header" href="#streams">Streams</a></h2>
<p>Synapse has a concept of &quot;streams&quot;, which are roughly described in <a href="https://github.com/matrix-org/synapse/blob/develop/synapse/storage/util/id_generators.py"><code>id_generators.py</code></a>. <p>Synapse has a concept of &quot;streams&quot;, which are roughly described in <a href="https://github.com/element-hq/synapse/blob/develop/synapse/storage/util/id_generators.py"><code>id_generators.py</code></a>.
Generally speaking, streams are a series of notifications that something in Synapse's database has changed that the application might need to respond to. Generally speaking, streams are a series of notifications that something in Synapse's database has changed that the application might need to respond to.
For example:</p> For example:</p>
<ul> <ul>
@ -18545,9 +18500,9 @@ For example:</p>
<li>The account data stream reports changes to users' <a href="https://spec.matrix.org/v1.7/client-server-api/#client-config">account data</a>.</li> <li>The account data stream reports changes to users' <a href="https://spec.matrix.org/v1.7/client-server-api/#client-config">account data</a>.</li>
<li>The to-device stream reports when a device has a new <a href="https://spec.matrix.org/v1.7/client-server-api/#send-to-device-messaging">to-device message</a>.</li> <li>The to-device stream reports when a device has a new <a href="https://spec.matrix.org/v1.7/client-server-api/#send-to-device-messaging">to-device message</a>.</li>
</ul> </ul>
<p>See <a href="https://github.com/matrix-org/synapse/blob/develop/synapse/replication/tcp/streams/__init__.py"><code>synapse.replication.tcp.streams</code></a> for the full list of streams.</p> <p>See <a href="https://github.com/element-hq/synapse/blob/develop/synapse/replication/tcp/streams/__init__.py"><code>synapse.replication.tcp.streams</code></a> for the full list of streams.</p>
<p>It is very helpful to understand the streams mechanism when working on any part of Synapse that needs to respond to changes—especially if those changes are made by different workers. <p>It is very helpful to understand the streams mechanism when working on any part of Synapse that needs to respond to changes—especially if those changes are made by different workers.
To that end, let's describe streams formally, paraphrasing from the docstring of <a href="https://github.com/matrix-org/synapse/blob/a719b703d9bd0dade2565ddcad0e2f3a7a9d4c37/synapse/storage/util/id_generators.py#L96"><code>AbstractStreamIdGenerator</code></a>.</p> To that end, let's describe streams formally, paraphrasing from the docstring of <a href="https://github.com/element-hq/synapse/blob/a719b703d9bd0dade2565ddcad0e2f3a7a9d4c37/synapse/storage/util/id_generators.py#L96"><code>AbstractStreamIdGenerator</code></a>.</p>
<h3 id="definition"><a class="header" href="#definition">Definition</a></h3> <h3 id="definition"><a class="header" href="#definition">Definition</a></h3>
<p>A stream is an append-only log <code>T1, T2, ..., Tn, ...</code> of facts<sup class="footnote-reference"><a href="#1">1</a></sup> which grows over time. <p>A stream is an append-only log <code>T1, T2, ..., Tn, ...</code> of facts<sup class="footnote-reference"><a href="#1">1</a></sup> which grows over time.
Only &quot;writers&quot; can add facts to a stream, and there may be multiple writers.</p> Only &quot;writers&quot; can add facts to a stream, and there may be multiple writers.</p>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/replication.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/replication.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/reverse_proxy.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/reverse_proxy.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/room_and_user_statistics.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/room_and_user_statistics.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -1,12 +1,12 @@
# This file is maintained as an up-to-date snapshot of the default # This file is maintained as an up-to-date snapshot of the default
# homeserver.yaml configuration generated by Synapse. You can find a # homeserver.yaml configuration generated by Synapse. You can find a
# complete accounting of possible configuration options at # complete accounting of possible configuration options at
# https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html # https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html
# #
# It is *not* intended to be copied and used as the basis for a real # It is *not* intended to be copied and used as the basis for a real
# homeserver.yaml. Instead, if you are starting from scratch, please generate # homeserver.yaml. Instead, if you are starting from scratch, please generate
# a fresh config using Synapse by following the instructions in # a fresh config using Synapse by following the instructions in
# https://matrix-org.github.io/synapse/latest/setup/installation.html. # https://element-hq.github.io/synapse/latest/setup/installation.html.
# #
################################################################################ ################################################################################
@ -20,7 +20,7 @@
# #
# For more information on how to configure Synapse, including a complete accounting of # For more information on how to configure Synapse, including a complete accounting of
# each option, go to docs/usage/configuration/config_documentation.md or # each option, go to docs/usage/configuration/config_documentation.md or
# https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html # https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html
server_name: "SERVERNAME" server_name: "SERVERNAME"
pid_file: DATADIR/homeserver.pid pid_file: DATADIR/homeserver.pid
listeners: listeners:

View file

@ -7,7 +7,7 @@
# be ingested by ELK stacks. See [2] for details. # be ingested by ELK stacks. See [2] for details.
# #
# [1]: https://docs.python.org/3/library/logging.config.html#configuration-dictionary-schema # [1]: https://docs.python.org/3/library/logging.config.html#configuration-dictionary-schema
# [2]: https://matrix-org.github.io/synapse/latest/structured_logging.html # [2]: https://element-hq.github.io/synapse/latest/structured_logging.html
version: 1 version: 1

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/server_notices.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/server_notices.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -192,13 +192,15 @@ section, which should look like this:</p>
<pre><code class="language-yaml">server_notices: <pre><code class="language-yaml">server_notices:
system_mxid_localpart: server system_mxid_localpart: server
system_mxid_display_name: &quot;Server Notices&quot; system_mxid_display_name: &quot;Server Notices&quot;
system_mxid_avatar_url: &quot;mxc://server.com/oumMVlgDnLYFaPVkExemNVVZ&quot; system_mxid_avatar_url: &quot;mxc://example.com/oumMVlgDnLYFaPVkExemNVVZ&quot;
room_name: &quot;Server Notices&quot; room_name: &quot;Server Notices&quot;
room_avatar_url: &quot;mxc://example.com/oumMVlgDnLYFaPVkExemNVVZ&quot;
room_topic: &quot;Room used by your server admin to notice you of important information&quot;
auto_join: true auto_join: true
</code></pre> </code></pre>
<p>The only compulsory setting is <code>system_mxid_localpart</code>, which defines the user <p>The only compulsory setting is <code>system_mxid_localpart</code>, which defines the user
id of the Server Notices user, as above. <code>room_name</code> defines the name of the id of the Server Notices user, as above. <code>room_name</code> defines the name of the
room which will be created.</p> room which will be created, <code>room_avatar_url</code> its avatar and <code>room_topic</code> its topic.</p>
<p><code>system_mxid_display_name</code> and <code>system_mxid_avatar_url</code> can be used to set the <p><code>system_mxid_display_name</code> and <code>system_mxid_avatar_url</code> can be used to set the
displayname and avatar of the Server Notices user.</p> displayname and avatar of the Server Notices user.</p>
<p><code>auto_join</code> will autojoin users to the notices room instead of sending an invite.</p> <p><code>auto_join</code> will autojoin users to the notices room instead of sending an invite.</p>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/setup/forward_proxy.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/setup/forward_proxy.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/setup/installation.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/setup/installation.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -178,9 +178,9 @@ that your email address is probably <code>user@example.com</code> rather than
for most users.</p> for most users.</p>
<h4 id="docker-images-and-ansible-playbooks"><a class="header" href="#docker-images-and-ansible-playbooks">Docker images and Ansible playbooks</a></h4> <h4 id="docker-images-and-ansible-playbooks"><a class="header" href="#docker-images-and-ansible-playbooks">Docker images and Ansible playbooks</a></h4>
<p>There is an official synapse image available at <p>There is an official synapse image available at
<a href="https://hub.docker.com/r/matrixdotorg/synapse">https://hub.docker.com/r/matrixdotorg/synapse</a> or at <a href="https://ghcr.io/matrix-org/synapse"><code>ghcr.io/matrix-org/synapse</code></a> <a href="https://hub.docker.com/r/vectorim/synapse">https://hub.docker.com/r/vectorim/synapse</a> or at <a href="https://ghcr.io/element-hq/synapse"><code>ghcr.io/element-hq/synapse</code></a>
which can be used with the docker-compose file available at which can be used with the docker-compose file available at
<a href="https://github.com/matrix-org/synapse/tree/develop/contrib/docker">contrib/docker</a>. <a href="https://github.com/element-hq/synapse/tree/develop/contrib/docker">contrib/docker</a>.
Further information on this including configuration options is available in the README Further information on this including configuration options is available in the README
on hub.docker.com.</p> on hub.docker.com.</p>
<p>Alternatively, Andreas Peters (previously Silvio Fricke) has contributed a <p>Alternatively, Andreas Peters (previously Silvio Fricke) has contributed a
@ -197,6 +197,7 @@ For more details, see
<p>Matrix.org provides Debian/Ubuntu packages of Synapse, for the amd64 <p>Matrix.org provides Debian/Ubuntu packages of Synapse, for the amd64
architecture via <a href="https://packages.matrix.org/debian/">https://packages.matrix.org/debian/</a>.</p> architecture via <a href="https://packages.matrix.org/debian/">https://packages.matrix.org/debian/</a>.</p>
<p>To install the latest release:</p> <p>To install the latest release:</p>
<p>TODO UPDATE ALL THIS</p>
<pre><code class="language-sh">sudo apt install -y lsb-release wget apt-transport-https <pre><code class="language-sh">sudo apt install -y lsb-release wget apt-transport-https
sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
echo &quot;deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main&quot; | echo &quot;deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main&quot; |

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/setup/turn/coturn.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/setup/turn/coturn.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/setup/turn/eturnal.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/setup/turn/eturnal.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/sso_mapping_providers.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/sso_mapping_providers.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -300,7 +300,7 @@ usually returned as part of the <a href="https://spec.matrix.org/latest/client-s
<h3 id="default-openid-mapping-provider"><a class="header" href="#default-openid-mapping-provider">Default OpenID Mapping Provider</a></h3> <h3 id="default-openid-mapping-provider"><a class="header" href="#default-openid-mapping-provider">Default OpenID Mapping Provider</a></h3>
<p>Synapse has a built-in OpenID mapping provider if a custom provider isn't <p>Synapse has a built-in OpenID mapping provider if a custom provider isn't
specified in the config. It is located at specified in the config. It is located at
<a href="https://github.com/matrix-org/synapse/blob/develop/synapse/handlers/oidc.py"><code>synapse.handlers.oidc.JinjaOidcMappingProvider</code></a>.</p> <a href="https://github.com/element-hq/synapse/blob/develop/synapse/handlers/oidc.py"><code>synapse.handlers.oidc.JinjaOidcMappingProvider</code></a>.</p>
<h2 id="saml-mapping-providers"><a class="header" href="#saml-mapping-providers">SAML Mapping Providers</a></h2> <h2 id="saml-mapping-providers"><a class="header" href="#saml-mapping-providers">SAML Mapping Providers</a></h2>
<p>The SAML mapping provider can be customized by editing the <p>The SAML mapping provider can be customized by editing the
<a href="usage/configuration/config_documentation.html#saml2_config"><code>saml2_config.user_mapping_provider.module</code></a> <a href="usage/configuration/config_documentation.html#saml2_config"><code>saml2_config.user_mapping_provider.module</code></a>
@ -415,7 +415,7 @@ complete registration using methods from the <code>ModuleApi</code>.</p>
<h3 id="default-saml-mapping-provider"><a class="header" href="#default-saml-mapping-provider">Default SAML Mapping Provider</a></h3> <h3 id="default-saml-mapping-provider"><a class="header" href="#default-saml-mapping-provider">Default SAML Mapping Provider</a></h3>
<p>Synapse has a built-in SAML mapping provider if a custom provider isn't <p>Synapse has a built-in SAML mapping provider if a custom provider isn't
specified in the config. It is located at specified in the config. It is located at
<a href="https://github.com/matrix-org/synapse/blob/develop/synapse/handlers/saml.py"><code>synapse.handlers.saml.DefaultSamlMappingProvider</code></a>.</p> <a href="https://github.com/element-hq/synapse/blob/develop/synapse/handlers/saml.py"><code>synapse.handlers.saml.DefaultSamlMappingProvider</code></a>.</p>
</main> </main>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/structured_logging.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/structured_logging.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/synctl_workers.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/synctl_workers.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../print.html" title="Print this book" aria-label="Print this book"> <a href="../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/systemd-with-workers/README.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/systemd-with-workers/README.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -165,9 +165,9 @@ managing workers. It provides a <code>matrix-synapse</code> service for the mast
well as a <code>matrix-synapse-worker@</code> service template for any workers you well as a <code>matrix-synapse-worker@</code> service template for any workers you
require. Additionally, to group the required services, it sets up a require. Additionally, to group the required services, it sets up a
<code>matrix-synapse.target</code>.</p> <code>matrix-synapse.target</code>.</p>
<p>See the folder <a href="https://github.com/matrix-org/synapse/tree/develop/docs/systemd-with-workers/system/">system</a> <p>See the folder <a href="https://github.com/element-hq/synapse/tree/develop/docs/systemd-with-workers/system/">system</a>
for the systemd unit files.</p> for the systemd unit files.</p>
<p>The folder <a href="https://github.com/matrix-org/synapse/tree/develop/docs/systemd-with-workers/workers/">workers</a> <p>The folder <a href="https://github.com/element-hq/synapse/tree/develop/docs/systemd-with-workers/workers/">workers</a>
contains an example configuration for the <code>generic_worker</code> worker.</p> contains an example configuration for the <code>generic_worker</code> worker.</p>
<h2 id="synapse-configuration-files"><a class="header" href="#synapse-configuration-files">Synapse configuration files</a></h2> <h2 id="synapse-configuration-files"><a class="header" href="#synapse-configuration-files">Synapse configuration files</a></h2>
<p>See <a href="../workers.html">the worker documentation</a> for information on how to set up the <p>See <a href="../workers.html">the worker documentation</a> for information on how to set up the
@ -194,7 +194,7 @@ the provided <code>*.service</code> files accordingly.</p>
<h2 id="set-up"><a class="header" href="#set-up">Set up</a></h2> <h2 id="set-up"><a class="header" href="#set-up">Set up</a></h2>
<ol> <ol>
<li>Adjust synapse configuration files as above.</li> <li>Adjust synapse configuration files as above.</li>
<li>Copy the <code>*.service</code> and <code>*.target</code> files in <a href="https://github.com/matrix-org/synapse/tree/develop/docs/systemd-with-workers/system/">system</a> <li>Copy the <code>*.service</code> and <code>*.target</code> files in <a href="https://github.com/element-hq/synapse/tree/develop/docs/systemd-with-workers/system/">system</a>
to <code>/etc/systemd/system</code>.</li> to <code>/etc/systemd/system</code>.</li>
<li>Run <code>systemctl daemon-reload</code> to tell systemd to load the new unit files.</li> <li>Run <code>systemctl daemon-reload</code> to tell systemd to load the new unit files.</li>
<li>Run <code>systemctl enable matrix-synapse.service</code>. This will configure the <li>Run <code>systemctl enable matrix-synapse.service</code>. This will configure the
@ -229,7 +229,7 @@ systemctl restart matrix-synapse.target
<h2 id="hardening"><a class="header" href="#hardening">Hardening</a></h2> <h2 id="hardening"><a class="header" href="#hardening">Hardening</a></h2>
<p><strong>Optional:</strong> If further hardening is desired, the file <p><strong>Optional:</strong> If further hardening is desired, the file
<code>override-hardened.conf</code> may be copied from <code>override-hardened.conf</code> may be copied from
<a href="https://github.com/matrix-org/synapse/tree/develop/contrib/systemd/">contrib/systemd/override-hardened.conf</a> <a href="https://github.com/element-hq/synapse/tree/develop/contrib/systemd/">contrib/systemd/override-hardened.conf</a>
in this repository to the location in this repository to the location
<code>/etc/systemd/system/matrix-synapse.service.d/override-hardened.conf</code> (the <code>/etc/systemd/system/matrix-synapse.service.d/override-hardened.conf</code> (the
directory may have to be created). It enables certain sandboxing features in directory may have to be created). It enables certain sandboxing features in

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/tcp_replication.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/tcp_replication.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/templates.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/templates.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -162,7 +162,7 @@
<h1 id="templates"><a class="header" href="#templates">Templates</a></h1> <h1 id="templates"><a class="header" href="#templates">Templates</a></h1>
<p>Synapse uses parametrised templates to generate the content of emails it sends and <p>Synapse uses parametrised templates to generate the content of emails it sends and
webpages it shows to users.</p> webpages it shows to users.</p>
<p>By default, Synapse will use the templates listed <a href="https://github.com/matrix-org/synapse/tree/master/synapse/res/templates">here</a>. <p>By default, Synapse will use the templates listed <a href="https://github.com/element-hq/synapse/tree/master/synapse/res/templates">here</a>.
Server admins can configure an additional directory for Synapse to look for templates Server admins can configure an additional directory for Synapse to look for templates
in, allowing them to specify custom templates:</p> in, allowing them to specify custom templates:</p>
<pre><code class="language-yaml">templates: <pre><code class="language-yaml">templates:
@ -285,7 +285,7 @@ and failure that a user will see when they confirm the password reset flow using
page above. page above.
When rendering, <code>password_reset_success.html</code> is given no variable, and When rendering, <code>password_reset_success.html</code> is given no variable, and
<code>password_reset_failure.html</code> is given a <code>failure_reason</code>, which contains the reason <code>password_reset_failure.html</code> is given a <code>failure_reason</code>, which contains the reason
for the password reset failure. </li> for the password reset failure.</li>
<li><code>registration_success.html</code> and <code>registration_failure.html</code>: HTML pages for success and <li><code>registration_success.html</code> and <code>registration_failure.html</code>: HTML pages for success and
failure that a user will see when they follow the link in an address verification email failure that a user will see when they follow the link in an address verification email
sent during registration. sent during registration.

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/turn-howto.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/turn-howto.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="print.html" title="Print this book" aria-label="Print this book"> <a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/upgrade.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/upgrade.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -266,7 +266,7 @@ v1.61.0.</p>
<tr><td>v1.83.0 v1.84.1</td><td>v1.77.0</td></tr> <tr><td>v1.83.0 v1.84.1</td><td>v1.77.0</td></tr>
<tr><td>v1.85.0 v1.91.2</td><td>v1.83.0</td></tr> <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.92.0 v1.97.0</td><td>v1.90.0</td></tr>
<tr><td>v1.98.0 v1.98.0</td><td>v1.96.0</td></tr> <tr><td>v1.98.0 v1.99.0</td><td>v1.96.0</td></tr>
</tbody></table> </tbody></table>
<h1 id="upgrading-to-v1930"><a class="header" href="#upgrading-to-v1930">Upgrading to v1.93.0</a></h1> <h1 id="upgrading-to-v1930"><a class="header" href="#upgrading-to-v1930">Upgrading to v1.93.0</a></h1>
<h2 id="minimum-supported-rust-version"><a class="header" href="#minimum-supported-rust-version">Minimum supported Rust version</a></h2> <h2 id="minimum-supported-rust-version"><a class="header" href="#minimum-supported-rust-version">Minimum supported Rust version</a></h2>
@ -279,8 +279,8 @@ date.</p>
considered insecure - and from Synapse v1.71.0 forwards the application service token has also been sent via considered insecure - and from Synapse v1.71.0 forwards the application service token has also been sent via
<a href="https://spec.matrix.org/v1.6/application-service-api/#authorization">the <code>Authorization</code> header</a>], making the insecure <a href="https://spec.matrix.org/v1.6/application-service-api/#authorization">the <code>Authorization</code> header</a>], making the insecure
query parameter authorization redundant. Since removing the ability to continue to use query parameters could break query parameter authorization redundant. Since removing the ability to continue to use query parameters could break
backwards compatibility it has now been put behind a configuration option, <code>use_appservice_legacy_authorization</code>.<br /> backwards compatibility it has now been put behind a configuration option, <code>use_appservice_legacy_authorization</code>.
This option defaults to false, but can be activated by adding </p> This option defaults to false, but can be activated by adding</p>
<pre><code class="language-yaml">use_appservice_legacy_authorization: true <pre><code class="language-yaml">use_appservice_legacy_authorization: true
</code></pre> </code></pre>
<p>to your configuration.</p> <p>to your configuration.</p>
@ -300,9 +300,9 @@ packages or Docker images, no action is required.</p>
<p>As mentioned previously in <a href="#upgrading-to-v1840">Upgrading to v1.84.0</a>, the following deprecated settings <p>As mentioned previously in <a href="#upgrading-to-v1840">Upgrading to v1.84.0</a>, the following deprecated settings
are being removed in this release of Synapse:</p> are being removed in this release of Synapse:</p>
<ul> <ul>
<li><a href="https://matrix-org.github.io/synapse/v1.86/usage/configuration/config_documentation.html#worker_replication_host"><code>worker_replication_host</code></a></li> <li><a href="https://element-hq.github.io/synapse/v1.86/usage/configuration/config_documentation.html#worker_replication_host"><code>worker_replication_host</code></a></li>
<li><a href="https://matrix-org.github.io/synapse/v1.86/usage/configuration/config_documentation.html#worker_replication_http_port"><code>worker_replication_http_port</code></a></li> <li><a href="https://element-hq.github.io/synapse/v1.86/usage/configuration/config_documentation.html#worker_replication_http_port"><code>worker_replication_http_port</code></a></li>
<li><a href="https://matrix-org.github.io/synapse/v1.86/usage/configuration/config_documentation.html#worker_replication_http_tls"><code>worker_replication_http_tls</code></a></li> <li><a href="https://element-hq.github.io/synapse/v1.86/usage/configuration/config_documentation.html#worker_replication_http_tls"><code>worker_replication_http_tls</code></a></li>
</ul> </ul>
<p>Please ensure that you have migrated to using <code>main</code> on your shared configuration's <code>instance_map</code> <p>Please ensure that you have migrated to using <code>main</code> on your shared configuration's <code>instance_map</code>
(or create one if necessary). This is required if you have <em><strong>any</strong></em> workers at all; (or create one if necessary). This is required if you have <em><strong>any</strong></em> workers at all;
@ -389,7 +389,7 @@ worker_listeners:
worker_log_config: /etc/matrix-synapse/generic-worker-log.yaml worker_log_config: /etc/matrix-synapse/generic-worker-log.yaml
</code></pre> </code></pre>
<p>Notes: </p> <p>Notes:</p>
<ul> <ul>
<li><code>tls</code> is optional but mirrors the functionality of <code>worker_replication_http_tls</code></li> <li><code>tls</code> is optional but mirrors the functionality of <code>worker_replication_http_tls</code></li>
</ul> </ul>
@ -549,7 +549,7 @@ because current versions of Synapse emit both old and new names.</p>
the names of Prometheus metrics. the names of Prometheus metrics.
If you want to test your changes before legacy names are disabled by default, If you want to test your changes before legacy names are disabled by default,
you may specify <code>enable_legacy_metrics: false</code> in your homeserver configuration.</p> you may specify <code>enable_legacy_metrics: false</code> in your homeserver configuration.</p>
<p>A list of affected metrics is available on the <a href="https://matrix-org.github.io/synapse/v1.69/metrics-howto.html?highlight=metrics%20deprecated#renaming-of-metrics--deprecation-of-old-names-in-12">Metrics How-to page</a>.</p> <p>A list of affected metrics is available on the <a href="https://element-hq.github.io/synapse/v1.69/metrics-howto.html?highlight=metrics%20deprecated#renaming-of-metrics--deprecation-of-old-names-in-12">Metrics How-to page</a>.</p>
<h2 id="deprecation-of-the-generate_short_term_login_token-module-api-method"><a class="header" href="#deprecation-of-the-generate_short_term_login_token-module-api-method">Deprecation of the <code>generate_short_term_login_token</code> module API method</a></h2> <h2 id="deprecation-of-the-generate_short_term_login_token-module-api-method"><a class="header" href="#deprecation-of-the-generate_short_term_login_token-module-api-method">Deprecation of the <code>generate_short_term_login_token</code> module API method</a></h2>
<p>The following method of the module API has been deprecated, and is scheduled to <p>The following method of the module API has been deprecated, and is scheduled to
be remove in v1.71.0:</p> be remove in v1.71.0:</p>
@ -589,7 +589,7 @@ Synapse's database.</p>
<h2 id="rust-requirement-when-building-from-source"><a class="header" href="#rust-requirement-when-building-from-source">Rust requirement when building from source.</a></h2> <h2 id="rust-requirement-when-building-from-source"><a class="header" href="#rust-requirement-when-building-from-source">Rust requirement when building from source.</a></h2>
<p>Building from a source checkout of Synapse now requires a recent Rust compiler <p>Building from a source checkout of Synapse now requires a recent Rust compiler
(currently Rust 1.58.1, but see also the (currently Rust 1.58.1, but see also the
<a href="https://matrix-org.github.io/synapse/latest/deprecation_policy.html">Platform Dependency Policy</a>).</p> <a href="https://element-hq.github.io/synapse/latest/deprecation_policy.html">Platform Dependency Policy</a>).</p>
<p>Installations using</p> <p>Installations using</p>
<ul> <ul>
<li>Docker images <a href="https://hub.docker.com/r/matrixdotorg/synapse">from <code>matrixdotorg</code></a>,</li> <li>Docker images <a href="https://hub.docker.com/r/matrixdotorg/synapse">from <code>matrixdotorg</code></a>,</li>
@ -637,7 +637,7 @@ This removal was previously planned for Synapse 1.64.0, but was
homeserver administrators more notice of the change.</p> homeserver administrators more notice of the change.</p>
<p>To continue to allow users to add email addresses to their homeserver accounts, <p>To continue to allow users to add email addresses to their homeserver accounts,
and perform password resets, make sure that Synapse is configured with a working and perform password resets, make sure that Synapse is configured with a working
email server in the <a href="https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#email"><code>email</code> configuration email server in the <a href="https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html#email"><code>email</code> configuration
section</a> section</a>
(including, at a minimum, a <code>notif_from</code> setting.)</p> (including, at a minimum, a <code>notif_from</code> setting.)</p>
<p>Specifying an <code>email</code> setting under <code>account_threepid_delegates</code> will now cause <p>Specifying an <code>email</code> setting under <code>account_threepid_delegates</code> will now cause
@ -646,7 +646,7 @@ an error at startup.</p>
<h2 id="deprecation-of-the-ability-to-delegate-e-mail-verification-to-identity-servers"><a class="header" href="#deprecation-of-the-ability-to-delegate-e-mail-verification-to-identity-servers">Deprecation of the ability to delegate e-mail verification to identity servers</a></h2> <h2 id="deprecation-of-the-ability-to-delegate-e-mail-verification-to-identity-servers"><a class="header" href="#deprecation-of-the-ability-to-delegate-e-mail-verification-to-identity-servers">Deprecation of the ability to delegate e-mail verification to identity servers</a></h2>
<p>Synapse v1.66.0 will remove the ability to delegate the tasks of verifying email address ownership, and password reset confirmation, to an identity server.</p> <p>Synapse v1.66.0 will remove the ability to delegate the tasks of verifying email address ownership, and password reset confirmation, to an identity server.</p>
<p>If you require your homeserver to verify e-mail addresses or to support password resets via e-mail, please configure your homeserver with SMTP access so that it can send e-mails on its own behalf. <p>If you require your homeserver to verify e-mail addresses or to support password resets via e-mail, please configure your homeserver with SMTP access so that it can send e-mails on its own behalf.
<a href="https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#email">Consult the configuration documentation for more information.</a></p> <a href="https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html#email">Consult the configuration documentation for more information.</a></p>
<p>The option that will be removed is <code>account_threepid_delegates.email</code>.</p> <p>The option that will be removed is <code>account_threepid_delegates.email</code>.</p>
<h2 id="changes-to-the-event-replication-streams"><a class="header" href="#changes-to-the-event-replication-streams">Changes to the event replication streams</a></h2> <h2 id="changes-to-the-event-replication-streams"><a class="header" href="#changes-to-the-event-replication-streams">Changes to the event replication streams</a></h2>
<p>Synapse now includes a flag indicating if an event is an outlier when <p>Synapse now includes a flag indicating if an event is an outlier when
@ -796,7 +796,7 @@ has queries that can be used to check a database for this problem in advance.</p
<p>The names of user devices are no longer visible to users on other homeservers by default. <p>The names of user devices are no longer visible to users on other homeservers by default.
Device IDs are unaffected, as these are necessary to facilitate end-to-end encryption.</p> Device IDs are unaffected, as these are necessary to facilitate end-to-end encryption.</p>
<p>To re-enable this functionality, set the <p>To re-enable this functionality, set the
<a href="https://matrix-org.github.io/synapse/v1.59/usage/configuration/config_documentation.html#federation"><code>allow_device_name_lookup_over_federation</code></a> <a href="https://element-hq.github.io/synapse/v1.59/usage/configuration/config_documentation.html#federation"><code>allow_device_name_lookup_over_federation</code></a>
homeserver config option to <code>true</code>.</p> homeserver config option to <code>true</code>.</p>
<h2 id="deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types"><a class="header" href="#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types">Deprecation of the <code>synapse.app.appservice</code> and <code>synapse.app.user_dir</code> worker application types</a></h2> <h2 id="deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types"><a class="header" href="#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types">Deprecation of the <code>synapse.app.appservice</code> and <code>synapse.app.user_dir</code> worker application types</a></h2>
<p>The <code>synapse.app.appservice</code> worker application type allowed you to configure a <p>The <code>synapse.app.appservice</code> worker application type allowed you to configure a
@ -881,7 +881,7 @@ be disabled by default in Synapse v1.58.0.</p>
<h2 id="change-in-behaviour-for-postgresql-databases-with-unsafe-locale"><a class="header" href="#change-in-behaviour-for-postgresql-databases-with-unsafe-locale">Change in behaviour for PostgreSQL databases with unsafe locale</a></h2> <h2 id="change-in-behaviour-for-postgresql-databases-with-unsafe-locale"><a class="header" href="#change-in-behaviour-for-postgresql-databases-with-unsafe-locale">Change in behaviour for PostgreSQL databases with unsafe locale</a></h2>
<p>Synapse now refuses to start when using PostgreSQL with non-<code>C</code> values for <code>COLLATE</code> and <p>Synapse now refuses to start when using PostgreSQL with non-<code>C</code> values for <code>COLLATE</code> and
<code>CTYPE</code> unless the config flag <code>allow_unsafe_locale</code>, found in the database section of <code>CTYPE</code> unless the config flag <code>allow_unsafe_locale</code>, found in the database section of
the configuration file, is set to <code>true</code>. See the <a href="https://matrix-org.github.io/synapse/latest/postgres.html#fixing-incorrect-collate-or-ctype">PostgreSQL documentation</a> the configuration file, is set to <code>true</code>. See the <a href="https://element-hq.github.io/synapse/latest/postgres.html#fixing-incorrect-collate-or-ctype">PostgreSQL documentation</a>
for more information and instructions on how to fix a database with incorrect values.</p> for more information and instructions on how to fix a database with incorrect values.</p>
<h1 id="upgrading-to-v1550"><a class="header" href="#upgrading-to-v1550">Upgrading to v1.55.0</a></h1> <h1 id="upgrading-to-v1550"><a class="header" href="#upgrading-to-v1550">Upgrading to v1.55.0</a></h1>
<h2 id="synctl-script-has-been-moved"><a class="header" href="#synctl-script-has-been-moved"><code>synctl</code> script has been moved</a></h2> <h2 id="synctl-script-has-been-moved"><a class="header" href="#synctl-script-has-been-moved"><code>synctl</code> script has been moved</a></h2>
@ -911,7 +911,7 @@ please upgrade Mjolnir to version 1.3.2 or later before upgrading Synapse.</p>
<p>This release removes support for the <code>structured: true</code> logging configuration <p>This release removes support for the <code>structured: true</code> logging configuration
which was deprecated in Synapse v1.23.0. If your logging configuration contains which was deprecated in Synapse v1.23.0. If your logging configuration contains
<code>structured: true</code> then it should be modified based on the <code>structured: true</code> then it should be modified based on the
<a href="https://matrix-org.github.io/synapse/v1.56/structured_logging.html#upgrading-from-legacy-structured-logging-configuration">structured logging documentation</a>.</p> <a href="https://element-hq.github.io/synapse/v1.56/structured_logging.html#upgrading-from-legacy-structured-logging-configuration">structured logging documentation</a>.</p>
<h1 id="upgrading-to-v1530"><a class="header" href="#upgrading-to-v1530">Upgrading to v1.53.0</a></h1> <h1 id="upgrading-to-v1530"><a class="header" href="#upgrading-to-v1530">Upgrading to v1.53.0</a></h1>
<h2 id="dropping-support-for-webclient-listeners-and-non-https-web_client_location"><a class="header" href="#dropping-support-for-webclient-listeners-and-non-https-web_client_location">Dropping support for <code>webclient</code> listeners and non-HTTP(S) <code>web_client_location</code></a></h2> <h2 id="dropping-support-for-webclient-listeners-and-non-https-web_client_location"><a class="header" href="#dropping-support-for-webclient-listeners-and-non-https-web_client_location">Dropping support for <code>webclient</code> listeners and non-HTTP(S) <code>web_client_location</code></a></h2>
<p>Per the deprecation notice in Synapse v1.51.0, listeners of type <code>webclient</code> <p>Per the deprecation notice in Synapse v1.51.0, listeners of type <code>webclient</code>
@ -954,10 +954,10 @@ becomes stable.</p>
<h2 id="removal-of-user_may_create_room_with_invites"><a class="header" href="#removal-of-user_may_create_room_with_invites">Removal of <code>user_may_create_room_with_invites</code></a></h2> <h2 id="removal-of-user_may_create_room_with_invites"><a class="header" href="#removal-of-user_may_create_room_with_invites">Removal of <code>user_may_create_room_with_invites</code></a></h2>
<p>As announced with the release of <a href="#deprecation-of-the-user_may_create_room_with_invites-module-callback">Synapse 1.47.0</a>, <p>As announced with the release of <a href="#deprecation-of-the-user_may_create_room_with_invites-module-callback">Synapse 1.47.0</a>,
the deprecated <code>user_may_create_room_with_invites</code> module callback has been removed.</p> the deprecated <code>user_may_create_room_with_invites</code> module callback has been removed.</p>
<p>Modules relying on it can instead implement <a href="https://matrix-org.github.io/synapse/latest/modules/spam_checker_callbacks.html#user_may_invite"><code>user_may_invite</code></a> <p>Modules relying on it can instead implement <a href="https://element-hq.github.io/synapse/latest/modules/spam_checker_callbacks.html#user_may_invite"><code>user_may_invite</code></a>
and use the <a href="https://github.com/matrix-org/synapse/blob/872f23b95fa980a61b0866c1475e84491991fa20/synapse/module_api/__init__.py#L869-L876"><code>get_room_state</code></a> and use the <a href="https://github.com/element-hq/synapse/blob/872f23b95fa980a61b0866c1475e84491991fa20/synapse/module_api/__init__.py#L869-L876"><code>get_room_state</code></a>
module API to infer whether the invite is happening while creating a room (see <a href="https://github.com/matrix-org/synapse-domain-rule-checker/blob/e7d092dd9f2a7f844928771dbfd9fd24c2332e48/synapse_domain_rule_checker/__init__.py#L56-L89">this function</a> module API to infer whether the invite is happening while creating a room (see <a href="https://github.com/matrix-org/synapse-domain-rule-checker/blob/e7d092dd9f2a7f844928771dbfd9fd24c2332e48/synapse_domain_rule_checker/__init__.py#L56-L89">this function</a>
as an example). Alternately, modules can also implement <a href="https://matrix-org.github.io/synapse/latest/modules/third_party_rules_callbacks.html#on_create_room"><code>on_create_room</code></a>.</p> as an example). Alternately, modules can also implement <a href="https://element-hq.github.io/synapse/latest/modules/third_party_rules_callbacks.html#on_create_room"><code>on_create_room</code></a>.</p>
<h1 id="upgrading-to-v1520"><a class="header" href="#upgrading-to-v1520">Upgrading to v1.52.0</a></h1> <h1 id="upgrading-to-v1520"><a class="header" href="#upgrading-to-v1520">Upgrading to v1.52.0</a></h1>
<h2 id="twisted-security-release"><a class="header" href="#twisted-security-release">Twisted security release</a></h2> <h2 id="twisted-security-release"><a class="header" href="#twisted-security-release">Twisted security release</a></h2>
<p>Note that <a href="https://github.com/twisted/twisted/releases/tag/twisted-22.1.0">Twisted 22.1.0</a> <p>Note that <a href="https://github.com/twisted/twisted/releases/tag/twisted-22.1.0">Twisted 22.1.0</a>
@ -987,12 +987,12 @@ longer supported upstream.</p>
<li><code>POST /_synapse/admin/v1/&lt;room_id&gt;/delete</code></li> <li><code>POST /_synapse/admin/v1/&lt;room_id&gt;/delete</code></li>
</ul> </ul>
<p>Any scripts still using the above APIs should be converted to use the <p>Any scripts still using the above APIs should be converted to use the
<a href="https://matrix-org.github.io/synapse/latest/admin_api/rooms.html#delete-room-api">Delete Room API</a>.</p> <a href="https://element-hq.github.io/synapse/latest/admin_api/rooms.html#delete-room-api">Delete Room API</a>.</p>
<h2 id="deprecation-of-the-user_may_create_room_with_invites-module-callback"><a class="header" href="#deprecation-of-the-user_may_create_room_with_invites-module-callback">Deprecation of the <code>user_may_create_room_with_invites</code> module callback</a></h2> <h2 id="deprecation-of-the-user_may_create_room_with_invites-module-callback"><a class="header" href="#deprecation-of-the-user_may_create_room_with_invites-module-callback">Deprecation of the <code>user_may_create_room_with_invites</code> module callback</a></h2>
<p>The <code>user_may_create_room_with_invites</code> is deprecated and will be removed in a future <p>The <code>user_may_create_room_with_invites</code> is deprecated and will be removed in a future
version of Synapse. Modules implementing this callback can instead implement version of Synapse. Modules implementing this callback can instead implement
<a href="https://matrix-org.github.io/synapse/latest/modules/spam_checker_callbacks.html#user_may_invite"><code>user_may_invite</code></a> <a href="https://element-hq.github.io/synapse/latest/modules/spam_checker_callbacks.html#user_may_invite"><code>user_may_invite</code></a>
and use the <a href="https://github.com/matrix-org/synapse/blob/872f23b95fa980a61b0866c1475e84491991fa20/synapse/module_api/__init__.py#L869-L876"><code>get_room_state</code></a> and use the <a href="https://github.com/element-hq/synapse/blob/872f23b95fa980a61b0866c1475e84491991fa20/synapse/module_api/__init__.py#L869-L876"><code>get_room_state</code></a>
module API method to infer whether the invite is happening in the context of creating a module API method to infer whether the invite is happening in the context of creating a
room.</p> room.</p>
<p>We plan to remove this callback in January 2022.</p> <p>We plan to remove this callback in January 2022.</p>
@ -1009,7 +1009,7 @@ no longer mirrored to storage providers. These two directories can be safely
deleted from any configured storage providers to reclaim space.</p> deleted from any configured storage providers to reclaim space.</p>
<h1 id="upgrading-to-v1430"><a class="header" href="#upgrading-to-v1430">Upgrading to v1.43.0</a></h1> <h1 id="upgrading-to-v1430"><a class="header" href="#upgrading-to-v1430">Upgrading to v1.43.0</a></h1>
<h2 id="the-spaces-summary-apis-can-now-be-handled-by-workers"><a class="header" href="#the-spaces-summary-apis-can-now-be-handled-by-workers">The spaces summary APIs can now be handled by workers</a></h2> <h2 id="the-spaces-summary-apis-can-now-be-handled-by-workers"><a class="header" href="#the-spaces-summary-apis-can-now-be-handled-by-workers">The spaces summary APIs can now be handled by workers</a></h2>
<p>The <a href="https://matrix-org.github.io/synapse/latest/workers.html#available-worker-applications">available worker applications documentation</a> <p>The <a href="https://element-hq.github.io/synapse/latest/workers.html#available-worker-applications">available worker applications documentation</a>
has been updated to reflect that calls to the <code>/spaces</code>, <code>/hierarchy</code>, and has been updated to reflect that calls to the <code>/spaces</code>, <code>/hierarchy</code>, and
<code>/summary</code> endpoints can now be routed to workers for both client API and <code>/summary</code> endpoints can now be routed to workers for both client API and
federation requests.</p> federation requests.</p>
@ -1022,11 +1022,11 @@ federation requests.</p>
<li><code>POST /_synapse/admin/v1/shutdown_room/&lt;room_id&gt;</code></li> <li><code>POST /_synapse/admin/v1/shutdown_room/&lt;room_id&gt;</code></li>
</ul> </ul>
<p>Any scripts still using the above APIs should be converted to use the <p>Any scripts still using the above APIs should be converted to use the
<a href="https://matrix-org.github.io/synapse/latest/admin_api/rooms.html#delete-room-api">Delete Room API</a>.</p> <a href="https://element-hq.github.io/synapse/latest/admin_api/rooms.html#delete-room-api">Delete Room API</a>.</p>
<h2 id="user-interactive-authentication-fallback-templates-can-now-display-errors"><a class="header" href="#user-interactive-authentication-fallback-templates-can-now-display-errors">User-interactive authentication fallback templates can now display errors</a></h2> <h2 id="user-interactive-authentication-fallback-templates-can-now-display-errors"><a class="header" href="#user-interactive-authentication-fallback-templates-can-now-display-errors">User-interactive authentication fallback templates can now display errors</a></h2>
<p>This may affect you if you make use of custom HTML templates for the <p>This may affect you if you make use of custom HTML templates for the
<a href="https://github.com/matrix-org/synapse/tree/develop/synapse/res/templates/recaptcha.html">reCAPTCHA (<code>synapse/res/templates/recaptcha.html</code>)</a> or <a href="https://github.com/element-hq/synapse/tree/develop/synapse/res/templates/recaptcha.html">reCAPTCHA (<code>synapse/res/templates/recaptcha.html</code>)</a> or
<a href="https://github.com/matrix-org/synapse/tree/develop/synapse/res/templates/terms.html">terms (<code>synapse/res/templates/terms.html</code>)</a> fallback pages.</p> <a href="https://github.com/element-hq/synapse/tree/develop/synapse/res/templates/terms.html">terms (<code>synapse/res/templates/terms.html</code>)</a> fallback pages.</p>
<p>The template is now provided an <code>error</code> variable if the authentication <p>The template is now provided an <code>error</code> variable if the authentication
process failed. See the default templates linked above for an example.</p> process failed. See the default templates linked above for an example.</p>
<h2 id="removal-of-out-of-date-email-pushers"><a class="header" href="#removal-of-out-of-date-email-pushers">Removal of out-of-date email pushers</a></h2> <h2 id="removal-of-out-of-date-email-pushers"><a class="header" href="#removal-of-out-of-date-email-pushers">Removal of out-of-date email pushers</a></h2>
@ -1061,11 +1061,11 @@ details.</p>
configuration file are now deprecated. Server admins should use the new configuration file are now deprecated. Server admins should use the new
<code>templates.custom_template_directory</code> setting in the configuration file and use one single <code>templates.custom_template_directory</code> setting in the configuration file and use one single
custom template directory for all aforementioned features. Template file names remain custom template directory for all aforementioned features. Template file names remain
unchanged. See <a href="https://matrix-org.github.io/synapse/latest/templates.html">the related documentation</a> unchanged. See <a href="https://element-hq.github.io/synapse/latest/templates.html">the related documentation</a>
for more information and examples.</p> for more information and examples.</p>
<p>We plan to remove support for these settings in October 2021.</p> <p>We plan to remove support for these settings in October 2021.</p>
<h2 id="_synapseadminv1usersuseridmedia-must-be-handled-by-media-workers"><a class="header" href="#_synapseadminv1usersuseridmedia-must-be-handled-by-media-workers"><code>/_synapse/admin/v1/users/{userId}/media</code> must be handled by media workers</a></h2> <h2 id="_synapseadminv1usersuseridmedia-must-be-handled-by-media-workers"><a class="header" href="#_synapseadminv1usersuseridmedia-must-be-handled-by-media-workers"><code>/_synapse/admin/v1/users/{userId}/media</code> must be handled by media workers</a></h2>
<p>The <a href="https://matrix-org.github.io/synapse/latest/workers.html#synapseappmedia_repository">media repository worker documentation</a> <p>The <a href="https://element-hq.github.io/synapse/latest/workers.html#synapseappmedia_repository">media repository worker documentation</a>
has been updated to reflect that calls to <code>/_synapse/admin/v1/users/{userId}/media</code> has been updated to reflect that calls to <code>/_synapse/admin/v1/users/{userId}/media</code>
must now be handled by media repository workers. This is due to the new <code>DELETE</code> method must now be handled by media repository workers. This is due to the new <code>DELETE</code> method
of this endpoint modifying the media store.</p> of this endpoint modifying the media store.</p>
@ -1377,7 +1377,7 @@ lock down external access to the Admin API endpoints.</p>
<p>This release deprecates use of the <code>structured: true</code> logging <p>This release deprecates use of the <code>structured: true</code> logging
configuration for structured logging. If your logging configuration configuration for structured logging. If your logging configuration
contains <code>structured: true</code> then it should be modified based on the contains <code>structured: true</code> then it should be modified based on the
<a href="https://matrix-org.github.io/synapse/v1.56/structured_logging.html#upgrading-from-legacy-structured-logging-configuration">structured logging documentation</a>.</p> <a href="https://element-hq.github.io/synapse/v1.56/structured_logging.html#upgrading-from-legacy-structured-logging-configuration">structured logging documentation</a>.</p>
<p>The <code>structured</code> and <code>drains</code> logging options are now deprecated and <p>The <code>structured</code> and <code>drains</code> logging options are now deprecated and
should be replaced by standard logging configuration of <code>handlers</code> and should be replaced by standard logging configuration of <code>handlers</code> and
<code>formatters</code>.</p> <code>formatters</code>.</p>
@ -1410,7 +1410,7 @@ endpoint can be handled</p>
update your reverse proxy configuration to reflect this change.</p> update your reverse proxy configuration to reflect this change.</p>
<h2 id="new-html-templates"><a class="header" href="#new-html-templates">New HTML templates</a></h2> <h2 id="new-html-templates"><a class="header" href="#new-html-templates">New HTML templates</a></h2>
<p>A new HTML template, <p>A new HTML template,
<a href="https://github.com/matrix-org/synapse/blob/develop/synapse/res/templates/password_reset_confirmation.html">password_reset_confirmation.html</a>, <a href="https://github.com/element-hq/synapse/blob/develop/synapse/res/templates/password_reset_confirmation.html">password_reset_confirmation.html</a>,
has been added to the <code>synapse/res/templates</code> directory. If you are has been added to the <code>synapse/res/templates</code> directory. If you are
using a custom template directory, you may want to copy the template using a custom template directory, you may want to copy the template
over and modify it.</p> over and modify it.</p>
@ -1452,7 +1452,7 @@ updated.</p>
<p>When setting up worker processes, we now recommend the use of a Redis <p>When setting up worker processes, we now recommend the use of a Redis
server for replication. <strong>The old direct TCP connection method is server for replication. <strong>The old direct TCP connection method is
deprecated and will be removed in a future release.</strong> See deprecated and will be removed in a future release.</strong> See
the <a href="https://matrix-org.github.io/synapse/v1.66/workers.html">worker documentation</a> for more details.</p> the <a href="https://element-hq.github.io/synapse/v1.66/workers.html">worker documentation</a> for more details.</p>
<h1 id="upgrading-to-v1140"><a class="header" href="#upgrading-to-v1140">Upgrading to v1.14.0</a></h1> <h1 id="upgrading-to-v1140"><a class="header" href="#upgrading-to-v1140">Upgrading to v1.14.0</a></h1>
<p>This version includes a database update which is run as part of the <p>This version includes a database update which is run as part of the
upgrade, and which may take a couple of minutes in the case of a large upgrade, and which may take a couple of minutes in the case of a large
@ -1490,7 +1490,7 @@ INSERT INTO background_updates (update_name, progress_json, depends_on) VALUES
is configured to use SSO and a custom is configured to use SSO and a custom
<code>sso_redirect_confirm_template_dir</code> configuration then these templates <code>sso_redirect_confirm_template_dir</code> configuration then these templates
will need to be copied from will need to be copied from
<a href="https://github.com/matrix-org/synapse/tree/develop/synapse/res/templates"><code>synapse/res/templates</code></a> into that directory.</p> <a href="https://github.com/element-hq/synapse/tree/develop/synapse/res/templates"><code>synapse/res/templates</code></a> into that directory.</p>
<h2 id="synapse-sso-plugins-method-deprecation"><a class="header" href="#synapse-sso-plugins-method-deprecation">Synapse SSO Plugins Method Deprecation</a></h2> <h2 id="synapse-sso-plugins-method-deprecation"><a class="header" href="#synapse-sso-plugins-method-deprecation">Synapse SSO Plugins Method Deprecation</a></h2>
<p>Plugins using the <code>complete_sso_login</code> method of <p>Plugins using the <code>complete_sso_login</code> method of
<code>synapse.module_api.ModuleApi</code> should update to using the async/await <code>synapse.module_api.ModuleApi</code> should update to using the async/await
@ -1621,7 +1621,7 @@ included.</p>
<p>Synapse will expect these files to exist inside the configured template <p>Synapse will expect these files to exist inside the configured template
directory, and <strong>will fail to start</strong> if they are absent. To view the directory, and <strong>will fail to start</strong> if they are absent. To view the
default templates, see default templates, see
<a href="https://github.com/matrix-org/synapse/tree/master/synapse/res/templates">synapse/res/templates</a>.</p> <a href="https://github.com/element-hq/synapse/tree/master/synapse/res/templates">synapse/res/templates</a>.</p>
<h2 id="3pid-verification-changes"><a class="header" href="#3pid-verification-changes">3pid verification changes</a></h2> <h2 id="3pid-verification-changes"><a class="header" href="#3pid-verification-changes">3pid verification changes</a></h2>
<p><strong>Note: As of this release, users will be unable to add phone numbers or <p><strong>Note: As of this release, users will be unable to add phone numbers or
email addresses to their accounts, without changes to the Synapse email addresses to their accounts, without changes to the Synapse

View file

@ -124,10 +124,10 @@
<a href="../../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/administration/admin_api/background_updates.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/administration/admin_api/background_updates.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/administration/admin_api/federation.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/administration/admin_api/federation.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/administration/admin_api/README.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/administration/admin_api/README.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/administration/admin_api/registration_tokens.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/administration/admin_api/registration_tokens.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/administration/admin_faq.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/administration/admin_faq.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/administration/database_maintenance_tools.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/administration/database_maintenance_tools.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/administration/README.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/administration/README.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/administration/monitoring/reporting_homeserver_usage_statistics.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/administration/monitoring/reporting_homeserver_usage_statistics.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -227,6 +227,7 @@ consider using one of the following known implementations:</p>
<ul> <ul>
<li><a href="https://github.com/matrix-org/panopticon">Matrix.org's Panopticon</a></li> <li><a href="https://github.com/matrix-org/panopticon">Matrix.org's Panopticon</a></li>
<li><a href="https://gitlab.com/famedly/infra/services/barad-dur">Famedly's Barad-dûr</a></li> <li><a href="https://gitlab.com/famedly/infra/services/barad-dur">Famedly's Barad-dûr</a></li>
<li><a href="https://github.com/loelkes/synapse-usage-exporter">Synapse Usage Exporter</a> for Prometheus</li>
</ul> </ul>
</main> </main>

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/administration/monthly_active_users.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/administration/monthly_active_users.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/administration/request_log.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/administration/request_log.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -160,7 +160,7 @@
</div> </div>
<h1 id="request-log-format"><a class="header" href="#request-log-format">Request log format</a></h1> <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/matrix-org/synapse/tree/develop/synapse/http/site.py"><code>synapse/http/site.py</code></a> for details).</p> <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> <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 &quot;PUT /_matrix/federation/v1/send/1600000000000 HTTP/1.1&quot; &quot;Synapse/1.20.1&quot; [0 dbevts] <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 &quot;PUT /_matrix/federation/v1/send/1600000000000 HTTP/1.1&quot; &quot;Synapse/1.20.1&quot; [0 dbevts]
-AAAAAAAAAAAAAAAAAAAAA- -BBBBBBBBBBBBBBBBBBBBBB- -C- -DD- -EEEEEE- -FFFFFFFFF- -GG- -HHHHHHHHHHHHHHHHHHHHHHH- -IIIIII- -JJJJJJJ- -KKKKKK-, -LLLLLL- -MMMMMMM- -NNNNNN- O -P- -QQ- -RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR- -SSSSSSSSSSSS- -TTTTTT- -AAAAAAAAAAAAAAAAAAAAA- -BBBBBBBBBBBBBBBBBBBBBB- -C- -DD- -EEEEEE- -FFFFFFFFF- -GG- -HHHHHHHHHHHHHHHHHHHHHHH- -IIIIII- -JJJJJJJ- -KKKKKK-, -LLLLLL- -MMMMMMM- -NNNNNN- O -P- -QQ- -RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR- -SSSSSSSSSSSS- -TTTTTT-

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/administration/state_groups.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/administration/state_groups.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/administration/understanding_synapse_through_grafana_graphs.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/administration/understanding_synapse_through_grafana_graphs.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -163,11 +163,11 @@
<p>It is possible to monitor much of the internal state of Synapse using <a href="https://prometheus.io">Prometheus</a> <p>It is possible to monitor much of the internal state of Synapse using <a href="https://prometheus.io">Prometheus</a>
metrics and <a href="https://grafana.com/">Grafana</a>. metrics and <a href="https://grafana.com/">Grafana</a>.
A guide for configuring Synapse to provide metrics is available <a href="../../metrics-howto.html">here</a> A guide for configuring Synapse to provide metrics is available <a href="../../metrics-howto.html">here</a>
and information on setting up Grafana is <a href="https://github.com/matrix-org/synapse/tree/master/contrib/grafana">here</a>. and information on setting up Grafana is <a href="https://github.com/element-hq/synapse/tree/master/contrib/grafana">here</a>.
In this setup, Prometheus will periodically scrape the information Synapse provides and In this setup, Prometheus will periodically scrape the information Synapse provides and
store a record of it over time. Grafana is then used as an interface to query and store a record of it over time. Grafana is then used as an interface to query and
present this information through a series of pretty graphs.</p> present this information through a series of pretty graphs.</p>
<p>Once you have grafana set up, and assuming you're using <a href="https://github.com/matrix-org/synapse/blob/master/contrib/grafana/synapse.json">our grafana dashboard template</a>, look for the following graphs when debugging a slow/overloaded Synapse:</p> <p>Once you have grafana set up, and assuming you're using <a href="https://github.com/element-hq/synapse/blob/master/contrib/grafana/synapse.json">our grafana dashboard template</a>, look for the following graphs when debugging a slow/overloaded Synapse:</p>
<h2 id="message-event-send-time"><a class="header" href="#message-event-send-time">Message Event Send Time</a></h2> <h2 id="message-event-send-time"><a class="header" href="#message-event-send-time">Message Event Send Time</a></h2>
<p><img src="https://user-images.githubusercontent.com/1342360/82239409-a1c8e900-9930-11ea-8081-e4614e0c63f4.png" alt="image" /></p> <p><img src="https://user-images.githubusercontent.com/1342360/82239409-a1c8e900-9930-11ea-8081-e4614e0c63f4.png" alt="image" /></p>
<p>This, along with the CPU and Memory graphs, is a good way to check the general health of your Synapse instance. It represents how long it takes for a user on your homeserver to send a message.</p> <p>This, along with the CPU and Memory graphs, is a good way to check the general health of your Synapse instance. It represents how long it takes for a user on your homeserver to send a message.</p>
@ -194,7 +194,7 @@ present this information through a series of pretty graphs.</p>
<p>This is quite a useful graph. It shows how many times Synapse attempts to retrieve a piece of data from a cache which the cache did not contain, thus resulting in a call to the database. We can see here that the <code>_get_joined_profile_from_event_id</code> cache is being requested a lot, and often the data we're after is not cached.</p> <p>This is quite a useful graph. It shows how many times Synapse attempts to retrieve a piece of data from a cache which the cache did not contain, thus resulting in a call to the database. We can see here that the <code>_get_joined_profile_from_event_id</code> cache is being requested a lot, and often the data we're after is not cached.</p>
<p>Cross-referencing this with the Eviction Rate graph, which shows that entries are being evicted from <code>_get_joined_profile_from_event_id</code> quite often:</p> <p>Cross-referencing this with the Eviction Rate graph, which shows that entries are being evicted from <code>_get_joined_profile_from_event_id</code> quite often:</p>
<p><img src="https://user-images.githubusercontent.com/1342360/82240766-de95df80-9932-11ea-8c15-5acfc57c48da.png" alt="image" /></p> <p><img src="https://user-images.githubusercontent.com/1342360/82240766-de95df80-9932-11ea-8c15-5acfc57c48da.png" alt="image" /></p>
<p>we should probably consider raising the size of that cache by raising its cache factor (a multiplier value for the size of an individual cache). Information on doing so is available <a href="https://github.com/matrix-org/synapse/blob/ee421e524478c1ad8d43741c27379499c2f6135c/docs/sample_config.yaml#L608-L642">here</a> (note that the configuration of individual cache factors through the configuration file is available in Synapse v1.14.0+, whereas doing so through environment variables has been supported for a very long time). Note that this will increase Synapse's overall memory usage.</p> <p>we should probably consider raising the size of that cache by raising its cache factor (a multiplier value for the size of an individual cache). Information on doing so is available <a href="https://github.com/element-hq/synapse/blob/ee421e524478c1ad8d43741c27379499c2f6135c/docs/sample_config.yaml#L608-L642">here</a> (note that the configuration of individual cache factors through the configuration file is available in Synapse v1.14.0+, whereas doing so through environment variables has been supported for a very long time). Note that this will increase Synapse's overall memory usage.</p>
<h2 id="forward-extremities"><a class="header" href="#forward-extremities">Forward Extremities</a></h2> <h2 id="forward-extremities"><a class="header" href="#forward-extremities">Forward Extremities</a></h2>
<p><img src="https://user-images.githubusercontent.com/1342360/82241440-13566680-9934-11ea-8b88-ba468db937ed.png" alt="image" /></p> <p><img src="https://user-images.githubusercontent.com/1342360/82241440-13566680-9934-11ea-8b88-ba468db937ed.png" alt="image" /></p>
<p>Forward extremities are the leaf events at the end of a DAG in a room, aka events that have no children. The more that exist in a room, the more <a href="https://spec.matrix.org/v1.1/server-server-api/#room-state-resolution">state resolution</a> that Synapse needs to perform (hint: it's an expensive operation). While Synapse has code to prevent too many of these existing at one time in a room, bugs can sometimes make them crop up again.</p> <p>Forward extremities are the leaf events at the end of a DAG in a room, aka events that have no children. The more that exist in a room, the more <a href="https://spec.matrix.org/v1.1/server-server-api/#room-state-resolution">state resolution</a> that Synapse needs to perform (hint: it's an expensive operation). While Synapse has code to prevent too many of these existing at one time in a room, bugs can sometimes make them crop up again.</p>

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/administration/useful_sql_for_admins.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/administration/useful_sql_for_admins.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/configuration/config_documentation.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/configuration/config_documentation.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -625,7 +625,7 @@ for <a href="../../workers.html">workers</a> and containers without listener e.g
# that unwraps TLS. # that unwraps TLS.
# #
# If you plan to use a reverse proxy, please see # If you plan to use a reverse proxy, please see
# https://matrix-org.github.io/synapse/latest/reverse_proxy.html. # https://element-hq.github.io/synapse/latest/reverse_proxy.html.
# #
- port: 8008 - port: 8008
tls: false tls: false
@ -656,7 +656,7 @@ for <a href="../../workers.html">workers</a> and containers without listener e.g
# conflicts, and providing enhanced security through system file permissions. # conflicts, and providing enhanced security through system file permissions.
# #
# Note that x_forwarded will default to true, when using a UNIX socket. Please see # Note that x_forwarded will default to true, when using a UNIX socket. Please see
# https://matrix-org.github.io/synapse/latest/reverse_proxy.html. # https://element-hq.github.io/synapse/latest/reverse_proxy.html.
# #
- path: /run/synapse/main_public.sock - path: /run/synapse/main_public.sock
type: http type: http
@ -761,6 +761,12 @@ has missed. Disabled by default.</p>
notifications for new users. Enabled by default.</p> notifications for new users. Enabled by default.</p>
</li> </li>
<li> <li>
<p><code>notif_delay_before_mail</code>: The time to wait before emailing about a notification.
This gives the user a chance to view the message via push or an open client.
Defaults to 10 minutes.</p>
<p><em>New in Synapse 1.99.0.</em></p>
</li>
<li>
<p><code>client_base_url</code>: Custom URL for client links within the email notifications. By default <p><code>client_base_url</code>: Custom URL for client links within the email notifications. By default
links will be based on &quot;https://matrix.to&quot;. (This setting used to be called <code>riot_base_url</code>; links will be based on &quot;https://matrix.to&quot;. (This setting used to be called <code>riot_base_url</code>;
the old name is still supported for backwards-compatibility but is now deprecated.)</p> the old name is still supported for backwards-compatibility but is now deprecated.)</p>
@ -1361,7 +1367,7 @@ caches:
</code></pre> </code></pre>
<p>If you are running multiple workers, you must individually update the worker <p>If you are running multiple workers, you must individually update the worker
config file and send this signal to each worker process.</p> config file and send this signal to each worker process.</p>
<p>If you're using the <a href="https://github.com/matrix-org/synapse/blob/develop/contrib/systemd/matrix-synapse.service">example systemd service</a> <p>If you're using the <a href="https://github.com/element-hq/synapse/blob/develop/contrib/systemd/matrix-synapse.service">example systemd service</a>
file in Synapse's <code>contrib</code> directory, you can send a <code>SIGHUP</code> signal by using file in Synapse's <code>contrib</code> directory, you can send a <code>SIGHUP</code> signal by using
<code>systemctl reload matrix-synapse</code>.</p> <code>systemctl reload matrix-synapse</code>.</p>
<hr /> <hr />
@ -2370,7 +2376,7 @@ existing sessions until they are refreshed.</p>
<pre><code class="language-yaml">refreshable_access_token_lifetime: 10m <pre><code class="language-yaml">refreshable_access_token_lifetime: 10m
</code></pre> </code></pre>
<hr /> <hr />
<h3 id="refresh_token_lifetime-24h"><a class="header" href="#refresh_token_lifetime-24h"><code>refresh_token_lifetime: 24h</code></a></h3> <h3 id="refresh_token_lifetime"><a class="header" href="#refresh_token_lifetime"><code>refresh_token_lifetime</code></a></h3>
<p>Time that a refresh token remains valid for (provided that it is not <p>Time that a refresh token remains valid for (provided that it is not
exchanged for another one first). exchanged for another one first).
This option can be used to automatically log-out inactive sessions. This option can be used to automatically log-out inactive sessions.
@ -2440,6 +2446,9 @@ Defaults to false.</p>
<h3 id="sentry"><a class="header" href="#sentry"><code>sentry</code></a></h3> <h3 id="sentry"><a class="header" href="#sentry"><code>sentry</code></a></h3>
<p>Use this option to enable sentry integration. Provide the DSN assigned to you by sentry <p>Use this option to enable sentry integration. Provide the DSN assigned to you by sentry
with the <code>dsn</code> setting.</p> with the <code>dsn</code> setting.</p>
<p>An optional <code>environment</code> field can be used to specify an environment. This allows
for log maintenance based on different environments, ensuring better organization
and analysis..</p>
<p>NOTE: While attempts are made to ensure that the logs don't contain <p>NOTE: While attempts are made to ensure that the logs don't contain
any sensitive information, this cannot be guaranteed. By enabling any sensitive information, this cannot be guaranteed. By enabling
this option the sentry server may therefore receive sensitive this option the sentry server may therefore receive sensitive
@ -2447,6 +2456,7 @@ information, and it in turn may then disseminate sensitive information
through insecure notification channels if so configured.</p> through insecure notification channels if so configured.</p>
<p>Example configuration:</p> <p>Example configuration:</p>
<pre><code class="language-yaml">sentry: <pre><code class="language-yaml">sentry:
environment: &quot;production&quot;
dsn: &quot;...&quot; dsn: &quot;...&quot;
</code></pre> </code></pre>
<hr /> <hr />
@ -3258,7 +3268,7 @@ validation will fail without configuring audiences.</li>
<li><code>enabled</code>: Defaults to true. <li><code>enabled</code>: Defaults to true.
Set to false to disable password authentication. Set to false to disable password authentication.
Set to <code>only_for_reauth</code> to allow users with existing passwords to use them Set to <code>only_for_reauth</code> to allow users with existing passwords to use them
to log in and reauthenticate, whilst preventing new users from setting passwords.</li> to reauthenticate (not log in), whilst preventing new users from setting passwords.</li>
<li><code>localdb_enabled</code>: Set to false to disable authentication against the local password <li><code>localdb_enabled</code>: Set to false to disable authentication against the local password
database. This is ignored if <code>enabled</code> is false, and is only useful database. This is ignored if <code>enabled</code> is false, and is only useful
if you have other <code>password_providers</code>. Defaults to true.</li> if you have other <code>password_providers</code>. Defaults to true.</li>
@ -3473,15 +3483,20 @@ notices.</p>
<li><code>system_mxid_display_name</code>: set the display name of the &quot;notices&quot; user</li> <li><code>system_mxid_display_name</code>: set the display name of the &quot;notices&quot; user</li>
<li><code>system_mxid_avatar_url</code>: set the avatar for the &quot;notices&quot; user</li> <li><code>system_mxid_avatar_url</code>: set the avatar for the &quot;notices&quot; user</li>
<li><code>room_name</code>: set the room name of the server notices room</li> <li><code>room_name</code>: set the room name of the server notices room</li>
<li><code>room_avatar_url</code>: optional string. The room avatar to use for server notice rooms. If set to the empty string <code>&quot;&quot;</code>, notice rooms will not be given an avatar. Defaults to the empty string. <em>Added in Synapse 1.99.0.</em></li>
<li><code>room_topic</code>: optional string. The topic to use for server notice rooms. If set to the empty string <code>&quot;&quot;</code>, notice rooms will not be given a topic. Defaults to the empty string. <em>Added in Synapse 1.99.0.</em></li>
<li><code>auto_join</code>: boolean. If true, the user will be automatically joined to the room instead of being invited. <li><code>auto_join</code>: boolean. If true, the user will be automatically joined to the room instead of being invited.
Defaults to false. <em>Added in Synapse 1.98.0.</em></li> Defaults to false. <em>Added in Synapse 1.98.0.</em></li>
</ul> </ul>
<p>Note that the name, topic and avatar of existing server notice rooms will only be updated when a new notice event is sent.</p>
<p>Example configuration:</p> <p>Example configuration:</p>
<pre><code class="language-yaml">server_notices: <pre><code class="language-yaml">server_notices:
system_mxid_localpart: notices system_mxid_localpart: notices
system_mxid_display_name: &quot;Server Notices&quot; system_mxid_display_name: &quot;Server Notices&quot;
system_mxid_avatar_url: &quot;mxc://server.com/oumMVlgDnLYFaPVkExemNVVZ&quot; system_mxid_avatar_url: &quot;mxc://example.com/oumMVlgDnLYFaPVkExemNVVZ&quot;
room_name: &quot;Server Notices&quot; room_name: &quot;Server Notices&quot;
room_avatar_url: &quot;mxc://example.com/oumMVlgDnLYFaPVkExemNVVZ&quot;
room_topic: &quot;Room used by your server admin to notice you of important information&quot;
auto_join: true auto_join: true
</code></pre> </code></pre>
<hr /> <hr />

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/configuration/homeserver_sample_config.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/configuration/homeserver_sample_config.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -172,12 +172,12 @@ a fresh config using Synapse by following the instructions in
<pre><code class="language-yaml"># This file is maintained as an up-to-date snapshot of the default <pre><code class="language-yaml"># This file is maintained as an up-to-date snapshot of the default
# homeserver.yaml configuration generated by Synapse. You can find a # homeserver.yaml configuration generated by Synapse. You can find a
# complete accounting of possible configuration options at # complete accounting of possible configuration options at
# https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html # https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html
# #
# It is *not* intended to be copied and used as the basis for a real # It is *not* intended to be copied and used as the basis for a real
# homeserver.yaml. Instead, if you are starting from scratch, please generate # homeserver.yaml. Instead, if you are starting from scratch, please generate
# a fresh config using Synapse by following the instructions in # a fresh config using Synapse by following the instructions in
# https://matrix-org.github.io/synapse/latest/setup/installation.html. # https://element-hq.github.io/synapse/latest/setup/installation.html.
# #
################################################################################ ################################################################################
@ -191,7 +191,7 @@ a fresh config using Synapse by following the instructions in
# #
# For more information on how to configure Synapse, including a complete accounting of # For more information on how to configure Synapse, including a complete accounting of
# each option, go to docs/usage/configuration/config_documentation.md or # each option, go to docs/usage/configuration/config_documentation.md or
# https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html # https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html
server_name: &quot;SERVERNAME&quot; server_name: &quot;SERVERNAME&quot;
pid_file: DATADIR/homeserver.pid pid_file: DATADIR/homeserver.pid
listeners: listeners:

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/configuration/README.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/configuration/README.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>

View file

@ -124,10 +124,10 @@
<a href="../../print.html" title="Print this book" aria-label="Print this book"> <a href="../../print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i> <i id="print-button" class="fa fa-print"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse" title="Git repository" aria-label="Git repository"> <a href="https://github.com/element-hq/synapse" title="Git repository" aria-label="Git repository">
<i id="git-repository-button" class="fa fa-github"></i> <i id="git-repository-button" class="fa fa-github"></i>
</a> </a>
<a href="https://github.com/matrix-org/synapse/edit/develop/docs/usage/configuration/logging_sample_config.md" title="Suggest an edit" aria-label="Suggest an edit"> <a href="https://github.com/element-hq/synapse/edit/develop/docs/usage/configuration/logging_sample_config.md" title="Suggest an edit" aria-label="Suggest an edit">
<i id="git-edit-button" class="fa fa-edit"></i> <i id="git-edit-button" class="fa fa-edit"></i>
</a> </a>
</div> </div>
@ -177,7 +177,7 @@ It should be named <code>&lt;SERVERNAME&gt;.log.config</code> by default.</p>
# be ingested by ELK stacks. See [2] for details. # be ingested by ELK stacks. See [2] for details.
# #
# [1]: https://docs.python.org/3/library/logging.config.html#configuration-dictionary-schema # [1]: https://docs.python.org/3/library/logging.config.html#configuration-dictionary-schema
# [2]: https://matrix-org.github.io/synapse/latest/structured_logging.html # [2]: https://element-hq.github.io/synapse/latest/structured_logging.html
version: 1 version: 1

Some files were not shown because too many files have changed in this diff Show more