Move the ntfy alert sink to Settings, shared by all alert rules
Alert rules no longer carry their own ntfy topic/server; Settings now holds one process-wide ntfy sink (with its own "send test notification"), and the Alerts panel is left to just define rule conditions. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XFUNZwCvz3kcod3352ZR2o
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
ae4e550c1f
commit
18c2d72d22
+9
-4
@@ -78,6 +78,12 @@ pub struct Settings {
|
||||
/// Alert rule definitions.
|
||||
#[serde(default)]
|
||||
pub alert_rules: Vec<AlertRule>,
|
||||
/// Ntfy topic every alert rule delivers to; `None` until configured in Settings.
|
||||
#[serde(default)]
|
||||
pub ntfy_topic: Option<String>,
|
||||
/// Ntfy server override; `None` means `https://ntfy.sh`.
|
||||
#[serde(default)]
|
||||
pub ntfy_server: Option<String>,
|
||||
}
|
||||
|
||||
impl Default for Settings {
|
||||
@@ -93,6 +99,8 @@ impl Default for Settings {
|
||||
},
|
||||
max_logs: None,
|
||||
alert_rules: Vec::new(),
|
||||
ntfy_topic: None,
|
||||
ntfy_server: None,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -333,11 +341,8 @@ mod tests {
|
||||
condition: crate::alerts::AlertCondition::Immediate {
|
||||
query: r#"regex("error")"#.to_string(),
|
||||
},
|
||||
sink: crate::alerts::AlertSink::Ntfy {
|
||||
topic: "alerts".to_string(),
|
||||
server: None,
|
||||
},
|
||||
});
|
||||
settings.ntfy_topic = Some("alerts".to_string());
|
||||
|
||||
settings.save(&path).unwrap();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user