Expand description
signal.yaml loading.
The file is resolved from $SIGNAL_CONFIG first (a local path, or an
https://, s3://, gs:// or az:// URL; see crate::source), then
./signal.yaml.
If neither exists the SDK still works: it falls back to the
zero-config default (console provider, SQLite sink at
./signals.db), so notify() never needs setup to do something
useful.
${VAR} placeholders in string values are replaced from the
environment so secrets like Slack webhook URLs stay out of the file.
A placeholder whose variable is unset is a config error, not an
empty string: a blank webhook URL would only fail later, at delivery
time, which is exactly when nobody is looking.
Structs§
- Config
- Console
Config - Email
Config - Serialize as well, so a build without the AWS feature can hand the
config to the
opssignal[aws]add-on. - Layer
- One file of a layered config: what it sets itself, plus the files
it builds on.
Config::from_layersmerges a chain of these. - Opsgenie
Config - Pager
Duty Config - Providers
Config - Typed per provider, with unknown keys rejected, so a typo like
slak:is a load-time error rather than a silently missing provider. - SesConfig
- Slack
Config - Smtp
Config - Storage
Config - Teams
Config - Webhook
Config
Enums§
- Email
Transport - How an
EmailConfigsends. - Sink
Kind - SmtpTls
- How the SMTP connection is secured.