pub struct SlackConfig {
pub bot_token: Option<String>,
pub signing_secret: Option<String>,
pub webhook_host: String,
pub port: u16,
pub allowed_user_ids: Vec<String>,
pub allowed_channel_ids: Vec<String>,
pub skills: ChannelSkillsConfig,
pub allowed_tools: Option<Vec<String>>,
}Fields§
§bot_token: Option<String>Bot token. Set to None and resolve from vault via ZEPH_SLACK_BOT_TOKEN.
§Security
Never serialized: --init always persists this field as None (the real token
goes to the vault), but runtime config resolution hydrates the real value into this
field in memory. #[serde(skip_serializing)] keeps any future diagnostic Serialize
of a live Config from leaking it; Deserialize is untouched so inline tokens in a
hand-edited config.toml still load.
signing_secret: Option<String>Request signing secret. Set to None and resolve from vault via
ZEPH_SLACK_SIGNING_SECRET.
§Security
Never serialized — same rationale as bot_token.
webhook_host: String§port: u16§allowed_user_ids: Vec<String>Slack user IDs allowed to interact with the bot.
Must not be empty: the channel refuses to start (fail-closed) rather than run open to any sender when unconfigured.
allowed_channel_ids: Vec<String>Slack channel IDs the bot responds in (empty = all channels).
skills: ChannelSkillsConfig§allowed_tools: Option<Vec<String>>Tool allowlist for this channel. None means all tools are permitted.
Trait Implementations§
Source§impl Clone for SlackConfig
impl Clone for SlackConfig
Source§fn clone(&self) -> SlackConfig
fn clone(&self) -> SlackConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more