diff options
author | Brendan Abolivier <babolivier@matrix.org> | 2021-06-18 13:15:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-18 12:15:52 +0100 |
commit | 1b3e398bea8129fa7ae6fe28fd3a395fcd427ad9 (patch) | |
tree | d0b04f5f2c5f89c87c00761e3f615c41ceef4398 /synapse/app/_base.py | |
parent | Expose opentracing trace id in response headers (#10199) (diff) | |
download | synapse-1b3e398bea8129fa7ae6fe28fd3a395fcd427ad9.tar.xz |
Standardise the module interface (#10062)
This PR adds a common configuration section for all modules (see docs). These modules are then loaded at startup by the homeserver. Modules register their hooks and web resources using the new `register_[...]_callbacks` and `register_web_resource` methods of the module API.
Diffstat (limited to 'synapse/app/_base.py')
-rw-r--r-- | synapse/app/_base.py | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/synapse/app/_base.py b/synapse/app/_base.py index 1dde9d7173..00ab67e7e4 100644 --- a/synapse/app/_base.py +++ b/synapse/app/_base.py @@ -35,6 +35,7 @@ from synapse.app import check_bind_error from synapse.app.phone_stats_home import start_phone_stats_home from synapse.config.homeserver import HomeServerConfig from synapse.crypto import context_factory +from synapse.events.spamcheck import load_legacy_spam_checkers from synapse.logging.context import PreserveLoggingContext from synapse.metrics.background_process_metrics import wrap_as_background_process from synapse.metrics.jemalloc import setup_jemalloc_stats @@ -330,6 +331,14 @@ async def start(hs: "synapse.server.HomeServer"): # Start the tracer synapse.logging.opentracing.init_tracer(hs) # type: ignore[attr-defined] # noqa + # Instantiate the modules so they can register their web resources to the module API + # before we start the listeners. + module_api = hs.get_module_api() + for module, config in hs.config.modules.loaded_modules: + module(config=config, api=module_api) + + load_legacy_spam_checkers(hs) + # It is now safe to start your Synapse. hs.start_listening() hs.get_datastore().db_pool.start_profiling() |