unleash-server 5.2.7 → 5.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/lib/addons/datadog-definition.js +20 -0
  2. package/dist/lib/addons/datadog-definition.js.map +1 -1
  3. package/dist/lib/addons/datadog.d.ts +8 -1
  4. package/dist/lib/addons/datadog.js +14 -2
  5. package/dist/lib/addons/datadog.js.map +1 -1
  6. package/dist/lib/addons/datadog.test.js +62 -0
  7. package/dist/lib/addons/datadog.test.js.map +1 -1
  8. package/dist/lib/addons/slack-definition.js +12 -0
  9. package/dist/lib/addons/slack-definition.js.map +1 -1
  10. package/dist/lib/addons/slack.d.ts +9 -1
  11. package/dist/lib/addons/slack.js +15 -3
  12. package/dist/lib/addons/slack.js.map +1 -1
  13. package/dist/lib/addons/slack.test.js +33 -0
  14. package/dist/lib/addons/slack.test.js.map +1 -1
  15. package/dist/lib/addons/teams-definition.js +12 -0
  16. package/dist/lib/addons/teams-definition.js.map +1 -1
  17. package/dist/lib/addons/teams.d.ts +6 -1
  18. package/dist/lib/addons/teams.js +11 -2
  19. package/dist/lib/addons/teams.js.map +1 -1
  20. package/dist/lib/addons/teams.test.js +28 -0
  21. package/dist/lib/addons/teams.test.js.map +1 -1
  22. package/dist/lib/addons/webhook-definition.js +12 -0
  23. package/dist/lib/addons/webhook-definition.js.map +1 -1
  24. package/dist/lib/addons/webhook.d.ts +1 -0
  25. package/dist/lib/addons/webhook.js +11 -1
  26. package/dist/lib/addons/webhook.js.map +1 -1
  27. package/dist/lib/addons/webhook.test.js +29 -0
  28. package/dist/lib/addons/webhook.test.js.map +1 -1
  29. package/dist/lib/routes/client-api/metrics.js +3 -3
  30. package/dist/lib/routes/client-api/metrics.js.map +1 -1
  31. package/dist/lib/services/client-metrics/metrics-service-v2.d.ts +2 -0
  32. package/dist/lib/services/client-metrics/metrics-service-v2.js +29 -12
  33. package/dist/lib/services/client-metrics/metrics-service-v2.js.map +1 -1
  34. package/dist/lib/services/client-metrics/metrics-service-v2.test.d.ts +1 -0
  35. package/dist/lib/services/client-metrics/metrics-service-v2.test.js +96 -0
  36. package/dist/lib/services/client-metrics/metrics-service-v2.test.js.map +1 -0
  37. package/dist/lib/types/experimental.d.ts +1 -1
  38. package/dist/lib/types/experimental.js +1 -0
  39. package/dist/lib/types/experimental.js.map +1 -1
  40. package/package.json +1 -1
@@ -24,6 +24,26 @@ const dataDogDefinition = {
24
24
  required: true,
25
25
  sensitive: true,
26
26
  },
