unleash-server 5.4.4 → 5.5.0

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 (586) hide show
  1. package/README.md +5 -3
  2. package/dist/lib/addons/addon-schema.js +2 -1
  3. package/dist/lib/addons/addon-schema.js.map +1 -1
  4. package/dist/lib/addons/datadog-definition.js +22 -7
  5. package/dist/lib/addons/datadog-definition.js.map +1 -1
  6. package/dist/lib/addons/datadog.d.ts +7 -1
  7. package/dist/lib/addons/datadog.js +16 -3
  8. package/dist/lib/addons/datadog.js.map +1 -1
  9. package/dist/lib/addons/datadog.test.js +62 -0
  10. package/dist/lib/addons/datadog.test.js.map +1 -1
  11. package/dist/lib/addons/index.js +3 -11
  12. package/dist/lib/addons/index.js.map +1 -1
  13. package/dist/lib/addons/slack-app-definition.js +5 -24
  14. package/dist/lib/addons/slack-app-definition.js.map +1 -1
  15. package/dist/lib/addons/slack-app.d.ts +0 -1
  16. package/dist/lib/addons/slack-app.js +5 -17
  17. package/dist/lib/addons/slack-app.js.map +1 -1
  18. package/dist/lib/addons/slack-app.test.js +39 -25
  19. package/dist/lib/addons/slack-app.test.js.map +1 -1
  20. package/dist/lib/addons/slack-definition.js +11 -4
  21. package/dist/lib/addons/slack-definition.js.map +1 -1
  22. package/dist/lib/addons/teams-definition.js +5 -4
  23. package/dist/lib/addons/teams-definition.js.map +1 -1
  24. package/dist/lib/addons/webhook-definition.js +10 -12
  25. package/dist/lib/addons/webhook-definition.js.map +1 -1
  26. package/dist/lib/create-config.js +13 -1
  27. package/dist/lib/create-config.js.map +1 -1
  28. package/dist/lib/create-config.test.js +14 -0
  29. package/dist/lib/create-config.test.js.map +1 -1
  30. package/dist/lib/db/access-store.d.ts +23 -5
  31. package/dist/lib/db/access-store.js +263 -17
  32. package/dist/lib/db/access-store.js.map +1 -1
  33. package/dist/lib/db/access-store.test.js +83 -0
  34. package/dist/lib/db/access-store.test.js.map +1 -0
  35. package/dist/lib/db/client-applications-store.d.ts +1 -3
  36. package/dist/lib/db/client-applications-store.js +13 -24
  37. package/dist/lib/db/client-applications-store.js.map +1 -1
  38. package/dist/lib/db/event-store.js +1 -0
  39. package/dist/lib/db/event-store.js.map +1 -1
  40. package/dist/lib/db/feature-toggle-client-store.js +17 -4
  41. package/dist/lib/db/feature-toggle-client-store.js.map +1 -1
  42. package/dist/lib/db/feature-toggle-store.js +1 -1
  43. package/dist/lib/db/feature-toggle-store.js.map +1 -1
  44. package/dist/lib/db/group-store.d.ts +4 -2
  45. package/dist/lib/db/group-store.js +24 -0
  46. package/dist/lib/db/group-store.js.map +1 -1
  47. package/dist/lib/db/index.d.ts +1 -2
  48. package/dist/lib/db/index.js +5 -1
  49. package/dist/lib/db/index.js.map +1 -1
  50. package/dist/lib/db/project-stats-store.d.ts +2 -0
  51. package/dist/lib/db/project-stats-store.js +27 -0
  52. package/dist/lib/db/project-stats-store.js.map +1 -1
  53. package/dist/lib/db/project-store.d.ts +7 -1
  54. package/dist/lib/db/project-store.js +34 -1
  55. package/dist/lib/db/project-store.js.map +1 -1
  56. package/dist/lib/error/bad-data-error.d.ts +1 -1
  57. package/dist/lib/error/index.d.ts +2 -1
  58. package/dist/lib/error/index.js +3 -1
  59. package/dist/lib/error/index.js.map +1 -1
  60. package/dist/lib/error/pattern-error.d.ts +10 -0
  61. package/dist/lib/error/pattern-error.js +20 -0
  62. package/dist/lib/error/pattern-error.js.map +1 -0
  63. package/dist/lib/features/dependent-features/createDependentFeaturesService.d.ts +3 -0
  64. package/dist/lib/features/dependent-features/createDependentFeaturesService.js +11 -0
  65. package/dist/lib/features/dependent-features/createDependentFeaturesService.js.map +1 -0
  66. package/dist/lib/features/dependent-features/dependent-features-controller.d.ts +28 -0
  67. package/dist/lib/features/dependent-features/dependent-features-controller.js +151 -0
  68. package/dist/lib/features/dependent-features/dependent-features-controller.js.map +1 -0
  69. package/dist/lib/features/dependent-features/dependent-features-service.d.ts +11 -0
  70. package/dist/lib/features/dependent-features/dependent-features-service.js +40 -0
  71. package/dist/lib/features/dependent-features/dependent-features-service.js.map +1 -0
  72. package/dist/lib/features/dependent-features/dependent-features-store-type.d.ts +8 -0
  73. package/dist/lib/features/dependent-features/dependent-features-store-type.js +3 -0
  74. package/dist/lib/features/dependent-features/dependent-features-store-type.js.map +1 -0
  75. package/dist/lib/features/dependent-features/dependent-features-store.d.ts +12 -0
  76. package/dist/lib/features/dependent-features/dependent-features-store.js +56 -0
  77. package/dist/lib/features/dependent-features/dependent-features-store.js.map +1 -0
  78. package/dist/lib/features/dependent-features/dependent-features.d.ts +14 -0
  79. package/dist/lib/features/dependent-features/dependent-features.js +3 -0
  80. package/dist/lib/features/dependent-features/dependent-features.js.map +1 -0
  81. package/dist/lib/features/dependent-features/dependent.features.e2e.test.d.ts +1 -0
  82. package/dist/lib/features/dependent-features/dependent.features.e2e.test.js +82 -0
  83. package/dist/lib/features/dependent-features/dependent.features.e2e.test.js.map +1 -0
  84. package/dist/lib/features/dependent-features/fake-dependent-features-store.d.ts +8 -0
  85. package/dist/lib/features/dependent-features/fake-dependent-features-store.js +22 -0
  86. package/dist/lib/features/dependent-features/fake-dependent-features-store.js.map +1 -0
  87. package/dist/lib/features/export-import-toggles/createExportImportService.js +6 -3
  88. package/dist/lib/features/export-import-toggles/createExportImportService.js.map +1 -1
  89. package/dist/lib/features/export-import-toggles/export-import-service.d.ts +9 -3
  90. package/dist/lib/features/export-import-toggles/export-import-service.js +51 -21
  91. package/dist/lib/features/export-import-toggles/export-import-service.js.map +1 -1
  92. package/dist/lib/features/export-import-toggles/export-import.e2e.test.js +120 -50
  93. package/dist/lib/features/export-import-toggles/export-import.e2e.test.js.map +1 -1
  94. package/dist/lib/features/export-import-toggles/import-permissions-service.d.ts +1 -2
  95. package/dist/lib/features/export-import-toggles/import-toggles-store-type.d.ts +6 -0
  96. package/dist/lib/features/export-import-toggles/import-toggles-store.d.ts +2 -1
  97. package/dist/lib/features/export-import-toggles/import-toggles-store.js +25 -0
  98. package/dist/lib/features/export-import-toggles/import-toggles-store.js.map +1 -1
  99. package/dist/lib/features/export-import-toggles/import-validation-messages.d.ts +18 -2
  100. package/dist/lib/features/export-import-toggles/import-validation-messages.js +27 -11
  101. package/dist/lib/features/export-import-toggles/import-validation-messages.js.map +1 -1
  102. package/dist/lib/features/feature-naming-pattern/feature-naming-validation.d.ts +14 -0
  103. package/dist/lib/features/feature-naming-pattern/feature-naming-validation.js +46 -0
  104. package/dist/lib/features/feature-naming-pattern/feature-naming-validation.js.map +1 -0
  105. package/dist/lib/features/feature-naming-pattern/feature-naming-validation.test.d.ts +1 -0
  106. package/dist/lib/features/feature-naming-pattern/feature-naming-validation.test.js +116 -0
  107. package/dist/lib/features/feature-naming-pattern/feature-naming-validation.test.js.map +1 -0
  108. package/dist/lib/features/feature-toggle/createFeatureToggleService.js +11 -2
  109. package/dist/lib/features/feature-toggle/createFeatureToggleService.js.map +1 -1
  110. package/dist/lib/features/instance-stats/getActiveUsers.d.ts +9 -0
  111. package/dist/lib/features/instance-stats/getActiveUsers.e2e.test.d.ts +1 -0
  112. package/dist/lib/features/instance-stats/getActiveUsers.e2e.test.js +141 -0
  113. package/dist/lib/features/instance-stats/getActiveUsers.e2e.test.js.map +1 -0
  114. package/dist/lib/features/instance-stats/getActiveUsers.js +33 -0
  115. package/dist/lib/features/instance-stats/getActiveUsers.js.map +1 -0
  116. package/dist/lib/{services → features/instance-stats}/instance-stats-service.d.ts +13 -7
  117. package/dist/lib/{services → features/instance-stats}/instance-stats-service.js +16 -7
  118. package/dist/lib/features/instance-stats/instance-stats-service.js.map +1 -0
  119. package/dist/lib/features/instance-stats/instance-stats-service.test.d.ts +1 -0
  120. package/dist/lib/{services → features/instance-stats}/instance-stats-service.test.js +6 -5
  121. package/dist/lib/features/instance-stats/instance-stats-service.test.js.map +1 -0
  122. package/dist/lib/features/playground/advanced-playground.test.js +2 -3
  123. package/dist/lib/features/playground/advanced-playground.test.js.map +1 -1
  124. package/dist/lib/features/playground/feature-evaluator/variant.d.ts +1 -1
  125. package/dist/lib/features/playground/generateObjectCombinations.d.ts +1 -1
  126. package/dist/lib/features/playground/generateObjectCombinations.js +14 -4
  127. package/dist/lib/features/playground/generateObjectCombinations.js.map +1 -1
  128. package/dist/lib/features/playground/generateObjectCombinations.test.js +21 -0
  129. package/dist/lib/features/playground/generateObjectCombinations.test.js.map +1 -1
  130. package/dist/lib/features/playground/playground-service.d.ts +5 -3
  131. package/dist/lib/features/playground/playground-service.js +18 -3
  132. package/dist/lib/features/playground/playground-service.js.map +1 -1
  133. package/dist/lib/features/playground/playground.d.ts +2 -1
  134. package/dist/lib/features/playground/playground.js +2 -1
  135. package/dist/lib/features/playground/playground.js.map +1 -1
  136. package/dist/lib/features/private-project/createPrivateProjectChecker.d.ts +5 -0
  137. package/dist/lib/features/private-project/createPrivateProjectChecker.js +22 -0
  138. package/dist/lib/features/private-project/createPrivateProjectChecker.js.map +1 -0
  139. package/dist/lib/features/private-project/fakePrivateProjectChecker.d.ts +7 -0
  140. package/dist/lib/features/private-project/fakePrivateProjectChecker.js +15 -0
  141. package/dist/lib/features/private-project/fakePrivateProjectChecker.js.map +1 -0
  142. package/dist/lib/features/private-project/privateProjectChecker.d.ts +10 -0
  143. package/dist/lib/features/private-project/privateProjectChecker.js +22 -0
  144. package/dist/lib/features/private-project/privateProjectChecker.js.map +1 -0
  145. package/dist/lib/features/private-project/privateProjectCheckerType.d.ts +5 -0
  146. package/dist/lib/features/private-project/privateProjectCheckerType.js +3 -0
  147. package/dist/lib/features/private-project/privateProjectCheckerType.js.map +1 -0
  148. package/dist/lib/features/private-project/privateProjectStore.d.ts +18 -0
  149. package/dist/lib/features/private-project/privateProjectStore.js +70 -0
  150. package/dist/lib/features/private-project/privateProjectStore.js.map +1 -0
  151. package/dist/lib/features/private-project/privateProjectStoreType.d.ts +4 -0
  152. package/dist/lib/features/private-project/privateProjectStoreType.js +3 -0
  153. package/dist/lib/features/private-project/privateProjectStoreType.js.map +1 -0
  154. package/dist/lib/features/project/createProjectService.js +5 -8
  155. package/dist/lib/features/project/createProjectService.js.map +1 -1
  156. package/dist/lib/features/segment/createSegmentService.js +5 -2
  157. package/dist/lib/features/segment/createSegmentService.js.map +1 -1
  158. package/dist/lib/features/segment/segment-controller.d.ts +39 -0
  159. package/dist/lib/features/segment/segment-controller.js +291 -0
  160. package/dist/lib/features/segment/segment-controller.js.map +1 -0
  161. package/dist/lib/metrics.d.ts +1 -1
  162. package/dist/lib/metrics.js +30 -1
  163. package/dist/lib/metrics.js.map +1 -1
  164. package/dist/lib/metrics.test.js +3 -2
  165. package/dist/lib/metrics.test.js.map +1 -1
  166. package/dist/lib/middleware/rbac-middleware.d.ts +2 -0
  167. package/dist/lib/middleware/rbac-middleware.js +2 -0
  168. package/dist/lib/middleware/rbac-middleware.js.map +1 -1
  169. package/dist/lib/middleware/secure-headers.js +18 -0
  170. package/dist/lib/middleware/secure-headers.js.map +1 -1
  171. package/dist/lib/openapi/index.js +13 -0
  172. package/dist/lib/openapi/index.js.map +1 -1
  173. package/dist/lib/openapi/meta-schema-rules.test.js +14 -4
  174. package/dist/lib/openapi/meta-schema-rules.test.js.map +1 -1
  175. package/dist/lib/openapi/spec/addon-type-schema.d.ts +6 -1
  176. package/dist/lib/openapi/spec/addon-type-schema.js +6 -1
  177. package/dist/lib/openapi/spec/addon-type-schema.js.map +1 -1
  178. package/dist/lib/openapi/spec/addons-schema.d.ts +8 -3
  179. package/dist/lib/openapi/spec/addons-schema.js +8 -3
  180. package/dist/lib/openapi/spec/addons-schema.js.map +1 -1
  181. package/dist/lib/openapi/spec/admin-segment-schema.d.ts +115 -0
  182. package/dist/lib/openapi/spec/admin-segment-schema.js +75 -0
  183. package/dist/lib/openapi/spec/admin-segment-schema.js.map +1 -0
  184. package/dist/lib/openapi/spec/admin-segment-schema.test.d.ts +1 -0
  185. package/dist/lib/openapi/spec/admin-segment-schema.test.js +39 -0
  186. package/dist/lib/openapi/spec/admin-segment-schema.test.js.map +1 -0
  187. package/dist/lib/openapi/spec/admin-strategies-schema.d.ts +46 -0
  188. package/dist/lib/openapi/spec/admin-strategies-schema.js +54 -0
  189. package/dist/lib/openapi/spec/admin-strategies-schema.js.map +1 -0
  190. package/dist/lib/openapi/spec/admin-strategies-schema.test.d.ts +1 -0
  191. package/dist/lib/openapi/spec/admin-strategies-schema.test.js +40 -0
  192. package/dist/lib/openapi/spec/admin-strategies-schema.test.js.map +1 -0
  193. package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.d.ts +51 -6
  194. package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.js +3 -1
  195. package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.js.map +1 -1
  196. package/dist/lib/openapi/spec/advanced-playground-feature-schema.d.ts +101 -11
  197. package/dist/lib/openapi/spec/advanced-playground-feature-schema.js +2 -0
  198. package/dist/lib/openapi/spec/advanced-playground-feature-schema.js.map +1 -1
  199. package/dist/lib/openapi/spec/advanced-playground-request-schema.d.ts +1 -0
  200. package/dist/lib/openapi/spec/advanced-playground-response-schema.d.ts +203 -22
  201. package/dist/lib/openapi/spec/advanced-playground-response-schema.js +2 -0
  202. package/dist/lib/openapi/spec/advanced-playground-response-schema.js.map +1 -1
  203. package/dist/lib/openapi/spec/client-feature-schema.d.ts +41 -6
  204. package/dist/lib/openapi/spec/client-feature-schema.js +9 -0
  205. package/dist/lib/openapi/spec/client-feature-schema.js.map +1 -1
  206. package/dist/lib/openapi/spec/client-features-schema.d.ts +75 -12
  207. package/dist/lib/openapi/spec/client-features-schema.js +2 -0
  208. package/dist/lib/openapi/spec/client-features-schema.js.map +1 -1
  209. package/dist/lib/openapi/spec/context-field-strategies-schema.d.ts +1 -1
  210. package/dist/lib/openapi/spec/context-field-strategies-schema.js +1 -1
  211. package/dist/lib/openapi/spec/context-field-strategies-schema.js.map +1 -1
  212. package/dist/lib/openapi/spec/create-api-token-schema.d.ts +1 -139
  213. package/dist/lib/openapi/spec/create-api-token-schema.js +16 -20
  214. package/dist/lib/openapi/spec/create-api-token-schema.js.map +1 -1
  215. package/dist/lib/openapi/spec/create-dependent-feature-schema.d.ts +29 -0
  216. package/dist/lib/openapi/spec/create-dependent-feature-schema.js +31 -0
  217. package/dist/lib/openapi/spec/create-dependent-feature-schema.js.map +1 -0
  218. package/dist/lib/openapi/spec/create-feature-naming-pattern-schema.d.ts +29 -0
  219. package/dist/lib/openapi/spec/create-feature-naming-pattern-schema.js +33 -0
  220. package/dist/lib/openapi/spec/create-feature-naming-pattern-schema.js.map +1 -0
  221. package/dist/lib/openapi/spec/create-feature-strategy-schema.d.ts +2 -2
  222. package/dist/lib/openapi/spec/create-strategy-schema.d.ts +15 -0
  223. package/dist/lib/openapi/spec/create-strategy-schema.js +15 -0
  224. package/dist/lib/openapi/spec/create-strategy-schema.js.map +1 -1
  225. package/dist/lib/openapi/spec/create-strategy-variant-schema.d.ts +2 -2
  226. package/dist/lib/openapi/spec/create-strategy-variant-schema.js +2 -2
  227. package/dist/lib/openapi/spec/create-strategy-variant-schema.js.map +1 -1
  228. package/dist/lib/openapi/spec/dependent-feature-schema.d.ts +30 -0
  229. package/dist/lib/openapi/spec/dependent-feature-schema.js +14 -0
  230. package/dist/lib/openapi/spec/dependent-feature-schema.js.map +1 -0
  231. package/dist/lib/openapi/spec/dora-features-schema.d.ts +20 -0
  232. package/dist/lib/openapi/spec/dora-features-schema.js +22 -0
  233. package/dist/lib/openapi/spec/dora-features-schema.js.map +1 -0
  234. package/dist/lib/openapi/spec/environment-project-schema.d.ts +4 -4
  235. package/dist/lib/openapi/spec/environments-project-schema.d.ts +4 -4
  236. package/dist/lib/openapi/spec/event-schema.d.ts +3 -3
  237. package/dist/lib/openapi/spec/events-schema.d.ts +3 -3
  238. package/dist/lib/openapi/spec/export-query-schema.d.ts +22 -15
  239. package/dist/lib/openapi/spec/export-query-schema.js +16 -15
  240. package/dist/lib/openapi/spec/export-query-schema.js.map +1 -1
  241. package/dist/lib/openapi/spec/export-result-schema.d.ts +26 -26
  242. package/dist/lib/openapi/spec/feature-environment-schema.d.ts +6 -6
  243. package/dist/lib/openapi/spec/feature-events-schema.d.ts +3 -3
  244. package/dist/lib/openapi/spec/feature-schema.d.ts +12 -12
  245. package/dist/lib/openapi/spec/feature-strategy-schema.d.ts +2 -2
  246. package/dist/lib/openapi/spec/feature-variants-schema.d.ts +2 -2
  247. package/dist/lib/openapi/spec/features-schema.d.ts +24 -24
  248. package/dist/lib/openapi/spec/health-overview-schema.d.ts +63 -33
  249. package/dist/lib/openapi/spec/health-overview-schema.js +6 -1
  250. package/dist/lib/openapi/spec/health-overview-schema.js.map +1 -1
  251. package/dist/lib/openapi/spec/health-report-schema.d.ts +63 -33
  252. package/dist/lib/openapi/spec/import-toggles-schema.d.ts +52 -52
  253. package/dist/lib/openapi/spec/index.d.ts +9 -0
  254. package/dist/lib/openapi/spec/index.js +9 -0
  255. package/dist/lib/openapi/spec/index.js.map +1 -1
  256. package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts +42 -0
  257. package/dist/lib/openapi/spec/instance-admin-stats-schema.js +42 -0
  258. package/dist/lib/openapi/spec/instance-admin-stats-schema.js.map +1 -1
  259. package/dist/lib/openapi/spec/parent-feature-options-schema.d.ts +11 -0
  260. package/dist/lib/openapi/spec/parent-feature-options-schema.js +13 -0
  261. package/dist/lib/openapi/spec/parent-feature-options-schema.js.map +1 -0
  262. package/dist/lib/openapi/spec/playground-feature-schema.d.ts +5 -5
  263. package/dist/lib/openapi/spec/playground-request-schema.d.ts +1 -0
  264. package/dist/lib/openapi/spec/playground-response-schema.d.ts +12 -10
  265. package/dist/lib/openapi/spec/playground-strategy-schema.d.ts +4 -4
  266. package/dist/lib/openapi/spec/playground-strategy-schema.js +1 -1
  267. package/dist/lib/openapi/spec/playground-strategy-schema.js.map +1 -1
  268. package/dist/lib/openapi/spec/profile-schema.d.ts +12 -12
  269. package/dist/lib/openapi/spec/project-dora-metrics-schema.d.ts +44 -0
  270. package/dist/lib/openapi/spec/project-dora-metrics-schema.js +28 -0
  271. package/dist/lib/openapi/spec/project-dora-metrics-schema.js.map +1 -0
  272. package/dist/lib/openapi/spec/project-environment-schema.d.ts +4 -4
  273. package/dist/lib/openapi/spec/project-overview-schema.d.ts +63 -33
  274. package/dist/lib/openapi/spec/project-overview-schema.js +6 -1
  275. package/dist/lib/openapi/spec/project-overview-schema.js.map +1 -1
  276. package/dist/lib/openapi/spec/project-schema.d.ts +1 -1
  277. package/dist/lib/openapi/spec/project-schema.js +1 -1
  278. package/dist/lib/openapi/spec/project-schema.js.map +1 -1
  279. package/dist/lib/openapi/spec/projects-schema.d.ts +1 -1
  280. package/dist/lib/openapi/spec/push-variants-schema.d.ts +2 -2
  281. package/dist/lib/openapi/spec/sdk-context-schema.d.ts +1 -0
  282. package/dist/lib/openapi/spec/sdk-context-schema.js +1 -0
  283. package/dist/lib/openapi/spec/sdk-context-schema.js.map +1 -1
  284. package/dist/lib/openapi/spec/sdk-flat-context-schema.d.ts +46 -0
  285. package/dist/lib/openapi/spec/sdk-flat-context-schema.js +15 -0
  286. package/dist/lib/openapi/spec/sdk-flat-context-schema.js.map +1 -0
  287. package/dist/lib/openapi/spec/search-events-schema.d.ts +1 -1
  288. package/dist/lib/openapi/spec/segments-schema.d.ts +177 -0
  289. package/dist/lib/openapi/spec/segments-schema.js +26 -0
  290. package/dist/lib/openapi/spec/segments-schema.js.map +1 -0
  291. package/dist/lib/openapi/spec/segments-schema.test.d.ts +1 -0
  292. package/dist/lib/openapi/spec/segments-schema.test.js +16 -0
  293. package/dist/lib/openapi/spec/segments-schema.test.js.map +1 -0
  294. package/dist/lib/openapi/spec/state-schema.d.ts +23 -23
  295. package/dist/lib/openapi/spec/strategy-variant-schema.d.ts +2 -2
  296. package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.d.ts +35 -0
  297. package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.js +37 -0
  298. package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.js.map +1 -0
  299. package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.test.d.ts +1 -0
  300. package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.test.js +19 -0
  301. package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.test.js.map +1 -0
  302. package/dist/lib/openapi/spec/upsert-segment-schema.d.ts +8 -15
  303. package/dist/lib/openapi/spec/upsert-segment-schema.js +8 -17
  304. package/dist/lib/openapi/spec/upsert-segment-schema.js.map +1 -1
  305. package/dist/lib/openapi/spec/upsert-segment-schema.test.d.ts +1 -0
  306. package/dist/lib/openapi/spec/upsert-segment-schema.test.js +35 -0
  307. package/dist/lib/openapi/spec/upsert-segment-schema.test.js.map +1 -0
  308. package/dist/lib/openapi/spec/validate-feature-schema.d.ts +6 -0
  309. package/dist/lib/openapi/spec/validate-feature-schema.js +6 -0
  310. package/dist/lib/openapi/spec/validate-feature-schema.js.map +1 -1
  311. package/dist/lib/openapi/spec/variant-schema.d.ts +2 -2
  312. package/dist/lib/openapi/spec/variant-schema.js +2 -2
  313. package/dist/lib/openapi/spec/variant-schema.js.map +1 -1
  314. package/dist/lib/openapi/spec/variants-schema.d.ts +2 -2
  315. package/dist/lib/openapi/util/all-of.d.ts +3 -0
  316. package/dist/lib/openapi/util/all-of.js +34 -0
  317. package/dist/lib/openapi/util/all-of.js.map +1 -0
  318. package/dist/lib/openapi/util/openapi-tags.d.ts +46 -58
  319. package/dist/lib/openapi/util/openapi-tags.js +27 -34
  320. package/dist/lib/openapi/util/openapi-tags.js.map +1 -1
  321. package/dist/lib/openapi/util/openapi-tags.test.d.ts +1 -0
  322. package/dist/lib/openapi/util/openapi-tags.test.js +15 -0
  323. package/dist/lib/openapi/util/openapi-tags.test.js.map +1 -0
  324. package/dist/lib/openapi/validate.js +0 -1
  325. package/dist/lib/openapi/validate.js.map +1 -1
  326. package/dist/lib/routes/admin-api/archive.d.ts +1 -1
  327. package/dist/lib/routes/admin-api/archive.js +3 -2
  328. package/dist/lib/routes/admin-api/archive.js.map +1 -1
  329. package/dist/lib/routes/admin-api/context.js +2 -1
  330. package/dist/lib/routes/admin-api/context.js.map +1 -1
  331. package/dist/lib/routes/admin-api/feature.js +2 -1
  332. package/dist/lib/routes/admin-api/feature.js.map +1 -1
  333. package/dist/lib/routes/admin-api/index.js +2 -0
  334. package/dist/lib/routes/admin-api/index.js.map +1 -1
  335. package/dist/lib/routes/admin-api/instance-admin.d.ts +2 -2
  336. package/dist/lib/routes/admin-api/instance-admin.js +7 -1
  337. package/dist/lib/routes/admin-api/instance-admin.js.map +1 -1
  338. package/dist/lib/routes/admin-api/metrics.d.ts +2 -1
  339. package/dist/lib/routes/admin-api/metrics.js +2 -1
  340. package/dist/lib/routes/admin-api/metrics.js.map +1 -1
  341. package/dist/lib/routes/admin-api/project/api-token.d.ts +2 -1
  342. package/dist/lib/routes/admin-api/project/api-token.js +12 -3
  343. package/dist/lib/routes/admin-api/project/api-token.js.map +1 -1
  344. package/dist/lib/routes/admin-api/project/environments.d.ts +2 -1
  345. package/dist/lib/routes/admin-api/project/environments.js +3 -1
  346. package/dist/lib/routes/admin-api/project/environments.js.map +1 -1
  347. package/dist/lib/routes/admin-api/project/index.d.ts +2 -1
  348. package/dist/lib/routes/admin-api/project/index.js +31 -0
  349. package/dist/lib/routes/admin-api/project/index.js.map +1 -1
  350. package/dist/lib/routes/admin-api/strategy.d.ts +1 -1
  351. package/dist/lib/routes/admin-api/strategy.js.map +1 -1
  352. package/dist/lib/routes/client-api/metrics.js +14 -8
  353. package/dist/lib/routes/client-api/metrics.js.map +1 -1
  354. package/dist/lib/routes/client-api/metrics.test.js +27 -0
  355. package/dist/lib/routes/client-api/metrics.test.js.map +1 -1
  356. package/dist/lib/routes/controller.d.ts +1 -1
  357. package/dist/lib/routes/controller.js +17 -10
  358. package/dist/lib/routes/controller.js.map +1 -1
  359. package/dist/lib/routes/proxy-api/index.js +5 -0
  360. package/dist/lib/routes/proxy-api/index.js.map +1 -1
  361. package/dist/lib/schema/role-schema.js +3 -1
  362. package/dist/lib/schema/role-schema.js.map +1 -1
  363. package/dist/lib/schema/role-schema.test.js +1 -1
  364. package/dist/lib/schema/role-schema.test.js.map +1 -1
  365. package/dist/lib/segments/segment-service-interface.d.ts +1 -1
  366. package/dist/lib/services/access-service.d.ts +29 -11
  367. package/dist/lib/services/access-service.js +53 -10
  368. package/dist/lib/services/access-service.js.map +1 -1
  369. package/dist/lib/services/access-service.test.js +2 -1
  370. package/dist/lib/services/access-service.test.js.map +1 -1
  371. package/dist/lib/services/addon-service.js +4 -2
  372. package/dist/lib/services/addon-service.js.map +1 -1
  373. package/dist/lib/services/addon-service.test.js +65 -0
  374. package/dist/lib/services/addon-service.test.js.map +1 -1
  375. package/dist/lib/services/client-metrics/instance-service.d.ts +5 -2
  376. package/dist/lib/services/client-metrics/instance-service.js +22 -3
  377. package/dist/lib/services/client-metrics/instance-service.js.map +1 -1
  378. package/dist/lib/services/client-metrics/instance-service.test.js +5 -4
  379. package/dist/lib/services/client-metrics/instance-service.test.js.map +1 -1
  380. package/dist/lib/services/context-service.d.ts +6 -2
  381. package/dist/lib/services/context-service.js +16 -2
  382. package/dist/lib/services/context-service.js.map +1 -1
  383. package/dist/lib/services/feature-service-potentially-stale.test.js +1 -1
  384. package/dist/lib/services/feature-service-potentially-stale.test.js.map +1 -1
  385. package/dist/lib/services/feature-toggle-service.d.ts +20 -7
  386. package/dist/lib/services/feature-toggle-service.js +105 -41
  387. package/dist/lib/services/feature-toggle-service.js.map +1 -1
  388. package/dist/lib/services/group-service.d.ts +4 -4
  389. package/dist/lib/services/group-service.js +17 -16
  390. package/dist/lib/services/group-service.js.map +1 -1
  391. package/dist/lib/services/index.d.ts +3 -2
  392. package/dist/lib/services/index.js +31 -17
  393. package/dist/lib/services/index.js.map +1 -1
  394. package/dist/lib/services/project-schema.js +9 -1
  395. package/dist/lib/services/project-schema.js.map +1 -1
  396. package/dist/lib/services/project-service.d.ts +16 -12
  397. package/dist/lib/services/project-service.js +127 -17
  398. package/dist/lib/services/project-service.js.map +1 -1
  399. package/dist/lib/services/scheduler-service.d.ts +1 -1
  400. package/dist/lib/services/scheduler-service.js +3 -3
  401. package/dist/lib/services/scheduler-service.js.map +1 -1
  402. package/dist/lib/services/scheduler-service.test.js +15 -15
  403. package/dist/lib/services/scheduler-service.test.js.map +1 -1
  404. package/dist/lib/services/segment-service.d.ts +4 -2
  405. package/dist/lib/services/segment-service.js +17 -10
  406. package/dist/lib/services/segment-service.js.map +1 -1
  407. package/dist/lib/services/state-service.test.js +13 -3
  408. package/dist/lib/services/state-service.test.js.map +1 -1
  409. package/dist/lib/services/version-service.test.js +3 -0
  410. package/dist/lib/services/version-service.test.js.map +1 -1
  411. package/dist/lib/types/events.d.ts +60 -1
  412. package/dist/lib/types/events.js +65 -3
  413. package/dist/lib/types/events.js.map +1 -1
  414. package/dist/lib/types/experimental.d.ts +1 -1
  415. package/dist/lib/types/experimental.js +9 -5
  416. package/dist/lib/types/experimental.js.map +1 -1
  417. package/dist/lib/types/group.d.ts +2 -2
  418. package/dist/lib/types/model.d.ts +31 -2
  419. package/dist/lib/types/model.js.map +1 -1
  420. package/dist/lib/types/no-auth-user.d.ts +1 -0
  421. package/dist/lib/types/no-auth-user.js +3 -1
  422. package/dist/lib/types/no-auth-user.js.map +1 -1
  423. package/dist/lib/types/option.d.ts +7 -0
  424. package/dist/lib/types/services.d.ts +6 -1
  425. package/dist/lib/types/stores/access-store.d.ts +23 -4
  426. package/dist/lib/types/stores/feature-strategies-store.d.ts +2 -1
  427. package/dist/lib/types/stores/group-store.d.ts +4 -2
  428. package/dist/lib/types/stores/project-stats-store-type.d.ts +2 -0
  429. package/dist/lib/types/stores/project-store.d.ts +7 -14
  430. package/dist/lib/types/stores/strategy-store.d.ts +3 -17
  431. package/dist/lib/types/stores.d.ts +5 -1
  432. package/dist/lib/util/findDuplicates.d.ts +1 -0
  433. package/dist/lib/util/findDuplicates.js +18 -0
  434. package/dist/lib/util/findDuplicates.js.map +1 -0
  435. package/dist/lib/util/findDuplicates.test.d.ts +1 -0
  436. package/dist/lib/util/findDuplicates.test.js +23 -0
  437. package/dist/lib/util/findDuplicates.test.js.map +1 -0
  438. package/dist/migrations/20230830121352-update-client-applications-usage-table.d.ts +2 -0
  439. package/dist/migrations/20230830121352-update-client-applications-usage-table.js +16 -0
  440. package/dist/migrations/20230830121352-update-client-applications-usage-table.js.map +1 -0
  441. package/dist/migrations/20230905122605-add-feature-naming-description.d.ts +2 -0
  442. package/dist/migrations/20230905122605-add-feature-naming-description.js +13 -0
  443. package/dist/migrations/20230905122605-add-feature-naming-description.js.map +1 -0
  444. package/dist/migrations/20230919104006-dependent-features.d.ts +2 -0
  445. package/dist/migrations/20230919104006-dependent-features.js +21 -0
  446. package/dist/migrations/20230919104006-dependent-features.js.map +1 -0
  447. package/dist/migrations/20230927071830-reset-pnps-feedback.d.ts +2 -0
  448. package/dist/migrations/20230927071830-reset-pnps-feedback.js +10 -0
  449. package/dist/migrations/20230927071830-reset-pnps-feedback.js.map +1 -0
  450. package/dist/server-dev.js +7 -4
  451. package/dist/server-dev.js.map +1 -1
  452. package/dist/test/e2e/api/admin/addon.e2e.test.js +0 -1
  453. package/dist/test/e2e/api/admin/addon.e2e.test.js.map +1 -1
  454. package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js +8 -12
  455. package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js.map +1 -1
  456. package/dist/test/e2e/api/admin/event.e2e.test.js +9 -2
  457. package/dist/test/e2e/api/admin/event.e2e.test.js.map +1 -1
  458. package/dist/test/e2e/api/admin/metrics.e2e.test.js +2 -10
  459. package/dist/test/e2e/api/admin/metrics.e2e.test.js.map +1 -1
  460. package/dist/test/e2e/api/admin/project/environments.e2e.test.js +8 -0
  461. package/dist/test/e2e/api/admin/project/environments.e2e.test.js.map +1 -1
  462. package/dist/test/e2e/api/admin/project/features.e2e.test.js +41 -15
  463. package/dist/test/e2e/api/admin/project/features.e2e.test.js.map +1 -1
  464. package/dist/test/e2e/api/admin/project/project.api.tokens.e2e.test.js +30 -3
  465. package/dist/test/e2e/api/admin/project/project.api.tokens.e2e.test.js.map +1 -1
  466. package/dist/test/e2e/api/admin/segment.e2e.test.d.ts +1 -0
  467. package/dist/test/e2e/api/admin/segment.e2e.test.js +272 -0
  468. package/dist/test/e2e/api/admin/segment.e2e.test.js.map +1 -0
  469. package/dist/test/e2e/api/admin/state.e2e.test.js +0 -11
  470. package/dist/test/e2e/api/admin/state.e2e.test.js.map +1 -1
  471. package/dist/test/e2e/api/admin/strategy.e2e.test.js +1 -1
  472. package/dist/test/e2e/api/client/feature.e2e.test.js +27 -3
  473. package/dist/test/e2e/api/client/feature.e2e.test.js.map +1 -1
  474. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js +2 -2
  475. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js.map +1 -1
  476. package/dist/test/e2e/api/client/segment.e2e.test.js +1 -1
  477. package/dist/test/e2e/api/client/segment.e2e.test.js.map +1 -1
  478. package/dist/test/e2e/api/proxy/proxy.e2e.test.js +34 -9
  479. package/dist/test/e2e/api/proxy/proxy.e2e.test.js.map +1 -1
  480. package/dist/test/e2e/helpers/app.utils.d.ts +6 -0
  481. package/dist/test/e2e/helpers/app.utils.js +16 -0
  482. package/dist/test/e2e/helpers/app.utils.js.map +1 -0
  483. package/dist/test/e2e/helpers/database.json +24 -0
  484. package/dist/test/e2e/services/access-service.e2e.test.js +549 -135
  485. package/dist/test/e2e/services/access-service.e2e.test.js.map +1 -1
  486. package/dist/test/e2e/services/api-token-service.e2e.test.js +4 -2
  487. package/dist/test/e2e/services/api-token-service.e2e.test.js.map +1 -1
  488. package/dist/test/e2e/services/client-metrics-service.e2e.test.js +2 -1
  489. package/dist/test/e2e/services/client-metrics-service.e2e.test.js.map +1 -1
  490. package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js +38 -5
  491. package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js.map +1 -1
  492. package/dist/test/e2e/services/group-service.e2e.test.js +16 -11
  493. package/dist/test/e2e/services/group-service.e2e.test.js.map +1 -1
  494. package/dist/test/e2e/services/playground-service.test.js +5 -2
  495. package/dist/test/e2e/services/playground-service.test.js.map +1 -1
  496. package/dist/test/e2e/services/project-health-service.e2e.test.js +4 -2
  497. package/dist/test/e2e/services/project-health-service.e2e.test.js.map +1 -1
  498. package/dist/test/e2e/services/project-service.e2e.test.js +242 -60
  499. package/dist/test/e2e/services/project-service.e2e.test.js.map +1 -1
  500. package/dist/test/fixtures/access-service-mock.d.ts +3 -4
  501. package/dist/test/fixtures/access-service-mock.js.map +1 -1
  502. package/dist/test/fixtures/fake-access-store.d.ts +15 -5
  503. package/dist/test/fixtures/fake-access-store.js +30 -3
  504. package/dist/test/fixtures/fake-access-store.js.map +1 -1
  505. package/dist/test/fixtures/fake-group-store.d.ts +4 -2
  506. package/dist/test/fixtures/fake-group-store.js +3 -0
  507. package/dist/test/fixtures/fake-group-store.js.map +1 -1
  508. package/dist/test/fixtures/fake-project-stats-store.d.ts +1 -0
  509. package/dist/test/fixtures/fake-project-stats-store.js +3 -0
  510. package/dist/test/fixtures/fake-project-stats-store.js.map +1 -1
  511. package/dist/test/fixtures/fake-project-store.d.ts +2 -1
  512. package/dist/test/fixtures/fake-project-store.js +3 -0
  513. package/dist/test/fixtures/fake-project-store.js.map +1 -1
  514. package/dist/test/fixtures/no-logger.d.ts +2 -1
  515. package/dist/test/fixtures/no-logger.js +8 -4
  516. package/dist/test/fixtures/no-logger.js.map +1 -1
  517. package/dist/test/fixtures/store.js +3 -0
  518. package/dist/test/fixtures/store.js.map +1 -1
  519. package/frontend/README.md +7 -1
  520. package/frontend/build/index.html +2 -2
  521. package/frontend/build/static/{AdvancedPlayground-1748fcdd.js → AdvancedPlayground-20059178.js} +11 -11
  522. package/frontend/build/static/CreateProject-6955728f.js +4 -0
  523. package/frontend/build/static/{Error-cbce6b64.js → Error-f56339ab.js} +1 -1
  524. package/frontend/build/static/FeatureArchiveDialog-33dc3a5b.js +10 -0
  525. package/frontend/build/static/{FeatureMetricsChart-8fd8a304.js → FeatureMetricsChart-5ad514bc.js} +2 -2
  526. package/frontend/build/static/FeatureViewLazyExport-85a68ed0.js +7 -0
  527. package/frontend/build/static/LazyAdminExport-e2677758.js +35 -0
  528. package/frontend/build/static/LazyProjectExport-969bb54e.js +24 -0
  529. package/frontend/build/static/Logo-android-218bddbb.svg +1 -0
  530. package/frontend/build/static/Logo-flutter-cc3c706f.svg +1 -0
  531. package/frontend/build/static/Logo-go-02475b3d.svg +1 -0
  532. package/frontend/build/static/Logo-java-6e556b26.svg +1 -0
  533. package/frontend/build/static/Logo-javascript-caebc06e.svg +1 -0
  534. package/frontend/build/static/Logo-net-0a33abee.svg +1 -0
  535. package/frontend/build/static/Logo-node-318ed025.svg +1 -0
  536. package/frontend/build/static/Logo-php-201f18c3.svg +1 -0
  537. package/frontend/build/static/Logo-python-4305760e.svg +1 -0
  538. package/frontend/build/static/Logo-react-18e98687.svg +1 -0
  539. package/frontend/build/static/Logo-ruby-58f46832.svg +1 -0
  540. package/frontend/build/static/Logo-rust-c83a80f9.svg +1 -0
  541. package/frontend/build/static/Logo-svelte-97dcb624.svg +1 -0
  542. package/frontend/build/static/Logo-swift-315f842b.svg +5 -0
  543. package/frontend/build/static/Logo-vue-0de73099.svg +1 -0
  544. package/frontend/build/static/{NetworkOverview-349a7bdd.js → NetworkOverview-894877e6.js} +2 -2
  545. package/frontend/build/static/{NetworkTraffic-60478e50.js → NetworkTraffic-81eff1ae.js} +1 -1
  546. package/frontend/build/static/ReactJSONEditor-59c8a094.js +129 -0
  547. package/frontend/build/static/RoleCell-35857d41.js +1 -0
  548. package/frontend/build/static/{StrategyItemContainer-a4caeace.js → StrategyItemContainer-b250f2d4.js} +1 -1
  549. package/frontend/build/static/{chartjs-adapter-date-fns.esm-03d2fbea.js → chartjs-adapter-date-fns.esm-c51fe022.js} +1 -1
  550. package/frontend/build/static/cr-db7653ac.png +0 -0
  551. package/frontend/build/static/datadog-543762b6.svg +5 -0
  552. package/frontend/build/static/edge-daisy-chaining-012bfdef.svg +48 -0
  553. package/frontend/build/static/edge-mode-5d25949b.svg +22 -0
  554. package/frontend/build/static/edge-offline-f6a0f761.svg +19 -0
  555. package/frontend/build/static/{flowchart-elk-definition-170a3958-fc100c77.js → flowchart-elk-definition-170a3958-a8c4a86a.js} +1 -1
  556. package/frontend/build/static/{index-866f9bf9.js → index-0515f416.js} +1 -1
  557. package/frontend/build/static/index-942e9eeb.js +463 -0
  558. package/frontend/build/static/{index-3c63138f.js → index-a59b2d65.js} +1 -1
  559. package/frontend/build/static/{is_dark-31c253e9.js → is_dark-464961a8.js} +1 -1
  560. package/frontend/build/static/jira-1abe7cbf.svg +17 -0
  561. package/frontend/build/static/{mindmap-definition-44684416-398682f9.js → mindmap-definition-44684416-3a71a9a5.js} +1 -1
  562. package/frontend/build/static/slack-36ce798a.svg +18 -0
  563. package/frontend/build/static/style-97d3ef98.css +1 -0
  564. package/frontend/build/static/teams-4e30b51f.svg +45 -0
  565. package/frontend/build/static/{timeline-definition-8e5a9bc6-04a0ae08.js → timeline-definition-8e5a9bc6-da4ebc88.js} +1 -1
  566. package/frontend/build/static/{unknownify-b8618d88.js → unknownify-3563456b.js} +1 -1
  567. package/frontend/build/static/unleash-integration-949d8966.svg +1 -0
  568. package/frontend/build/static/webhooks-b1b44207.svg +16 -0
  569. package/frontend/package.json +20 -18
  570. package/package.json +23 -23
  571. package/dist/lib/services/instance-stats-service.js.map +0 -1
  572. package/dist/lib/services/instance-stats-service.test.js.map +0 -1
  573. package/frontend/build/static/CreateProject-972fa820.js +0 -4
  574. package/frontend/build/static/FeatureArchiveDialog-8a281845.js +0 -10
  575. package/frontend/build/static/FeatureViewLazyExport-a215d53b.js +0 -7
  576. package/frontend/build/static/LazyAdminExport-ba7d55ca.js +0 -35
  577. package/frontend/build/static/LazyProjectExport-12bccd40.js +0 -17
  578. package/frontend/build/static/RoleCell-144e7eca.js +0 -1
  579. package/frontend/build/static/datadog-591b6a73.svg +0 -1
  580. package/frontend/build/static/index-17d74ac9.js +0 -454
  581. package/frontend/build/static/slack-c0af31c6.svg +0 -1
  582. package/frontend/build/static/style-770afaee.css +0 -1
  583. package/frontend/build/static/teams-62e72076.svg +0 -26
  584. package/frontend/build/static/webhooks-ffa904ac.svg +0 -1
  585. /package/dist/lib/{services/instance-stats-service.test.d.ts → db/access-store.test.d.ts} +0 -0
  586. /package/frontend/build/static/{jira-d9eb9af9.svg → jira-comment-d9eb9af9.svg} +0 -0
