Setup Bolt as a WSGI web framework, this will make your application compatible with WSGI web servers.
This can be used for production deployments.
diff --git a/docs/reference/async_app.html b/docs/reference/async_app.html
index 3494ec289..6a45d2ada 100644
--- a/docs/reference/async_app.html
+++ b/docs/reference/async_app.html
@@ -5291,6 +5291,9 @@
Class variables
recipient_team_id: Optional[str] = None,
recipient_user_id: Optional[str] = None,
thread_ts: Optional[str] = None,
+ icon_emoji: Optional[str] = None,
+ icon_url: Optional[str] = None,
+ username: Optional[str] = None,
**kwargs,
) -> AsyncChatStream:
"""Starts a new chat stream with context."""
@@ -5308,6 +5311,9 @@
Class variables
recipient_team_id=recipient_team_id or self.recipient_team_id,
recipient_user_id=recipient_user_id or self.recipient_user_id,
thread_ts=thread_ts,
+ icon_emoji=icon_emoji,
+ icon_url=icon_url,
+ username=username,
**kwargs,
)
return await self.client.chat_stream(
@@ -5315,6 +5321,9 @@
Class variables
recipient_team_id=recipient_team_id or self.recipient_team_id,
recipient_user_id=recipient_user_id or self.recipient_user_id,
thread_ts=thread_ts,
+ icon_emoji=icon_emoji,
+ icon_url=icon_url,
+ username=username,
**kwargs,
)
@@ -5371,6 +5380,9 @@
Class variables
self,
status: str,
loading_messages: Optional[List[str]] = None,
+ icon_emoji: Optional[str] = None,
+ icon_url: Optional[str] = None,
+ username: Optional[str] = None,
**kwargs,
) -> AsyncSlackResponse:
return await self.client.assistant_threads_setStatus(
@@ -5378,6 +5390,9 @@
Class variables
thread_ts=self.thread_ts,
status=status,
loading_messages=loading_messages,
+ icon_emoji=icon_emoji,
+ icon_url=icon_url,
+ username=username,
**kwargs,
)
diff --git a/docs/reference/context/say_stream/async_say_stream.html b/docs/reference/context/say_stream/async_say_stream.html
index 4010b284d..3a1978299 100644
--- a/docs/reference/context/say_stream/async_say_stream.html
+++ b/docs/reference/context/say_stream/async_say_stream.html
@@ -85,6 +85,9 @@
recipient_team_id: Optional[str] = None,
recipient_user_id: Optional[str] = None,
thread_ts: Optional[str] = None,
+ icon_emoji: Optional[str] = None,
+ icon_url: Optional[str] = None,
+ username: Optional[str] = None,
**kwargs,
) -> AsyncChatStream:
"""Starts a new chat stream with context."""
@@ -102,6 +105,9 @@
recipient_team_id=recipient_team_id or self.recipient_team_id,
recipient_user_id=recipient_user_id or self.recipient_user_id,
thread_ts=thread_ts,
+ icon_emoji=icon_emoji,
+ icon_url=icon_url,
+ username=username,
**kwargs,
)
return await self.client.chat_stream(
@@ -109,6 +115,9 @@
recipient_team_id=recipient_team_id or self.recipient_team_id,
recipient_user_id=recipient_user_id or self.recipient_user_id,
thread_ts=thread_ts,
+ icon_emoji=icon_emoji,
+ icon_url=icon_url,
+ username=username,
**kwargs,
)
diff --git a/docs/reference/context/say_stream/index.html b/docs/reference/context/say_stream/index.html
index 645942c72..5ed62587b 100644
--- a/docs/reference/context/say_stream/index.html
+++ b/docs/reference/context/say_stream/index.html
@@ -96,6 +96,9 @@
recipient_team_id: Optional[str] = None,
recipient_user_id: Optional[str] = None,
thread_ts: Optional[str] = None,
+ icon_emoji: Optional[str] = None,
+ icon_url: Optional[str] = None,
+ username: Optional[str] = None,
**kwargs,
) -> ChatStream:
"""Starts a new chat stream with context."""
@@ -113,6 +116,9 @@
recipient_team_id=recipient_team_id or self.recipient_team_id,
recipient_user_id=recipient_user_id or self.recipient_user_id,
thread_ts=thread_ts,
+ icon_emoji=icon_emoji,
+ icon_url=icon_url,
+ username=username,
**kwargs,
)
return self.client.chat_stream(
@@ -120,6 +126,9 @@
recipient_team_id=recipient_team_id or self.recipient_team_id,
recipient_user_id=recipient_user_id or self.recipient_user_id,
thread_ts=thread_ts,
+ icon_emoji=icon_emoji,
+ icon_url=icon_url,
+ username=username,
**kwargs,
)
diff --git a/docs/reference/context/say_stream/say_stream.html b/docs/reference/context/say_stream/say_stream.html
index 784a58bbe..e7bc33bff 100644
--- a/docs/reference/context/say_stream/say_stream.html
+++ b/docs/reference/context/say_stream/say_stream.html
@@ -85,6 +85,9 @@
recipient_team_id: Optional[str] = None,
recipient_user_id: Optional[str] = None,
thread_ts: Optional[str] = None,
+ icon_emoji: Optional[str] = None,
+ icon_url: Optional[str] = None,
+ username: Optional[str] = None,
**kwargs,
) -> ChatStream:
"""Starts a new chat stream with context."""
@@ -102,6 +105,9 @@
recipient_team_id=recipient_team_id or self.recipient_team_id,
recipient_user_id=recipient_user_id or self.recipient_user_id,
thread_ts=thread_ts,
+ icon_emoji=icon_emoji,
+ icon_url=icon_url,
+ username=username,
**kwargs,
)
return self.client.chat_stream(
@@ -109,6 +115,9 @@
recipient_team_id=recipient_team_id or self.recipient_team_id,
recipient_user_id=recipient_user_id or self.recipient_user_id,
thread_ts=thread_ts,
+ icon_emoji=icon_emoji,
+ icon_url=icon_url,
+ username=username,
**kwargs,
)
diff --git a/docs/reference/context/set_status/async_set_status.html b/docs/reference/context/set_status/async_set_status.html
index 06efd6447..770583e4a 100644
--- a/docs/reference/context/set_status/async_set_status.html
+++ b/docs/reference/context/set_status/async_set_status.html
@@ -74,6 +74,9 @@
self,
status: str,
loading_messages: Optional[List[str]] = None,
+ icon_emoji: Optional[str] = None,
+ icon_url: Optional[str] = None,
+ username: Optional[str] = None,
**kwargs,
) -> AsyncSlackResponse:
return await self.client.assistant_threads_setStatus(
@@ -81,6 +84,9 @@
thread_ts=self.thread_ts,
status=status,
loading_messages=loading_messages,
+ icon_emoji=icon_emoji,
+ icon_url=icon_url,
+ username=username,
**kwargs,
)
diff --git a/docs/reference/context/set_status/index.html b/docs/reference/context/set_status/index.html
index aa11815e3..380e37f4f 100644
--- a/docs/reference/context/set_status/index.html
+++ b/docs/reference/context/set_status/index.html
@@ -85,6 +85,9 @@
self,
status: str,
loading_messages: Optional[List[str]] = None,
+ icon_emoji: Optional[str] = None,
+ icon_url: Optional[str] = None,
+ username: Optional[str] = None,
**kwargs,
) -> SlackResponse:
return self.client.assistant_threads_setStatus(
@@ -92,6 +95,9 @@
thread_ts=self.thread_ts,
status=status,
loading_messages=loading_messages,
+ icon_emoji=icon_emoji,
+ icon_url=icon_url,
+ username=username,
**kwargs,
)
diff --git a/docs/reference/context/set_status/set_status.html b/docs/reference/context/set_status/set_status.html
index e4d839f64..b0a0a9ee7 100644
--- a/docs/reference/context/set_status/set_status.html
+++ b/docs/reference/context/set_status/set_status.html
@@ -74,6 +74,9 @@
self,
status: str,
loading_messages: Optional[List[str]] = None,
+ icon_emoji: Optional[str] = None,
+ icon_url: Optional[str] = None,
+ username: Optional[str] = None,
**kwargs,
) -> SlackResponse:
return self.client.assistant_threads_setStatus(
@@ -81,6 +84,9 @@
thread_ts=self.thread_ts,
status=status,
loading_messages=loading_messages,
+ icon_emoji=icon_emoji,
+ icon_url=icon_url,
+ username=username,
**kwargs,
)
diff --git a/docs/reference/index.html b/docs/reference/index.html
index 2903c9b7f..70d84875a 100644
--- a/docs/reference/index.html
+++ b/docs/reference/index.html
@@ -5915,6 +5915,9 @@
Class variables
recipient_team_id: Optional[str] = None,
recipient_user_id: Optional[str] = None,
thread_ts: Optional[str] = None,
+ icon_emoji: Optional[str] = None,
+ icon_url: Optional[str] = None,
+ username: Optional[str] = None,
**kwargs,
) -> ChatStream:
"""Starts a new chat stream with context."""
@@ -5932,6 +5935,9 @@
Class variables
recipient_team_id=recipient_team_id or self.recipient_team_id,
recipient_user_id=recipient_user_id or self.recipient_user_id,
thread_ts=thread_ts,
+ icon_emoji=icon_emoji,
+ icon_url=icon_url,
+ username=username,
**kwargs,
)
return self.client.chat_stream(
@@ -5939,6 +5945,9 @@
Class variables
recipient_team_id=recipient_team_id or self.recipient_team_id,
recipient_user_id=recipient_user_id or self.recipient_user_id,
thread_ts=thread_ts,
+ icon_emoji=icon_emoji,
+ icon_url=icon_url,
+ username=username,
**kwargs,
)
@@ -5995,6 +6004,9 @@
Class variables
self,
status: str,
loading_messages: Optional[List[str]] = None,
+ icon_emoji: Optional[str] = None,
+ icon_url: Optional[str] = None,
+ username: Optional[str] = None,
**kwargs,
) -> SlackResponse:
return self.client.assistant_threads_setStatus(
@@ -6002,6 +6014,9 @@
Class variables
thread_ts=self.thread_ts,
status=status,
loading_messages=loading_messages,
+ icon_emoji=icon_emoji,
+ icon_url=icon_url,
+ username=username,
**kwargs,
)
diff --git a/docs/reference/middleware/index.html b/docs/reference/middleware/index.html
index ce2629224..9f2053a5d 100644
--- a/docs/reference/middleware/index.html
+++ b/docs/reference/middleware/index.html
@@ -720,9 +720,17 @@
Inherited members
signing_secret: The signing secret
base_logger: The base logger
"""
- self.verifier = SignatureVerifier(signing_secret=signing_secret)
+ self._signing_secret = signing_secret
+ self._verifier: Optional[SignatureVerifier] = None
self.logger = get_bolt_logger(RequestVerification, base_logger=base_logger)
+ @property
+ def verifier(self) -> SignatureVerifier:
+ # Defer initialization to avoid errors during start up
+ if self._verifier is None:
+ self._verifier = SignatureVerifier(signing_secret=self._signing_secret)
+ return self._verifier
+
def process(
self,
*,
@@ -749,7 +757,7 @@
Inherited members
@staticmethod
def _can_skip(mode: str, body: Dict[str, Any]) -> bool:
- return mode == "socket_mode" or (body is not None and body.get("ssl_check") == "1")
+ return mode == "socket_mode"
@staticmethod
def _build_error_response() -> BoltResponse:
@@ -779,6 +787,24 @@
Subclasses
+
Instance variables
+
+prop verifier : slack_sdk.signature.SignatureVerifier
+-
+
+
+Expand source code
+
+@property
+def verifier(self) -> SignatureVerifier:
+ # Defer initialization to avoid errors during start up
+ if self._verifier is None:
+ self._verifier = SignatureVerifier(signing_secret=self._signing_secret)
+ return self._verifier
+
+
+
+
Inherited members
Middleware:
@@ -1139,6 +1165,9 @@
+
-
diff --git a/docs/reference/middleware/request_verification/index.html b/docs/reference/middleware/request_verification/index.html
index 5dfd6ed82..50a8676b5 100644
--- a/docs/reference/middleware/request_verification/index.html
+++ b/docs/reference/middleware/request_verification/index.html
@@ -77,9 +77,17 @@
signing_secret: The signing secret
base_logger: The base logger
"""
- self.verifier = SignatureVerifier(signing_secret=signing_secret)
+ self._signing_secret = signing_secret
+ self._verifier: Optional[SignatureVerifier] = None
self.logger = get_bolt_logger(RequestVerification, base_logger=base_logger)
+ @property
+ def verifier(self) -> SignatureVerifier:
+ # Defer initialization to avoid errors during start up
+ if self._verifier is None:
+ self._verifier = SignatureVerifier(signing_secret=self._signing_secret)
+ return self._verifier
+
def process(
self,
*,
@@ -106,7 +114,7 @@
@staticmethod
def _can_skip(mode: str, body: Dict[str, Any]) -> bool:
- return mode == "socket_mode" or (body is not None and body.get("ssl_check") == "1")
+ return mode == "socket_mode"
@staticmethod
def _build_error_response() -> BoltResponse:
@@ -136,6 +144,24 @@
Subclasses
+Instance variables
+
+prop verifier : slack_sdk.signature.SignatureVerifier
+-
+
+
+Expand source code
+
+@property
+def verifier(self) -> SignatureVerifier:
+ # Defer initialization to avoid errors during start up
+ if self._verifier is None:
+ self._verifier = SignatureVerifier(signing_secret=self._signing_secret)
+ return self._verifier
+
+
+
+
Inherited members
Middleware:
@@ -169,6 +195,9 @@ Inherited members
diff --git a/docs/reference/middleware/request_verification/request_verification.html b/docs/reference/middleware/request_verification/request_verification.html
index 99134110a..4ee2ed1b1 100644
--- a/docs/reference/middleware/request_verification/request_verification.html
+++ b/docs/reference/middleware/request_verification/request_verification.html
@@ -66,9 +66,17 @@
signing_secret: The signing secret
base_logger: The base logger
"""
- self.verifier = SignatureVerifier(signing_secret=signing_secret)
+ self._signing_secret = signing_secret
+ self._verifier: Optional[SignatureVerifier] = None
self.logger = get_bolt_logger(RequestVerification, base_logger=base_logger)
+ @property
+ def verifier(self) -> SignatureVerifier:
+ # Defer initialization to avoid errors during start up
+ if self._verifier is None:
+ self._verifier = SignatureVerifier(signing_secret=self._signing_secret)
+ return self._verifier
+
def process(
self,
*,
@@ -95,7 +103,7 @@
@staticmethod
def _can_skip(mode: str, body: Dict[str, Any]) -> bool:
- return mode == "socket_mode" or (body is not None and body.get("ssl_check") == "1")
+ return mode == "socket_mode"
@staticmethod
def _build_error_response() -> BoltResponse:
@@ -125,6 +133,24 @@ Subclasses
+Instance variables
+
+prop verifier : slack_sdk.signature.SignatureVerifier
+-
+
+
+Expand source code
+
+@property
+def verifier(self) -> SignatureVerifier:
+ # Defer initialization to avoid errors during start up
+ if self._verifier is None:
+ self._verifier = SignatureVerifier(signing_secret=self._signing_secret)
+ return self._verifier
+
+
+
+
Inherited members
Middleware:
@@ -152,6 +178,9 @@ Inherited members
diff --git a/docs/reference/request/internals.html b/docs/reference/request/internals.html
index bd8319183..d25880135 100644
--- a/docs/reference/request/internals.html
+++ b/docs/reference/request/internals.html
@@ -432,9 +432,9 @@
if isinstance(payload.get("event"), dict):
return extract_team_id(payload["event"])
if isinstance(payload.get("user"), dict):
- return payload["user"]["team_id"]
+ return payload["user"].get("team_id")
if isinstance(payload.get("view"), dict):
- return payload["view"]["team_id"]
+ return payload["view"].get("team_id")
return None
diff --git a/slack_bolt/version.py b/slack_bolt/version.py
index ebda7dafb..79018b9b2 100644
--- a/slack_bolt/version.py
+++ b/slack_bolt/version.py
@@ -1,3 +1,3 @@
"""Check the latest version at https://pypi.org/project/slack-bolt/"""
-__version__ = "1.28.0"
+__version__ = "1.29.0"