27
+ {
28
+ name: 'sourceTypeName',
29
+ displayName: 'Datadog Source Type Name',
30
+ description: '(Optional) source_type_name parameter to be included in Datadog events.',
31
+ type: 'text',
32
+ required: false,
33
+ sensitive: false,
34
+ },
35
+ {
36
+ name: 'customHeaders',
37
+ displayName: 'Extra HTTP Headers',
38
+ placeholder: `{
39
+ "ISTIO_USER_KEY": "hunter2",
40
+ "SOME_OTHER_CUSTOM_HTTP_HEADER": "SOMEVALUE"
41
+ }`,
42
+ 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`,
43
+ required: false,
44
+ sensitive: true,
45
+ type: 'textfield',
46
+ },
27
47
  ],
28
48
  events: [
29
49
  events_1.FEATURE_CREATED,
@@ -1 +1 @@
1
- {"version":3,"file":"datadog-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog-definition.ts"],"names":[],"mappings":";;AAAA,4CAeyB;AAGzB,MAAM,iBAAiB,GAAqB;IACxC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,4CAA4C;IACzD,gBAAgB,EAAE,gDAAgD;IAClE,UAAU,EAAE;QACR;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,oBAAoB;YACjC,WAAW,EACP,2GAA2G;YAC/G,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EAAE,kCAAkC;YAC/C,WAAW,EAAE,iCAAiC;YAC9C,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;KACJ;IACD,MAAM,EAAE;QACJ,wBAAe;QACf,wBAAe;QACf,yBAAgB;QAChB,wBAAe;QACf,yBAAgB;QAChB,0BAAiB;QACjB,oCAA2B;QAC3B,qCAA4B;QAC5B,gCAAuB;QACvB,gCAAuB;QACvB,6BAAoB;QACpB,iCAAwB;QACxB,+BAAsB;QACtB,iCAAwB;KAC3B;IACD,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,SAAS;YACf,WAAW,EACP,gFAAgF;YACpF,IAAI,EAAE,GAAG;SACZ;KACJ;CACJ,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"datadog-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog-definition.ts"],"names":[],"mappings":";;AAAA,4CAeyB;AAGzB,MAAM,iBAAiB,GAAqB;IACxC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,4CAA4C;IACzD,gBAAgB,EAAE,gDAAgD;IAClE,UAAU,EAAE;QACR;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,oBAAoB;YACjC,WAAW,EACP,2GAA2G;YAC/G,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EAAE,kCAAkC;YAC/C,WAAW,EAAE,iCAAiC;YAC9C,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;QACD;YACI,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,0BAA0B;YACvC,WAAW,EACP,yEAAyE;YAC7E,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,oBAAoB;YACjC,WAAW,EAAE;;;cAGX;YACF,WAAW,EAAE,oLAAoL;YACjM,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,WAAW;SACpB;KACJ;IACD,MAAM,EAAE;QACJ,wBAAe;QACf,wBAAe;QACf,yBAAgB;QAChB,wBAAe;QACf,yBAAgB;QAChB,0BAAiB;QACjB,oCAA2B;QAC3B,qCAA4B;QAC5B,gCAAuB;QACvB,gCAAuB;QACvB,6BAAoB;QACpB,iCAAwB;QACxB,+BAAsB;QACtB,iCAAwB;KAC3B;IACD,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,SAAS;YACf,WAAW,EACP,gFAAgF;YACpF,IAAI,EAAE,GAAG;SACZ;KACJ;CACJ,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
@@ -1,8 +1,15 @@
1
1
  import Addon from './addon';
2
2
  import { IAddonConfig } from '../types/model';
3
3
  import { IEvent } from '../types/events';
4
+ interface IDatadogParameters {
5
+ url: string;
6
+ apiKey: string;
7
+ sourceTypeName?: string;
8
+ customHeaders?: string;
9
+ }
4
10
  export default class DatadogAddon extends Addon {
5
11
  private msgFormatter;
6
12
  constructor(config: IAddonConfig);
7
- handleEvent(event: IEvent, parameters: any): Promise<void>;
13
+ handleEvent(event: IEvent, parameters: IDatadogParameters): Promise<void>;
8
14
  }
15
+ export {};
@@ -11,9 +11,8 @@ class DatadogAddon extends addon_1.default {
11
11
  super(datadog_definition_1.default, config);
12
12
  this.msgFormatter = new feature_event_formatter_md_1.FeatureEventFormatterMd(config.unleashUrl, feature_event_formatter_md_1.LinkStyle.MD);
13
13
  }
14
- // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
15
14
  async handleEvent(event, parameters) {
16
- const { url = 'https://api.datadoghq.com/api/v1/events', apiKey } = parameters;
15
+ const { url = 'https://api.datadoghq.com/api/v1/events', apiKey, sourceTypeName, customHeaders, } = parameters;
17
16
  const text = this.msgFormatter.format(event);
18
17
  const { tags: eventTags } = event;
19
18
  const tags = eventTags && eventTags.map((tag) => `${tag.type}:${tag.value}`);
@@ -22,11 +21,24 @@ class DatadogAddon extends addon_1.default {
22
21
  title: 'Unleash notification update',
23
22
  tags,
24
23
  };
24
+ if (sourceTypeName) {
25
+ body.source_type_name = sourceTypeName;
26
+ }
27
+ let extraHeaders = {};
28
+ if (typeof customHeaders === 'string' && customHeaders.length > 1) {
29
+ try {
30
+ extraHeaders = JSON.parse(customHeaders);
31
+ }
32
+ catch (e) {
33
+ this.logger.warn(`Could not parse the json in the customHeaders parameter. [${customHeaders}]`);
34
+ }
35
+ }
25
36
  const requestOpts = {
26
37
  method: 'POST',
27
38
  headers: {
28
39
  'Content-Type': 'application/json',
29
40
  'DD-API-KEY': apiKey,
41
+ ...extraHeaders,
30
42
  },
31
43
  body: JSON.stringify(body),
32
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAE5B,8EAA8C;AAE9C,6EAIsC;AAGtC,MAAqB,YAAa,SAAQ,eAAK;IAG3C,YAAY,MAAoB;QAC5B,KAAK,CAAC,4BAAU,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,oDAAuB,CAC3C,MAAM,CAAC,UAAU,EACjB,sCAAS,CAAC,EAAE,CACf,CAAC;IACN,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,UAAe;QAC5C,MAAM,EAAE,GAAG,GAAG,yCAAyC,EAAE,MAAM,EAAE,GAC7D,UAAU,CAAC;QAEf,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE7C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClC,MAAM,IAAI,GACN,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG;YACT,IAAI,EAAE,UAAU,IAAI,UAAU;YAC9B,KAAK,EAAE,6BAA6B;YACpC,IAAI;SACP,CAAC;QAEF,MAAM,WAAW,GAAG;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,YAAY,EAAE,MAAM;aACvB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC7B,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,iBAAiB,KAAK,CAAC,IAAI,kBAAkB,GAAG,CAAC,MAAM,EAAE,CAC5D,CAAC;IACN,CAAC;CACJ;AAxCD,+BAwCC"}
1
+ {"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAE5B,8EAA8C;AAE9C,6EAIsC;AAiBtC,MAAqB,YAAa,SAAQ,eAAK;IAG3C,YAAY,MAAoB;QAC5B,KAAK,CAAC,4BAAU,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,oDAAuB,CAC3C,MAAM,CAAC,UAAU,EACjB,sCAAS,CAAC,EAAE,CACf,CAAC;IACN,CAAC;IAED,KAAK,CAAC,WAAW,CACb,KAAa,EACb,UAA8B;QAE9B,MAAM,EACF,GAAG,GAAG,yCAAyC,EAC/C,MAAM,EACN,cAAc,EACd,aAAa,GAChB,GAAG,UAAU,CAAC;QAEf,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAE7C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAClC,MAAM,IAAI,GACN,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QACpE,MAAM,IAAI,GAAkB;YACxB,IAAI,EAAE,UAAU,IAAI,UAAU;YAC9B,KAAK,EAAE,6BAA6B;YACpC,IAAI;SACP,CAAC;QACF,IAAI,cAAc,EAAE;YAChB,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;SAC1C;QACD,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/D,IAAI;gBACA,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;aAC5C;YAAC,OAAO,CAAC,EAAE;gBACR,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,6DAA6D,aAAa,GAAG,CAChF,CAAC;aACL;SACJ;QACD,MAAM,WAAW,GAAG;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,YAAY,EAAE,MAAM;gBACpB,GAAG,YAAY;aAClB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC7B,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,iBAAiB,KAAK,CAAC,IAAI,kBAAkB,GAAG,CAAC,MAAM,EAAE,CAC5D,CAAC;IACN,CAAC;CACJ;AA3DD,+BA2DC"}
@@ -41,6 +41,7 @@ test('Should call datadog webhook', async () => {
41
41
  };
42
42
  const parameters = {
43
43
  url: 'http://api.datadoghq.com/api/v1/events',
44
+ apiKey: 'fakeKey',
44
45
  };
45
46
  await addon.handleEvent(event, parameters);
46
47
  expect(fetchRetryCalls.length).toBe(1);
@@ -64,6 +65,7 @@ test('Should call datadog webhook for archived toggle', async () => {
64
65
  };
65
66
  const parameters = {
66
67
  url: 'http://api.datadoghq.com/api/v1/events',
68
+ apiKey: 'fakeKey',
67
69
  };
68
70
  await addon.handleEvent(event, parameters);
69
71
  expect(fetchRetryCalls.length).toBe(1);
@@ -88,6 +90,7 @@ test('Should call datadog webhook for archived toggle with project info', async
88
90
  };
89
91
  const parameters = {
90
92
  url: 'http://api.datadoghq.com/api/v1/events',
93
+ apiKey: 'fakeKey',
91
94
  };
92
95
  await addon.handleEvent(event, parameters);
93
96
  expect(fetchRetryCalls.length).toBe(1);
@@ -113,6 +116,7 @@ test(`Should call datadog webhook for toggled environment`, async () => {
113
116
  };
114
117
  const parameters = {
115
118
  url: 'http://hooks.slack.com',
119
+ apiKey: 'fakeKey',
116
120
  };
117
121
  await addon.handleEvent(event, parameters);
118
122
  expect(fetchRetryCalls).toHaveLength(1);
@@ -120,4 +124,62 @@ test(`Should call datadog webhook for toggled environment`, async () => {
120
124
  expect(fetchRetryCalls[0].options.body).toMatch(/disabled/);
121
125
  expect(fetchRetryCalls[0].options.body).toMatchSnapshot();
122
126
  });
127
+ test(`Should include customHeaders in headers when calling service`, async () => {
128
+ const addon = new datadog_1.default({
129
+ getLogger: no_logger_1.default,
130
+ unleashUrl: 'http://some-url.com',
131
+ });
132
+ const event = {
133
+ id: 2,
134
+ createdAt: new Date(),
135
+ type: events_1.FEATURE_ENVIRONMENT_DISABLED,
136
+ createdBy: 'some@user.com',
137
+ environment: 'development',
138
+ project: 'default',
139
+ featureName: 'some-toggle',
140
+ data: {
141
+ name: 'some-toggle',
142
+ },
143
+ };
144
+ const parameters = {
145
+ url: 'http://hooks.slack.com',
146
+ apiKey: 'fakeKey',
147
+ customHeaders: `{ "MY_CUSTOM_HEADER": "MY_CUSTOM_VALUE" }`,
148
+ };
149
+ await addon.handleEvent(event, parameters);
150
+ expect(fetchRetryCalls).toHaveLength(1);
151
+ expect(fetchRetryCalls[0].url).toBe(parameters.url);
152
+ expect(fetchRetryCalls[0].options.body).toMatch(/disabled/);
153
+ expect(fetchRetryCalls[0].options.body).toMatchSnapshot();
154
+ expect(fetchRetryCalls[0].options.headers).toMatchSnapshot();
155
+ });
156
+ test(`Should not include source_type_name when included in the config`, async () => {
157
+ const addon = new datadog_1.default({
158
+ getLogger: no_logger_1.default,
159
+ unleashUrl: 'http://some-url.com',
160
+ });
161
+ const event = {
162
+ id: 2,
163
+ createdAt: new Date(),
164
+ type: events_1.FEATURE_ENVIRONMENT_DISABLED,
165
+ createdBy: 'some@user.com',
166
+ environment: 'development',
167
+ project: 'default',
168
+ featureName: 'some-toggle',
169
+ data: {
170
+ name: 'some-toggle',
171
+ },
172
+ };
173
+ const parameters = {
174
+ url: 'http://hooks.slack.com',
175
+ apiKey: 'fakeKey',
176
+ sourceTypeName: 'my-custom-source-type',
177
+ };
178
+ await addon.handleEvent(event, parameters);
179
+ expect(fetchRetryCalls).toHaveLength(1);
180
+ expect(fetchRetryCalls[0].url).toBe(parameters.url);
181
+ expect(fetchRetryCalls[0].options.body).toMatch(/"source_type_name":"my-custom-source-type"/);
182
+ expect(fetchRetryCalls[0].options.body).toMatchSnapshot();
183
+ expect(fetchRetryCalls[0].options.headers).toMatchSnapshot();
184
+ });
123
185
  //# sourceMappingURL=datadog.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datadog.test.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datadog.test.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog.test.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,18 @@ const slackDefinition = {
41
41
  required: true,
42
42
  sensitive: false,
43
43
  },
44
+ {
45
+ name: 'customHeaders',
46
+ displayName: 'Extra HTTP Headers',
47
+ placeholder: `{
48
+ "ISTIO_USER_KEY": "hunter2",
49
+ "SOME_OTHER_CUSTOM_HTTP_HEADER": "SOMEVALUE"
50
+ }`,
51
+ 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`,
52
+ required: false,
53
+ sensitive: true,
54
+ type: 'textfield',
55
+ },
44
56
  ],
