diff --git a/crates/core/config/src/lib.rs b/crates/core/config/src/lib.rs index d5b1d187..f15f17fb 100644 --- a/crates/core/config/src/lib.rs +++ b/crates/core/config/src/lib.rs @@ -188,7 +188,11 @@ pub struct LiveKitNode { pub lat: f64, pub lon: f64, pub key: String, - pub secret: String + pub secret: String, + + // whether to hide the node in the nodes list + #[serde(default)] + pub private: bool, } #[derive(Deserialize, Debug, Clone)] diff --git a/crates/delta/src/routes/root.rs b/crates/delta/src/routes/root.rs index 6b42497c..ffdbdee2 100644 --- a/crates/delta/src/routes/root.rs +++ b/crates/delta/src/routes/root.rs @@ -115,15 +115,18 @@ pub async fn root() -> Result> { }, livekit: VoiceFeature { enabled: !config.hosts.livekit.is_empty(), - nodes: config.api.livekit.nodes.iter().map(|(name, value)| { - VoiceNode { - name: name.clone(), - lat: value.lat, - lon: value.lon, - public_url: config.hosts.livekit.get(name).expect("Missing corresponding host for voice node").clone() - } - }) - .collect() + nodes: config.api.livekit.nodes + .iter() + .filter(|(_, node)| !node.private) + .map(|(name, value)| { + VoiceNode { + name: name.clone(), + lat: value.lat, + lon: value.lon, + public_url: config.hosts.livekit.get(name).expect("Missing corresponding host for voice node").clone() + } + }) + .collect() }, }, ws: config.hosts.events,