fe89ed7b55
Signed-off-by: Henrik Edegård <henrik.edegard@fortnox.se>
69 lines
2.4 KiB
TypeScript
69 lines
2.4 KiB
TypeScript
/*
|
|
* Copyright 2025 The Backstage Authors
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
import { HumanDuration } from '@backstage/types';
|
|
|
|
export interface Config {
|
|
notifications?: {
|
|
processors?: {
|
|
slack?: Array<{
|
|
/**
|
|
* Slack Bot Token. Usually starts with `xoxb-`.
|
|
* @visibility secret
|
|
*/
|
|
token?: string;
|
|
/**
|
|
* Broadcast notification receivers when receiver is set to config
|
|
* These can be Slack User IDs, Slack User Email addresses, Slack Channel
|
|
* Names, or Slack Channel IDs. Any valid identifier that chat.postMessage can accept.
|
|
* @deprecated Use broadcastRoutes instead for more granular control
|
|
*/
|
|
broadcastChannels?: string[];
|
|
/**
|
|
* Optional username to display as the sender of the notification
|
|
*/
|
|
username?: string;
|
|
/**
|
|
* Routes for broadcast notifications based on origin and/or topic.
|
|
* Routes are evaluated in order, first match wins.
|
|
* Origin+topic matches take precedence over origin-only matches.
|
|
*/
|
|
broadcastRoutes?: Array<{
|
|
/**
|
|
* The origin to match (e.g., 'plugin:catalog', 'external:my-service')
|
|
*/
|
|
origin?: string;
|
|
/**
|
|
* The topic to match (e.g., 'entity-updated', 'alerts')
|
|
*/
|
|
topic?: string;
|
|
/**
|
|
* The Slack channel(s) to send to. Can be channel IDs, channel names, or user IDs.
|
|
*/
|
|
channel: string | string[];
|
|
}>;
|
|
/**
|
|
* Concurrency limit for Slack notifications per backend instance of the notifications plugin, defaults to 10.
|
|
*/
|
|
concurrencyLimit?: number;
|
|
/**
|
|
* Throttle duration between Slack notifications per backend instance of the notifications plugin, defaults to 1 minute.
|
|
*/
|
|
throttleInterval?: HumanDuration | string;
|
|
}>;
|
|
};
|
|
};
|
|
}
|