mirror of
https://github.com/Unleash/unleash.git
synced 2024-12-22 19:07:54 +01:00
186fda1657
###What Adds an optional sensitive parameter for customHeaders to all current addons. It is sensitive because the user might be including api key headers.
124 lines
3.9 KiB
TypeScript
124 lines
3.9 KiB
TypeScript
import {
|
|
FEATURE_ARCHIVED,
|
|
FEATURE_CREATED,
|
|
FEATURE_ENVIRONMENT_DISABLED,
|
|
FEATURE_ENVIRONMENT_ENABLED,
|
|
FEATURE_METADATA_UPDATED,
|
|
FEATURE_VARIANTS_UPDATED,
|
|
FEATURE_PROJECT_CHANGE,
|
|
FEATURE_REVIVED,
|
|
FEATURE_STALE_OFF,
|
|
FEATURE_STALE_ON,
|
|
FEATURE_STRATEGY_ADD,
|
|
FEATURE_STRATEGY_REMOVE,
|
|
FEATURE_STRATEGY_UPDATE,
|
|
FEATURE_UPDATED,
|
|
FEATURE_TAGGED,
|
|
FEATURE_UNTAGGED,
|
|
CHANGE_REQUEST_CREATED,
|
|
CHANGE_REQUEST_DISCARDED,
|
|
CHANGE_ADDED,
|
|
CHANGE_DISCARDED,
|
|
CHANGE_REQUEST_APPROVED,
|
|
CHANGE_REQUEST_APPROVAL_ADDED,
|
|
CHANGE_REQUEST_CANCELLED,
|
|
CHANGE_REQUEST_SENT_TO_REVIEW,
|
|
CHANGE_REQUEST_APPLIED,
|
|
} from '../types/events';
|
|
import { IAddonDefinition } from '../types/model';
|
|
|
|
const webhookDefinition: IAddonDefinition = {
|
|
name: 'webhook',
|
|
displayName: 'Webhook',
|
|
description:
|
|
'A Webhook is a generic way to post messages from Unleash to third party services.',
|
|
documentationUrl: 'https://docs.getunleash.io/docs/addons/webhook',
|
|
parameters: [
|
|
{
|
|
name: 'url',
|
|
displayName: 'Webhook URL',
|
|
description:
|
|
'(Required) Unleash will perform a HTTP Post to the specified URL (one retry if first attempt fails)',
|
|
type: 'url',
|
|
required: true,
|
|
sensitive: true,
|
|
},
|
|
{
|
|
name: 'contentType',
|
|
displayName: 'Content-Type',
|
|
placeholder: 'application/json',
|
|
description:
|
|
'(Optional) The Content-Type header to use. Defaults to "application/json".',
|
|
type: 'text',
|
|
required: false,
|
|
sensitive: false,
|
|
},
|
|
{
|
|
name: 'authorization',
|
|
displayName: 'Authorization',
|
|
placeholder: '',
|
|
description:
|
|
'(Optional) The Authorization header to use. Not used if left blank.',
|
|
type: 'text',
|
|
required: false,
|
|
sensitive: true,
|
|
},
|
|
{
|
|
name: 'bodyTemplate',
|
|
displayName: 'Body template',
|
|
placeholder: `{
|
|
"event": "{{event.type}}",
|
|
"createdBy": "{{event.createdBy}}",
|
|
"featureToggle": "{{event.data.name}}",
|
|
"timestamp": "{{event.data.createdAt}}"
|
|
}`,
|
|
description:
|
|
"(Optional) You may format the body using a mustache template. If you don't specify anything, the format will similar to the events format (https://docs.getunleash.io/reference/api/legacy/unleash/admin/events)",
|
|
type: 'textfield',
|
|
required: false,
|
|
sensitive: false,
|
|
},
|
|
{
|
|
name: 'customHeaders',
|
|
displayName: 'Extra HTTP Headers',
|
|
placeholder: `{
|
|
"ISTIO_USER_KEY": "hunter2",
|
|
"SOME_OTHER_CUSTOM_HTTP_HEADER": "SOMEVALUE"
|
|
}`,
|
|
description: `(Optional) Used to add extra HTTP Headers to the request the plugin fires off. Format here needs to be a valid json object of key value pairs where both key and value are strings`,
|
|
required: false,
|
|
sensitive: true,
|
|
type: 'textfield',
|
|
},
|
|
],
|
|
events: [
|
|
FEATURE_CREATED,
|
|
FEATURE_UPDATED,
|
|
FEATURE_ARCHIVED,
|
|
FEATURE_REVIVED,
|
|
FEATURE_STALE_ON,
|
|
FEATURE_STALE_OFF,
|
|
FEATURE_ENVIRONMENT_ENABLED,
|
|
FEATURE_ENVIRONMENT_DISABLED,
|
|
FEATURE_STRATEGY_REMOVE,
|
|
FEATURE_STRATEGY_UPDATE,
|
|
FEATURE_STRATEGY_ADD,
|
|
FEATURE_METADATA_UPDATED,
|
|
FEATURE_VARIANTS_UPDATED,
|
|
FEATURE_PROJECT_CHANGE,
|
|
FEATURE_TAGGED,
|
|
FEATURE_UNTAGGED,
|
|
CHANGE_REQUEST_CREATED,
|
|
CHANGE_REQUEST_DISCARDED,
|
|
CHANGE_ADDED,
|
|
CHANGE_DISCARDED,
|
|
CHANGE_REQUEST_APPROVED,
|
|
CHANGE_REQUEST_APPROVAL_ADDED,
|
|
CHANGE_REQUEST_CANCELLED,
|
|
CHANGE_REQUEST_SENT_TO_REVIEW,
|
|
CHANGE_REQUEST_APPLIED,
|
|
],
|
|
};
|
|
|
|
export default webhookDefinition;
|