package/README.md CHANGED
@@ -17,9 +17,9 @@
17
17
 
18
18
  Unleash is an open source feature management solution. It improves the workflow of your development team and leads to quicker software delivery. Unleash increases efficiency and gives teams _full control_ of how and when they enable new functionality for end users. Unleash lets teams ship code to production in _smaller_ releases _whenever_ they want.
19
19
 
20
- Feature toggles make it easy to test how your code works with real production data without the fear that you'll accidentally break your users' experience. It also helps your team work on multiple features in parallel without each maintaining an separate feature branch.
20
+ Feature flags make it easy to test how your code works with real production data without the fear that you'll accidentally break your users' experience. It also helps your team work on multiple features in parallel without each maintaining a separate feature branch.
21
21
 
22
- Unleash is the largest open source solution for feature flagging on GitHub. There's 12 official client and server SDKs and 10+ community SDKs available; you can even make your own if you want to. You can use Unleash with any language and any framework.
22
+ Unleash is the largest open source solution for feature flagging on GitHub. There are 12 official client and server SDKs and 10+ community SDKs available; you can even make your own if you want to. You can use Unleash with any language and any framework.
23
23
 
24
24
  <br/>
25
25
 
@@ -103,11 +103,13 @@ We know that learning a new tool can be hard and time-consuming. We have a growi
103
103
 
