Documentation
¶
Index ¶
- Constants
- Variables
- func DecomposePluginKey(key string) (string, string, string, error)
- func FromProvider(gql *config.GqlClient) (config.YAMLFiles, error)
- func LoadWithDefaults(configs [][]byte) (*Config, LoadWithDefaultsDetails, error)
- func RegisterFlags(flags *pflag.FlagSet)
- func WaitForWatcherSync(ctx context.Context, log logrus.FieldLogger, cfg CfgWatcher) error
- type AWSSigning
- type Action
- type ActionBindings
- type ActionRuntimeState
- type Actions
- type ActionsRuntimeState
- type Analytics
- type BotBindings
- type BotRuntimeState
- type BotStartupState
- type CfgWatcher
- type ChannelBindingsByID
- type ChannelBindingsByName
- type ChannelNotification
- type ChannelRuntimeBindings
- type ChannelRuntimeState
- type ChannelStartupState
- type CommPlatformIntegration
- type Commands
- type Communications
- type CommunicationsRuntimeState
- type CommunicationsStartupState
- type Config
- type Discord
- type ELSIndex
- type Elasticsearch
- type EventType
- type Executors
- type Filters
- type Identifiable
- type IdentifiableMap
- type IngressRecommendations
- type IntegrationType
- type K8sResourceRef
- type Kubectl
- type KubernetesEvent
- type KubernetesFilters
- type KubernetesResourceEventTypes
- type KubernetesSource
- type Level
- type LifecycleServer
- type LoadWithDefaultsDetails
- type Mattermost
- type Namespaces
- type Notification
- type NotificationStartupState
- type NotificationType
- type PartialPersistentConfig
- type PersistenceManager
- func (m *PersistenceManager) PersistActionEnabled(ctx context.Context, name string, enabled bool) error
- func (m *PersistenceManager) PersistFilterEnabled(ctx context.Context, name string, enabled bool) error
- func (m *PersistenceManager) PersistNotificationsEnabled(ctx context.Context, commGroupName string, platform CommPlatformIntegration, ...) error
- func (m *PersistenceManager) PersistSourceBindings(ctx context.Context, commGroupName string, platform CommPlatformIntegration, ...) error
- type PersistentConfig
- type PluginExecutor
- type Plugins
- type PluginsExecutors
- type PluginsRepositories
- type PodRecommendations
- type Recommendations
- type Resource
- type RuntimeState
- type Settings
- type SinkBindings
- type Slack
- type SocketSlack
- type Sources
- type StartupState
- type Teams
- type UpdateSetting
- type ValidateResult
- type Webhook
Constants ¶
const (
// AllNamespaceIndicator represents a keyword for allowing all Kubernetes Namespaces.
AllNamespaceIndicator = ".*"
)
Variables ¶
var ErrUnsupportedPlatform = errors.New("unsupported platform to persist data")
ErrUnsupportedPlatform is an error returned when a platform is not supported.
Functions ¶
func DecomposePluginKey ¶ added in v0.17.0
DecomposePluginKey extract details from plugin key.
func FromProvider ¶ added in v0.17.0
FromProvider resolves and returns paths for config files. It reads them the 'BOTKUBE_CONFIG_PATHS' env variable. If not found, then it uses '--config' flag.
func LoadWithDefaults ¶ added in v0.13.0
func LoadWithDefaults(configs [][]byte) (*Config, LoadWithDefaultsDetails, error)
LoadWithDefaults loads new configuration from files and environment variables.
func RegisterFlags ¶ added in v0.13.0
RegisterFlags registers config related flags.
func WaitForWatcherSync ¶ added in v0.14.0
func WaitForWatcherSync(ctx context.Context, log logrus.FieldLogger, cfg CfgWatcher) error
WaitForWatcherSync delays startup until ConfigWatcher synchronizes at least one configuration file
Types ¶
type AWSSigning ¶ added in v0.13.0
type AWSSigning struct {
Enabled bool `yaml:"enabled"`
AWSRegion string `yaml:"awsRegion"`
RoleArn string `yaml:"roleArn"`
}
AWSSigning contains AWS configurations
type Action ¶ added in v0.16.0
type Action struct {
Enabled bool `yaml:"enabled"`
DisplayName string `yaml:"displayName"`
Command string `yaml:"command" validate:"required_if=Enabled true"`
Bindings ActionBindings `yaml:"bindings"`
}
Action contains configuration for Botkube app event automations.
type ActionBindings ¶ added in v0.16.0
type ActionBindings struct {
Sources []string `yaml:"sources"`
Executors []string `yaml:"executors"`
}
ActionBindings contains configuration for action bindings.
type ActionRuntimeState ¶ added in v0.16.0
type ActionRuntimeState struct {
Enabled bool `yaml:"enabled"`
}
ActionRuntimeState is the action persisted in runtime state
type ActionsRuntimeState ¶ added in v0.16.0
type ActionsRuntimeState map[string]ActionRuntimeState
ActionsRuntimeState are the actions persisted in runtime state
func (*ActionsRuntimeState) SetEnabled ¶ added in v0.16.0
func (a *ActionsRuntimeState) SetEnabled(name string, enabled bool) error
SetEnabled sets ActionRuntimeState "name" to "enabled" if action is found otherwise returns error
type Analytics ¶ added in v0.13.0
type Analytics struct {
Disable bool `yaml:"disable"`
}
Analytics contains configuration parameters for analytics collection.
type BotBindings ¶ added in v0.13.0
BotBindings contains configuration for possible Bot bindings.
type BotRuntimeState ¶ added in v0.14.0
type BotRuntimeState struct {
Channels map[string]ChannelRuntimeState `yaml:"channels,omitempty"`
// Teams integration only, ignored for other communication platforms.
MSTeamsOnlyRuntimeState *ChannelRuntimeState `yaml:",inline,omitempty"`
}
BotRuntimeState represents the runtime state for a bot.
type BotStartupState ¶ added in v0.14.0
type BotStartupState struct {
Channels map[string]ChannelStartupState `yaml:"channels"`
}
BotStartupState represents the startup state for a bot.
type CfgWatcher ¶ added in v0.14.0
type CfgWatcher struct {
Enabled bool `yaml:"enabled"`
InitialSyncTimeout time.Duration `yaml:"initialSyncTimeout"`
TmpDir string `yaml:"tmpDir"`
}
CfgWatcher describes configuration for watching the configuration.
type ChannelBindingsByID ¶ added in v0.13.0
type ChannelBindingsByID struct {
ID string `yaml:"id"`
Notification ChannelNotification `yaml:"notification"` // TODO: rename to `notifications` later
Bindings BotBindings `yaml:"bindings"`
}
ChannelBindingsByID contains configuration bindings per channel.
func (ChannelBindingsByID) Identifier ¶ added in v0.13.0
func (c ChannelBindingsByID) Identifier() string
Identifier returns ChannelBindingsByID identifier.
type ChannelBindingsByName ¶ added in v0.13.0
type ChannelBindingsByName struct {
Name string `yaml:"name"`
Notification ChannelNotification `yaml:"notification"` // TODO: rename to `notifications` later
Bindings BotBindings `yaml:"bindings"`
}
ChannelBindingsByName contains configuration bindings per channel.
func (ChannelBindingsByName) Identifier ¶ added in v0.13.0
func (c ChannelBindingsByName) Identifier() string
Identifier returns ChannelBindingsByID identifier.
type ChannelNotification ¶ added in v0.14.0
type ChannelNotification struct {
Disabled bool `yaml:"disabled"`
}
ChannelNotification contains notification configuration for a given platform.
type ChannelRuntimeBindings ¶ added in v0.14.0
type ChannelRuntimeBindings struct {
Sources []string `yaml:"sources"`
}
ChannelRuntimeBindings represents the bindings for a channel.
type ChannelRuntimeState ¶ added in v0.14.0
type ChannelRuntimeState struct {
Bindings ChannelRuntimeBindings `yaml:"bindings"`
}
ChannelRuntimeState represents the runtime state for a channel.
type ChannelStartupState ¶ added in v0.14.0
type ChannelStartupState struct {
Notification NotificationStartupState `yaml:"notification"`
}
ChannelStartupState represents the startup state for a channel.
type CommPlatformIntegration ¶ added in v0.13.0
type CommPlatformIntegration string
CommPlatformIntegration defines integrations with communication platforms.
const ( // SlackCommPlatformIntegration defines Slack integration. SlackCommPlatformIntegration CommPlatformIntegration = "slack" // SocketSlackCommPlatformIntegration defines Slack integration. SocketSlackCommPlatformIntegration CommPlatformIntegration = "socketSlack" // MattermostCommPlatformIntegration defines Mattermost integration. MattermostCommPlatformIntegration CommPlatformIntegration = "mattermost" // TeamsCommPlatformIntegration defines Teams integration. TeamsCommPlatformIntegration CommPlatformIntegration = "teams" // DiscordCommPlatformIntegration defines Discord integration. DiscordCommPlatformIntegration CommPlatformIntegration = "discord" //ElasticsearchCommPlatformIntegration defines Elasticsearch integration. ElasticsearchCommPlatformIntegration CommPlatformIntegration = "elasticsearch" // WebhookCommPlatformIntegration defines an outgoing webhook integration. WebhookCommPlatformIntegration CommPlatformIntegration = "webhook" )
type Communications ¶
type Communications struct {
Slack Slack `yaml:"slack"`
SocketSlack SocketSlack `yaml:"socketSlack"`
Mattermost Mattermost `yaml:"mattermost"`
Discord Discord `yaml:"discord"`
Teams Teams `yaml:"teams"`
Webhook Webhook `yaml:"webhook"`
Elasticsearch Elasticsearch `yaml:"elasticsearch"`
}
Communications contains communication platforms that are supported.
type CommunicationsRuntimeState ¶ added in v0.14.0
type CommunicationsRuntimeState map[CommPlatformIntegration]BotRuntimeState
CommunicationsRuntimeState represents the runtime state for communication groups.
type CommunicationsStartupState ¶ added in v0.14.0
type CommunicationsStartupState map[CommPlatformIntegration]BotStartupState
CommunicationsStartupState represents the startup state for communication groups.
type Config ¶
type Config struct {
Actions Actions `yaml:"actions" validate:"dive"`
Sources map[string]Sources `yaml:"sources" validate:"dive"`
Executors map[string]Executors `yaml:"executors" validate:"dive"`
Communications map[string]Communications `yaml:"communications" validate:"required,min=1,dive"`
Filters Filters `yaml:"filters"`
Analytics Analytics `yaml:"analytics"`
Settings Settings `yaml:"settings"`
ConfigWatcher CfgWatcher `yaml:"configWatcher"`
Plugins Plugins `yaml:"plugins"`
}
Config structure of configuration yaml file
type Discord ¶ added in v0.13.0
type Discord struct {
Enabled bool `yaml:"enabled"`
Token string `yaml:"token"`
BotID string `yaml:"botID"`
Channels IdentifiableMap[ChannelBindingsByID] `yaml:"channels" validate:"required_if=Enabled true,dive,omitempty,min=1"`
Notification Notification `yaml:"notification,omitempty"`
}
Discord configuration for authentication and send notifications
type ELSIndex ¶ added in v0.13.0
type ELSIndex struct {
Name string `yaml:"name"`
Type string `yaml:"type"`
Shards int `yaml:"shards"`
Replicas int `yaml:"replicas"`
Bindings SinkBindings `yaml:"bindings"`
}
ELSIndex settings for ELS
type Elasticsearch ¶ added in v0.13.0
type Elasticsearch struct {
Enabled bool `yaml:"enabled"`
Username string `yaml:"username"`
Password string `yaml:"password"`
Server string `yaml:"server"`
SkipTLSVerify bool `yaml:"skipTLSVerify"`
AWSSigning AWSSigning `yaml:"awsSigning"`
Indices map[string]ELSIndex `yaml:"indices" validate:"required_if=Enabled true,dive,omitempty,min=1"`
}
Elasticsearch config auth settings
type EventType ¶ added in v0.8.0
type EventType string
EventType to watch
const ( // CreateEvent when resource is created CreateEvent EventType = "create" // UpdateEvent when resource is updated UpdateEvent EventType = "update" // DeleteEvent when resource deleted DeleteEvent EventType = "delete" // ErrorEvent on errors in resources ErrorEvent EventType = "error" // WarningEvent for warning events WarningEvent EventType = "warning" // NormalEvent for Normal events NormalEvent EventType = "normal" // InfoEvent for insignificant Info events InfoEvent EventType = "info" // AllEvent to watch all events AllEvent EventType = "all" )
type Executors ¶ added in v0.13.0
type Executors struct {
Kubectl Kubectl `yaml:"kubectl"`
Plugins PluginsExecutors `koanf:",remain"`
}
Executors contains executors configuration parameters.
type Filters ¶ added in v0.14.0
type Filters struct {
Kubernetes KubernetesFilters `yaml:"kubernetes"`
}
Filters contains configuration for built-in filters.
type Identifiable ¶ added in v0.13.0
type Identifiable interface {
Identifier() string
}
Identifiable exports an Identifier method.
type IdentifiableMap ¶ added in v0.13.0
type IdentifiableMap[T Identifiable] map[string]T
IdentifiableMap provides an option to construct an indexable map for identifiable items.
func (IdentifiableMap[T]) GetByIdentifier ¶ added in v0.13.0
func (t IdentifiableMap[T]) GetByIdentifier(val string) (T, bool)
GetByIdentifier gets an item from a map by identifier.
type IngressRecommendations ¶ added in v0.13.0
type IngressRecommendations struct {
// BackendServiceValid notifies about Ingress resources with invalid backend service reference.
BackendServiceValid *bool `yaml:"backendServiceValid,omitempty"`
// TLSSecretValid notifies about Ingress resources with invalid TLS secret reference.
TLSSecretValid *bool `yaml:"tlsSecretValid,omitempty"`
}
IngressRecommendations contains configuration for ingress recommendations.
type IntegrationType ¶ added in v0.13.0
type IntegrationType string
IntegrationType describes the type of integration with a communication platform.
const ( // BotIntegrationType describes two-way integration. BotIntegrationType IntegrationType = "bot" // SinkIntegrationType describes one-way integration. SinkIntegrationType IntegrationType = "sink" )
type K8sResourceRef ¶ added in v0.14.0
type K8sResourceRef struct {
Name string `yaml:"name,omitempty"`
Namespace string `yaml:"namespace,omitempty"`
}
K8sResourceRef holds the configuration for a Kubernetes resource.
type Kubectl ¶ added in v0.13.0
type Kubectl struct {
Namespaces Namespaces `yaml:"namespaces,omitempty"`
Enabled bool `yaml:"enabled"`
Commands Commands `yaml:"commands,omitempty"`
DefaultNamespace string `yaml:"defaultNamespace,omitempty"`
RestrictAccess *bool `yaml:"restrictAccess,omitempty"`
}
Kubectl configuration for executing commands inside cluster
type KubernetesEvent ¶ added in v0.16.0
type KubernetesEvent struct {
Reason string `yaml:"reason"`
Message string `yaml:"message"`
Types KubernetesResourceEventTypes `yaml:"types"`
}
KubernetesEvent contains configuration for Kubernetes events.
func (KubernetesEvent) AreConstraintsDefined ¶ added in v0.16.0
func (e KubernetesEvent) AreConstraintsDefined() bool
AreConstraintsDefined checks if any of the event constraints are defined.
type KubernetesFilters ¶ added in v0.14.0
type KubernetesFilters struct {
// ObjectAnnotationChecker enables support for `botkube.io/disable` and `botkube.io/channel` resource annotations.
ObjectAnnotationChecker bool `yaml:"objectAnnotationChecker"`
// NodeEventsChecker filters out Node-related events that are not important.
NodeEventsChecker bool `yaml:"nodeEventsChecker"`
}
KubernetesFilters contains configuration for Kubernetes-related filters.
func (*KubernetesFilters) SetEnabled ¶ added in v0.14.0
func (f *KubernetesFilters) SetEnabled(name string, enabled bool) error
SetEnabled enables or disables a given filter.
type KubernetesResourceEventTypes ¶ added in v0.16.0
type KubernetesResourceEventTypes []EventType
KubernetesResourceEventTypes contains events to watch for a resource.
func (*KubernetesResourceEventTypes) Contains ¶ added in v0.16.0
func (e *KubernetesResourceEventTypes) Contains(eventType EventType) bool
Contains checks if event is contained in the events slice. If the slice contains AllEvent, then the result is true.
type KubernetesSource ¶ added in v0.13.0
type KubernetesSource struct {
Recommendations Recommendations `yaml:"recommendations"`
Event KubernetesEvent `yaml:"event"`
Resources []Resource `yaml:"resources" validate:"dive"`
Namespaces Namespaces `yaml:"namespaces"`
Annotations map[string]string `yaml:"annotations"`
Labels map[string]string `yaml:"labels"`
}
KubernetesSource contains configuration for Kubernetes sources.
type LifecycleServer ¶ added in v0.14.0
type LifecycleServer struct {
Enabled bool `yaml:"enabled"`
Port int `yaml:"port"` // String for consistency
Deployment K8sResourceRef `yaml:"deployment"`
}
LifecycleServer contains configuration for the server with app lifecycle methods.
type LoadWithDefaultsDetails ¶ added in v0.13.0
type LoadWithDefaultsDetails struct {
ValidateWarnings error
}
LoadWithDefaultsDetails holds the LoadWithDefaults function details.
type Mattermost ¶ added in v0.7.0
type Mattermost struct {
Enabled bool `yaml:"enabled"`
BotName string `yaml:"botName"`
URL string `yaml:"url"`
Token string `yaml:"token"`
Team string `yaml:"team"`
Channels IdentifiableMap[ChannelBindingsByName] `yaml:"channels" validate:"required_if=Enabled true,dive,omitempty,min=1"`
Notification Notification `yaml:"notification,omitempty"`
}
Mattermost configuration to authentication and send notifications
type Namespaces ¶ added in v0.13.0
type Namespaces struct {
// Include contains a list of allowed Namespaces.
// It can also contain a regex expressions:
// - ".*" - to specify all Namespaces.
Include []string `yaml:"include"`
// Exclude contains a list of Namespaces to be ignored even if allowed by Include.
// It can also contain a regex expressions:
// - "test-.*" - to specif all Namespaces with `test-` prefix.
Exclude []string `yaml:"exclude,omitempty"`
}
Namespaces provides an option to include and exclude given Namespaces.
func (*Namespaces) IsAllowed ¶ added in v0.13.0
func (n *Namespaces) IsAllowed(givenNs string) bool
IsAllowed checks if a given Namespace is allowed based on the config.
func (*Namespaces) IsConfigured ¶ added in v0.13.0
func (n *Namespaces) IsConfigured() bool
IsConfigured checks whether the Namespace has any Include/Exclude configuration.
type Notification ¶ added in v0.13.0
type Notification struct {
Type NotificationType
}
Notification holds notification configuration.
type NotificationStartupState ¶ added in v0.14.0
type NotificationStartupState struct {
Disabled bool `yaml:"disabled"`
}
NotificationStartupState represents the startup state for a notification.
type NotificationType ¶ added in v0.13.0
type NotificationType string
NotificationType to change notification type
const ( // ShortNotification is the default NotificationType ShortNotification NotificationType = "short" // LongNotification for short events notification LongNotification NotificationType = "long" )
type PartialPersistentConfig ¶ added in v0.14.0
type PartialPersistentConfig struct {
FileName string `yaml:"fileName"`
ConfigMap K8sResourceRef `yaml:"configMap"`
}
PartialPersistentConfig contains configuration for persistent storage of a given type.
type PersistenceManager ¶ added in v0.14.0
type PersistenceManager struct {
// contains filtered or unexported fields
}
PersistenceManager manages persistence of the configuration.
func NewManager ¶ added in v0.14.0
func NewManager(log logrus.FieldLogger, cfg PersistentConfig, k8sCli kubernetes.Interface) *PersistenceManager
NewManager creates a new PersistenceManager instance.
func (*PersistenceManager) PersistActionEnabled ¶ added in v0.16.0
func (m *PersistenceManager) PersistActionEnabled(ctx context.Context, name string, enabled bool) error
PersistActionEnabled updates runtime config map with desired action.enabled parameter
func (*PersistenceManager) PersistFilterEnabled ¶ added in v0.14.0
func (m *PersistenceManager) PersistFilterEnabled(ctx context.Context, name string, enabled bool) error
PersistFilterEnabled persists status for a given filter. While this method updates the Botkube ConfigMap, it doesn't reload Botkube itself.
func (*PersistenceManager) PersistNotificationsEnabled ¶ added in v0.14.0
func (m *PersistenceManager) PersistNotificationsEnabled(ctx context.Context, commGroupName string, platform CommPlatformIntegration, channelAlias string, enabled bool) error
PersistNotificationsEnabled persists notifications state for a given channel. While this method updates the Botkube ConfigMap, it doesn't reload Botkube itself.
func (*PersistenceManager) PersistSourceBindings ¶ added in v0.14.0
func (m *PersistenceManager) PersistSourceBindings(ctx context.Context, commGroupName string, platform CommPlatformIntegration, channelAlias string, sourceBindings []string) error
PersistSourceBindings persists source bindings configuration for a given channel in a given platform.
type PersistentConfig ¶ added in v0.14.0
type PersistentConfig struct {
Startup PartialPersistentConfig `yaml:"startup"`
Runtime PartialPersistentConfig `yaml:"runtime"`
}
PersistentConfig contains configuration for persistent storage.
type PluginExecutor ¶ added in v0.17.0
PluginExecutor contains plugin specific configuration.
type Plugins ¶ added in v0.17.0
type Plugins struct {
CacheDir string `yaml:"cacheDir"`
Repositories map[string]PluginsRepositories `yaml:"repositories"`
}
Plugins holds Botkube plugins related configuration.
type PluginsExecutors ¶ added in v0.17.0
type PluginsExecutors map[string]PluginExecutor
PluginsExecutors contains plugins executors configuration parameters defined in groups.
type PluginsRepositories ¶ added in v0.17.0
type PluginsRepositories struct {
URL string `yaml:"url"`
}
PluginsRepositories holds the Plugin repository information.
type PodRecommendations ¶ added in v0.13.0
type PodRecommendations struct {
// NoLatestImageTag notifies about Pod containers that use `latest` tag for images.
NoLatestImageTag *bool `yaml:"noLatestImageTag,omitempty"`
// LabelsSet notifies about Pod resources created without labels.
LabelsSet *bool `yaml:"labelsSet,omitempty"`
}
PodRecommendations contains configuration for pods recommendations.
type Recommendations ¶ added in v0.13.0
type Recommendations struct {
Ingress IngressRecommendations `yaml:"ingress"`
Pod PodRecommendations `yaml:"pod"`
}
Recommendations contains configuration for various recommendation insights.
type Resource ¶
type Resource struct {
Type string `yaml:"type"`
Name string `yaml:"name"`
Namespaces Namespaces `yaml:"namespaces"`
Annotations map[string]string `yaml:"annotations"`
Labels map[string]string `yaml:"labels"`
Event KubernetesEvent `yaml:"event"`
UpdateSetting UpdateSetting `yaml:"updateSetting"`
}
Resource contains resources to watch
type RuntimeState ¶ added in v0.14.0
type RuntimeState struct {
Communications map[string]CommunicationsRuntimeState `yaml:"communications,omitempty"`
Actions ActionsRuntimeState `yaml:"actions,omitempty"`
}
RuntimeState represents the runtime state.
func (RuntimeState) MarshalToMap ¶ added in v0.14.0
func (s RuntimeState) MarshalToMap(cfg PartialPersistentConfig) (map[string]string, error)
MarshalToMap marshals the runtime state to a string map.
type Settings ¶ added in v0.2.0
type Settings struct {
ClusterName string `yaml:"clusterName"`
UpgradeNotifier bool `yaml:"upgradeNotifier"`
SystemConfigMap K8sResourceRef `yaml:"systemConfigMap"`
PersistentConfig PersistentConfig `yaml:"persistentConfig"`
MetricsPort string `yaml:"metricsPort"`
HealthPort string `yaml:"healthPort"`
LifecycleServer LifecycleServer `yaml:"lifecycleServer"`
Log loggerx.Config `yaml:"log"`
InformersResyncPeriod time.Duration `yaml:"informersResyncPeriod"`
Kubeconfig string `yaml:"kubeconfig"`
}
Settings contains Botkube's related configuration.
type SinkBindings ¶ added in v0.13.0
type SinkBindings struct {
Sources []string `yaml:"sources"`
}
SinkBindings contains configuration for possible Sink bindings.
type Slack ¶
type Slack struct {
Enabled bool `yaml:"enabled"`
Channels IdentifiableMap[ChannelBindingsByName] `yaml:"channels" validate:"required_if=Enabled true,dive,omitempty,min=1"`
Notification Notification `yaml:"notification,omitempty"`
Token string `yaml:"token,omitempty"`
}
Slack configuration to authentication and send notifications
type SocketSlack ¶ added in v0.14.0
type SocketSlack struct {
Enabled bool `yaml:"enabled"`
Channels IdentifiableMap[ChannelBindingsByName] `yaml:"channels" validate:"required_if=Enabled true,dive,omitempty,min=1"`
Notification Notification `yaml:"notification,omitempty"`
BotToken string `yaml:"botToken,omitempty"`
AppToken string `yaml:"appToken,omitempty"`
}
SocketSlack configuration to authentication and send notifications
type Sources ¶ added in v0.13.0
type Sources struct {
DisplayName string `yaml:"displayName"`
Kubernetes KubernetesSource `yaml:"kubernetes"`
Plugins PluginsExecutors `koanf:",remain"`
}
Sources contains configuration for Botkube app sources.
type StartupState ¶ added in v0.14.0
type StartupState struct {
Communications map[string]CommunicationsStartupState `yaml:"communications,omitempty"`
Filters Filters `yaml:"filters,omitempty"`
}
StartupState represents the startup state.
func (StartupState) MarshalToMap ¶ added in v0.14.0
func (s StartupState) MarshalToMap(cfg PartialPersistentConfig) (map[string]string, error)
MarshalToMap marshals the startup state to a string map.
type Teams ¶ added in v0.13.0
type Teams struct {
Enabled bool `yaml:"enabled"`
BotName string `yaml:"botName,omitempty"`
AppID string `yaml:"appID,omitempty"`
AppPassword string `yaml:"appPassword,omitempty"`
Port string `yaml:"port"`
MessagePath string `yaml:"messagePath,omitempty"`
// TODO: Be consistent with other communicators when MS Teams support multiple channels
//Channels IdentifiableMap[ChannelBindingsByName] `yaml:"channels"`
Bindings BotBindings `yaml:"bindings" validate:"required_if=Enabled true"`
Notification Notification `yaml:"notification,omitempty"`
}
Teams creds for authentication with MS Teams
type UpdateSetting ¶ added in v0.13.0
UpdateSetting struct defines updateEvent fields specification
type ValidateResult ¶ added in v0.13.0
type ValidateResult struct {
Criticals *multierror.Error
Warnings *multierror.Error
}
ValidateResult holds the validation results.
func ValidateStruct ¶ added in v0.13.0
func ValidateStruct(in any) (ValidateResult, error)
ValidateStruct validates a given struct based on the `validate` field tag.
type Webhook ¶ added in v0.13.0
type Webhook struct {
Enabled bool `yaml:"enabled"`
URL string `yaml:"url"`
Bindings SinkBindings `yaml:"bindings" validate:"required_if=Enabled true"`
}
Webhook configuration to send notifications