pub struct SlackConfig {Show 14 fields
pub bot_token: String,
pub app_token: Option<String>,
pub channel_id: Option<String>,
pub channel_ids: Vec<String>,
pub allowed_users: Vec<String>,
pub interrupt_on_new_message: bool,
pub thread_replies: Option<bool>,
pub mention_only: bool,
pub use_markdown_blocks: bool,
pub proxy_url: Option<String>,
pub stream_drafts: bool,
pub draft_update_interval_ms: u64,
pub cancel_reaction: Option<String>,
pub notification_channel_id: Option<String>,
}Expand description
Slack bot channel configuration.
Fields§
§bot_token: StringSlack bot OAuth token (xoxb-…).
app_token: Option<String>Slack app-level token for Socket Mode (xapp-…).
channel_id: Option<String>Optional channel ID to restrict the bot to a single channel.
Omit (or set "*") to listen across all accessible channels.
channel_ids: Vec<String>Optional explicit list of channel IDs to watch.
When set, this takes precedence over channel_id.
allowed_users: Vec<String>Allowed Slack user IDs. Empty = deny all.
interrupt_on_new_message: boolWhen true, a newer Slack message from the same sender in the same channel cancels the in-flight request and starts a fresh response with preserved history.
thread_replies: Option<bool>When true (default), replies stay in the originating Slack thread. When false, replies go to the channel root instead.
mention_only: boolWhen true, only respond to messages that @-mention the bot in groups. Direct messages remain allowed.
use_markdown_blocks: boolUse the newer Slack markdown block type (12 000 char limit, richer formatting).
Defaults to false (uses universally supported section blocks with mrkdwn).
Enable this only if your Slack workspace supports the markdown block type.
proxy_url: Option<String>Per-channel proxy URL (http, https, socks5, socks5h).
Overrides the global [proxy] setting for this channel only.
stream_drafts: boolEnable progressive draft message streaming via chat.update.
draft_update_interval_ms: u64Minimum interval (ms) between draft message edits to avoid Slack rate limits.
cancel_reaction: Option<String>Emoji reaction name (without colons) that cancels an in-flight request.
For example, "x" means reacting with :x: cancels the task.
Leave unset to disable reaction-based cancellation.
notification_channel_id: Option<String>Slack channel ID for workflow notifications and human-approval prompts.
When set, workflow notify steps targeting “slack” post here, and
approval replies are scoped to the posted message’s thread_ts.
Trait Implementations§
Source§impl ChannelConfig for SlackConfig
impl ChannelConfig for SlackConfig
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<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for SlackConfig
impl JsonSchema for SlackConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreAuto 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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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 more