104
104
  📚 [Visit the documentation](https://docs.getunleash.io/) for more in-depth descriptions, how-to guides, and more.
105
105
 
106
+ 📖 Learn more about the principles of building and scaling [feature flag](https://docs.getunleash.io/topics/feature-flags/feature-flag-best-practices) solutions.
107
+
106
108
  <br/>
107
109
 
108
110
  ## Contribute to Unleash
109
111
 
110
- Building Unleash is a collaborative effort, and we owe a lot of gratitude to many smart and talented individuals. Building it together with community ensures that we build a product that solves real problems for real people. We'd love to have your help too: Please feel free to open issues or provide pull requests.
112
+ Unleash is the largest [open source feature flag solution](https://www.getunleash.io/) on GitHub. Building Unleash is a collaborative effort, and we owe a lot of gratitude to many smart and talented individuals. Building it together with the community ensures that we build a product that solves real problems for real people. We'd love to have your help too: Please feel free to open issues or provide pull requests.
111
113
 
112
114
  Check out [the CONTRIBUTING.md file](./CONTRIBUTING.md) for contribution guidelines and the [Unleash developer guide](./website/docs/contributing/developer-guide.md) for tips on environment setup, running the tests, and running Unleash from source.
113
115
 
@@ -13,7 +13,8 @@ exports.addonDefinitionSchema = joi_1.default.object().keys({
13
13
  displayName: joi_1.default.string(),
14
14
  documentationUrl: joi_1.default.string().uri({ scheme: [/https?/] }),
15
15
  description: joi_1.default.string().allow(''),
16
- deprecated: joi_1.default.boolean().optional().default(false),
16
+ howTo: joi_1.default.string().optional().allow(''),
17
+ deprecated: joi_1.default.string().optional().allow(''),
17
18
  parameters: joi_1.default
18
19
  .array()
19
20
  .optional()
@@ -1 +1 @@
1
- {"version":3,"file":"addon-schema.js","sourceRoot":"","sources":["../../../src/lib/addons/addon-schema.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AACtB,yCAA0C;AAC1C,iEAA4D;AAC5D,qFAAgF;AAEnE,QAAA,qBAAqB,GAAG,aAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;IACnD,IAAI,EAAE,eAAQ;IACd,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE;IACzB,gBAAgB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC1D,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IACnC,UAAU,EAAE,aAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACnD,UAAU,EAAE,aAAG;SACV,KAAK,EAAE;SACP,QAAQ,EAAE;SACV,KAAK,CACF,aAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACpC,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE;QACzB,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,QAAQ,EAAE,aAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACtC,SAAS,EAAE,aAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;KAC1C,CAAC,CACL;IACL,MAAM,EAAE,aAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,aAAG,CAAC,MAAM,EAAE,CAAC;IAClD,QAAQ,EAAE,aAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,+BAAa,CAAC;IACrD,YAAY,EAAE,6DAA4B,CAAC,QAAQ,EAAE;IACrD,MAAM,EAAE,aAAG;SACN,KAAK,EAAE;SACP,QAAQ,EAAE;SACV,KAAK,CACF,aAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;QAC/D,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC,CACL;CACR,CAAC,CAAC"}
1
+ {"version":3,"file":"addon-schema.js","sourceRoot":"","sources":["../../../src/lib/addons/addon-schema.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AACtB,yCAA0C;AAC1C,iEAA4D;AAC5D,qFAAgF;AAEnE,QAAA,qBAAqB,GAAG,aAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;IACnD,IAAI,EAAE,eAAQ;IACd,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE;IACzB,gBAAgB,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC1D,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IACnC,KAAK,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IACxC,UAAU,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IAC7C,UAAU,EAAE,aAAG;SACV,KAAK,EAAE;SACP,QAAQ,EAAE;SACV,KAAK,CACF,aAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACpC,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE;QACzB,WAAW,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,QAAQ,EAAE,aAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QACtC,SAAS,EAAE,aAAG,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;KAC1C,CAAC,CACL;IACL,MAAM,EAAE,aAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,aAAG,CAAC,MAAM,EAAE,CAAC;IAClD,QAAQ,EAAE,aAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,+BAAa,CAAC;IACrD,YAAY,EAAE,6DAA4B,CAAC,QAAQ,EAAE;IACrD,MAAM,EAAE,aAAG;SACN,KAAK,EAAE;SACP,QAAQ,EAAE;SACV,KAAK,CACF,aAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;QAC/D,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC,CACL;CACR,CAAC,CAAC"}
@@ -6,11 +6,12 @@ const dataDogDefinition = {
6
6
  displayName: 'Datadog',
7
7
  description: 'Allows Unleash to post updates to Datadog.',
8
8
  documentationUrl: 'https://docs.getunleash.io/docs/addons/datadog',
9
+ howTo: 'The Datadog integration allows Unleash to post Updates to Datadog when a feature toggle is updated.',
9
10
  parameters: [
10
11
  {
11
12
  name: 'url',
12
13
  displayName: 'Datadog Events URL',
13
- description: 'Default url: https://api.datadoghq.com/api/v1/events. Needs to be changed if your not using the US1 site.',
14
+ description: "Default URL: https://api.datadoghq.com/api/v1/events. Needs to be changed if your're not using the US1 site.",
14
15
  type: 'url',
15
16
  required: false,
16
17
  sensitive: false,
@@ -19,7 +20,7 @@ const dataDogDefinition = {
19
20
  name: 'apiKey',
20
21
  displayName: 'Datadog API key',
21
22
  placeholder: 'j96c23b0f12a6b3434a8d710110bd862',
22
- description: '(Required) API key from Datadog',
23
+ description: '(Required) API key to connect to Datadog',
23
24
  type: 'text',
24
25
  required: true,
25
26
  sensitive: true,
@@ -36,14 +37,28 @@ const dataDogDefinition = {
36
37
  name: 'customHeaders',
37
38
  displayName: 'Extra HTTP Headers',
38
39
  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`,
40
+ "SOME_CUSTOM_HTTP_HEADER": "SOME_VALUE",
41
+ "SOME_OTHER_CUSTOM_HTTP_HEADER": "SOME_OTHER_VALUE"
42
+ }`,
43
+ description: '(Optional) Used to add extra HTTP Headers to the request the plugin fires off. This must be a valid json object of key-value pairs where both the key and the value are strings',
43
44
  required: false,
44
45
  sensitive: true,
45
46
  type: 'textfield',
46
47
  },
48
+ {
49
+ name: 'bodyTemplate',
50
+ displayName: 'Body template',
51
+ placeholder: `{
52
+ "event": "{{event.type}}",
53
+ "createdBy": "{{event.createdBy}}",
54
+ "featureToggle": "{{event.data.name}}",
55
+ "timestamp": "{{event.data.createdAt}}"
56
+ }`,
57
+ description: '(Optional) The default format is a markdown string formatted by Unleash. You may override the format of the body using a mustache template.',
58
+ required: false,
59
+ sensitive: false,
60
+ type: 'textfield',
61
+ },
47
62
  ],
48
63
  events: [
49
64
  events_1.FEATURE_CREATED,
@@ -59,7 +74,7 @@ const dataDogDefinition = {
59
74
  events_1.FEATURE_STRATEGY_ADD,
60
75
  events_1.FEATURE_METADATA_UPDATED,
61
76
  events_1.FEATURE_PROJECT_CHANGE,
62
- events_1.FEATURE_VARIANTS_UPDATED,
77
+ events_1.FEATURE_ENVIRONMENT_VARIANTS_UPDATED,
63
78
  events_1.FEATURE_POTENTIALLY_STALE_ON,
64
79
  ],
65
80
  tagTypes: [
@@ -1 +1 @@
1
- {"version":3,"file":"datadog-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog-definition.ts"],"names":[],"mappings":";;AAAA,4CAgByB;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;QACxB,qCAA4B;KAC/B;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,4CAgByB;AAGzB,MAAM,iBAAiB,GAAqB;IACxC,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,4CAA4C;IACzD,gBAAgB,EAAE,gDAAgD;IAClE,KAAK,EAAE,qGAAqG;IAC5G,UAAU,EAAE;QACR;YACI,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,oBAAoB;YACjC,WAAW,EACP,8GAA8G;YAClH,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,0CAA0C;YACvD,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;;;EAGvB;YACU,WAAW,EACP,iLAAiL;YACrL,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,IAAI;YACf,IAAI,EAAE,WAAW;SACpB;QACD;YACI,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE;;;;;EAKvB;YACU,WAAW,EACP,6IAA6I;YACjJ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;YAChB,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,6CAAoC;QACpC,qCAA4B;KAC/B;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,4 +1,5 @@
1
1
  import Addon from './addon';
2
+ import { IFlagResolver } from '../types/experimental';
2
3
  import { IAddonConfig } from '../types/model';
3
4
  import { IEvent } from '../types/events';
4
5
  interface IDatadogParameters {
@@ -6,10 +7,15 @@ interface IDatadogParameters {
6
7
  apiKey: string;
7
8
  sourceTypeName?: string;
8
9
  customHeaders?: string;
10
+ bodyTemplate?: string;
11
+ }
12
+ export interface IDatadogAddonConfig extends IAddonConfig {
13
+ flagResolver: IFlagResolver;
9
14
  }
10
15
  export default class DatadogAddon extends Addon {
11
16
  private msgFormatter;
12
- constructor(config: IAddonConfig);
17
+ private flagResolver;
18
+ constructor(config: IDatadogAddonConfig);
13
19
  handleEvent(event: IEvent, parameters: IDatadogParameters): Promise<void>;
14
20
  }
15
21
  export {};
@@ -5,19 +5,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const addon_1 = __importDefault(require("./addon"));
7
7
  const datadog_definition_1 = __importDefault(require("./datadog-definition"));
8
+ const mustache_1 = __importDefault(require("mustache"));
8
9
  const feature_event_formatter_md_1 = require("./feature-event-formatter-md");
9
10
  class DatadogAddon extends addon_1.default {
10
11
  constructor(config) {
11
12
  super(datadog_definition_1.default, config);
12
13
  this.msgFormatter = new feature_event_formatter_md_1.FeatureEventFormatterMd(config.unleashUrl, feature_event_formatter_md_1.LinkStyle.MD);
14
+ this.flagResolver = config.flagResolver;
13
15
  }
14
16
  async handleEvent(event, parameters) {
15
- const { url = 'https://api.datadoghq.com/api/v1/events', apiKey, sourceTypeName, customHeaders, } = parameters;
16
- const text = this.msgFormatter.format(event);
17
+ const { url = 'https://api.datadoghq.com/api/v1/events', apiKey, sourceTypeName, customHeaders, bodyTemplate, } = parameters;
18
+ const context = {
19
+ event,
20
+ };
21
+ let text;
22
+ if (this.flagResolver.isEnabled('datadogJsonTemplate') &&
23
+ typeof bodyTemplate === 'string' &&
24
+ bodyTemplate.length > 1) {
25
+ text = mustache_1.default.render(bodyTemplate, context);
26
+ }
27
+ else {
28
+ text = `%%% \n ${this.msgFormatter.format(event)} \n %%% `;
29
+ }
17
30
  const { tags: eventTags } = event;
18
31
  const tags = eventTags && eventTags.map((tag) => `${tag.type}:${tag.value}`);
19
32
  const body = {
20
- text: `%%% \n ${text} \n %%% `,
33
+ text: text,
21
34
  title: 'Unleash notification update',
22
35
  tags,
23
36
  };
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"datadog.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAE5B,8EAA8C;AAC9C,wDAAgC;AAGhC,6EAIsC;AAsBtC,MAAqB,YAAa,SAAQ,eAAK;IAK3C,YAAY,MAA2B;QACnC,KAAK,CAAC,4BAAU,EAAE,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,oDAAuB,CAC3C,MAAM,CAAC,UAAU,EACjB,sCAAS,CAAC,EAAE,CACf,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,WAAW,CACb,KAAa,EACb,UAA8B;QAE9B,MAAM,EACF,GAAG,GAAG,yCAAyC,EAC/C,MAAM,EACN,cAAc,EACd,aAAa,EACb,YAAY,GACf,GAAG,UAAU,CAAC;QAEf,MAAM,OAAO,GAAG;YACZ,KAAK;SACR,CAAC;QAEF,IAAI,IAAI,CAAC;QACT,IACI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,qBAAqB,CAAC;YAClD,OAAO,YAAY,KAAK,QAAQ;YAChC,YAAY,CAAC,MAAM,GAAG,CAAC,EACzB;YACE,IAAI,GAAG,kBAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;SACjD;aAAM;YACH,IAAI,GAAG,UAAU,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;SAC9D;QAED,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,IAAI;YACV,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;AA5ED,+BA4EC"}
@@ -26,6 +26,11 @@ test('Should call datadog webhook', async () => {
26
26
  const addon = new datadog_1.default({
27
27
  getLogger: no_logger_1.default,
28
28
  unleashUrl: 'http://some-url.com',
29
+ flagResolver: {
30
+ getAll: jest.fn().mockReturnValue([]),
31
+ getVariant: jest.fn(),
32
+ isEnabled: jest.fn().mockReturnValue(false),
33
+ },
29
34
  });
30
35
  const event = {
31
36
  id: 1,
@@ -52,6 +57,11 @@ test('Should call datadog webhook for archived toggle', async () => {
52
57
  const addon = new datadog_1.default({
53
58
  getLogger: no_logger_1.default,
54
59
  unleashUrl: 'http://some-url.com',
60
+ flagResolver: {
61
+ getAll: jest.fn().mockReturnValue([]),
62
+ getVariant: jest.fn(),
63
+ isEnabled: jest.fn().mockReturnValue(false),
64
+ },
55
65
  });
56
66
  const event = {
57
67
  id: 2,
@@ -76,6 +86,11 @@ test('Should call datadog webhook for archived toggle with project info', async
76
86
  const addon = new datadog_1.default({
77
87
  getLogger: no_logger_1.default,
78
88
  unleashUrl: 'http://some-url.com',
89
+ flagResolver: {
90
+ getAll: jest.fn().mockReturnValue([]),
91
+ getVariant: jest.fn(),
92
+ isEnabled: jest.fn().mockReturnValue(false),
93
+ },
79
94
  });
80
95
  const event = {
81
96
  id: 2,
@@ -101,6 +116,11 @@ test(`Should call datadog webhook for toggled environment`, async () => {
101
116
  const addon = new datadog_1.default({
102
117
  getLogger: no_logger_1.default,
103
118
  unleashUrl: 'http://some-url.com',
119
+ flagResolver: {
120
+ getAll: jest.fn().mockReturnValue([]),
121
+ getVariant: jest.fn(),
122
+ isEnabled: jest.fn().mockReturnValue(false),
123
+ },
104
124
  });
105
125
  const event = {
106
126
  id: 2,
@@ -128,6 +148,11 @@ test(`Should include customHeaders in headers when calling service`, async () =>
128
148
  const addon = new datadog_1.default({
129
149
  getLogger: no_logger_1.default,
130
150
  unleashUrl: 'http://some-url.com',
151
+ flagResolver: {
152
+ getAll: jest.fn().mockReturnValue([]),
153
+ getVariant: jest.fn(),
154
+ isEnabled: jest.fn().mockReturnValue(false),
155
+ },
131
156
  });
132
157
  const event = {
133
158
  id: 2,
@@ -157,6 +182,11 @@ test(`Should not include source_type_name when included in the config`, async ()
157
182
  const addon = new datadog_1.default({
158
183
  getLogger: no_logger_1.default,
159
184
  unleashUrl: 'http://some-url.com',
185
+ flagResolver: {
186
+ getAll: jest.fn().mockReturnValue([]),
187
+ getVariant: jest.fn(),
188
+ isEnabled: jest.fn().mockReturnValue(false),
189
+ },
160
190
  });
161
191
  const event = {
162
192
  id: 2,
@@ -182,4 +212,36 @@ test(`Should not include source_type_name when included in the config`, async ()
182
212
  expect(fetchRetryCalls[0].options.body).toMatchSnapshot();
183
213
  expect(fetchRetryCalls[0].options.headers).toMatchSnapshot();
184
214
  });
215
+ test('Should call datadog webhook with JSON when template set', async () => {
216
+ const addon = new datadog_1.default({
217
+ getLogger: no_logger_1.default,
218
+ unleashUrl: 'http://some-url.com',
219
+ flagResolver: {
220
+ getAll: jest.fn().mockReturnValue([]),
221
+ getVariant: jest.fn(),
222
+ isEnabled: jest.fn().mockReturnValue(true),
223
+ },
224
+ });
225
+ const event = {
226
+ id: 1,
227
+ createdAt: new Date(),
228
+ type: events_1.FEATURE_CREATED,
229
+ createdBy: 'some@user.com',
230
+ featureName: 'some-toggle',
231
+ data: {
232
+ name: 'some-toggle',
233
+ enabled: false,
234
+ strategies: [{ name: 'default' }],
235
+ },
236
+ };
237
+ const parameters = {
238
+ url: 'http://api.datadoghq.com/api/v1/events',
239
+ apiKey: 'fakeKey',
240
+ bodyTemplate: '{\n "event": "{{event.type}}",\n "createdBy": "{{event.createdBy}}"\n}',
241
+ };
242
+ await addon.handleEvent(event, parameters);
243
+ expect(fetchRetryCalls.length).toBe(1);
244
+ expect(fetchRetryCalls[0].url).toBe(parameters.url);
245
+ expect(fetchRetryCalls[0].options.body).toMatchSnapshot();
246
+ });
185
247
  //# sourceMappingURL=datadog.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datadog.test.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog.test.ts"],"names":[],"mappings":";;;;;AAAA,4CAKyB;AAGzB,wDAAqC;AAErC,8EAAqD;AAErD,IAAI,eAAe,GAAU,EAAE,CAAC;AAEhC,IAAI,CAAC,IAAI,CACL,SAAS,EACT,GAAG,EAAE,CACD,MAAM,KAAK;IAGP,YAAY,UAAU,EAAE,EAAE,SAAS,EAAE;QACjC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;QACtC,eAAe,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;QAC3C,eAAe,CAAC,IAAI,CAAC;YACjB,GAAG;YACH,OAAO;YACP,OAAO;YACP,OAAO;SACV,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5C,CAAC;CACJ,CACR,CAAC;AAEF,IAAI,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;IAC3C,MAAM,KAAK,GAAG,IAAI,iBAAY,CAAC;QAC3B,SAAS,EAAE,mBAAQ;QACnB,UAAU,EAAE,qBAAqB;KACpC,CAAC,CAAC;IACH,MAAM,KAAK,GAAW;QAClB,EAAE,EAAE,CAAC;QACL,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,IAAI,EAAE,wBAAe;QACrB,SAAS,EAAE,eAAe;QAC1B,WAAW,EAAE,aAAa;QAC1B,IAAI,EAAE;YACF,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SACpC;KACJ,CAAC;IAEF,MAAM,UAAU,GAAG;QACf,GAAG,EAAE,wCAAwC;QAC7C,MAAM,EAAE,SAAS;KACpB,CAAC;IAEF,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3C,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;IAChE,MAAM,KAAK,GAAG,IAAI,iBAAY,CAAC;QAC3B,SAAS,EAAE,mBAAQ;QACnB,UAAU,EAAE,qBAAqB;KACpC,CAAC,CAAC;IACH,MAAM,KAAK,GAAW;QAClB,EAAE,EAAE,CAAC;QACL,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,IAAI,EAAE,yBAAgB;QACtB,SAAS,EAAE,eAAe;QAC1B,WAAW,EAAE,aAAa;QAC1B,IAAI,EAAE;YACF,IAAI,EAAE,aAAa;SACtB;KACJ,CAAC;IAEF,MAAM,UAAU,GAAG;QACf,GAAG,EAAE,wCAAwC;QAC7C,MAAM,EAAE,SAAS;KACpB,CAAC;IAEF,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3C,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;IAClF,MAAM,KAAK,GAAG,IAAI,iBAAY,CAAC;QAC3B,SAAS,EAAE,mBAAQ;QACnB,UAAU,EAAE,qBAAqB;KACpC,CAAC,CAAC;IACH,MAAM,KAAK,GAAW;QAClB,EAAE,EAAE,CAAC;QACL,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,IAAI,EAAE,yBAAgB;QACtB,SAAS,EAAE,eAAe;QAC1B,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE;YACF,IAAI,EAAE,aAAa;SACtB;KACJ,CAAC;IAEF,MAAM,UAAU,GAAG;QACf,GAAG,EAAE,wCAAwC;QAC7C,MAAM,EAAE,SAAS;KACpB,CAAC;IAEF,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3C,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;IACnE,MAAM,KAAK,GAAG,IAAI,iBAAY,CAAC;QAC3B,SAAS,EAAE,mBAAQ;QACnB,UAAU,EAAE,qBAAqB;KACpC,CAAC,CAAC;IACH,MAAM,KAAK,GAAW;QAClB,EAAE,EAAE,CAAC;QACL,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,IAAI,EAAE,qCAA4B;QAClC,SAAS,EAAE,eAAe;QAC1B,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,aAAa;QAC1B,IAAI,EAAE;YACF,IAAI,EAAE,aAAa;SACtB;KACJ,CAAC;IAEF,MAAM,UAAU,GAAG;QACf,GAAG,EAAE,wBAAwB;QAC7B,MAAM,EAAE,SAAS;KACpB,CAAC;IAEF,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3C,MAAM,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;AAC9D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;IAC5E,MAAM,KAAK,GAAG,IAAI,iBAAY,CAAC;QAC3B,SAAS,EAAE,mBAAQ;QACnB,UAAU,EAAE,qBAAqB;KACpC,CAAC,CAAC;IACH,MAAM,KAAK,GAAW;QAClB,EAAE,EAAE,CAAC;QACL,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,IAAI,EAAE,qCAA4B;QAClC,SAAS,EAAE,eAAe;QAC1B,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,aAAa;QAC1B,IAAI,EAAE;YACF,IAAI,EAAE,aAAa;SACtB;KACJ,CAAC;IAEF,MAAM,UAAU,GAAG;QACf,GAAG,EAAE,wBAAwB;QAC7B,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,2CAA2C;KAC7D,CAAC;IACF,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3C,MAAM,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IAC1D,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;AACjE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;IAC/E,MAAM,KAAK,GAAG,IAAI,iBAAY,CAAC;QAC3B,SAAS,EAAE,mBAAQ;QACnB,UAAU,EAAE,qBAAqB;KACpC,CAAC,CAAC;IACH,MAAM,KAAK,GAAW;QAClB,EAAE,EAAE,CAAC;QACL,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,IAAI,EAAE,qCAA4B;QAClC,SAAS,EAAE,eAAe;QAC1B,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,aAAa;QAC1B,IAAI,EAAE;YACF,IAAI,EAAE,aAAa;SACtB;KACJ,CAAC;IAEF,MAAM,UAAU,GAAG;QACf,GAAG,EAAE,wBAAwB;QAC7B,MAAM,EAAE,SAAS;QACjB,cAAc,EAAE,uBAAuB;KAC1C,CAAC;IAEF,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3C,MAAM,CAAC,eAAe,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAC3C,4CAA4C,CAC/C,CAAC;IACF,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IAC1D,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;AACjE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"datadog.test.js","sourceRoot":"","sources":["../../../src/lib/addons/datadog.test.ts"],"names":[],"mappings":"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"}
@@ -10,21 +10,13 @@ const teams_1 = __importDefault(require("./teams"));
10
10
  const datadog_1 = __importDefault(require("./datadog"));
11
11
  const slack_app_1 = __importDefault(require("./slack-app"));
12
12
  const getAddons = ({ getLogger, unleashUrl, flagResolver }) => {
13
- const slackAppAddonEnabled = flagResolver.isEnabled('slackAppAddon');
14
- const slackAddon = new slack_1.default({ getLogger, unleashUrl });
15
- if (slackAppAddonEnabled) {
16
- slackAddon.definition.deprecated =
17
- 'This addon is deprecated. Please try the new Slack App addon instead.';
18
- }
19
13
  const addons = [
20
14
  new webhook_1.default({ getLogger }),
21
- slackAddon,
15
+ new slack_1.default({ getLogger, unleashUrl }),
16
+ new slack_app_1.default({ getLogger, unleashUrl }),
22
17
  new teams_1.default({ getLogger, unleashUrl }),
23
- new datadog_1.default({ getLogger, unleashUrl }),
18
+ new datadog_1.default({ getLogger, unleashUrl, flagResolver }),
24
19
  ];
25
- if (slackAppAddonEnabled) {
26
- addons.push(new slack_app_1.default({ getLogger, unleashUrl }));
27
- }
28
20
  return addons.reduce((map, addon) => {
29
21
  // eslint-disable-next-line no-param-reassign
30
22
  map[addon.name] = addon;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/addons/index.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAChC,oDAAiC;AACjC,oDAAiC;AACjC,wDAAqC;AAGrC,4DAAwC;AAOjC,MAAM,SAAS,GAIE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAE;IAChE,MAAM,oBAAoB,GAAG,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAErE,MAAM,UAAU,GAAG,IAAI,eAAU,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;IAE7D,IAAI,oBAAoB,EAAE;QACtB,UAAU,CAAC,UAAU,CAAC,UAAU;YAC5B,uEAAuE,CAAC;KAC/E;IAED,MAAM,MAAM,GAAY;QACpB,IAAI,iBAAO,CAAC,EAAE,SAAS,EAAE,CAAC;QAC1B,UAAU;QACV,IAAI,eAAU,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QACzC,IAAI,iBAAY,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;KAC9C,CAAC;IAEF,IAAI,oBAAoB,EAAE;QACtB,MAAM,CAAC,IAAI,CAAC,IAAI,mBAAa,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;KAC7D;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAChC,6CAA6C;QAC7C,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACxB,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC;AA9BW,QAAA,SAAS,aA8BpB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/addons/index.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAChC,oDAAiC;AACjC,oDAAiC;AACjC,wDAAqC;AAGrC,4DAAwC;AAOjC,MAAM,SAAS,GAIE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAE;IAChE,MAAM,MAAM,GAAY;QACpB,IAAI,iBAAO,CAAC,EAAE,SAAS,EAAE,CAAC;QAC1B,IAAI,eAAU,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QACzC,IAAI,mBAAa,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QAC5C,IAAI,eAAU,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QACzC,IAAI,iBAAY,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;KAC5D,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAChC,6CAA6C;QAC7C,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACxB,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC;AAlBW,QAAA,SAAS,aAkBpB"}
@@ -4,22 +4,13 @@ const events_1 = require("../types/events");
4
4
  const slackAppDefinition = {
5
5
  name: 'slack-app',
6
6
  displayName: 'Slack App',
7
- description: 'The Unleash Slack App posts messages to your Slack workspace. You can decide which channels to post to by configuring your feature toggles with "slack" tags. For example, if you\'d like the bot to post messages to the #general channel, you should configure your feature toggle with the "slack:general" tag.',
7
+ description: 'The Unleash Slack App posts messages to the selected channels in your Slack workspace.',
8
+ howTo: 'Below you can specify which Slack channels receive event notifications. The configuration settings allow you to choose the events and whether you want to filter them by projects and environments.\n\nYou can also select which channels to post to by configuring your feature toggles with “slack” tags. For example, if you’d like the bot to post messages to the #general channel, you can configure your feature toggle with the “slack:general” tag.\n\nThe Unleash Slack App bot has access to public channels by default. If you want the bot to post messages to private channels, you’ll need to invite it to those channels.',
8
9
  documentationUrl: 'https://docs.getunleash.io/docs/addons/slack-app',
9
- alerts: [
10
- {
11
- type: 'info',
12
- text: `The Unleash Slack App bot has access to public channels by default. If you want the bot to post messages to private channels, you'll need to invite it to those channels.`,
13
- },
14
- {
15
- type: 'warning',
16
- text: `Please ensure you have the Unleash Slack App installed in your Slack workspace if you haven't installed it already.`,
17
- },
18
- ],
19
10
  installation: {
20
11
  url: 'https://unleash-slack-app.vercel.app/install',
21
12
  title: 'Slack App installation',
22
- helpText: 'After installing the Unleash Slack app in your Slack workspace, paste the access token into the appropriate field below in order to configure this addon.',
13
+ helpText: 'After installing the Unleash Slack app in your Slack workspace, paste the access token into the appropriate field below in order to configure this integration.',
23
14
  },
24
15
  parameters: [
25
16
  {
@@ -32,16 +23,8 @@ const slackAppDefinition = {
32
23
  },
33
24
  {
34
25
  name: 'defaultChannels',
35
- displayName: 'Default channels',
36
- description: 'A comma-separated list of channels to post to if no tagged channels are found (e.g. a toggle without tags, or an event with no tags associated).',
37
- type: 'text',
38
- required: false,
39
- sensitive: false,
40
- },
41
- {
42
- name: 'alwaysPostToDefault',
43
- displayName: 'Always post to default channels',
44
- description: `If set to 'true' or 'yes', the app will always post events to the default channels, even if the feature toggle has slack tags`,
26
+ displayName: 'Channels',
27
+ description: 'A comma-separated list of channels to post the configured events to. These channels are always notified, regardless of the event type or the presence of a slack tag.',
45
28
  type: 'text',
46
29
  required: false,
47
30
  sensitive: false,
@@ -49,7 +32,6 @@ const slackAppDefinition = {
49
32
  ],
50
33
  events: [
51
34
  events_1.FEATURE_CREATED,
52
- events_1.FEATURE_UPDATED,
53
35
  events_1.FEATURE_ARCHIVED,
54
36
  events_1.FEATURE_REVIVED,
55
37
  events_1.FEATURE_STALE_ON,
@@ -61,7 +43,6 @@ const slackAppDefinition = {
61
43
  events_1.FEATURE_STRATEGY_UPDATE,
62
44
  events_1.FEATURE_STRATEGY_ADD,
63
45
  events_1.FEATURE_METADATA_UPDATED,
64
- events_1.FEATURE_VARIANTS_UPDATED,
65
46
  events_1.FEATURE_PROJECT_CHANGE,
66
47
  events_1.FEATURE_POTENTIALLY_STALE_ON,
67
48
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"slack-app-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/slack-app-definition.ts"],"names":[],"mappings":";;AAAA,4CAiByB;AAGzB,MAAM,kBAAkB,GAAqB;IACzC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,WAAW;IACxB,WAAW,EACP,oTAAoT;IACxT,gBAAgB,EAAE,kDAAkD;IACpE,MAAM,EAAE;QACJ;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,2KAA2K;SACpL;QACD;YACI,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,qHAAqH;SAC9H;KACJ;IACD,YAAY,EAAE;QACV,GAAG,EAAE,8CAA8C;QACnD,KAAK,EAAE,wBAAwB;QAC/B,QAAQ,EACJ,2JAA2J;KAClK;IACD,UAAU,EAAE;QACR;YACI,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,YAAY;YACzB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;QACD;YACI,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,kBAAkB;YAC/B,WAAW,EACP,kJAAkJ;YACtJ,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;QACD;YACI,IAAI,EAAE,qBAAqB;YAC3B,WAAW,EAAE,iCAAiC;YAC9C,WAAW,EAAE,+HAA+H;YAC5I,IAAI,EAAE,MAAM;YACZ,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,6CAAoC;QACpC,gCAAuB;QACvB,gCAAuB;QACvB,6BAAoB;QACpB,iCAAwB;QACxB,iCAAwB;QACxB,+BAAsB;QACtB,qCAA4B;KAC/B;IACD,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,OAAO;YACb,WAAW,EACP,iEAAiE;YACrE,IAAI,EAAE,GAAG;SACZ;KACJ;CACJ,CAAC;AAEF,kBAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"slack-app-definition.js","sourceRoot":"","sources":["../../../src/lib/addons/slack-app-definition.ts"],"names":[],"mappings":";;AAAA,4CAeyB;AAGzB,MAAM,kBAAkB,GAAqB;IACzC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,WAAW;IACxB,WAAW,EACP,wFAAwF;IAC5F,KAAK,EAAE,2mBAA2mB;IAClnB,gBAAgB,EAAE,kDAAkD;IACpE,YAAY,EAAE;QACV,GAAG,EAAE,8CAA8C;QACnD,KAAK,EAAE,wBAAwB;QAC/B,QAAQ,EACJ,iKAAiK;KACxK;IACD,UAAU,EAAE;QACR;YACI,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,YAAY;YACzB,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAClB;QACD;YACI,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,UAAU;YACvB,WAAW,EACP,uKAAuK;YAC3K,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;SACnB;KACJ;IACD,MAAM,EAAE;QACJ,wBAAe;QACf,yBAAgB;QAChB,wBAAe;QACf,yBAAgB;QAChB,0BAAiB;QACjB,oCAA2B;QAC3B,qCAA4B;QAC5B,6CAAoC;QACpC,gCAAuB;QACvB,gCAAuB;QACvB,6BAAoB;QACpB,iCAAwB;QACxB,+BAAsB;QACtB,qCAA4B;KAC/B;IACD,QAAQ,EAAE;QACN;YACI,IAAI,EAAE,OAAO;YACb,WAAW,EACP,iEAAiE;YACrE,IAAI,EAAE,GAAG;SACZ;KACJ;CACJ,CAAC;AAEF,kBAAe,kBAAkB,CAAC"}
@@ -5,7 +5,6 @@ import { IEvent } from '../types/events';
5
5
  interface ISlackAppAddonParameters {
6
6
  accessToken: string;
7
7
  defaultChannels: string;
8
- alwaysPostToDefault: string;
9
8
  }
10
9
  export default class SlackAppAddon extends Addon {
11
10
  private msgFormatter;
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const web_api_1 = require("@slack/web-api");
7
7
  const addon_1 = __importDefault(require("./addon"));
8
8
  const slack_app_definition_1 = __importDefault(require("./slack-app-definition"));
9
- const SCHEDULE_MESSAGE_DELAY_IN_SECONDS = 10;
10
9
  const feature_event_formatter_md_1 = require("./feature-event-formatter-md");
11
10
  class SlackAppAddon extends addon_1.default {
12
11
  constructor(args) {
@@ -15,23 +14,15 @@ class SlackAppAddon extends addon_1.default {
15
14
  }
16
15
  async handleEvent(event, parameters) {
17
16
  try {
18
- const { accessToken, defaultChannels, alwaysPostToDefault } = parameters;
17
+ const { accessToken, defaultChannels } = parameters;
19
18
  if (!accessToken) {
20
19
  this.logger.warn('No access token provided.');
21
20
  return;
22
21
  }
23
- let postToDefault = alwaysPostToDefault === 'true' || alwaysPostToDefault === 'yes';
24
- this.logger.debug(`Post to default was set to ${postToDefault}`);
25
22
  const taggedChannels = this.findTaggedChannels(event);
26
- let eventChannels;
27
- if (postToDefault) {
28
- eventChannels = taggedChannels.concat(this.getDefaultChannels(defaultChannels));
29
- }
30
- else {
31
- eventChannels = taggedChannels.length
32
- ? taggedChannels
33
- : this.getDefaultChannels(defaultChannels);
34
- }
23
+ const eventChannels = [
24
+ ...new Set(taggedChannels.concat(this.getDefaultChannels(defaultChannels))),
25
+ ];
35
26
  if (!eventChannels.length) {
36
27
  this.logger.debug(`No Slack channels found for event ${event.type}.`);
37
28
  return;
@@ -48,9 +39,7 @@ class SlackAppAddon extends addon_1.default {
48
39
  const text = this.msgFormatter.format(event);
49
40
  const url = this.msgFormatter.featureLink(event);
50
41
  const requests = eventChannels.map((name) => {
51
- const now = Math.floor(new Date().getTime() / 1000);
52
- const postAt = now + SCHEDULE_MESSAGE_DELAY_IN_SECONDS;
53
- return this.slackClient.chat.scheduleMessage({
42
+ return this.slackClient.chat.postMessage({
54
43
  channel: name,
55
44
  text,
56
45
  blocks: [
@@ -77,7 +66,6 @@ class SlackAppAddon extends addon_1.default {
77
66
  ],
78
67
  },
79
68
  ],
80
- post_at: postAt,
81
69
  });
82
70
  });
83
71
  const results = await Promise.allSettled(requests);
@@ -1 +1 @@
1
- {"version":3,"file":"slack-app.js","sourceRoot":"","sources":["../../../src/lib/addons/slack-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-app.js","sourceRoot":"","sources":["../../../src/lib/addons/slack-app.ts"],"names":[],"mappings":"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"}