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 moreSource§impl Debug for SlackConfig
impl Debug for SlackConfig
Source§impl<'de> Deserialize<'de> for SlackConfig
impl<'de> Deserialize<'de> for SlackConfig
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SlackConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SlackConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for SlackConfig
impl Serialize for SlackConfig
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for SlackConfig
impl RefUnwindSafe for SlackConfig
impl Send for SlackConfig
impl Sync for SlackConfig
impl Unpin for SlackConfig
impl UnsafeUnpin for SlackConfig
impl UnwindSafe for SlackConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request