Slack
Classes to ease interaction with Slack
koheesio.notifications.slack.SlackNotification #
Generic Slack notification class via the Blocks
API
NOTE:
channel
parameter is used only with Slack Web API: https://api.slack.com/messaging/sending If webhook is used, the channel specification is not required
Example:
s = SlackNotification(
url="slack-webhook-url",
channel="channel",
message="Some *markdown* compatible text",
)
s.execute()
channel
class-attribute
instance-attribute
#
headers
class-attribute
instance-attribute
#
message
class-attribute
instance-attribute
#
message: str = Field(
default=...,
description="The message that gets posted to Slack",
)
execute #
get_payload #
Generate payload with Block Kit
.
More details: https://api.slack.com/block-kit
Source code in src/koheesio/notifications/slack.py
koheesio.notifications.slack.SlackNotificationWithSeverity #
Slack notification class via the Blocks
API with etra severity information and predefined extra fields
Example: from koheesio.steps.integrations.notifications import NotificationSeverity
s = SlackNotificationWithSeverity(
url="slack-webhook-url",
channel="channel",
message="Some *markdown* compatible text"
severity=NotificationSeverity.ERROR,
title="Title",
environment="dev",
application="Application"
)
s.execute()
application
class-attribute
instance-attribute
#
application: str = Field(
default=..., description="Pipeline or application name"
)
environment
class-attribute
instance-attribute
#
environment: str = Field(
default=...,
description="Environment description, e.g. dev / qa /prod",
)
severity
class-attribute
instance-attribute
#
severity: NotificationSeverity = Field(
default=..., description="Severity of the message"
)
timestamp
class-attribute
instance-attribute
#
timestamp: datetime = Field(
default=utcnow(),
alias="execution_timestamp",
description="Pipeline or application execution timestamp",
)
title
class-attribute
instance-attribute
#
title: str = Field(
default=..., description="Title of your message"
)
execute #
get_payload_message #
Generate payload message based on the predefined set of parameters