Documentation
¶
Index ¶
- Constants
- Variables
- func Channel(renderer func(ctx context.Context, model any) (Content, error)) notification.RendererBinding
- func DirectMessageIdentity(channel string) map[string]string
- func MessageChannel(renderer func(ctx context.Context, model any) (*Message, error)) notification.RendererBinding
- func MessageRenderer(renderer func(ctx context.Context, model any) (*Message, error)) notification.ChannelRenderer
- func NormalizeTargetType(target string) (string, bool)
- func Renderer(renderer func(ctx context.Context, model any) (Content, error)) notification.ChannelRenderer
- type Content
- type Delivery
- type DigestSummary
- type DigestSummaryEvidence
- type EnabledResolver
- type Enqueuer
- type EnqueuerProvider
- type Message
- type Provider
- func (p *Provider) BuildTarget(rawTarget string) (notification.Target, error)
- func (p *Provider) Deliver(ctx context.Context, delivery notification.Delivery) error
- func (p *Provider) DisplayTarget(target notification.Target) (string, error)
- func (p *Provider) ID() string
- func (p *Provider) NormalizeTarget(target notification.Target) (notification.Target, error)
- func (p *Provider) ProviderMetadata() notification.ProviderMetadata
- func (p *Provider) ResolveUserTarget(user notification.User) (notification.Target, bool, error)
- func (p *Provider) ValidateTarget(target notification.Target) error
- type ProviderOption
- type RiskDigestItem
- type Sender
- type SenderProvider
- type WorkflowTaskDigestItem
- type WorkspaceConfigurationResolver
Constants ¶
View Source
const ( ChannelID = notification.DeliveryChannelSlack AddressKeyChannel = "channel" AddressKeyTargetType = "target_type" )
View Source
const ( TargetTypeChannel = "channel" TargetTypeDirectMessage = "direct_message" ConfiguredDestinationDigestChan = "slack.digest_channel" )
View Source
const ( MetadataKeyWorkspaceName = "workspace-name" MetadataKeyWorkspaceURL = "workspace-url" MetadataKeyWorkspaceDomain = "workspace-domain" MetadataKeyEmailDomain = "email-domain" MetadataKeyTeamID = "team-id" MetadataKeyBotID = "bot-id" MetadataKeyBotName = "bot-name" MetadataKeyEnterpriseID = "enterprise-id" )
Variables ¶
View Source
var ( FormatDigestMessage = slackformatters.FormatDigestMessage FormatPoamDeadlineReminderMessage = slackformatters.FormatPoamDeadlineReminderMessage FormatPoamMilestoneOverdueReminderMessage = slackformatters.FormatPoamMilestoneOverdueReminderMessage FormatPoamOverdueNotificationMessage = slackformatters.FormatPoamOverdueNotificationMessage FormatRiskReviewDueReminderMessage = slackformatters.FormatRiskReviewDueReminderMessage FormatRiskReviewOverdueEscalationMessage = slackformatters.FormatRiskReviewOverdueEscalationMessage FormatRiskStaleOpenReminderMessage = slackformatters.FormatRiskStaleOpenReminderMessage FormatRiskOpenDigestMessage = slackformatters.FormatRiskOpenDigestMessage FormatWorkflowExecutionFailedMessage = slackformatters.FormatWorkflowExecutionFailedMessage FormatWorkflowTaskAssignedMessage = slackformatters.FormatWorkflowTaskAssignedMessage FormatWorkflowTaskDueSoonMessage = slackformatters.FormatWorkflowTaskDueSoonMessage FormatWorkflowTaskDigestMessage = slackformatters.FormatWorkflowTaskDigestMessage )
Functions ¶
func Channel ¶
func Channel(renderer func(ctx context.Context, model any) (Content, error)) notification.RendererBinding
func DirectMessageIdentity ¶
func MessageChannel ¶
func MessageChannel(renderer func(ctx context.Context, model any) (*Message, error)) notification.RendererBinding
func MessageRenderer ¶
func MessageRenderer(renderer func(ctx context.Context, model any) (*Message, error)) notification.ChannelRenderer
func NormalizeTargetType ¶
func Renderer ¶
func Renderer(renderer func(ctx context.Context, model any) (Content, error)) notification.ChannelRenderer
Types ¶
type Delivery ¶
type Delivery struct {
Channel string
TargetType string
Content Content
Metadata notification.TransportMetadata
}
type DigestSummary ¶
type DigestSummary = slackformatters.DigestSummary
type DigestSummaryEvidence ¶
type DigestSummaryEvidence = slackformatters.DigestSummaryEvidence
type EnabledResolver ¶
type EnabledResolver func() bool
type EnqueuerProvider ¶
type EnqueuerProvider func() Enqueuer
type Message ¶
type Message = slacktypes.Message
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
func NewCatalogProvider ¶
func NewProvider ¶
func NewProvider(senderProvider SenderProvider, enqueuerProvider EnqueuerProvider, opts ...ProviderOption) *Provider
func (*Provider) BuildTarget ¶
func (p *Provider) BuildTarget(rawTarget string) (notification.Target, error)
func (*Provider) Deliver ¶
Deliver prefers enqueuing when a started enqueuer is available. If direct sending is the only option and no sender is configured or enabled, delivery is treated as a no-op so notifications can be optional in some environments.
func (*Provider) DisplayTarget ¶
func (p *Provider) DisplayTarget(target notification.Target) (string, error)
func (*Provider) NormalizeTarget ¶
func (p *Provider) NormalizeTarget(target notification.Target) (notification.Target, error)
func (*Provider) ProviderMetadata ¶
func (p *Provider) ProviderMetadata() notification.ProviderMetadata
func (*Provider) ResolveUserTarget ¶
func (p *Provider) ResolveUserTarget(user notification.User) (notification.Target, bool, error)
func (*Provider) ValidateTarget ¶
func (p *Provider) ValidateTarget(target notification.Target) error
type ProviderOption ¶
type ProviderOption func(*Provider)
func WithEnabledResolver ¶
func WithEnabledResolver(resolver EnabledResolver) ProviderOption
func WithWorkspaceConfigurationResolver ¶
func WithWorkspaceConfigurationResolver(resolver WorkspaceConfigurationResolver) ProviderOption
type RiskDigestItem ¶
type RiskDigestItem = slackformatters.RiskDigestItem
type Sender ¶
type Sender interface {
IsEnabled() bool
SendMessage(ctx context.Context, channel string, message *slacktypes.Message) (*slacktypes.SendResult, error)
}
type SenderProvider ¶
type SenderProvider func() Sender
type WorkflowTaskDigestItem ¶
type WorkflowTaskDigestItem = slackformatters.WorkflowTaskDigestItem
type WorkspaceConfigurationResolver ¶
type WorkspaceConfigurationResolver func(context.Context) (slacksvc.WorkspaceConfiguration, error)
Click to show internal directories.
Click to hide internal directories.