From 3a1649bcaf1825f7c7cf022989e3c46f88499893 Mon Sep 17 00:00:00 2001 From: dasha_uwu Date: Sat, 23 Aug 2025 00:32:25 +0500 Subject: [PATCH] Add config option for creating admin room non-federated (closes #118) --- src/core/config/mod.rs | 7 +++++++ src/service/admin/create.rs | 2 +- tuwunel-example.toml | 5 +++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/core/config/mod.rs b/src/core/config/mod.rs index 962f40a3..8d8b86ce 100644 --- a/src/core/config/mod.rs +++ b/src/core/config/mod.rs @@ -1713,6 +1713,13 @@ pub struct Config { #[serde(default = "true_fn")] pub create_admin_room: bool, + /// Whether to enable federation on the admin room. This cannot be changed + /// after the admin room is created. + /// + /// default: true + #[serde(default = "true_fn")] + pub federate_admin_room: bool, + /// Sentry.io crash/panic reporting, performance monitoring/metrics, etc. /// This is NOT enabled by default. tuwunel's default Sentry reporting /// endpoint domain is `o4509498990067712.ingest.us.sentry.io`. diff --git a/src/service/admin/create.rs b/src/service/admin/create.rs index 914d9c1f..b3b6483e 100644 --- a/src/service/admin/create.rs +++ b/src/service/admin/create.rs @@ -71,7 +71,7 @@ pub async fn create_admin_room(services: &Services) -> Result { .timeline .build_and_append_pdu( PduBuilder::state(String::new(), &RoomCreateEventContent { - federate: true, + federate: services.config.federate_admin_room, predecessor: None, room_version: room_version.clone(), ..create_content diff --git a/tuwunel-example.toml b/tuwunel-example.toml index bba9a70b..b5ecb7bd 100644 --- a/tuwunel-example.toml +++ b/tuwunel-example.toml @@ -1476,6 +1476,11 @@ # #create_admin_room = true +# Whether to enable federation on the admin room. This cannot be changed +# after the admin room is created. +# +#federate_admin_room = true + # Sentry.io crash/panic reporting, performance monitoring/metrics, etc. # This is NOT enabled by default. tuwunel's default Sentry reporting # endpoint domain is `o4509498990067712.ingest.us.sentry.io`.