This commit is contained in:
anoadragon453 2022-08-16 16:38:40 +00:00
parent f90063d2f7
commit aa1a96edc2
8 changed files with 66 additions and 90 deletions

View File

@ -362,7 +362,7 @@ class MyAuthProvider:
return None return None
if self.credentials.get(username) == login_dict.get("my_field"): if self.credentials.get(username) == login_dict.get("my_field"):
return self.api.get_qualified_user_id(username) return (self.api.get_qualified_user_id(username), None)
async def check_pass( async def check_pass(
self, self,
@ -379,7 +379,7 @@ class MyAuthProvider:
return None return None
if self.credentials.get(username) == login_dict.get("password"): if self.credentials.get(username) == login_dict.get("password"):
return self.api.get_qualified_user_id(username) return (self.api.get_qualified_user_id(username), None)
</code></pre> </code></pre>
</main> </main>

View File

@ -3214,28 +3214,6 @@ In addition, each setting has an example of its usage, with the proper indentati
shown.</p> shown.</p>
</li> </li>
</ul> </ul>
<h2 id="contents"><a class="header" href="#contents">Contents</a></h2>
<p><a href="usage/configuration/config_documentation.html#modules">Modules</a></p>
<p><a href="usage/configuration/config_documentation.html#server">Server</a></p>
<p><a href="usage/configuration/config_documentation.html#homeserver-blocking">Homeserver Blocking</a></p>
<p><a href="usage/configuration/config_documentation.html#tls">TLS</a></p>
<p><a href="usage/configuration/config_documentation.html#federation">Federation</a></p>
<p><a href="usage/configuration/config_documentation.html#caching">Caching</a></p>
<p><a href="usage/configuration/config_documentation.html#database">Database</a></p>
<p><a href="usage/configuration/config_documentation.html#logging">Logging</a></p>
<p><a href="usage/configuration/config_documentation.html#ratelimiting">Ratelimiting</a></p>
<p><a href="usage/configuration/config_documentation.html#media-store">Media Store</a></p>
<p><a href="usage/configuration/config_documentation.html#captcha">Captcha</a></p>
<p><a href="usage/configuration/config_documentation.html#turn">TURN</a></p>
<p><a href="usage/configuration/config_documentation.html#registration">Registration</a></p>
<p><a href="usage/configuration/config_documentation.html#api-configuration">API Configuration</a></p>
<p><a href="usage/configuration/config_documentation.html#signing-keys">Signing Keys</a></p>
<p><a href="usage/configuration/config_documentation.html#single-sign-on-integration">Single Sign On Integration</a></p>
<p><a href="usage/configuration/config_documentation.html#push">Push</a></p>
<p><a href="usage/configuration/config_documentation.html#rooms">Rooms</a></p>
<p><a href="usage/configuration/config_documentation.html#opentracing">Opentracing</a></p>
<p><a href="usage/configuration/config_documentation.html#workers">Workers</a></p>
<p><a href="usage/configuration/config_documentation.html#background-updates">Background Updates</a></p>
<h2 id="modules"><a class="header" href="#modules">Modules</a></h2> <h2 id="modules"><a class="header" href="#modules">Modules</a></h2>
<p>Server admins can expand Synapse's functionality with external modules.</p> <p>Server admins can expand Synapse's functionality with external modules.</p>
<p>See <a href="usage/configuration/../../modules/index.html">here</a> for more <p>See <a href="usage/configuration/../../modules/index.html">here</a> for more
@ -3524,7 +3502,8 @@ on this port. Sub-options for each resource are:</p>
<p><code>names</code>: a list of names of HTTP resources. See below for a list of valid resource names.</p> <p><code>names</code>: a list of names of HTTP resources. See below for a list of valid resource names.</p>
</li> </li>
<li> <li>
<p><code>compress</code>: set to true to enable HTTP compression for this resource.</p> <p><code>compress</code>: set to true to enable gzip compression on HTTP bodies for this resource. This is currently only supported with the
<code>client</code>, <code>consent</code> and <code>metrics</code> resources.</p>
</li> </li>
</ul> </ul>
</li> </li>
@ -4022,20 +4001,20 @@ on this homeserver.</p>
</code></pre> </code></pre>
<hr /> <hr />
<h2 id="caching"><a class="header" href="#caching">Caching</a></h2> <h2 id="caching"><a class="header" href="#caching">Caching</a></h2>
<p>Options related to caching</p> <p>Options related to caching.</p>
<hr /> <hr />
<h3 id="event_cache_size"><a class="header" href="#event_cache_size"><code>event_cache_size</code></a></h3> <h3 id="event_cache_size"><a class="header" href="#event_cache_size"><code>event_cache_size</code></a></h3>
<p>The number of events to cache in memory. Not affected by <p>The number of events to cache in memory. Not affected by
<code>caches.global_factor</code>. Defaults to 10K.</p> <code>caches.global_factor</code> and is not part of the <code>caches</code> section. Defaults to 10K.</p>
<p>Example configuration:</p> <p>Example configuration:</p>
<pre><code class="language-yaml">event_cache_size: 15K <pre><code class="language-yaml">event_cache_size: 15K
</code></pre> </code></pre>
<hr /> <hr />
<h3 id="cache-and-associated-values"><a class="header" href="#cache-and-associated-values"><code>cache</code> and associated values</a></h3> <h3 id="caches-and-associated-values"><a class="header" href="#caches-and-associated-values"><code>caches</code> and associated values</a></h3>
<p>A cache 'factor' is a multiplier that can be applied to each of <p>A cache 'factor' is a multiplier that can be applied to each of
Synapse's caches in order to increase or decrease the maximum Synapse's caches in order to increase or decrease the maximum
number of entries that can be stored.</p> number of entries that can be stored.</p>
<p>Caching can be configured through the following sub-options:</p> <p><code>caches</code> can be configured through the following sub-options:</p>
<ul> <ul>
<li> <li>
<p><code>global_factor</code>: Controls the global cache factor, which is the default cache factor <p><code>global_factor</code>: Controls the global cache factor, which is the default cache factor
@ -4100,7 +4079,8 @@ from being emptied while Synapse is evicting due to memory. There is no default
</li> </li>
</ul> </ul>
<p>Example configuration:</p> <p>Example configuration:</p>
<pre><code class="language-yaml">caches: <pre><code class="language-yaml">event_cache_size: 15K
caches:
global_factor: 1.0 global_factor: 1.0
per_cache_factors: per_cache_factors:
get_users_who_share_room_with_user: 2.0 get_users_who_share_room_with_user: 2.0
@ -4691,7 +4671,7 @@ blacklisted.</p>
<pre><code class="language-yaml">max_spider_size: 8M <pre><code class="language-yaml">max_spider_size: 8M
</code></pre> </code></pre>
<hr /> <hr />
<h3 id="url_preview_language"><a class="header" href="#url_preview_language"><code>url_preview_language</code></a></h3> <h3 id="url_preview_accept_language"><a class="header" href="#url_preview_accept_language"><code>url_preview_accept_language</code></a></h3>
<p>A list of values for the Accept-Language HTTP header used when <p>A list of values for the Accept-Language HTTP header used when
downloading webpages during URL preview generation. This allows downloading webpages during URL preview generation. This allows
Synapse to specify the preferred languages that URL previews should Synapse to specify the preferred languages that URL previews should
@ -5189,9 +5169,14 @@ Implicitly enables MAU tracking for application service users.</p>
</code></pre> </code></pre>
<hr /> <hr />
<h3 id="macaroon_secret_key"><a class="header" href="#macaroon_secret_key"><code>macaroon_secret_key</code></a></h3> <h3 id="macaroon_secret_key"><a class="header" href="#macaroon_secret_key"><code>macaroon_secret_key</code></a></h3>
<p>A secret which is used to sign access tokens. If none is specified, <p>A secret which is used to sign</p>
the <code>registration_shared_secret</code> is used, if one is given; otherwise, <ul>
a secret key is derived from the signing key.</p> <li>access token for guest users,</li>
<li>short-term login token used during SSO logins (OIDC or SAML2) and</li>
<li>token used for unsubscribing from email notifications.</li>
</ul>
<p>If none is specified, the <code>registration_shared_secret</code> is used, if one is given;
otherwise, a secret key is derived from the signing key.</p>
<p>Example configuration:</p> <p>Example configuration:</p>
<pre><code class="language-yaml">macaroon_secret_key: &lt;PRIVATE STRING&gt; <pre><code class="language-yaml">macaroon_secret_key: &lt;PRIVATE STRING&gt;
</code></pre> </code></pre>
@ -7388,7 +7373,7 @@ Matrix ID based on the SSO attributes, or if the user should be allowed to
choose their own username.</p> choose their own username.</p>
<p>In the first case - where users are automatically allocated a Matrix ID - it is <p>In the first case - where users are automatically allocated a Matrix ID - it is
the responsibility of the mapping provider to normalise the SSO attributes and the responsibility of the mapping provider to normalise the SSO attributes and
map them to a valid Matrix ID. The <a href="https://matrix.org/docs/spec/appendices#user-identifiers">specification for Matrix map them to a valid Matrix ID. The <a href="https://spec.matrix.org/latest/appendices/#user-identifiers">specification for Matrix
IDs</a> has some IDs</a> has some
information about what is considered valid.</p> information about what is considered valid.</p>
<p>If the mapping provider does not assign a Matrix ID, then Synapse will <p>If the mapping provider does not assign a Matrix ID, then Synapse will
@ -7400,8 +7385,9 @@ as Synapse). The Synapse config is then modified to point to the mapping provide
(and optionally provide additional configuration for it).</p> (and optionally provide additional configuration for it).</p>
<h2 id="openid-mapping-providers"><a class="header" href="#openid-mapping-providers">OpenID Mapping Providers</a></h2> <h2 id="openid-mapping-providers"><a class="header" href="#openid-mapping-providers">OpenID Mapping Providers</a></h2>
<p>The OpenID mapping provider can be customized by editing the <p>The OpenID mapping provider can be customized by editing the
<code>oidc_config.user_mapping_provider.module</code> config option.</p> <a href="usage/configuration/config_documentation.html#oidc_providers"><code>oidc_providers.user_mapping_provider.module</code></a>
<p><code>oidc_config.user_mapping_provider.config</code> allows you to provide custom config option.</p>
<p><code>oidc_providers.user_mapping_provider.config</code> allows you to provide custom
configuration options to the module. Check with the module's documentation for configuration options to the module. Check with the module's documentation for
what options it provides (if any). The options listed by default are for the what options it provides (if any). The options listed by default are for the
user mapping provider built in to Synapse. If using a custom module, you should user mapping provider built in to Synapse. If using a custom module, you should
@ -7426,7 +7412,7 @@ the module here.</li>
<li>Arguments: <li>Arguments:
<ul> <ul>
<li><code>config</code> - A <code>dict</code> representing the parsed content of the <li><code>config</code> - A <code>dict</code> representing the parsed content of the
<code>oidc_config.user_mapping_provider.config</code> homeserver config option. <code>oidc_providers.user_mapping_provider.config</code> homeserver config option.
Runs on homeserver startup. Providers should extract and validate Runs on homeserver startup. Providers should extract and validate
any option values they need here.</li> any option values they need here.</li>
</ul> </ul>
@ -7496,7 +7482,7 @@ further requests to the OpenID provider.</li>
<p>Returns a dictionary that is suitable to be serialized to JSON. This <p>Returns a dictionary that is suitable to be serialized to JSON. This
will be returned as part of the response during a successful login.</p> will be returned as part of the response during a successful login.</p>
<p>Note that care should be taken to not overwrite any of the parameters <p>Note that care should be taken to not overwrite any of the parameters
usually returned as part of the <a href="https://matrix.org/docs/spec/client_server/latest#post-matrix-client-r0-login">login response</a>.</p> usually returned as part of the <a href="https://spec.matrix.org/latest/client-server-api/#post_matrixclientv3login">login response</a>.</p>
</li> </li>
</ul> </ul>
</li> </li>
@ -7507,7 +7493,8 @@ 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/matrix-org/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
<code>saml2_config.user_mapping_provider.module</code> config option.</p> <a href="docs/usage/configuration/config_documentation.html#saml2_config"><code>saml2_config.user_mapping_provider.module</code></a>
config option.</p>
<p><code>saml2_config.user_mapping_provider.config</code> allows you to provide custom <p><code>saml2_config.user_mapping_provider.config</code> allows you to provide custom
configuration options to the module. Check with the module's documentation for configuration options to the module. Check with the module's documentation for
what options it provides (if any). The options listed by default are for the what options it provides (if any). The options listed by default are for the
@ -9430,7 +9417,7 @@ class MyAuthProvider:
return None return None
if self.credentials.get(username) == login_dict.get(&quot;my_field&quot;): if self.credentials.get(username) == login_dict.get(&quot;my_field&quot;):
return self.api.get_qualified_user_id(username) return (self.api.get_qualified_user_id(username), None)
async def check_pass( async def check_pass(
self, self,
@ -9447,7 +9434,7 @@ class MyAuthProvider:
return None return None
if self.credentials.get(username) == login_dict.get(&quot;password&quot;): if self.credentials.get(username) == login_dict.get(&quot;password&quot;):
return self.api.get_qualified_user_id(username) return (self.api.get_qualified_user_id(username), None)
</code></pre> </code></pre>
<div style="break-before: page; page-break-before: always;"></div><h1 id="background-update-controller-callbacks"><a class="header" href="#background-update-controller-callbacks">Background update controller callbacks</a></h1> <div style="break-before: page; page-break-before: always;"></div><h1 id="background-update-controller-callbacks"><a class="header" href="#background-update-controller-callbacks">Background update controller callbacks</a></h1>
<p>Background update controller callbacks allow module developers to control (e.g. rate-limit) <p>Background update controller callbacks allow module developers to control (e.g. rate-limit)
@ -10282,7 +10269,8 @@ the changes being applied at a glance.</p>
<h2 id="authenticate-as-a-server-admin"><a class="header" href="#authenticate-as-a-server-admin">Authenticate as a server admin</a></h2> <h2 id="authenticate-as-a-server-admin"><a class="header" href="#authenticate-as-a-server-admin">Authenticate as a server admin</a></h2>
<p>Many of the API calls in the admin api will require an <code>access_token</code> for a <p>Many of the API calls in the admin api will require an <code>access_token</code> for a
server admin. (Note that a server admin is distinct from a room admin.)</p> server admin. (Note that a server admin is distinct from a room admin.)</p>
<p>A user can be marked as a server admin by updating the database directly, e.g.:</p> <p>An existing user can be marked as a server admin by updating the database directly.</p>
<p>Check your <a href="usage/administration/admin_api/config_documentation.html#database">database settings</a> in the configuration file, connect to the correct database using either <code>psql [database name]</code> (if using PostgreSQL) or <code>sqlite3 path/to/your/database.db</code> (if using SQLite) and elevate the user <code>@foo:bar.com</code> to administrator.</p>
<pre><code class="language-sql">UPDATE users SET admin = 1 WHERE name = '@foo:bar.com'; <pre><code class="language-sql">UPDATE users SET admin = 1 WHERE name = '@foo:bar.com';
</code></pre> </code></pre>
<p>A new server admin user can also be created using the <code>register_new_matrix_user</code> <p>A new server admin user can also be created using the <code>register_new_matrix_user</code>
@ -10887,11 +10875,11 @@ def generate_mac(nonce, user, password, admin=False, user_type=None):
<div style="break-before: page; page-break-before: always;"></div><h1 id="registration-tokens"><a class="header" href="#registration-tokens">Registration Tokens</a></h1> <div style="break-before: page; page-break-before: always;"></div><h1 id="registration-tokens"><a class="header" href="#registration-tokens">Registration Tokens</a></h1>
<p>This API allows you to manage tokens which can be used to authenticate <p>This API allows you to manage tokens which can be used to authenticate
registration requests, as proposed in registration requests, as proposed in
<a href="https://github.com/matrix-org/matrix-doc/blob/main/proposals/3231-token-authenticated-registration.md">MSC3231</a>. <a href="https://github.com/matrix-org/matrix-doc/blob/main/proposals/3231-token-authenticated-registration.md">MSC3231</a>
and stabilised in version 1.2 of the Matrix specification.
To use it, you will need to enable the <code>registration_requires_token</code> config To use it, you will need to enable the <code>registration_requires_token</code> config
option, and authenticate by providing an <code>access_token</code> for a server admin: option, and authenticate by providing an <code>access_token</code> for a server admin:
see <a href="usage/administration/admin_api/../../usage/administration/admin_api">Admin API</a>. see <a href="usage/administration/admin_api/../admin_api">Admin API</a>.</p>
Note that this API is still experimental; not all clients may support it yet.</p>
<h2 id="registration-token-objects"><a class="header" href="#registration-token-objects">Registration token objects</a></h2> <h2 id="registration-token-objects"><a class="header" href="#registration-token-objects">Registration token objects</a></h2>
<p>Most endpoints make use of JSON objects that contain details about tokens. <p>Most endpoints make use of JSON objects that contain details about tokens.
These objects have the following fields:</p> These objects have the following fields:</p>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -164,7 +164,7 @@ Matrix ID based on the SSO attributes, or if the user should be allowed to
choose their own username.</p> choose their own username.</p>
<p>In the first case - where users are automatically allocated a Matrix ID - it is <p>In the first case - where users are automatically allocated a Matrix ID - it is
the responsibility of the mapping provider to normalise the SSO attributes and the responsibility of the mapping provider to normalise the SSO attributes and
map them to a valid Matrix ID. The <a href="https://matrix.org/docs/spec/appendices#user-identifiers">specification for Matrix map them to a valid Matrix ID. The <a href="https://spec.matrix.org/latest/appendices/#user-identifiers">specification for Matrix
IDs</a> has some IDs</a> has some
information about what is considered valid.</p> information about what is considered valid.</p>
<p>If the mapping provider does not assign a Matrix ID, then Synapse will <p>If the mapping provider does not assign a Matrix ID, then Synapse will
@ -176,8 +176,9 @@ as Synapse). The Synapse config is then modified to point to the mapping provide
(and optionally provide additional configuration for it).</p> (and optionally provide additional configuration for it).</p>
<h2 id="openid-mapping-providers"><a class="header" href="#openid-mapping-providers">OpenID Mapping Providers</a></h2> <h2 id="openid-mapping-providers"><a class="header" href="#openid-mapping-providers">OpenID Mapping Providers</a></h2>
<p>The OpenID mapping provider can be customized by editing the <p>The OpenID mapping provider can be customized by editing the
<code>oidc_config.user_mapping_provider.module</code> config option.</p> <a href="usage/configuration/config_documentation.html#oidc_providers"><code>oidc_providers.user_mapping_provider.module</code></a>
<p><code>oidc_config.user_mapping_provider.config</code> allows you to provide custom config option.</p>
<p><code>oidc_providers.user_mapping_provider.config</code> allows you to provide custom
configuration options to the module. Check with the module's documentation for configuration options to the module. Check with the module's documentation for
what options it provides (if any). The options listed by default are for the what options it provides (if any). The options listed by default are for the
user mapping provider built in to Synapse. If using a custom module, you should user mapping provider built in to Synapse. If using a custom module, you should
@ -202,7 +203,7 @@ the module here.</li>
<li>Arguments: <li>Arguments:
<ul> <ul>
<li><code>config</code> - A <code>dict</code> representing the parsed content of the <li><code>config</code> - A <code>dict</code> representing the parsed content of the
<code>oidc_config.user_mapping_provider.config</code> homeserver config option. <code>oidc_providers.user_mapping_provider.config</code> homeserver config option.
Runs on homeserver startup. Providers should extract and validate Runs on homeserver startup. Providers should extract and validate
any option values they need here.</li> any option values they need here.</li>
</ul> </ul>
@ -272,7 +273,7 @@ further requests to the OpenID provider.</li>
<p>Returns a dictionary that is suitable to be serialized to JSON. This <p>Returns a dictionary that is suitable to be serialized to JSON. This
will be returned as part of the response during a successful login.</p> will be returned as part of the response during a successful login.</p>
<p>Note that care should be taken to not overwrite any of the parameters <p>Note that care should be taken to not overwrite any of the parameters
usually returned as part of the <a href="https://matrix.org/docs/spec/client_server/latest#post-matrix-client-r0-login">login response</a>.</p> usually returned as part of the <a href="https://spec.matrix.org/latest/client-server-api/#post_matrixclientv3login">login response</a>.</p>
</li> </li>
</ul> </ul>
</li> </li>
@ -283,7 +284,8 @@ 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/matrix-org/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
<code>saml2_config.user_mapping_provider.module</code> config option.</p> <a href="docs/usage/configuration/config_documentation.html#saml2_config"><code>saml2_config.user_mapping_provider.module</code></a>
config option.</p>
<p><code>saml2_config.user_mapping_provider.config</code> allows you to provide custom <p><code>saml2_config.user_mapping_provider.config</code> allows you to provide custom
configuration options to the module. Check with the module's documentation for configuration options to the module. Check with the module's documentation for
what options it provides (if any). The options listed by default are for the what options it provides (if any). The options listed by default are for the

View File

@ -150,7 +150,8 @@
<h2 id="authenticate-as-a-server-admin"><a class="header" href="#authenticate-as-a-server-admin">Authenticate as a server admin</a></h2> <h2 id="authenticate-as-a-server-admin"><a class="header" href="#authenticate-as-a-server-admin">Authenticate as a server admin</a></h2>
<p>Many of the API calls in the admin api will require an <code>access_token</code> for a <p>Many of the API calls in the admin api will require an <code>access_token</code> for a
server admin. (Note that a server admin is distinct from a room admin.)</p> server admin. (Note that a server admin is distinct from a room admin.)</p>
<p>A user can be marked as a server admin by updating the database directly, e.g.:</p> <p>An existing user can be marked as a server admin by updating the database directly.</p>
<p>Check your <a href="config_documentation.html#database">database settings</a> in the configuration file, connect to the correct database using either <code>psql [database name]</code> (if using PostgreSQL) or <code>sqlite3 path/to/your/database.db</code> (if using SQLite) and elevate the user <code>@foo:bar.com</code> to administrator.</p>
<pre><code class="language-sql">UPDATE users SET admin = 1 WHERE name = '@foo:bar.com'; <pre><code class="language-sql">UPDATE users SET admin = 1 WHERE name = '@foo:bar.com';
</code></pre> </code></pre>
<p>A new server admin user can also be created using the <code>register_new_matrix_user</code> <p>A new server admin user can also be created using the <code>register_new_matrix_user</code>

View File

@ -149,11 +149,11 @@
<h1 id="registration-tokens"><a class="header" href="#registration-tokens">Registration Tokens</a></h1> <h1 id="registration-tokens"><a class="header" href="#registration-tokens">Registration Tokens</a></h1>
<p>This API allows you to manage tokens which can be used to authenticate <p>This API allows you to manage tokens which can be used to authenticate
registration requests, as proposed in registration requests, as proposed in
<a href="https://github.com/matrix-org/matrix-doc/blob/main/proposals/3231-token-authenticated-registration.md">MSC3231</a>. <a href="https://github.com/matrix-org/matrix-doc/blob/main/proposals/3231-token-authenticated-registration.md">MSC3231</a>
and stabilised in version 1.2 of the Matrix specification.
To use it, you will need to enable the <code>registration_requires_token</code> config To use it, you will need to enable the <code>registration_requires_token</code> config
option, and authenticate by providing an <code>access_token</code> for a server admin: option, and authenticate by providing an <code>access_token</code> for a server admin:
see <a href="../../usage/administration/admin_api">Admin API</a>. see <a href="../admin_api">Admin API</a>.</p>
Note that this API is still experimental; not all clients may support it yet.</p>
<h2 id="registration-token-objects"><a class="header" href="#registration-token-objects">Registration token objects</a></h2> <h2 id="registration-token-objects"><a class="header" href="#registration-token-objects">Registration token objects</a></h2>
<p>Most endpoints make use of JSON objects that contain details about tokens. <p>Most endpoints make use of JSON objects that contain details about tokens.
These objects have the following fields:</p> These objects have the following fields:</p>

View File

@ -213,28 +213,6 @@ In addition, each setting has an example of its usage, with the proper indentati
shown.</p> shown.</p>
</li> </li>
</ul> </ul>
<h2 id="contents"><a class="header" href="#contents">Contents</a></h2>
<p><a href="#modules">Modules</a></p>
<p><a href="#server">Server</a></p>
<p><a href="#homeserver-blocking">Homeserver Blocking</a></p>
<p><a href="#tls">TLS</a></p>
<p><a href="#federation">Federation</a></p>
<p><a href="#caching">Caching</a></p>
<p><a href="#database">Database</a></p>
<p><a href="#logging">Logging</a></p>
<p><a href="#ratelimiting">Ratelimiting</a></p>
<p><a href="#media-store">Media Store</a></p>
<p><a href="#captcha">Captcha</a></p>
<p><a href="#turn">TURN</a></p>
<p><a href="#registration">Registration</a></p>
<p><a href="#api-configuration">API Configuration</a></p>
<p><a href="#signing-keys">Signing Keys</a></p>
<p><a href="#single-sign-on-integration">Single Sign On Integration</a></p>
<p><a href="#push">Push</a></p>
<p><a href="#rooms">Rooms</a></p>
<p><a href="#opentracing">Opentracing</a></p>
<p><a href="#workers">Workers</a></p>
<p><a href="#background-updates">Background Updates</a></p>
<h2 id="modules"><a class="header" href="#modules">Modules</a></h2> <h2 id="modules"><a class="header" href="#modules">Modules</a></h2>
<p>Server admins can expand Synapse's functionality with external modules.</p> <p>Server admins can expand Synapse's functionality with external modules.</p>
<p>See <a href="../../modules/index.html">here</a> for more <p>See <a href="../../modules/index.html">here</a> for more
@ -523,7 +501,8 @@ on this port. Sub-options for each resource are:</p>
<p><code>names</code>: a list of names of HTTP resources. See below for a list of valid resource names.</p> <p><code>names</code>: a list of names of HTTP resources. See below for a list of valid resource names.</p>
</li> </li>
<li> <li>
<p><code>compress</code>: set to true to enable HTTP compression for this resource.</p> <p><code>compress</code>: set to true to enable gzip compression on HTTP bodies for this resource. This is currently only supported with the
<code>client</code>, <code>consent</code> and <code>metrics</code> resources.</p>
</li> </li>
</ul> </ul>
</li> </li>
@ -1021,20 +1000,20 @@ on this homeserver.</p>
</code></pre> </code></pre>
<hr /> <hr />
<h2 id="caching"><a class="header" href="#caching">Caching</a></h2> <h2 id="caching"><a class="header" href="#caching">Caching</a></h2>
<p>Options related to caching</p> <p>Options related to caching.</p>
<hr /> <hr />
<h3 id="event_cache_size"><a class="header" href="#event_cache_size"><code>event_cache_size</code></a></h3> <h3 id="event_cache_size"><a class="header" href="#event_cache_size"><code>event_cache_size</code></a></h3>
<p>The number of events to cache in memory. Not affected by <p>The number of events to cache in memory. Not affected by
<code>caches.global_factor</code>. Defaults to 10K.</p> <code>caches.global_factor</code> and is not part of the <code>caches</code> section. Defaults to 10K.</p>
<p>Example configuration:</p> <p>Example configuration:</p>
<pre><code class="language-yaml">event_cache_size: 15K <pre><code class="language-yaml">event_cache_size: 15K
</code></pre> </code></pre>
<hr /> <hr />
<h3 id="cache-and-associated-values"><a class="header" href="#cache-and-associated-values"><code>cache</code> and associated values</a></h3> <h3 id="caches-and-associated-values"><a class="header" href="#caches-and-associated-values"><code>caches</code> and associated values</a></h3>
<p>A cache 'factor' is a multiplier that can be applied to each of <p>A cache 'factor' is a multiplier that can be applied to each of
Synapse's caches in order to increase or decrease the maximum Synapse's caches in order to increase or decrease the maximum
number of entries that can be stored.</p> number of entries that can be stored.</p>
<p>Caching can be configured through the following sub-options:</p> <p><code>caches</code> can be configured through the following sub-options:</p>
<ul> <ul>
<li> <li>
<p><code>global_factor</code>: Controls the global cache factor, which is the default cache factor <p><code>global_factor</code>: Controls the global cache factor, which is the default cache factor
@ -1099,7 +1078,8 @@ from being emptied while Synapse is evicting due to memory. There is no default
</li> </li>
</ul> </ul>
<p>Example configuration:</p> <p>Example configuration:</p>
<pre><code class="language-yaml">caches: <pre><code class="language-yaml">event_cache_size: 15K
caches:
global_factor: 1.0 global_factor: 1.0
per_cache_factors: per_cache_factors:
get_users_who_share_room_with_user: 2.0 get_users_who_share_room_with_user: 2.0
@ -1690,7 +1670,7 @@ blacklisted.</p>
<pre><code class="language-yaml">max_spider_size: 8M <pre><code class="language-yaml">max_spider_size: 8M
</code></pre> </code></pre>
<hr /> <hr />
<h3 id="url_preview_language"><a class="header" href="#url_preview_language"><code>url_preview_language</code></a></h3> <h3 id="url_preview_accept_language"><a class="header" href="#url_preview_accept_language"><code>url_preview_accept_language</code></a></h3>
<p>A list of values for the Accept-Language HTTP header used when <p>A list of values for the Accept-Language HTTP header used when
downloading webpages during URL preview generation. This allows downloading webpages during URL preview generation. This allows
Synapse to specify the preferred languages that URL previews should Synapse to specify the preferred languages that URL previews should
@ -2188,9 +2168,14 @@ Implicitly enables MAU tracking for application service users.</p>
</code></pre> </code></pre>
<hr /> <hr />
<h3 id="macaroon_secret_key"><a class="header" href="#macaroon_secret_key"><code>macaroon_secret_key</code></a></h3> <h3 id="macaroon_secret_key"><a class="header" href="#macaroon_secret_key"><code>macaroon_secret_key</code></a></h3>
<p>A secret which is used to sign access tokens. If none is specified, <p>A secret which is used to sign</p>
the <code>registration_shared_secret</code> is used, if one is given; otherwise, <ul>
a secret key is derived from the signing key.</p> <li>access token for guest users,</li>
<li>short-term login token used during SSO logins (OIDC or SAML2) and</li>
<li>token used for unsubscribing from email notifications.</li>
</ul>
<p>If none is specified, the <code>registration_shared_secret</code> is used, if one is given;
otherwise, a secret key is derived from the signing key.</p>
<p>Example configuration:</p> <p>Example configuration:</p>
<pre><code class="language-yaml">macaroon_secret_key: &lt;PRIVATE STRING&gt; <pre><code class="language-yaml">macaroon_secret_key: &lt;PRIVATE STRING&gt;
</code></pre> </code></pre>