45
57
  events: [
46
58
  events_1.FEATURE_CREATED,
@@ -1 +1 @@
1
- {"version":3,"file":"slack-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/slack-definition.ts"],"names":[],"mappings":";;AAAA,4CAeyB;AAGzB,MAAM,eAAe,GAAqB;IACtC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,0CAA0C;IACvD,gBAAgB,EAAE,8CAA8C;IAChE,UAAU,EAAE;QACR;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,mBAAmB;YAChC,WAAW,EAAE,YAAY;YACzB,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;QACD;YACI,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,SAAS;YACtB,WAAW,EACP,4EAA4E;YAChF,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,WAAW;YACxB,WAAW,EACP,gFAAgF;YACpF,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EACP,iFAAiF;YACrF,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,KAAK;SACnB;KACJ;IACD,MAAM,EAAE;QACJ,wBAAe;QACf,wBAAe;QACf,yBAAgB;QAChB,wBAAe;QACf,yBAAgB;QAChB,0BAAiB;QACjB,oCAA2B;QAC3B,qCAA4B;QAC5B,gCAAuB;QACvB,gCAAuB;QACvB,6BAAoB;QACpB,iCAAwB;QACxB,iCAAwB;QACxB,+BAAsB;KACzB;IACD,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,OAAO;YACb,WAAW,EACP,iEAAiE;YACrE,IAAI,EAAE,GAAG;SACZ;KACJ;CACJ,CAAC;AAEF,kBAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"slack-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/slack-definition.ts"],"names":[],"mappings":";;AAAA,4CAeyB;AAGzB,MAAM,eAAe,GAAqB;IACtC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,OAAO;IACpB,WAAW,EAAE,0CAA0C;IACvD,gBAAgB,EAAE,8CAA8C;IAChE,UAAU,EAAE;QACR;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,mBAAmB;YAChC,WAAW,EAAE,YAAY;YACzB,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;QACD;YACI,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,SAAS;YACtB,WAAW,EACP,4EAA4E;YAChF,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,WAAW;YACjB,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,WAAW;YACxB,WAAW,EACP,gFAAgF;YACpF,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EACP,iFAAiF;YACrF,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,oBAAoB;YACjC,WAAW,EAAE;;;cAGX;YACF,WAAW,EAAE,oLAAoL;YACjM,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,WAAW;SACpB;KACJ;IACD,MAAM,EAAE;QACJ,wBAAe;QACf,wBAAe;QACf,yBAAgB;QAChB,wBAAe;QACf,yBAAgB;QAChB,0BAAiB;QACjB,oCAA2B;QAC3B,qCAA4B;QAC5B,gCAAuB;QACvB,gCAAuB;QACvB,6BAAoB;QACpB,iCAAwB;QACxB,iCAAwB;QACxB,+BAAsB;KACzB;IACD,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,OAAO;YACb,WAAW,EACP,iEAAiE;YACrE,IAAI,EAAE,GAAG;SACZ;KACJ;CACJ,CAAC;AAEF,kBAAe,eAAe,CAAC"}
@@ -1,9 +1,17 @@
1
1
  import Addon from './addon';
2
2
  import { IAddonConfig } from '../types/model';
3
3
  import { IEvent } from '../types/events';
4
+ interface ISlackAddonParameters {
5
+ url: string;
6
+ username?: string;
7
+ defaultChannel: string;
8
+ emojiIcon?: string;
9
+ customHeaders?: string;
10
+ }
4
11
  export default class SlackAddon extends Addon {
5
12
  private msgFormatter;
6
13
  constructor(args: IAddonConfig);
7
- handleEvent(event: IEvent, parameters: any): Promise<void>;
14
+ handleEvent(event: IEvent, parameters: ISlackAddonParameters): Promise<void>;
8
15
  findSlackChannels({ tags }: Pick<IEvent, 'tags'>): string[];
9
16
  }
17
+ export {};
@@ -13,7 +13,7 @@ class SlackAddon extends addon_1.default {
13
13
  }
14
14
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
15
15
  async handleEvent(event, parameters) {
16
- const { url, defaultChannel, username = 'Unleash', iconEmoji = ':unleash:', } = parameters;
16
+ const { url, defaultChannel, username = 'Unleash', emojiIcon = ':unleash:', customHeaders, } = parameters;
17
17
  const slackChannels = this.findSlackChannels(event);
18
18
  if (slackChannels.length === 0) {
19
19
  slackChannels.push(defaultChannel);
@@ -23,7 +23,7 @@ class SlackAddon extends addon_1.default {
23
23
  const requests = slackChannels.map((channel) => {
24
24
  const body = {
25
25
  username,
26
- icon_emoji: iconEmoji,
26
+ icon_emoji: emojiIcon,
27
27
  text,
28
28
  channel: `#${channel}`,
29
29
  attachments: [
@@ -41,9 +41,21 @@ class SlackAddon extends addon_1.default {
41
41
  },
42
42
  ],
43
43
  };
44
+ let extraHeaders = {};
45
+ if (typeof customHeaders === 'string' && customHeaders.length > 1) {
46
+ try {
47
+ extraHeaders = JSON.parse(customHeaders);
48
+ }
49
+ catch (e) {
50
+ this.logger.warn(`Could not parse the json in the customHeaders parameter. [${customHeaders}]`);
51
+ }
52
+ }
44
53
  const requestOpts = {
45
54
  method: 'POST',
46
- headers: { 'Content-Type': 'application/json' },
55
+ headers: {
56
+ 'Content-Type': 'application/json',
57
+ ...extraHeaders,
58
+ },
47
59
  body: JSON.stringify(body),
48
60
  };
49
61
  return this.fetchRetry(url, requestOpts);
@@ -1 +1 @@
1
- {"version":3,"file":"slack.js","sourceRoot":"","sources":["../../../src/lib/addons/slack.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAE5B,0EAAiD;AAGjD,6EAIsC;AAGtC,MAAqB,UAAW,SAAQ,eAAK;IAGzC,YAAY,IAAkB;QAC1B,KAAK,CAAC,0BAAe,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,oDAAuB,CAC3C,IAAI,CAAC,UAAU,EACf,sCAAS,CAAC,KAAK,CAClB,CAAC;IACN,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,UAAe;QAC5C,MAAM,EACF,GAAG,EACH,cAAc,EACd,QAAQ,GAAG,SAAS,EACpB,SAAS,GAAG,WAAW,GAC1B,GAAG,UAAU,CAAC;QAEf,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEpD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SACtC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEzD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3C,MAAM,IAAI,GAAG;gBACT,QAAQ;gBACR,UAAU,EAAE,SAAS;gBACrB,IAAI;gBACJ,OAAO,EAAE,IAAI,OAAO,EAAE;gBACtB,WAAW,EAAE;oBACT;wBACI,OAAO,EAAE;4BACL;gCACI,IAAI,EAAE,eAAe;gCACrB,IAAI,EAAE,iBAAiB;gCACvB,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,eAAe;gCACtB,KAAK,EAAE,SAAS;gCAChB,GAAG,EAAE,WAAW;6BACnB;yBACJ;qBACJ;iBACJ;aACJ,CAAC;YAEF,MAAM,WAAW,GAAG;gBAChB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC7B,CAAC;YAEF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,kBAAkB,KAAK,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,iBAAiB,CAAC,EAAE,IAAI,EAAwB;QAC5C,IAAI,IAAI,EAAE;YACN,OAAO,IAAI;iBACN,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;iBACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC5B;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ;AAzED,6BAyEC;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"slack.js","sourceRoot":"","sources":["../../../src/lib/addons/slack.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ test('Should call slack webhook', async () => {
43
43
  };
44
44
  const parameters = {
45
45
  url: 'http://hooks.slack.com',
46
+ defaultChannel: 'general',
46
47
  };
47
48
  await addon.handleEvent(event, parameters);
48
49
  expect(fetchRetryCalls.length).toBe(1);
@@ -66,6 +67,7 @@ test('Should call slack webhook for archived toggle', async () => {
66
67
  };
67
68
  const parameters = {
68
69
  url: 'http://hooks.slack.com',
70
+ defaultChannel: 'general',
69
71
  };
70
72
  await addon.handleEvent(event, parameters);
71
73
  expect(fetchRetryCalls.length).toBe(1);
@@ -90,6 +92,7 @@ test('Should call slack webhook for archived toggle with project info', async ()
90
92
  };
91
93
  const parameters = {
92
94
  url: 'http://hooks.slack.com',
95
+ defaultChannel: 'general',
93
96
  };
94
97
  await addon.handleEvent(event, parameters);
95
98
  expect(fetchRetryCalls.length).toBe(1);
@@ -115,6 +118,7 @@ test(`Should call webhook for toggled environment`, async () => {
115
118
  };
116
119
  const parameters = {
117
120
  url: 'http://hooks.slack.com',
121
+ defaultChannel: 'general',
118
122
  };
119
123
  await addon.handleEvent(event, parameters);
120
124
  expect(fetchRetryCalls).toHaveLength(1);
@@ -216,4 +220,33 @@ test('Should post to all channels in tags', async () => {
216
220
  expect(req1.channel).toBe('#another-channel-1');
217
221
  expect(req2.channel).toBe('#another-channel-2');
218
222
  });
223
+ test('Should include custom headers from parameters in call to service', async () => {
224
+ const addon = new slack_1.default({
225
+ getLogger: no_logger_1.default,
226
+ unleashUrl: 'http://some-url.com',
227
+ });
228
+ const event = {
229
+ id: 2,
230
+ createdAt: new Date(),
231
+ type: events_1.FEATURE_ENVIRONMENT_DISABLED,
232
+ createdBy: 'some@user.com',
233
+ environment: 'development',
234
+ project: 'default',
235
+ featureName: 'some-toggle',
236
+ data: {
237
+ name: 'some-toggle',
238
+ },
239
+ };
240
+ const parameters = {
241
+ url: 'http://hooks.slack.com',
242
+ defaultChannel: 'general',
243
+ customHeaders: `{ "MY_CUSTOM_HEADER": "MY_CUSTOM_VALUE" }`,
244
+ };
245
+ await addon.handleEvent(event, parameters);
246
+ expect(fetchRetryCalls).toHaveLength(1);
247
+ expect(fetchRetryCalls[0].url).toBe(parameters.url);
248
+ expect(fetchRetryCalls[0].options.body).toMatch(/disabled/);
249
+ expect(fetchRetryCalls[0].options.body).toMatchSnapshot();
250
+ expect(fetchRetryCalls[0].options.headers).toMatchSnapshot();
251
+ });
219
252
  //# sourceMappingURL=slack.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"slack.test.js","sourceRoot":"","sources":["../../../src/lib/addons/slack.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack.test.js","sourceRoot":"","sources":["../../../src/lib/addons/slack.test.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,18 @@ const teamsDefinition = {
15
15
  required: true,
16
16
  sensitive: true,
17
17
  },
18
+ {
19
+ name: 'customHeaders',
20
+ displayName: 'Extra HTTP Headers',
21
+ placeholder: `{
22
+ "ISTIO_USER_KEY": "hunter2",
23
+ "SOME_OTHER_CUSTOM_HTTP_HEADER": "SOMEVALUE"
24
+ }`,
25
+ 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`,
26
+ required: false,
27
+ sensitive: true,
28
+ type: 'textfield',
29
+ },
18
30
  ],
19
31
  events: [
20
32
  events_1.FEATURE_CREATED,
@@ -1 +1 @@
1
- {"version":3,"file":"teams-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/teams-definition.ts"],"names":[],"mappings":";;AAAA,4CAeyB;AAGzB,MAAM,eAAe,GAAqB;IACtC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,oDAAoD;IACjE,gBAAgB,EAAE,8CAA8C;IAChE,UAAU,EAAE;QACR;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,6BAA6B;YAC1C,WAAW,EAAE,YAAY;YACzB,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;KACJ;IACD,MAAM,EAAE;QACJ,wBAAe;QACf,wBAAe;QACf,yBAAgB;QAChB,wBAAe;QACf,yBAAgB;QAChB,0BAAiB;QACjB,oCAA2B;QAC3B,qCAA4B;QAC5B,gCAAuB;QACvB,gCAAuB;QACvB,6BAAoB;QACpB,iCAAwB;QACxB,iCAAwB;QACxB,+BAAsB;KACzB;CACJ,CAAC;AAEF,kBAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"teams-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/teams-definition.ts"],"names":[],"mappings":";;AAAA,4CAeyB;AAGzB,MAAM,eAAe,GAAqB;IACtC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,oDAAoD;IACjE,gBAAgB,EAAE,8CAA8C;IAChE,UAAU,EAAE;QACR;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,6BAA6B;YAC1C,WAAW,EAAE,YAAY;YACzB,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;QACD;YACI,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,oBAAoB;YACjC,WAAW,EAAE;;;cAGX;YACF,WAAW,EAAE,oLAAoL;YACjM,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,WAAW;SACpB;KACJ;IACD,MAAM,EAAE;QACJ,wBAAe;QACf,wBAAe;QACf,yBAAgB;QAChB,wBAAe;QACf,yBAAgB;QAChB,0BAAiB;QACjB,oCAA2B;QAC3B,qCAA4B;QAC5B,gCAAuB;QACvB,gCAAuB;QACvB,6BAAoB;QACpB,iCAAwB;QACxB,iCAAwB;QACxB,+BAAsB;KACzB;CACJ,CAAC;AAEF,kBAAe,eAAe,CAAC"}
@@ -1,8 +1,13 @@
1
1
  import Addon from './addon';
2
2
  import { IAddonConfig } from '../types/model';
3
3
  import { IEvent } from '../types/events';
4
+ interface ITeamsParameters {
5
+ url: string;
6
+ customHeaders?: string;
7
+ }
4
8
  export default class TeamsAddon extends Addon {
5
9
  private msgFormatter;
6
10
  constructor(args: IAddonConfig);
7
- handleEvent(event: IEvent, parameters: any): Promise<void>;
11
+ handleEvent(event: IEvent, parameters: ITeamsParameters): Promise<void>;
8
12
  }
13
+ export {};
@@ -13,7 +13,7 @@ class TeamsAddon extends addon_1.default {
13
13
  }
14
14
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
15
15
  async handleEvent(event, parameters) {
16
- const { url } = parameters;
16
+ const { url, customHeaders } = parameters;
17
17
  const { createdBy } = event;
18
18
  const text = this.msgFormatter.format(event);
19
19
  const featureLink = this.msgFormatter.featureLink(event);
@@ -49,9 +49,18 @@ class TeamsAddon extends addon_1.default {
49
49
  },
50
50
  ],
51
51
  };
52
+ let extraHeaders = {};
53
+ if (typeof customHeaders === 'string' && customHeaders.length > 1) {
54
+ try {
55
+ extraHeaders = JSON.parse(customHeaders);
56
+ }
57
+ catch (e) {
58
+ this.logger.warn(`Could not parse the json in the customHeaders parameter. [${customHeaders}]`);
59
+ }
60
+ }
52
61
  const requestOpts = {
53
62
  method: 'POST',
54
- headers: { 'Content-Type': 'application/json' },
63
+ headers: { 'Content-Type': 'application/json', ...extraHeaders },
55
64
  body: JSON.stringify(body),
56
65
  };
57
66
  const res = await this.fetchRetry(url, requestOpts);
@@ -1 +1 @@
1
- {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAE5B,0EAAiD;AAEjD,6EAGsC;AAGtC,MAAqB,UAAW,SAAQ,eAAK;IAGzC,YAAY,IAAkB;QAC1B,KAAK,CAAC,0BAAe,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,oDAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrE,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,UAAe;QAC5C,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;QAC3B,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEzD,MAAM,IAAI,GAAG;YACT,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE;gBACN;oBACI,aAAa,EAAE,IAAI;oBACnB,gBAAgB,EAAE,6BAA6B;oBAC/C,KAAK,EAAE;wBACH;4BACI,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,SAAS;yBACnB;wBACD;4BACI,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,KAAK,CAAC,IAAI;yBACpB;qBACJ;iBACJ;aACJ;YACD,eAAe,EAAE;gBACb;oBACI,OAAO,EAAE,SAAS;oBAClB,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE;wBACL;4BACI,EAAE,EAAE,SAAS;4BACb,GAAG,EAAE,WAAW;yBACnB;qBACJ;iBACJ;aACJ;SACJ,CAAC;QAEF,MAAM,WAAW,GAAG;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC7B,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,iBAAiB,KAAK,CAAC,IAAI,kBAAkB,GAAG,CAAC,MAAM,EAAE,CAC5D,CAAC;IACN,CAAC;CACJ;AA1DD,6BA0DC"}
1
+ {"version":3,"file":"teams.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAE5B,0EAAiD;AAEjD,6EAGsC;AAOtC,MAAqB,UAAW,SAAQ,eAAK;IAGzC,YAAY,IAAkB;QAC1B,KAAK,CAAC,0BAAe,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,oDAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrE,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,WAAW,CACb,KAAa,EACb,UAA4B;QAE5B,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC;QAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEzD,MAAM,IAAI,GAAG;YACT,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE;gBACN;oBACI,aAAa,EAAE,IAAI;oBACnB,gBAAgB,EAAE,6BAA6B;oBAC/C,KAAK,EAAE;wBACH;4BACI,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,SAAS;yBACnB;wBACD;4BACI,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,KAAK,CAAC,IAAI;yBACpB;qBACJ;iBACJ;aACJ;YACD,eAAe,EAAE;gBACb;oBACI,OAAO,EAAE,SAAS;oBAClB,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE;wBACL;4BACI,EAAE,EAAE,SAAS;4BACb,GAAG,EAAE,WAAW;yBACnB;qBACJ;iBACJ;aACJ;SACJ,CAAC;QAEF,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/D,IAAI;gBACA,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;aAC5C;YAAC,OAAO,CAAC,EAAE;gBACR,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,6DAA6D,aAAa,GAAG,CAChF,CAAC;aACL;SACJ;QAED,MAAM,WAAW,GAAG;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,YAAY,EAAE;YAChE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC7B,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,iBAAiB,KAAK,CAAC,IAAI,kBAAkB,GAAG,CAAC,MAAM,EAAE,CAC5D,CAAC;IACN,CAAC;CACJ;AAxED,6BAwEC"}
@@ -120,4 +120,32 @@ test(`Should call teams webhook for toggled environment`, async () => {
120
120
  expect(fetchRetryCalls[0].options.body).toMatch(/disabled/);
121
121
  expect(fetchRetryCalls[0].options.body).toMatchSnapshot();
122
122
  });
123
+ test('Should include custom headers in call to teams', async () => {
124
+ const addon = new teams_1.default({
125
+ getLogger: no_logger_1.default,
126
+ unleashUrl: 'http://some-url.com',
127
+ });
128
+ const event = {
129
+ id: 2,
130
+ createdAt: new Date(),
131
+ type: events_1.FEATURE_ENVIRONMENT_DISABLED,
132
+ createdBy: 'some@user.com',
133
+ environment: 'development',
134
+ project: 'default',
135
+ featureName: 'some-toggle',
136
+ data: {
137
+ name: 'some-toggle',
138
+ },
139
+ };
140
+ const parameters = {
141
+ url: 'http://hooks.slack.com',
142
+ customHeaders: `{ "MY_CUSTOM_HEADER": "MY_CUSTOM_VALUE" }`,
143
+ };
144
+ await addon.handleEvent(event, parameters);
145
+ expect(fetchRetryCalls).toHaveLength(1);
146
+ expect(fetchRetryCalls[0].url).toBe(parameters.url);
147
+ expect(fetchRetryCalls[0].options.body).toMatch(/disabled/);
148
+ expect(fetchRetryCalls[0].options.body).toMatchSnapshot();
149
+ expect(fetchRetryCalls[0].options.headers).toMatchSnapshot();
150
+ });
123
151
  //# sourceMappingURL=teams.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"teams.test.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"teams.test.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.test.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,18 @@ const webhookDefinition = {
47
47
  required: false,
48
48
  sensitive: false,
49
49
  },
50
+ {
51
+ name: 'customHeaders',
52
+ displayName: 'Extra HTTP Headers',
53
+ placeholder: `{
54
+ "ISTIO_USER_KEY": "hunter2",
55
+ "SOME_OTHER_CUSTOM_HTTP_HEADER": "SOMEVALUE"
56
+ }`,
57
+ 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`,
58
+ required: false,
59
+ sensitive: true,
60
+ type: 'textfield',
61
+ },
50
62
  ],
51
63
  events: [
52
64
  events_1.FEATURE_CREATED,
@@ -1 +1 @@
1
- {"version":3,"file":"webhook-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/webhook-definition.ts"],"names":[],"mappings":";;AAAA,4CA0ByB;AAGzB,MAAM,iBAAiB,GAAqB;IACxC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,SAAS;IACtB,WAAW,EACP,mFAAmF;IACvF,gBAAgB,EAAE,gDAAgD;IAClE,UAAU,EAAE;QACR;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,aAAa;YAC1B,WAAW,EACP,qGAAqG;YACzG,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;QACD;YACI,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,kBAAkB;YAC/B,WAAW,EACP,4EAA4E;YAChF,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE,EAAE;YACf,WAAW,EACP,qEAAqE;YACzE,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI;SAClB;QACD;YACI,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE;;;;;EAKvB;YACU,WAAW,EACP,kNAAkN;YACtN,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;KACJ;IACD,MAAM,EAAE;QACJ,wBAAe;QACf,wBAAe;QACf,yBAAgB;QAChB,wBAAe;QACf,yBAAgB;QAChB,0BAAiB;QACjB,oCAA2B;QAC3B,qCAA4B;QAC5B,gCAAuB;QACvB,gCAAuB;QACvB,6BAAoB;QACpB,iCAAwB;QACxB,iCAAwB;QACxB,+BAAsB;QACtB,uBAAc;QACd,yBAAgB;QAChB,+BAAsB;QACtB,iCAAwB;QACxB,qBAAY;QACZ,yBAAgB;QAChB,gCAAuB;QACvB,sCAA6B;QAC7B,iCAAwB;QACxB,sCAA6B;QAC7B,+BAAsB;KACzB;CACJ,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"webhook-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/webhook-definition.ts"],"names":[],"mappings":";;AAAA,4CA0ByB;AAGzB,MAAM,iBAAiB,GAAqB;IACxC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,SAAS;IACtB,WAAW,EACP,mFAAmF;IACvF,gBAAgB,EAAE,gDAAgD;IAClE,UAAU,EAAE;QACR;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,aAAa;YAC1B,WAAW,EACP,qGAAqG;YACzG,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;QACD;YACI,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,kBAAkB;YAC/B,WAAW,EACP,4EAA4E;YAChF,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE,EAAE;YACf,WAAW,EACP,qEAAqE;YACzE,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI;SAClB;QACD;YACI,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE;;;;;EAKvB;YACU,WAAW,EACP,kNAAkN;YACtN,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,oBAAoB;YACjC,WAAW,EAAE;;;cAGX;YACF,WAAW,EAAE,oLAAoL;YACjM,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,WAAW;SACpB;KACJ;IACD,MAAM,EAAE;QACJ,wBAAe;QACf,wBAAe;QACf,yBAAgB;QAChB,wBAAe;QACf,yBAAgB;QAChB,0BAAiB;QACjB,oCAA2B;QAC3B,qCAA4B;QAC5B,gCAAuB;QACvB,gCAAuB;QACvB,6BAAoB;QACpB,iCAAwB;QACxB,iCAAwB;QACxB,+BAAsB;QACtB,uBAAc;QACd,yBAAgB;QAChB,+BAAsB;QACtB,iCAAwB;QACxB,qBAAY;QACZ,yBAAgB;QAChB,gCAAuB;QACvB,sCAA6B;QAC7B,iCAAwB;QACxB,sCAA6B;QAC7B,+BAAsB;KACzB;CACJ,CAAC;AAEF,kBAAe,iBAAiB,CAAC"}
@@ -6,6 +6,7 @@ interface IParameters {
6
6
  bodyTemplate?: string;
7
7
  contentType?: string;
8
8
  authorization?: string;
9
+ customHeaders?: string;
9
10
  }
10
11
  export default class Webhook extends Addon {
11
12
  constructor(args: {
@@ -11,7 +11,7 @@ class Webhook extends addon_1.default {
11
11
  super(webhook_definition_1.default, args);
12
12
  }
13
13
  async handleEvent(event, parameters) {
14
- const { url, bodyTemplate, contentType, authorization } = parameters;
14
+ const { url, bodyTemplate, contentType, authorization, customHeaders } = parameters;
15
15
  const context = {
16
16
  event,
17
17
  };
@@ -22,11 +22,21 @@ class Webhook extends addon_1.default {
22
22
  else {
23
23
  body = JSON.stringify(event);
24
24
  }
25
+ let extraHeaders = {};
26
+ if (typeof customHeaders === 'string' && customHeaders.length > 1) {
27
+ try {
28
+ extraHeaders = JSON.parse(customHeaders);
29
+ }
30
+ catch (e) {
31
+ this.logger.warn(`Could not parse the json in the customHeaders parameter. [${customHeaders}]`);
32
+ }
33
+ }
25
34
  const requestOpts = {
26
35
  method: 'POST',
27
36
  headers: {
28
37
  'Content-Type': contentType || 'application/json',
29
38
  Authorization: authorization || undefined,
39
+ ...extraHeaders,
30
40
  },
31
41
  body,
32
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/lib/addons/webhook.ts"],"names":[],"mappings":";;;;;AAAA,wDAAgC;AAChC,oDAA4B;AAC5B,8EAA8C;AAW9C,MAAqB,OAAQ,SAAQ,eAAK;IACtC,YAAY,IAAgC;QACxC,KAAK,CAAC,4BAAU,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,UAAuB;QACpD,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC;QACrE,MAAM,OAAO,GAAG;YACZ,KAAK;SACR,CAAC;QAEF,IAAI,IAAI,CAAC;QAET,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7D,IAAI,GAAG,kBAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;SACjD;aAAM;YACH,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAChC;QAED,MAAM,WAAW,GAAG;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,WAAW,IAAI,kBAAkB;gBACjD,aAAa,EAAE,aAAa,IAAI,SAAS;aAC5C;YACD,IAAI;SACP,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,kBAAkB,KAAK,CAAC,IAAI,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAC9D,CAAC;IACN,CAAC;CACJ;AAjCD,0BAiCC"}
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/lib/addons/webhook.ts"],"names":[],"mappings":";;;;;AAAA,wDAAgC;AAChC,oDAA4B;AAC5B,8EAA8C;AAY9C,MAAqB,OAAQ,SAAQ,eAAK;IACtC,YAAY,IAAgC;QACxC,KAAK,CAAC,4BAAU,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,UAAuB;QACpD,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,GAClE,UAAU,CAAC;QACf,MAAM,OAAO,GAAG;YACZ,KAAK;SACR,CAAC;QAEF,IAAI,IAAI,CAAC;QAET,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7D,IAAI,GAAG,kBAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;SACjD;aAAM;YACH,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAChC;QAED,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/D,IAAI;gBACA,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;aAC5C;YAAC,OAAO,CAAC,EAAE;gBACR,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,6DAA6D,aAAa,GAAG,CAChF,CAAC;aACL;SACJ;QACD,MAAM,WAAW,GAAG;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,WAAW,IAAI,kBAAkB;gBACjD,aAAa,EAAE,aAAa,IAAI,SAAS;gBACzC,GAAG,YAAY;aAClB;YACD,IAAI;SACP,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,kBAAkB,KAAK,CAAC,IAAI,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAC9D,CAAC;IACN,CAAC;CACJ;AA7CD,0BA6CC"}
@@ -97,4 +97,33 @@ test('Should format event with "authorization"', () => {
97
97
  expect(call.options.headers.Authorization).toBe(parameters.authorization);
98
98
  expect(call.options.body).toBe('feature-created on toggle some-toggle');
99
99
  });
100
+ test('Should handle custom headers', async () => {
101
+ const addon = new webhook_1.default({ getLogger: no_logger_1.default });
102
+ const event = {
103
+ id: 1,
104
+ createdAt: new Date(),
105
+ type: events_1.FEATURE_CREATED,
106
+ createdBy: 'some@user.com',
107
+ featureName: 'some-toggle',
108
+ data: {
109
+ name: 'some-toggle',
110
+ enabled: false,
111
+ strategies: [{ name: 'default' }],
112
+ },
113
+ };
114
+ const parameters = {
115
+ url: 'http://test.webhook.com/plain',
116
+ bodyTemplate: '{{event.type}} on toggle {{event.data.name}}',
117
+ contentType: 'text/plain',
118
+ authorization: 'API KEY 123abc',
119
+ customHeaders: `{ "MY_CUSTOM_HEADER": "MY_CUSTOM_VALUE" }`,
120
+ };
121
+ addon.handleEvent(event, parameters);
122
+ const call = fetchRetryCalls[0];
123
+ expect(fetchRetryCalls.length).toBe(1);
124
+ expect(call.url).toBe(parameters.url);
125
+ expect(call.options.headers.Authorization).toBe(parameters.authorization);
126
+ expect(call.options.headers.MY_CUSTOM_HEADER).toBe('MY_CUSTOM_VALUE');
127
+ expect(call.options.body).toBe('feature-created on toggle some-toggle');
128
+ });
100
129
  //# sourceMappingURL=webhook.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.test.js","sourceRoot":"","sources":["../../../src/lib/addons/webhook.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhook.test.js","sourceRoot":"","sources":["../../../src/lib/addons/webhook.test.ts"],"names":[],"mappings":"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"}
@@ -36,10 +36,10 @@ class ClientMetricsController extends controller_1.default {
36
36
  });
37
37
  }
38
38
  async registerMetrics(req, res) {
39
- const { body: data, ip: clientIp, user } = req;
40
- data.environment = this.metricsV2.resolveMetricsEnvironment(user, data);
41
- await this.clientInstanceService.registerInstance(data, clientIp);
42
39
  try {
40
+ const { body: data, ip: clientIp, user } = req;
41
+ data.environment = this.metricsV2.resolveMetricsEnvironment(user, data);
42
+ await this.clientInstanceService.registerInstance(data, clientIp);
43
43
  await this.metricsV2.registerClientMetrics(data, clientIp);
44
44
  res.status(202).end();
45
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../src/lib/routes/client-api/metrics.ts"],"names":[],"mappings":";;;;;AACA,+DAAuC;AAMvC,yDAA+C;AAE/C,oFAA+E;AAC/E,8EAG+C;AAE/C,MAAqB,uBAAwB,SAAQ,oBAAU;IAS3D,YACI,EACI,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,GAMjB,EACD,MAAsB;QAEtB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAE7B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC/C,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC;QAExC,IAAI,CAAC,KAAK,CAAC;YACP,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,UAAU,EAAE,kBAAI;YAChB,UAAU,EAAE;gBACR,cAAc,CAAC,SAAS,CAAC;oBACrB,IAAI,EAAE,CAAC,QAAQ,CAAC;oBAChB,OAAO,EAAE,+BAA+B;oBACxC,WAAW,EAAE,2QAA2Q;oBACxR,WAAW,EAAE,uBAAuB;oBACpC,WAAW,EAAE,IAAA,2CAAmB,EAAC,qBAAqB,CAAC;oBACvD,SAAS,EAAE;wBACP,GAAG,IAAA,yCAAoB,EAAC,GAAG,CAAC;wBAC5B,GAAG,EAAE,kCAAa;qBACrB;iBACJ,CAAC;aACL;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAiB,EAAE,GAAa;QAClD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxE,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAElE,IAAI;YACA,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC3D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;SACzB;QAAC,OAAO,CAAC,EAAE;YACR,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;SACzB;IACL,CAAC;CACJ;AA/DD,0CA+DC"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../src/lib/routes/client-api/metrics.ts"],"names":[],"mappings":";;;;;AACA,+DAAuC;AAMvC,yDAA+C;AAE/C,oFAA+E;AAC/E,8EAG+C;AAE/C,MAAqB,uBAAwB,SAAQ,oBAAU;IAS3D,YACI,EACI,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,GAMjB,EACD,MAAsB;QAEtB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAE7B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC/C,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC;QAExC,IAAI,CAAC,KAAK,CAAC;YACP,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,UAAU,EAAE,kBAAI;YAChB,UAAU,EAAE;gBACR,cAAc,CAAC,SAAS,CAAC;oBACrB,IAAI,EAAE,CAAC,QAAQ,CAAC;oBAChB,OAAO,EAAE,+BAA+B;oBACxC,WAAW,EAAE,2QAA2Q;oBACxR,WAAW,EAAE,uBAAuB;oBACpC,WAAW,EAAE,IAAA,2CAAmB,EAAC,qBAAqB,CAAC;oBACvD,SAAS,EAAE;wBACP,GAAG,IAAA,yCAAoB,EAAC,GAAG,CAAC;wBAC5B,GAAG,EAAE,kCAAa;qBACrB;iBACJ,CAAC;aACL;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAiB,EAAE,GAAa;QAClD,IAAI;YACA,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;YAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,yBAAyB,CACvD,IAAI,EACJ,IAAI,CACP,CAAC;YACF,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAElE,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC3D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;SACzB;QAAC,OAAO,CAAC,EAAE;YACR,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;SACzB;IACL,CAAC;CACJ;AAlED,0CAkEC"}
@@ -12,8 +12,10 @@ export default class ClientMetricsServiceV2 {
12
12
  private unsavedMetrics;
13
13
  private clientMetricsStoreV2;
14
14
  private lastSeenService;
15
+ private flagResolver;
15
16
  private logger;
16
17
  constructor({ clientMetricsStoreV2 }: Pick<IUnleashStores, 'clientMetricsStoreV2'>, config: IUnleashConfig, lastSeenService: LastSeenService, bulkInterval?: number);
18
+ filterValidToggleNames(toggleNames: string[]): Promise<string[]>;
17
19
  registerBulkMetrics(metrics: IClientMetricsEnv[]): Promise<void>;
18
20
  registerClientMetrics(data: ClientMetricsSchema, clientIp: string): Promise<void>;
19
21
  bulkAdd(): Promise<void>;
@@ -10,6 +10,7 @@ const api_user_1 = __importDefault(require("../../types/api-user"));
10
10
  const api_token_1 = require("../../types/models/api-token");
11
11
  const collapseHourlyMetrics_1 = require("../../util/collapseHourlyMetrics");
12
12
  const time_utils_1 = require("../../util/time-utils");
13
+ const feature_schema_1 = require("../../schema/feature-schema");
13
14
  class ClientMetricsServiceV2 {
14
15
  constructor({ clientMetricsStoreV2 }, config, lastSeenService, bulkInterval = (0, date_fns_1.secondsToMilliseconds)(5)) {
15
16
  this.timers = [];
@@ -18,6 +19,7 @@ class ClientMetricsServiceV2 {
18
19
  this.lastSeenService = lastSeenService;
19
20
  this.config = config;
20
21
  this.logger = config.getLogger('/services/client-metrics/client-metrics-service-v2.ts');
22
+ this.flagResolver = config.flagResolver;
21
23
  this.timers.push(setInterval(() => {
22
24
  this.bulkAdd().catch(console.error);
23
25
  }, bulkInterval).unref());
@@ -25,6 +27,18 @@ class ClientMetricsServiceV2 {
25
27
  this.clientMetricsStoreV2.clearMetrics(48).catch(console.error);
26
28
  }, (0, date_fns_1.hoursToMilliseconds)(12)).unref());
27
29
  }
30
+ async filterValidToggleNames(toggleNames) {
31
+ const nameValidations = toggleNames.map((toggleName) => feature_schema_1.nameSchema.validateAsync({ name: toggleName }));
32
+ const badNames = (await Promise.allSettled(nameValidations)).filter((r) => r.status === 'rejected');
33
+ if (badNames.length > 0) {
34
+ this.logger.warn(`Got a few toggles with invalid names: ${JSON.stringify(badNames)}`);
35
+ if (this.flagResolver.isEnabled('filterInvalidClientMetrics')) {
36
+ const justNames = badNames.map((r) => r.reason._original.name);
37
+ return toggleNames.filter((name) => !justNames.includes(name));
38
+ }
39
+ }
40
+ return toggleNames;
41
+ }
28
42
  async registerBulkMetrics(metrics) {
29
43
  this.unsavedMetrics = (0, collapseHourlyMetrics_1.collapseHourlyMetrics)([
30
44
  ...this.unsavedMetrics,
@@ -36,18 +50,21 @@ class ClientMetricsServiceV2 {
36
50
  const value = await schema_1.clientMetricsSchema.validateAsync(data);
37
51
  const toggleNames = Object.keys(value.bucket.toggles).filter((name) => !(value.bucket.toggles[name].yes === 0 &&
38
52
  value.bucket.toggles[name].no === 0));
39
- this.logger.debug(`got metrics from ${clientIp}`);
40
- const clientMetrics = toggleNames.map((name) => ({
41
- featureName: name,
42
- appName: value.appName,
43
- environment: value.environment,
44
- timestamp: value.bucket.start,
45
- yes: value.bucket.toggles[name].yes,
46
- no: value.bucket.toggles[name].no,
47
- variants: value.bucket.toggles[name].variants,
48
- }));
49
- await this.registerBulkMetrics(clientMetrics);
50
- this.config.eventBus.emit(events_1.CLIENT_METRICS, value);
53
+ const validatedToggleNames = await this.filterValidToggleNames(toggleNames);
54
+ this.logger.debug(`Got ${toggleNames.length} (${validatedToggleNames.length} valid) metrics from ${clientIp}`);
55
+ if (validatedToggleNames.length > 0) {
56
+ const clientMetrics = validatedToggleNames.map((name) => ({
57
+ featureName: name,
58
+ appName: value.appName,
59
+ environment: value.environment ?? 'default',
60
+ timestamp: value.bucket.start,
61
+ yes: value.bucket.toggles[name].yes ?? 0,
62
+ no: value.bucket.toggles[name].no ?? 0,
63
+ variants: value.bucket.toggles[name].variants,
64
+ }));
65
+ await this.registerBulkMetrics(clientMetrics);
66
+ this.config.eventBus.emit(events_1.CLIENT_METRICS, value);
67
+ }
51
68
  }
52
69
  async bulkAdd() {
53
70
  if (this.unsavedMetrics.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"metrics-service-v2.js","sourceRoot":"","sources":["../../../../src/lib/services/client-metrics/metrics-service-v2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics-service-v2.js","sourceRoot":"","sources":["../../../../src/lib/services/client-metrics/metrics-service-v2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const metrics_service_v2_1 = __importDefault(require("./metrics-service-v2"));
7
+ const no_logger_1 = __importDefault(require("../../../test/fixtures/no-logger"));
8
+ const store_1 = __importDefault(require("../../../test/fixtures/store"));
9
+ const events_1 = __importDefault(require("events"));
10
+ const last_seen_service_1 = require("./last-seen-service");
11
+ function initClientMetrics(flagEnabled = true) {
12
+ const stores = (0, store_1.default)();
13
+ const eventBus = new events_1.default();
14
+ eventBus.emit = jest.fn();
15
+ const config = {
16
+ eventBus,
17
+ getLogger: no_logger_1.default,
18
+ flagResolver: {
19
+ isEnabled: () => {
20
+ return flagEnabled;
21
+ },
22
+ },
23
+ };
24
+ const lastSeenService = new last_seen_service_1.LastSeenService(stores, config);
25
+ lastSeenService.updateLastSeen = jest.fn();
26
+ const service = new metrics_service_v2_1.default(stores, config, lastSeenService);
27
+ return { clientMetricsService: service, eventBus, lastSeenService };
28
+ }
29
+ test('process metrics properly', async () => {
30
+ const { clientMetricsService, eventBus, lastSeenService } = initClientMetrics();
31
+ await clientMetricsService.registerClientMetrics({
32
+ appName: 'test',
33
+ bucket: {
34
+ start: '1982-07-25T12:00:00.000Z',
35
+ stop: '2023-07-25T12:00:00.000Z',
36
+ toggles: {
37
+ myCoolToggle: {
38
+ yes: 25,
39
+ no: 42,
40
+ variants: {
41
+ blue: 6,
42
+ green: 15,
43
+ red: 46,
44
+ },
45
+ },
46
+ myOtherToggle: {
47
+ yes: 0,
48
+ no: 100,
49
+ },
50
+ },
51
+ },
52
+ environment: 'test',
53
+ }, '127.0.0.1');
54
+ expect(eventBus.emit).toHaveBeenCalledTimes(1);
55
+ expect(lastSeenService.updateLastSeen).toHaveBeenCalledTimes(1);
56
+ });
57
+ test('process metrics properly even when some names are not url friendly, filtering out invalid names when flag is on', async () => {
58
+ const { clientMetricsService, eventBus, lastSeenService } = initClientMetrics();
59
+ await clientMetricsService.registerClientMetrics({
60
+ appName: 'test',
61
+ bucket: {
62
+ start: '1982-07-25T12:00:00.000Z',
63
+ stop: '2023-07-25T12:00:00.000Z',
64
+ toggles: {
65
+ 'not url friendly ☹': {
66
+ yes: 0,
67
+ no: 100,
68
+ },
69
+ },
70
+ },
71
+ environment: 'test',
72
+ }, '127.0.0.1');
73
+ // only toggle with a bad name gets filtered out
74
+ expect(eventBus.emit).not.toHaveBeenCalled();
75
+ expect(lastSeenService.updateLastSeen).not.toHaveBeenCalled();
76
+ });
77
+ test('process metrics properly even when some names are not url friendly, with default behavior when flag is off', async () => {
78
+ const { clientMetricsService, eventBus, lastSeenService } = initClientMetrics(false);
79
+ await clientMetricsService.registerClientMetrics({
80
+ appName: 'test',
81
+ bucket: {
82
+ start: '1982-07-25T12:00:00.000Z',
83
+ stop: '2023-07-25T12:00:00.000Z',
84
+ toggles: {
85
+ 'not url friendly ☹': {
86
+ yes: 0,
87
+ no: 100,
88
+ },
89
+ },
90
+ },
91
+ environment: 'test',
92
+ }, '127.0.0.1');
93
+ expect(eventBus.emit).toHaveBeenCalledTimes(1);
94
+ expect(lastSeenService.updateLastSeen).toHaveBeenCalledTimes(1);
95
+ });
96
+ //# sourceMappingURL=metrics-service-v2.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics-service-v2.test.js","sourceRoot":"","sources":["../../../../src/lib/services/client-metrics/metrics-service-v2.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Variant } from 'unleash-client';
2
- export declare type IFlagKey = 'anonymiseEventLog' | 'embedProxy' | 'embedProxyFrontend' | 'responseTimeWithAppNameKillSwitch' | 'maintenanceMode' | 'messageBanner' | 'featuresExportImport' | 'caseInsensitiveInOperators' | 'strictSchemaValidation' | 'proPlanAutoCharge' | 'personalAccessTokensKillSwitch' | 'cleanClientApi' | 'groupRootRoles' | 'migrationLock' | 'demo' | 'googleAuthEnabled' | 'disableBulkToggle' | 'experimentalExtendedTelemetry' | 'segmentContextFieldUsage' | 'disableNotifications' | 'advancedPlayground' | 'customRootRoles' | 'strategySplittedButton';
2
+ export declare type IFlagKey = 'anonymiseEventLog' | 'embedProxy' | 'embedProxyFrontend' | 'responseTimeWithAppNameKillSwitch' | 'maintenanceMode' | 'messageBanner' | 'featuresExportImport' | 'caseInsensitiveInOperators' | 'strictSchemaValidation' | 'proPlanAutoCharge' | 'personalAccessTokensKillSwitch' | 'cleanClientApi' | 'groupRootRoles' | 'migrationLock' | 'demo' | 'googleAuthEnabled' | 'disableBulkToggle' | 'experimentalExtendedTelemetry' | 'segmentContextFieldUsage' | 'disableNotifications' | 'advancedPlayground' | 'customRootRoles' | 'strategySplittedButton' | 'filterInvalidClientMetrics';
3
3
  export declare type IFlags = Partial<{
4
4
  [key in IFlagKey]: boolean | Variant;
5
5
  }>;
@@ -35,6 +35,7 @@ const flags = {
35
35
  disableNotifications: (0, util_1.parseEnvVarBoolean)(process.env.DISABLE_NOTIFICATIONS, false),
36
36
  advancedPlayground: (0, util_1.parseEnvVarBoolean)(process.env.ADVANCED_PLAYGROUND, false),
37
37
  customRootRoles: (0, util_1.parseEnvVarBoolean)(process.env.UNLEASH_EXPERIMENTAL_CUSTOM_ROOT_ROLES, false),
38
+ filterInvalidClientMetrics: (0, util_1.parseEnvVarBoolean)(process.env.FILTER_INVALID_CLIENT_METRICS, false),
38
39
  };
39
40
  exports.defaultExperimentalOptions = {
40
41
  flags,
@@ -1 +1 @@
1
- {"version":3,"file":"experimental.js","sourceRoot":"","sources":["../../../src/lib/types/experimental.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"experimental.js","sourceRoot":"","sources":["../../../src/lib/types/experimental.ts"],"names":[],"mappings":";;;AAAA,mDAAsD;AACtD,kCAA6C;AAC7C,wDAA+D;AA8B/D,MAAM,KAAK,GAAW;IAClB,iBAAiB,EAAE,KAAK;IACxB,UAAU,EAAE,IAAA,yBAAkB,EAC1B,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAC5C,IAAI,CACP;IACD,kBAAkB,EAAE,IAAA,yBAAkB,EAClC,OAAO,CAAC,GAAG,CAAC,yCAAyC,EACrD,IAAI,CACP;IACD,iCAAiC,EAAE,IAAA,yBAAkB,EACjD,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAC3D,KAAK,CACR;IACD,eAAe,EAAE,IAAA,yBAAkB,EAC/B,OAAO,CAAC,GAAG,CAAC,qCAAqC,EACjD,KAAK,CACR;IACD,aAAa,EAAE;QACX,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,IAAA,yBAAkB,EACvB,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAC/C,KAAK,CACR;QACD,OAAO,EAAE;YACL,IAAI,EAAE,4BAAW,CAAC,IAAI;YACtB,KAAK,EACD,OAAO,CAAC,GAAG,CAAC,2CAA2C,IAAI,EAAE;SACpE;KACJ;IACD,oBAAoB,EAAE,IAAA,yBAAkB,EACpC,OAAO,CAAC,GAAG,CAAC,2CAA2C,EACvD,IAAI,CACP;IACD,0BAA0B,EAAE,IAAA,yBAAkB,EAC1C,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAC9D,KAAK,CACR;IACD,sBAAsB,EAAE,IAAA,yBAAkB,EACtC,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAC3C,KAAK,CACR;IACD,iBAAiB,EAAE,IAAA,yBAAkB,EACjC,OAAO,CAAC,GAAG,CAAC,4BAA4B,EACxC,KAAK,CACR;IACD,8BAA8B,EAAE,IAAA,yBAAkB,EAC9C,OAAO,CAAC,GAAG,CAAC,uBAAuB,EACnC,KAAK,CACR;IACD,cAAc,EAAE,IAAA,yBAAkB,EAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC;IACvE,cAAc,EAAE,IAAA,yBAAkB,EAC9B,OAAO,CAAC,GAAG,CAAC,qCAAqC,EACjD,KAAK,CACR;IACD,aAAa,EAAE,IAAA,yBAAkB,EAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC;IACpE,IAAI,EAAE,IAAA,yBAAkB,EAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC;IACzD,sBAAsB,EAAE,IAAA,yBAAkB,EACtC,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAC5C,KAAK,CACR;IACD,iBAAiB,EAAE,IAAA,yBAAkB,EACjC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAC/B,KAAK,CACR;IACD,6BAA6B,EAAE,IAAA,yBAAkB,EAC7C,OAAO,CAAC,GAAG,CAAC,uCAAuC,EACnD,KAAK,CACR;IACD,iBAAiB,EAAE,IAAA,yBAAkB,EACjC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAC/B,KAAK,CACR;IACD,wBAAwB,EAAE,IAAA,yBAAkB,EACxC,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAChD,KAAK,CACR;IACD,oBAAoB,EAAE,IAAA,yBAAkB,EACpC,OAAO,CAAC,GAAG,CAAC,qBAAqB,EACjC,KAAK,CACR;IACD,kBAAkB,EAAE,IAAA,yBAAkB,EAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAC/B,KAAK,CACR;IACD,eAAe,EAAE,IAAA,yBAAkB,EAC/B,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAClD,KAAK,CACR;IACD,0BAA0B,EAAE,IAAA,yBAAkB,EAC1C,OAAO,CAAC,GAAG,CAAC,6BAA6B,EACzC,KAAK,CACR;CACJ,CAAC;AAEW,QAAA,0BAA0B,GAAyB;IAC5D,KAAK;IACL,gBAAgB,EAAE;QACd,SAAS,EAAE,GAAY,EAAE,CAAC,KAAK;QAC/B,UAAU,EAAE,GAAG,EAAE,CAAC,IAAA,2BAAiB,GAAE;KACxC;CACJ,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "unleash-server",
3
3
  "description": "Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.",
4
- "version": "5.2.7",
4
+ "version": "5.2.9",
5
5
  "keywords": [
6
6
  "unleash",
7
7
  "feature toggle",