unleash-server 4.1.4 → 4.2.0-beta.1

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 (443) hide show
  1. package/README.md +3 -2
  2. package/dist/lib/addons/datadog-definition.js +7 -0
  3. package/dist/lib/addons/datadog-definition.js.map +1 -1
  4. package/dist/lib/addons/datadog.d.ts +5 -0
  5. package/dist/lib/addons/datadog.js +53 -0
  6. package/dist/lib/addons/datadog.js.map +1 -1
  7. package/dist/lib/addons/datadog.test.js +26 -1
  8. package/dist/lib/addons/datadog.test.js.map +1 -1
  9. package/dist/lib/addons/slack-definition.js +7 -0
  10. package/dist/lib/addons/slack-definition.js.map +1 -1
  11. package/dist/lib/addons/slack.d.ts +5 -0
  12. package/dist/lib/addons/slack.js +62 -9
  13. package/dist/lib/addons/slack.js.map +1 -1
  14. package/dist/lib/addons/slack.test.js +25 -0
  15. package/dist/lib/addons/slack.test.js.map +1 -1
  16. package/dist/lib/addons/teams-definition.js +7 -0
  17. package/dist/lib/addons/teams-definition.js.map +1 -1
  18. package/dist/lib/addons/teams.d.ts +5 -0
  19. package/dist/lib/addons/teams.js +54 -1
  20. package/dist/lib/addons/teams.js.map +1 -1
  21. package/dist/lib/addons/teams.test.js +25 -0
  22. package/dist/lib/addons/teams.test.js.map +1 -1
  23. package/dist/lib/addons/webhook-definition.js +8 -0
  24. package/dist/lib/addons/webhook-definition.js.map +1 -1
  25. package/dist/lib/app.test.js +11 -7
  26. package/dist/lib/app.test.js.map +1 -1
  27. package/dist/lib/create-config.js +4 -1
  28. package/dist/lib/create-config.js.map +1 -1
  29. package/dist/lib/db/api-token-store.d.ts +2 -1
  30. package/dist/lib/db/api-token-store.js +5 -0
  31. package/dist/lib/db/api-token-store.js.map +1 -1
  32. package/dist/lib/db/client-instance-store.js +5 -2
  33. package/dist/lib/db/client-instance-store.js.map +1 -1
  34. package/dist/lib/db/client-metrics-store-v2.d.ts +19 -0
  35. package/dist/lib/db/client-metrics-store-v2.js +126 -0
  36. package/dist/lib/db/client-metrics-store-v2.js.map +1 -0
  37. package/dist/lib/db/client-metrics-store.d.ts +6 -0
  38. package/dist/lib/db/client-metrics-store.js +6 -1
  39. package/dist/lib/db/client-metrics-store.js.map +1 -1
  40. package/dist/lib/db/environment-store.d.ts +7 -7
  41. package/dist/lib/db/environment-store.js +59 -54
  42. package/dist/lib/db/environment-store.js.map +1 -1
  43. package/dist/lib/db/event-store.d.ts +5 -2
  44. package/dist/lib/db/event-store.js +27 -4
  45. package/dist/lib/db/event-store.js.map +1 -1
  46. package/dist/lib/db/feature-environment-store.d.ts +9 -6
  47. package/dist/lib/db/feature-environment-store.js +66 -20
  48. package/dist/lib/db/feature-environment-store.js.map +1 -1
  49. package/dist/lib/db/feature-strategy-store.d.ts +7 -11
  50. package/dist/lib/db/feature-strategy-store.js +84 -147
  51. package/dist/lib/db/feature-strategy-store.js.map +1 -1
  52. package/dist/lib/db/feature-toggle-client-store.d.ts +26 -0
  53. package/dist/lib/db/feature-toggle-client-store.js +104 -0
  54. package/dist/lib/db/feature-toggle-client-store.js.map +1 -0
  55. package/dist/lib/db/feature-toggle-store.d.ts +10 -22
  56. package/dist/lib/db/feature-toggle-store.js +9 -42
  57. package/dist/lib/db/feature-toggle-store.js.map +1 -1
  58. package/dist/lib/db/index.js +4 -0
  59. package/dist/lib/db/index.js.map +1 -1
  60. package/dist/lib/db/project-store.d.ts +4 -6
  61. package/dist/lib/db/project-store.js +7 -43
  62. package/dist/lib/db/project-store.js.map +1 -1
  63. package/dist/lib/event-hook.test.js +8 -7
  64. package/dist/lib/event-hook.test.js.map +1 -1
  65. package/dist/lib/logger.test.js +26 -4
  66. package/dist/lib/logger.test.js.map +1 -1
  67. package/dist/lib/middleware/api-token-middleware.js +10 -2
  68. package/dist/lib/middleware/api-token-middleware.js.map +1 -1
  69. package/dist/lib/middleware/api-token-middleware.test.js +37 -1
  70. package/dist/lib/middleware/api-token-middleware.test.js.map +1 -1
  71. package/dist/lib/middleware/demo-authentication.js +1 -1
  72. package/dist/lib/middleware/demo-authentication.js.map +1 -1
  73. package/dist/lib/middleware/oss-authentication.js +0 -3
  74. package/dist/lib/middleware/oss-authentication.js.map +1 -1
  75. package/dist/lib/middleware/rbac-middleware.js +2 -2
  76. package/dist/lib/middleware/rbac-middleware.js.map +1 -1
  77. package/dist/lib/middleware/rbac-middleware.test.js +39 -0
  78. package/dist/lib/middleware/rbac-middleware.test.js.map +1 -1
  79. package/dist/lib/routes/admin-api/addon.d.ts +4 -3
  80. package/dist/lib/routes/admin-api/addon.js +4 -4
  81. package/dist/lib/routes/admin-api/addon.js.map +1 -1
  82. package/dist/lib/routes/admin-api/api-token-controller.js +10 -38
  83. package/dist/lib/routes/admin-api/api-token-controller.js.map +1 -1
  84. package/dist/lib/routes/admin-api/archive.d.ts +4 -3
  85. package/dist/lib/routes/admin-api/archive.js +3 -3
  86. package/dist/lib/routes/admin-api/archive.js.map +1 -1
  87. package/dist/lib/routes/admin-api/client-metrics.d.ts +12 -0
  88. package/dist/lib/routes/admin-api/client-metrics.js +35 -0
  89. package/dist/lib/routes/admin-api/client-metrics.js.map +1 -0
  90. package/dist/lib/routes/admin-api/context.d.ts +4 -3
  91. package/dist/lib/routes/admin-api/context.js +4 -4
  92. package/dist/lib/routes/admin-api/context.js.map +1 -1
  93. package/dist/lib/routes/admin-api/environments-controller.d.ts +4 -4
  94. package/dist/lib/routes/admin-api/environments-controller.js +17 -43
  95. package/dist/lib/routes/admin-api/environments-controller.js.map +1 -1
  96. package/dist/lib/routes/admin-api/event.js +7 -1
  97. package/dist/lib/routes/admin-api/event.js.map +1 -1
  98. package/dist/lib/routes/admin-api/feature.d.ts +11 -10
  99. package/dist/lib/routes/admin-api/feature.js +26 -24
  100. package/dist/lib/routes/admin-api/feature.js.map +1 -1
  101. package/dist/lib/routes/admin-api/index.js +2 -0
  102. package/dist/lib/routes/admin-api/index.js.map +1 -1
  103. package/dist/lib/routes/admin-api/metrics.js +25 -66
  104. package/dist/lib/routes/admin-api/metrics.js.map +1 -1
  105. package/dist/lib/routes/admin-api/project/environments.js +6 -15
  106. package/dist/lib/routes/admin-api/project/environments.js.map +1 -1
  107. package/dist/lib/routes/admin-api/project/features.d.ts +33 -11
  108. package/dist/lib/routes/admin-api/project/features.js +103 -35
  109. package/dist/lib/routes/admin-api/project/features.js.map +1 -1
  110. package/dist/lib/routes/admin-api/project/health-report.js +7 -18
  111. package/dist/lib/routes/admin-api/project/health-report.js.map +1 -1
  112. package/dist/lib/routes/admin-api/project/index.d.ts +3 -0
  113. package/dist/lib/routes/admin-api/project/index.js +8 -0
  114. package/dist/lib/routes/admin-api/project/index.js.map +1 -1
  115. package/dist/lib/routes/admin-api/state.d.ts +2 -1
  116. package/dist/lib/routes/admin-api/state.js +5 -4
  117. package/dist/lib/routes/admin-api/state.js.map +1 -1
  118. package/dist/lib/routes/admin-api/strategy.d.ts +1 -1
  119. package/dist/lib/routes/admin-api/strategy.js +24 -22
  120. package/dist/lib/routes/admin-api/strategy.js.map +1 -1
  121. package/dist/lib/routes/admin-api/tag-type.d.ts +4 -3
  122. package/dist/lib/routes/admin-api/tag-type.js +19 -50
  123. package/dist/lib/routes/admin-api/tag-type.js.map +1 -1
  124. package/dist/lib/routes/admin-api/tag.d.ts +3 -2
  125. package/dist/lib/routes/admin-api/tag.js +3 -4
  126. package/dist/lib/routes/admin-api/tag.js.map +1 -1
  127. package/dist/lib/routes/admin-api/user-admin.js +11 -37
  128. package/dist/lib/routes/admin-api/user-admin.js.map +1 -1
  129. package/dist/lib/routes/api-def.d.ts +49 -52
  130. package/dist/lib/routes/api-def.js +13 -9
  131. package/dist/lib/routes/api-def.js.map +1 -1
  132. package/dist/lib/routes/client-api/feature.d.ts +7 -8
  133. package/dist/lib/routes/client-api/feature.js +39 -27
  134. package/dist/lib/routes/client-api/feature.js.map +1 -1
  135. package/dist/lib/routes/client-api/feature.test.js +10 -10
  136. package/dist/lib/routes/client-api/feature.test.js.map +1 -1
  137. package/dist/lib/routes/client-api/metrics.d.ts +8 -3
  138. package/dist/lib/routes/client-api/metrics.js +28 -16
  139. package/dist/lib/routes/client-api/metrics.js.map +1 -1
  140. package/dist/lib/routes/client-api/metrics.test.js +27 -9
  141. package/dist/lib/routes/client-api/metrics.test.js.map +1 -1
  142. package/dist/lib/routes/client-api/register.d.ts +4 -2
  143. package/dist/lib/routes/client-api/register.js +16 -14
  144. package/dist/lib/routes/client-api/register.js.map +1 -1
  145. package/dist/lib/routes/controller.d.ts +1 -0
  146. package/dist/lib/routes/controller.js +3 -0
  147. package/dist/lib/routes/controller.js.map +1 -1
  148. package/dist/lib/routes/index.js +5 -5
  149. package/dist/lib/routes/index.js.map +1 -1
  150. package/dist/lib/routes/unleash-types.d.ts +1 -2
  151. package/dist/lib/routes/util.js +1 -0
  152. package/dist/lib/routes/util.js.map +1 -1
  153. package/dist/lib/schema/api-token-schema.d.ts +2 -0
  154. package/dist/lib/schema/api-token-schema.js +28 -0
  155. package/dist/lib/schema/api-token-schema.js.map +1 -0
  156. package/dist/lib/schema/feature-schema.test.js +17 -16
  157. package/dist/lib/schema/feature-schema.test.js.map +1 -1
  158. package/dist/lib/schema/project-schema.d.ts +2 -0
  159. package/dist/lib/schema/project-schema.js +12 -0
  160. package/dist/lib/schema/project-schema.js.map +1 -0
  161. package/dist/lib/server-impl.d.ts +2 -2
  162. package/dist/lib/server-impl.js +9 -6
  163. package/dist/lib/server-impl.js.map +1 -1
  164. package/dist/lib/server-impl.test.js +28 -21
  165. package/dist/lib/server-impl.test.js.map +1 -1
  166. package/dist/lib/services/access-service.d.ts +1 -1
  167. package/dist/lib/services/access-service.js.map +1 -1
  168. package/dist/lib/services/api-token-service.d.ts +3 -8
  169. package/dist/lib/services/api-token-service.js +43 -8
  170. package/dist/lib/services/api-token-service.js.map +1 -1
  171. package/dist/lib/services/client-metrics/client-metrics-schema.js +1 -0
  172. package/dist/lib/services/client-metrics/client-metrics-schema.js.map +1 -1
  173. package/dist/lib/services/client-metrics/client-metrics-service-v2.d.ts +16 -0
  174. package/dist/lib/services/client-metrics/client-metrics-service-v2.js +68 -0
  175. package/dist/lib/services/client-metrics/client-metrics-service-v2.js.map +1 -0
  176. package/dist/lib/services/client-metrics/index.d.ts +0 -1
  177. package/dist/lib/services/client-metrics/index.js +5 -3
  178. package/dist/lib/services/client-metrics/index.js.map +1 -1
  179. package/dist/lib/services/client-metrics/register-schema.js +1 -0
  180. package/dist/lib/services/client-metrics/register-schema.js.map +1 -1
  181. package/dist/lib/services/context-schema.d.ts +3 -3
  182. package/dist/lib/services/context-schema.js +15 -11
  183. package/dist/lib/services/context-schema.js.map +1 -1
  184. package/dist/lib/services/environment-service.d.ts +4 -5
  185. package/dist/lib/services/environment-service.js +14 -14
  186. package/dist/lib/services/environment-service.js.map +1 -1
  187. package/dist/lib/services/event-service.d.ts +1 -0
  188. package/dist/lib/services/event-service.js +4 -3
  189. package/dist/lib/services/event-service.js.map +1 -1
  190. package/dist/lib/services/feature-toggle-service-v2.d.ts +33 -12
  191. package/dist/lib/services/feature-toggle-service-v2.js +200 -55
  192. package/dist/lib/services/feature-toggle-service-v2.js.map +1 -1
  193. package/dist/lib/services/index.js +4 -1
  194. package/dist/lib/services/index.js.map +1 -1
  195. package/dist/lib/services/project-health-service.d.ts +3 -1
  196. package/dist/lib/services/project-health-service.js +7 -3
  197. package/dist/lib/services/project-health-service.js.map +1 -1
  198. package/dist/lib/services/project-schema.d.ts +2 -3
  199. package/dist/lib/services/project-schema.js +12 -7
  200. package/dist/lib/services/project-schema.js.map +1 -1
  201. package/dist/lib/services/project-service.d.ts +4 -2
  202. package/dist/lib/services/project-service.js +21 -11
  203. package/dist/lib/services/project-service.js.map +1 -1
  204. package/dist/lib/services/state-schema.d.ts +2 -0
  205. package/dist/lib/services/state-schema.js +16 -6
  206. package/dist/lib/services/state-schema.js.map +1 -1
  207. package/dist/lib/services/state-service.d.ts +7 -0
  208. package/dist/lib/services/state-service.js +69 -11
  209. package/dist/lib/services/state-service.js.map +1 -1
  210. package/dist/lib/services/state-service.test.js +72 -27
  211. package/dist/lib/services/state-service.test.js.map +1 -1
  212. package/dist/lib/services/state-util.js +1 -1
  213. package/dist/lib/services/state-util.js.map +1 -1
  214. package/dist/lib/types/api-user.d.ts +11 -4
  215. package/dist/lib/types/api-user.js +4 -1
  216. package/dist/lib/types/api-user.js.map +1 -1
  217. package/dist/lib/types/events.d.ts +7 -0
  218. package/dist/lib/types/events.js +9 -1
  219. package/dist/lib/types/events.js.map +1 -1
  220. package/dist/lib/types/model.d.ts +27 -8
  221. package/dist/lib/types/model.js.map +1 -1
  222. package/dist/lib/types/models/api-token.d.ts +19 -0
  223. package/dist/lib/types/models/api-token.js +10 -0
  224. package/dist/lib/types/models/api-token.js.map +1 -0
  225. package/dist/lib/types/models/metrics.d.ts +11 -0
  226. package/dist/lib/types/models/metrics.js +3 -0
  227. package/dist/lib/types/models/metrics.js.map +1 -0
  228. package/dist/lib/types/permissions.d.ts +2 -0
  229. package/dist/lib/types/permissions.js +3 -1
  230. package/dist/lib/types/permissions.js.map +1 -1
  231. package/dist/lib/types/services.d.ts +2 -0
  232. package/dist/lib/types/stores/api-token-store.d.ts +1 -14
  233. package/dist/lib/types/stores/api-token-store.js +0 -6
  234. package/dist/lib/types/stores/api-token-store.js.map +1 -1
  235. package/dist/lib/types/stores/client-instance-store.d.ts +1 -0
  236. package/dist/lib/types/stores/client-metrics-store-v2.d.ts +17 -0
  237. package/dist/lib/types/stores/client-metrics-store-v2.js +3 -0
  238. package/dist/lib/types/stores/client-metrics-store-v2.js.map +1 -0
  239. package/dist/lib/types/stores/environment-store.d.ts +6 -6
  240. package/dist/lib/types/stores/event-store.d.ts +1 -0
  241. package/dist/lib/types/stores/feature-environment-store.d.ts +9 -6
  242. package/dist/lib/types/stores/feature-strategies-store.d.ts +6 -12
  243. package/dist/lib/types/stores/feature-toggle-client-store.d.ts +5 -0
  244. package/dist/lib/types/stores/feature-toggle-client-store.js +3 -0
  245. package/dist/lib/types/stores/feature-toggle-client-store.js.map +1 -0
  246. package/dist/lib/types/stores/feature-toggle-store.d.ts +7 -14
  247. package/dist/lib/types/stores/project-store.d.ts +5 -2
  248. package/dist/lib/types/stores.d.ts +4 -0
  249. package/dist/lib/util/constants.d.ts +1 -0
  250. package/dist/lib/util/constants.js +2 -1
  251. package/dist/lib/util/constants.js.map +1 -1
  252. package/dist/lib/util/extract-user.d.ts +2 -0
  253. package/dist/lib/util/extract-user.js +8 -0
  254. package/dist/lib/util/extract-user.js.map +1 -0
  255. package/dist/lib/util/graceful-shutdown.js +1 -1
  256. package/dist/lib/util/graceful-shutdown.js.map +1 -1
  257. package/dist/lib/util/snakeCase.d.ts +6 -0
  258. package/dist/lib/util/snakeCase.js +28 -0
  259. package/dist/lib/util/snakeCase.js.map +1 -0
  260. package/dist/{test/e2e/api/admin/boostrap.test.d.ts → lib/util/snakeCase.test.d.ts} +0 -0
  261. package/dist/lib/util/snakeCase.test.js +23 -0
  262. package/dist/lib/util/snakeCase.test.js.map +1 -0
  263. package/dist/migrations/20210831072631-add-sort-order-and-type-to-env.d.ts +5 -0
  264. package/dist/migrations/20210831072631-add-sort-order-and-type-to-env.js +14 -0
  265. package/dist/migrations/20210831072631-add-sort-order-and-type-to-env.js.map +1 -0
  266. package/dist/migrations/20210907124058-add-dbcritic-indices.d.ts +5 -0
  267. package/dist/migrations/20210907124058-add-dbcritic-indices.js +30 -0
  268. package/dist/migrations/20210907124058-add-dbcritic-indices.js.map +1 -0
  269. package/dist/migrations/20210907124850-add-dbcritic-primary-keys.d.ts +5 -0
  270. package/dist/migrations/20210907124850-add-dbcritic-primary-keys.js +18 -0
  271. package/dist/migrations/20210907124850-add-dbcritic-primary-keys.js.map +1 -0
  272. package/dist/migrations/20210908100701-add-enabled-to-environments.d.ts +5 -0
  273. package/dist/migrations/20210908100701-add-enabled-to-environments.js +14 -0
  274. package/dist/migrations/20210908100701-add-enabled-to-environments.js.map +1 -0
  275. package/dist/migrations/20210909085651-add-protected-field-to-environments.d.ts +5 -0
  276. package/dist/migrations/20210909085651-add-protected-field-to-environments.js +15 -0
  277. package/dist/migrations/20210909085651-add-protected-field-to-environments.js.map +1 -0
  278. package/dist/migrations/20210913103159-api-keys-scoping.d.ts +2 -0
  279. package/dist/migrations/20210913103159-api-keys-scoping.js +13 -0
  280. package/dist/migrations/20210913103159-api-keys-scoping.js.map +1 -0
  281. package/dist/migrations/20210915122001-add-project-and-environment-columns-to-events.d.ts +2 -0
  282. package/dist/migrations/20210915122001-add-project-and-environment-columns-to-events.js +22 -0
  283. package/dist/migrations/20210915122001-add-project-and-environment-columns-to-events.js.map +1 -0
  284. package/dist/migrations/20210920104218-rename-global-env-to-default-env.d.ts +2 -0
  285. package/dist/migrations/20210920104218-rename-global-env-to-default-env.js +25 -0
  286. package/dist/migrations/20210920104218-rename-global-env-to-default-env.js.map +1 -0
  287. package/dist/migrations/20210921105032-client-api-tokens-default.d.ts +2 -0
  288. package/dist/migrations/20210921105032-client-api-tokens-default.js +13 -0
  289. package/dist/migrations/20210921105032-client-api-tokens-default.js.map +1 -0
  290. package/dist/migrations/20210922084509-add-non-null-constraint-to-environment-type.d.ts +2 -0
  291. package/dist/migrations/20210922084509-add-non-null-constraint-to-environment-type.js +10 -0
  292. package/dist/migrations/20210922084509-add-non-null-constraint-to-environment-type.js.map +1 -0
  293. package/dist/migrations/20210922120521-add-tag-type-permission.d.ts +2 -0
  294. package/dist/migrations/20210922120521-add-tag-type-permission.js +19 -0
  295. package/dist/migrations/20210922120521-add-tag-type-permission.js.map +1 -0
  296. package/dist/migrations/20210928065411-remove-displayname-from-environments.d.ts +2 -0
  297. package/dist/migrations/20210928065411-remove-displayname-from-environments.js +10 -0
  298. package/dist/migrations/20210928065411-remove-displayname-from-environments.js.map +1 -0
  299. package/dist/migrations/20210928080601-add-development-and-production-environments.d.ts +2 -0
  300. package/dist/migrations/20210928080601-add-development-and-production-environments.js +16 -0
  301. package/dist/migrations/20210928080601-add-development-and-production-environments.js.map +1 -0
  302. package/dist/migrations/20210928082228-connect-default-environment-to-all-existing-projects.d.ts +2 -0
  303. package/dist/migrations/20210928082228-connect-default-environment-to-all-existing-projects.js +16 -0
  304. package/dist/migrations/20210928082228-connect-default-environment-to-all-existing-projects.js.map +1 -0
  305. package/dist/migrations/20211004104917-client-metrics-env.d.ts +2 -0
  306. package/dist/migrations/20211004104917-client-metrics-env.js +22 -0
  307. package/dist/migrations/20211004104917-client-metrics-env.js.map +1 -0
  308. package/dist/migrations/20211011094226-add-environment-to-client-instances.d.ts +5 -0
  309. package/dist/migrations/20211011094226-add-environment-to-client-instances.js +21 -0
  310. package/dist/migrations/20211011094226-add-environment-to-client-instances.js.map +1 -0
  311. package/dist/migrator.d.ts +3 -4
  312. package/dist/migrator.js +19 -5
  313. package/dist/migrator.js.map +1 -1
  314. package/dist/server-dev.js +5 -0
  315. package/dist/server-dev.js.map +1 -1
  316. package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js +4 -4
  317. package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js.map +1 -1
  318. package/dist/test/e2e/api/admin/api-token.e2e.test.js +159 -10
  319. package/dist/test/e2e/api/admin/api-token.e2e.test.js.map +1 -1
  320. package/dist/test/e2e/api/admin/archive.test.js.map +1 -1
  321. package/dist/test/e2e/api/admin/{project/feature.strategy.e2e.test.d.ts → bootstrap.test.d.ts} +0 -0
  322. package/dist/test/e2e/api/admin/{boostrap.test.js → bootstrap.test.js} +2 -2
  323. package/dist/test/e2e/api/admin/bootstrap.test.js.map +1 -0
  324. package/dist/test/e2e/api/admin/client-metrics.e2e.test.d.ts +1 -0
  325. package/dist/test/e2e/api/admin/client-metrics.e2e.test.js +219 -0
  326. package/dist/test/e2e/api/admin/client-metrics.e2e.test.js.map +1 -0
  327. package/dist/test/e2e/api/admin/environment.test.js +80 -53
  328. package/dist/test/e2e/api/admin/environment.test.js.map +1 -1
  329. package/dist/test/e2e/api/admin/event.e2e.test.js +28 -0
  330. package/dist/test/e2e/api/admin/event.e2e.test.js.map +1 -1
  331. package/dist/test/e2e/api/admin/feature.e2e.test.js +69 -63
  332. package/dist/test/e2e/api/admin/feature.e2e.test.js.map +1 -1
  333. package/dist/test/e2e/api/admin/project/environments.e2e.test.d.ts +1 -0
  334. package/dist/test/e2e/api/admin/project/environments.e2e.test.js +65 -0
  335. package/dist/test/e2e/api/admin/project/environments.e2e.test.js.map +1 -0
  336. package/dist/test/e2e/api/admin/project/features.e2e.test.d.ts +1 -0
  337. package/dist/test/e2e/api/admin/project/features.e2e.test.js +1267 -0
  338. package/dist/test/e2e/api/admin/project/features.e2e.test.js.map +1 -0
  339. package/dist/test/e2e/api/admin/project/project.health.e2e.test.js +76 -0
  340. package/dist/test/e2e/api/admin/project/project.health.e2e.test.js.map +1 -1
  341. package/dist/test/e2e/api/admin/project/projects.e2e.test.d.ts +1 -0
  342. package/dist/test/e2e/api/admin/project/projects.e2e.test.js +30 -0
  343. package/dist/test/e2e/api/admin/project/projects.e2e.test.js.map +1 -0
  344. package/dist/test/e2e/api/admin/state.e2e.test.js +161 -0
  345. package/dist/test/e2e/api/admin/state.e2e.test.js.map +1 -1
  346. package/dist/test/e2e/api/client/feature.e2e.test.js +83 -29
  347. package/dist/test/e2e/api/client/feature.e2e.test.js.map +1 -1
  348. package/dist/test/e2e/api/client/feature.env.disabled.e2e.test.d.ts +1 -0
  349. package/dist/test/e2e/api/client/feature.env.disabled.e2e.test.js +49 -0
  350. package/dist/test/e2e/api/client/feature.env.disabled.e2e.test.js.map +1 -0
  351. package/dist/test/e2e/api/client/feature.token.access.e2e.test.d.ts +1 -0
  352. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js +156 -0
  353. package/dist/test/e2e/api/client/feature.token.access.e2e.test.js.map +1 -0
  354. package/dist/test/e2e/api/client/metrics.e2e.access.e2e.test.d.ts +1 -0
  355. package/dist/test/e2e/api/client/metrics.e2e.access.e2e.test.js +42 -0
  356. package/dist/test/e2e/api/client/metrics.e2e.access.e2e.test.js.map +1 -0
  357. package/dist/test/e2e/api/client/metrics.e2e.test.js +14 -13
  358. package/dist/test/e2e/api/client/metrics.e2e.test.js.map +1 -1
  359. package/dist/test/e2e/api/client/metricsV2.e2e.test.d.ts +1 -0
  360. package/dist/test/e2e/api/client/metricsV2.e2e.test.js +95 -0
  361. package/dist/test/e2e/api/client/metricsV2.e2e.test.js.map +1 -0
  362. package/dist/test/e2e/api/client/register.e2e.test.js +18 -14
  363. package/dist/test/e2e/api/client/register.e2e.test.js.map +1 -1
  364. package/dist/test/e2e/helpers/database-config.d.ts +1 -1
  365. package/dist/test/e2e/helpers/database-config.js +12 -8
  366. package/dist/test/e2e/helpers/database-config.js.map +1 -1
  367. package/dist/test/e2e/helpers/database-init.d.ts +7 -1
  368. package/dist/test/e2e/helpers/database-init.js +8 -7
  369. package/dist/test/e2e/helpers/database-init.js.map +1 -1
  370. package/dist/test/e2e/helpers/database.json +5 -2
  371. package/dist/test/e2e/helpers/test-helper.d.ts +1 -1
  372. package/dist/test/e2e/helpers/test-helper.js +4 -5
  373. package/dist/test/e2e/helpers/test-helper.js.map +1 -1
  374. package/dist/test/e2e/services/api-token-service.e2e.test.js +28 -15
  375. package/dist/test/e2e/services/api-token-service.e2e.test.js.map +1 -1
  376. package/dist/test/e2e/services/environment-service.test.js +36 -38
  377. package/dist/test/e2e/services/environment-service.test.js.map +1 -1
  378. package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js +17 -11
  379. package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js.map +1 -1
  380. package/dist/test/e2e/services/project-health-service.e2e.test.js +10 -10
  381. package/dist/test/e2e/services/project-health-service.e2e.test.js.map +1 -1
  382. package/dist/test/e2e/services/project-service.e2e.test.js +25 -2
  383. package/dist/test/e2e/services/project-service.e2e.test.js.map +1 -1
  384. package/dist/test/e2e/stores/client-metrics-store-v2.e2e.test.d.ts +1 -0
  385. package/dist/test/e2e/stores/client-metrics-store-v2.e2e.test.js +338 -0
  386. package/dist/test/e2e/stores/client-metrics-store-v2.e2e.test.js.map +1 -0
  387. package/dist/test/e2e/stores/feature-tag-store.e2e.test.js +3 -3
  388. package/dist/test/e2e/stores/feature-tag-store.e2e.test.js.map +1 -1
  389. package/dist/test/e2e/stores/project-store.e2e.test.js +4 -1
  390. package/dist/test/e2e/stores/project-store.e2e.test.js.map +1 -1
  391. package/dist/test/e2e/stores/user-feedback-store.e2e.test.js +1 -1
  392. package/dist/test/e2e/stores/user-feedback-store.e2e.test.js.map +1 -1
  393. package/dist/test/fixtures/fake-api-token-store.d.ts +2 -1
  394. package/dist/test/fixtures/fake-api-token-store.js.map +1 -1
  395. package/dist/test/fixtures/fake-client-metrics-store-v2.d.ts +20 -0
  396. package/dist/test/fixtures/fake-client-metrics-store-v2.js +52 -0
  397. package/dist/test/fixtures/fake-client-metrics-store-v2.js.map +1 -0
  398. package/dist/test/fixtures/fake-environment-store.d.ts +5 -3
  399. package/dist/test/fixtures/fake-environment-store.js +22 -15
  400. package/dist/test/fixtures/fake-environment-store.js.map +1 -1
  401. package/dist/test/fixtures/fake-event-store.d.ts +1 -0
  402. package/dist/test/fixtures/fake-event-store.js +3 -0
  403. package/dist/test/fixtures/fake-event-store.js.map +1 -1
  404. package/dist/test/fixtures/fake-feature-environment-store.d.ts +8 -5
  405. package/dist/test/fixtures/fake-feature-environment-store.js +38 -10
  406. package/dist/test/fixtures/fake-feature-environment-store.js.map +1 -1
  407. package/dist/test/fixtures/fake-feature-strategies-store.d.ts +7 -13
  408. package/dist/test/fixtures/fake-feature-strategies-store.js +13 -50
  409. package/dist/test/fixtures/fake-feature-strategies-store.js.map +1 -1
  410. package/dist/test/fixtures/fake-feature-toggle-client-store.d.ts +9 -0
  411. package/dist/test/fixtures/fake-feature-toggle-client-store.js +50 -0
  412. package/dist/test/fixtures/fake-feature-toggle-client-store.js.map +1 -0
  413. package/dist/test/fixtures/fake-feature-toggle-store.d.ts +7 -9
  414. package/dist/test/fixtures/fake-feature-toggle-store.js +7 -14
  415. package/dist/test/fixtures/fake-feature-toggle-store.js.map +1 -1
  416. package/dist/test/fixtures/fake-project-store.d.ts +1 -2
  417. package/dist/test/fixtures/fake-project-store.js +0 -7
  418. package/dist/test/fixtures/fake-project-store.js.map +1 -1
  419. package/dist/test/fixtures/permissions.d.ts +3 -3
  420. package/dist/test/fixtures/permissions.js +5 -4
  421. package/dist/test/fixtures/permissions.js.map +1 -1
  422. package/dist/test/fixtures/store.js +4 -0
  423. package/dist/test/fixtures/store.js.map +1 -1
  424. package/package.json +52 -45
  425. package/dist/lib/extract-user.d.ts +0 -2
  426. package/dist/lib/extract-user.js +0 -6
  427. package/dist/lib/extract-user.js.map +0 -1
  428. package/dist/test/e2e/api/admin/boostrap.test.js.map +0 -1
  429. package/dist/test/e2e/api/admin/project/feature.strategy.e2e.test.js +0 -516
  430. package/dist/test/e2e/api/admin/project/feature.strategy.e2e.test.js.map +0 -1
  431. package/docs/api/oas/swagger-ui-bundle.js +0 -3
  432. package/docs/api/oas/swagger-ui-bundle.js.map +0 -1
  433. package/docs/api/oas/swagger-ui-es-bundle-core.js +0 -3
  434. package/docs/api/oas/swagger-ui-es-bundle-core.js.map +0 -1
  435. package/docs/api/oas/swagger-ui-es-bundle.js +0 -3
  436. package/docs/api/oas/swagger-ui-es-bundle.js.map +0 -1
  437. package/docs/api/oas/swagger-ui-standalone-preset.js +0 -3
  438. package/docs/api/oas/swagger-ui-standalone-preset.js.map +0 -1
  439. package/docs/api/oas/swagger-ui.css +0 -8906
  440. package/docs/api/oas/swagger-ui.css.map +0 -1
  441. package/docs/api/oas/swagger-ui.js +0 -3
  442. package/docs/api/oas/swagger-ui.js.map +0 -1
  443. package/docs/api/oas/swagger.json +0 -1479
@@ -4,13 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const events_1 = require("events");
7
- const migrator_1 = __importDefault(require("../../../migrator"));
7
+ const migrator_1 = require("../../../migrator");
8
8
  const db_1 = require("../../../lib/db");
9
9
  const db_pool_1 = require("../../../lib/db/db-pool");
10
- const database_config_1 = __importDefault(require("./database-config"));
10
+ const database_config_1 = require("./database-config");
11
11
  const test_config_1 = require("../../config/test-config");
12
12
  const database_json_1 = __importDefault(require("./database.json"));
13
13
  const no_logger_1 = __importDefault(require("../../fixtures/no-logger"));
14
+ const constants_1 = require("../../../lib/util/constants");
14
15
  // require('db-migrate-shared').log.silence(false);
15
16
  // because of migrator bug
16
17
  delete process.env.DATABASE_URL;
@@ -46,10 +47,10 @@ function createTagTypes(store) {
46
47
  return database_json_1.default.tag_types.map((t) => store.createTagType(t));
47
48
  }
48
49
  async function connectProject(store) {
49
- await store.connectProject(':global:', 'default');
50
+ await store.connectProject(constants_1.DEFAULT_ENV, 'default');
50
51
  }
51
52
  async function createEnvironments(store) {
52
- await Promise.all(database_json_1.default.environments.map(async (e) => store.upsert(e)));
53
+ await Promise.all(database_json_1.default.environments.map(async (e) => store.create(e)));
53
54
  }
54
55
  async function setupDatabase(stores) {
55
56
  await createEnvironments(stores.environmentStore);
@@ -57,12 +58,12 @@ async function setupDatabase(stores) {
57
58
  await Promise.all(createContextFields(stores.contextFieldStore));
58
59
  await Promise.all(createProjects(stores.projectStore));
59
60
  await Promise.all(createTagTypes(stores.tagTypeStore));
60
- await connectProject(stores.environmentStore);
61
+ await connectProject(stores.featureEnvironmentStore);
61
62
  }
62
63
  async function init(databaseSchema = 'test', getLogger = no_logger_1.default) {
63
64
  const config = test_config_1.createTestConfig({
64
65
  db: {
65
- ...database_config_1.default.getDb(),
66
+ ...database_config_1.getDbConfig(),
66
67
  pool: { min: 2, max: 8 },
67
68
  schema: databaseSchema,
68
69
  ssl: false,
@@ -74,7 +75,7 @@ async function init(databaseSchema = 'test', getLogger = no_logger_1.default) {
74
75
  await db.raw(`DROP SCHEMA IF EXISTS ${config.db.schema} CASCADE`);
75
76
  await db.raw(`CREATE SCHEMA IF NOT EXISTS ${config.db.schema}`);
76
77
  // @ts-ignore
77
- await migrator_1.default({ ...config, databaseSchema: config.db.schema });
78
+ await migrator_1.migrateDb({ ...config, databaseSchema: config.db.schema });
78
79
  await db.destroy();
79
80
  const testDb = db_pool_1.createDb(config);
80
81
  const stores = await db_1.createStores(config, eventBus, testDb);
@@ -1 +1 @@
1
- {"version":3,"file":"database-init.js","sourceRoot":"","sources":["../../../../src/test/e2e/helpers/database-init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database-init.js","sourceRoot":"","sources":["../../../../src/test/e2e/helpers/database-init.ts"],"names":[],"mappings":"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"}
@@ -29,8 +29,11 @@
29
29
  ],
30
30
  "environments": [
31
31
  {
32
- "name": ":global:",
33
- "displayName": "Across all environments"
32
+ "name": "default",
33
+ "type": "production",
34
+ "sortOrder": 1,
35
+ "enabled": true,
36
+ "protected": true
34
37
  }
35
38
  ],
36
39
  "tag_types": [
@@ -8,6 +8,6 @@ export interface IUnleashTest {
8
8
  }
9
9
  export declare function setupApp(stores: IUnleashStores): Promise<IUnleashTest>;
10
10
  export declare function setupAppWithCustomConfig(stores: IUnleashStores, customOptions: any): Promise<IUnleashTest>;
11
- export declare function setupAppWithAuth(stores: IUnleashStores): Promise<IUnleashTest>;
11
+ export declare function setupAppWithAuth(stores: IUnleashStores, customOptions?: any): Promise<IUnleashTest>;
12
12
  export declare function setupAppWithCustomAuth(stores: IUnleashStores, preHook: Function): Promise<IUnleashTest>;
13
13
  export declare function setupAppWithBaseUrl(stores: IUnleashStores): Promise<IUnleashTest>;
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.setupAppWithBaseUrl = exports.setupAppWithCustomAuth = exports.setupAppWithAuth = exports.setupAppWithCustomConfig = exports.setupApp = void 0;
7
+ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
7
8
  const supertest_1 = __importDefault(require("supertest"));
8
9
  const events_1 = __importDefault(require("events"));
9
10
  const app_1 = __importDefault(require("../../../lib/app"));
@@ -41,14 +42,12 @@ async function setupApp(stores) {
41
42
  return createApp(stores);
42
43
  }
43
44
  exports.setupApp = setupApp;
44
- async function setupAppWithCustomConfig(stores,
45
- // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
46
- customOptions) {
45
+ async function setupAppWithCustomConfig(stores, customOptions) {
47
46
  return createApp(stores, undefined, undefined, customOptions);
48
47
  }
49
48
  exports.setupAppWithCustomConfig = setupAppWithCustomConfig;
50
- async function setupAppWithAuth(stores) {
51
- return createApp(stores, option_1.IAuthType.DEMO);
49
+ async function setupAppWithAuth(stores, customOptions) {
50
+ return createApp(stores, option_1.IAuthType.DEMO, undefined, customOptions);
52
51
  }
53
52
  exports.setupAppWithAuth = setupAppWithAuth;
54
53
  async function setupAppWithCustomAuth(stores, preHook) {
@@ -1 +1 @@
1
- {"version":3,"file":"test-helper.js","sourceRoot":"","sources":["../../../../src/test/e2e/helpers/test-helper.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAElC,oDAAkC;AAClC,2DAAsC;AACtC,0DAA4D;AAC5D,sDAAsD;AACtD,oDAAuD;AACvD,oFAA2D;AAI3D,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC;AAQ9B,SAAS,SAAS,CACd,MAAM,EACN,mBAAmB,GAAG,kBAAS,CAAC,IAAI,EACpC,OAAkB,EAClB,aAAmB;IAEnB,MAAM,MAAM,GAAG,8BAAgB,CAAC;QAC5B,cAAc,EAAE;YACZ,IAAI,EAAE,mBAAmB;YACzB,iBAAiB,EAAE,OAAO;SAC7B;QACD,MAAM,EAAE;YACJ,UAAU,EAAE,uBAAuB;SACtC;QACD,GAAG,aAAa;KACnB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,yBAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,oBAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,gBAAY,EAAE,CAAC;IACnC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,aAAM,CACd,MAAM,EACN,MAAM,EACN,QAAQ,EACR,IAAI,gBAAY,EAAE,EAClB,cAAc,CACjB,CAAC;IACF,MAAM,OAAO,GAAG,mBAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACvB,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAClC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;QACxC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC,CAAC;IAEF,6CAA6C;IAC7C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,MAAsB;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAFD,4BAEC;AAEM,KAAK,UAAU,wBAAwB,CAC1C,MAAsB;AACtB,6EAA6E;AAC7E,aAAkB;IAElB,OAAO,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAClE,CAAC;AAND,4DAMC;AAEM,KAAK,UAAU,gBAAgB,CAClC,MAAsB;IAEtB,OAAO,SAAS,CAAC,MAAM,EAAE,kBAAS,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAJD,4CAIC;AAEM,KAAK,UAAU,sBAAsB,CACxC,MAAsB,EACtB,OAAiB;IAEjB,OAAO,SAAS,CAAC,MAAM,EAAE,kBAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AALD,wDAKC;AACM,KAAK,UAAU,mBAAmB,CACrC,MAAsB;IAEtB,OAAO,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE;QAC3C,MAAM,EAAE;YACJ,UAAU,EAAE,uBAAuB;YACnC,WAAW,EAAE,SAAS;SACzB;KACJ,CAAC,CAAC;AACP,CAAC;AATD,kDASC"}
1
+ {"version":3,"file":"test-helper.js","sourceRoot":"","sources":["../../../../src/test/e2e/helpers/test-helper.ts"],"names":[],"mappings":";;;;;;AAAA,sEAAsE;AACtE,0DAAkC;AAElC,oDAAkC;AAClC,2DAAsC;AACtC,0DAA4D;AAC5D,sDAAsD;AACtD,oDAAuD;AACvD,oFAA2D;AAI3D,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC;AAQ9B,SAAS,SAAS,CACd,MAAM,EACN,mBAAmB,GAAG,kBAAS,CAAC,IAAI,EACpC,OAAkB,EAClB,aAAmB;IAEnB,MAAM,MAAM,GAAG,8BAAgB,CAAC;QAC5B,cAAc,EAAE;YACZ,IAAI,EAAE,mBAAmB;YACzB,iBAAiB,EAAE,OAAO;SAC7B;QACD,MAAM,EAAE;YACJ,UAAU,EAAE,uBAAuB;SACtC;QACD,GAAG,aAAa;KACnB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,yBAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,cAAc,GAAG,oBAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,IAAI,gBAAY,EAAE,CAAC;IACnC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,aAAM,CACd,MAAM,EACN,MAAM,EACN,QAAQ,EACR,IAAI,gBAAY,EAAE,EAClB,cAAc,CACjB,CAAC;IACF,MAAM,OAAO,GAAG,mBAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACvB,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QAClC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;QACxC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;IACvC,CAAC,CAAC;IAEF,6CAA6C;IAC7C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,MAAsB;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAFD,4BAEC;AAEM,KAAK,UAAU,wBAAwB,CAC1C,MAAsB,EACtB,aAAkB;IAElB,OAAO,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AAClE,CAAC;AALD,4DAKC;AAEM,KAAK,UAAU,gBAAgB,CAClC,MAAsB,EACtB,aAAmB;IAEnB,OAAO,SAAS,CAAC,MAAM,EAAE,kBAAS,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AACvE,CAAC;AALD,4CAKC;AAEM,KAAK,UAAU,sBAAsB,CACxC,MAAsB,EACtB,OAAiB;IAEjB,OAAO,SAAS,CAAC,MAAM,EAAE,kBAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AALD,wDAKC;AACM,KAAK,UAAU,mBAAmB,CACrC,MAAsB;IAEtB,OAAO,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE;QAC3C,MAAM,EAAE;YACJ,UAAU,EAAE,uBAAuB;YACnC,WAAW,EAAE,SAAS;SACzB;KACJ,CAAC,CAAC;AACP,CAAC;AATD,kDASC"}
@@ -7,7 +7,8 @@ const database_init_1 = __importDefault(require("../helpers/database-init"));
7
7
  const no_logger_1 = __importDefault(require("../../fixtures/no-logger"));
8
8
  const api_token_service_1 = require("../../../lib/services/api-token-service");
9
9
  const test_config_1 = require("../../config/test-config");
10
- const api_token_store_1 = require("../../../lib/types/stores/api-token-store");
10
+ const api_token_1 = require("../../../lib/types/models/api-token");
11
+ const constants_1 = require("../../../lib/util/constants");
11
12
  let db;
12
13
  let stores;
13
14
  let apiTokenService;
@@ -37,31 +38,37 @@ test('should have empty list of tokens', async () => {
37
38
  expect(activeTokens.length).toBe(0);
38
39
  });
39
40
  test('should create client token', async () => {
40
- const token = await apiTokenService.creteApiToken({
41
+ const token = await apiTokenService.createApiToken({
41
42
  username: 'default-client',
42
- type: api_token_store_1.ApiTokenType.CLIENT,
43
+ type: api_token_1.ApiTokenType.CLIENT,
44
+ project: '*',
45
+ environment: constants_1.DEFAULT_ENV,
43
46
  });
44
47
  const allTokens = await apiTokenService.getAllTokens();
45
48
  expect(allTokens.length).toBe(1);
46
49
  expect(token.secret.length > 32).toBe(true);
47
- expect(token.type).toBe(api_token_store_1.ApiTokenType.CLIENT);
50
+ expect(token.type).toBe(api_token_1.ApiTokenType.CLIENT);
48
51
  expect(token.username).toBe('default-client');
49
52
  expect(allTokens[0].secret).toBe(token.secret);
50
53
  });
51
54
  test('should create admin token', async () => {
52
- const token = await apiTokenService.creteApiToken({
55
+ const token = await apiTokenService.createApiToken({
53
56
  username: 'admin',
54
- type: api_token_store_1.ApiTokenType.ADMIN,
57
+ type: api_token_1.ApiTokenType.ADMIN,
58
+ project: '*',
59
+ environment: '*',
55
60
  });
56
61
  expect(token.secret.length > 32).toBe(true);
57
- expect(token.type).toBe(api_token_store_1.ApiTokenType.ADMIN);
62
+ expect(token.type).toBe(api_token_1.ApiTokenType.ADMIN);
58
63
  });
59
64
  test('should set expiry of token', async () => {
60
65
  const time = new Date('2022-01-01');
61
- await apiTokenService.creteApiToken({
66
+ await apiTokenService.createApiToken({
62
67
  username: 'default-client',
63
- type: api_token_store_1.ApiTokenType.CLIENT,
68
+ type: api_token_1.ApiTokenType.CLIENT,
64
69
  expiresAt: time,
70
+ project: '*',
71
+ environment: constants_1.DEFAULT_ENV,
65
72
  });
66
73
  const [token] = await apiTokenService.getAllTokens();
67
74
  expect(token.expiresAt).toEqual(time);
@@ -69,10 +76,12 @@ test('should set expiry of token', async () => {
69
76
  test('should update expiry of token', async () => {
70
77
  const time = new Date('2022-01-01');
71
78
  const newTime = new Date('2023-01-01');
72
- const token = await apiTokenService.creteApiToken({
79
+ const token = await apiTokenService.createApiToken({
73
80
  username: 'default-client',
74
- type: api_token_store_1.ApiTokenType.CLIENT,
81
+ type: api_token_1.ApiTokenType.CLIENT,
75
82
  expiresAt: time,
83
+ project: '*',
84
+ environment: constants_1.DEFAULT_ENV,
76
85
  });
77
86
  await apiTokenService.updateExpiry(token.secret, newTime);
78
87
  const [updatedToken] = await apiTokenService.getAllTokens();
@@ -81,15 +90,19 @@ test('should update expiry of token', async () => {
81
90
  test('should only return valid tokens', async () => {
82
91
  const today = new Date();
83
92
  const tomorrow = new Date(today.getTime() + 24 * 60 * 60 * 1000);
84
- await apiTokenService.creteApiToken({
93
+ await apiTokenService.createApiToken({
85
94
  username: 'default-expired',
86
- type: api_token_store_1.ApiTokenType.CLIENT,
95
+ type: api_token_1.ApiTokenType.CLIENT,
87
96
  expiresAt: new Date('2021-01-01'),
97
+ project: '*',
98
+ environment: constants_1.DEFAULT_ENV,
88
99
  });
89
- const activeToken = await apiTokenService.creteApiToken({
100
+ const activeToken = await apiTokenService.createApiToken({
90
101
  username: 'default-valid',
91
- type: api_token_store_1.ApiTokenType.CLIENT,
102
+ type: api_token_1.ApiTokenType.CLIENT,
92
103
  expiresAt: tomorrow,
104
+ project: '*',
105
+ environment: constants_1.DEFAULT_ENV,
93
106
  });
94
107
  const tokens = await apiTokenService.getAllActiveTokens();
95
108
  expect(tokens.length).toBe(1);
@@ -1 +1 @@
1
- {"version":3,"file":"api-token-service.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/api-token-service.e2e.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-token-service.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/api-token-service.e2e.test.ts"],"names":[],"mappings":"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"}
@@ -20,91 +20,89 @@ beforeAll(async () => {
20
20
  afterAll(async () => {
21
21
  await db.destroy();
22
22
  });
23
- test('Can create and get environment', async () => {
24
- const created = await service.create({
23
+ test('Can get environment', async () => {
24
+ const created = await db.stores.environmentStore.create({
25
25
  name: 'testenv',
26
- displayName: 'Environment for testing',
26
+ type: 'production',
27
27
  });
28
28
  const retrieved = await service.get('testenv');
29
29
  expect(retrieved).toEqual(created);
30
30
  });
31
- test('Can delete environment', async () => {
32
- await service.create({
33
- name: 'testenv',
34
- displayName: 'Environment for testing',
35
- });
36
- await service.delete('testenv');
37
- return expect(async () => service.get('testenv')).rejects.toThrow(notfound_error_1.default);
38
- });
39
31
  test('Can get all', async () => {
40
- await service.create({
41
- name: 'testenv',
42
- displayName: 'Environment for testing',
32
+ await db.stores.environmentStore.create({
33
+ name: 'testenv2',
34
+ type: 'production',
43
35
  });
44
36
  const environments = await service.getAll();
45
- expect(environments).toHaveLength(2); // the one we created plus ':global:'
46
- });
47
- test('Can update display name', async () => {
48
- await service.create({
49
- name: 'testenv',
50
- displayName: 'Environment for testing',
51
- });
52
- await service.update('testenv', { displayName: 'Different name' });
53
- const updated = await service.get('testenv');
54
- expect(updated.displayName).toEqual('Different name');
37
+ expect(environments).toHaveLength(3); // the one we created plus 'default'
55
38
  });
56
39
  test('Can connect environment to project', async () => {
57
- await service.create({ name: 'test-connection', displayName: '' });
58
- await stores.featureToggleStore.createFeature('default', {
40
+ await db.stores.environmentStore.create({
41
+ name: 'test-connection',
42
+ type: 'production',
43
+ });
44
+ await stores.featureToggleStore.create('default', {
59
45
  name: 'test-connection',
60
46
  type: 'release',
61
47
  description: '',
62
48
  stale: false,
63
49
  variants: [],
64
50
  });
65
- await service.connectProjectToEnvironment('test-connection', 'default');
66
- const overview = await stores.projectStore.getProjectOverview('default', false);
51
+ await service.addEnvironmentToProject('test-connection', 'default');
52
+ const overview = await stores.featureStrategiesStore.getFeatureOverview('default', false);
67
53
  overview.forEach((f) => {
68
54
  expect(f.environments).toEqual([
69
55
  {
70
56
  name: 'test-connection',
71
- displayName: '',
72
57
  enabled: false,
58
+ sortOrder: 9999,
59
+ type: 'production',
73
60
  },
74
61
  ]);
75
62
  });
76
63
  });
77
64
  test('Can remove environment from project', async () => {
78
- await service.create({ name: 'removal-test', displayName: '' });
79
- await stores.featureToggleStore.createFeature('default', {
65
+ await db.stores.environmentStore.create({
66
+ name: 'removal-test',
67
+ type: 'production',
68
+ });
69
+ await stores.featureToggleStore.create('default', {
80
70
  name: 'removal-test',
81
71
  });
82
72
  await service.removeEnvironmentFromProject('test-connection', 'default');
83
- await service.connectProjectToEnvironment('removal-test', 'default');
84
- let overview = await stores.projectStore.getProjectOverview('default', false);
73
+ await service.addEnvironmentToProject('removal-test', 'default');
74
+ let overview = await stores.featureStrategiesStore.getFeatureOverview('default', false);
85
75
  expect(overview.length).toBeGreaterThan(0);
86
76
  overview.forEach((f) => {
87
77
  expect(f.environments).toEqual([
88
78
  {
89
79
  name: 'removal-test',
90
- displayName: '',
91
80
  enabled: false,
81
+ sortOrder: 9999,
82
+ type: 'production',
92
83
  },
93
84
  ]);
94
85
  });
95
86
  await service.removeEnvironmentFromProject('removal-test', 'default');
96
- overview = await stores.projectStore.getProjectOverview('default', false);
87
+ overview = await stores.featureStrategiesStore.getFeatureOverview('default', false);
97
88
  expect(overview.length).toBeGreaterThan(0);
98
89
  overview.forEach((o) => {
99
90
  expect(o.environments).toEqual([]);
100
91
  });
101
92
  });
102
93
  test('Adding same environment twice should throw a NameExistsError', async () => {
103
- await service.create({ name: 'uniqueness-test', displayName: '' });
94
+ await db.stores.environmentStore.create({
95
+ name: 'uniqueness-test',
96
+ type: 'production',
97
+ });
104
98
  await service.removeEnvironmentFromProject('test-connection', 'default');
105
99
  await service.removeEnvironmentFromProject('removal-test', 'default');
106
- await service.connectProjectToEnvironment('uniqueness-test', 'default');
107
- return expect(async () => service.connectProjectToEnvironment('uniqueness-test', 'default')).rejects.toThrow(new name_exists_error_1.default('default already has the environment uniqueness-test enabled'));
100
+ await service.addEnvironmentToProject('uniqueness-test', 'default');
101
+ return expect(async () => service.addEnvironmentToProject('uniqueness-test', 'default')).rejects.toThrow(new name_exists_error_1.default('default already has the environment uniqueness-test enabled'));
108
102
  });
109
103
  test('Removing environment not connected to project should be a noop', async () => expect(async () => service.removeEnvironmentFromProject('some-non-existing-environment', 'default')).resolves);
104
+ test('Trying to get an environment that does not exist throws NotFoundError', async () => {
105
+ const envName = 'this-should-not-exist';
106
+ await expect(async () => service.get(envName)).rejects.toThrow(new notfound_error_1.default(`Could not find environment with name: ${envName}`));
107
+ });
110
108
  //# sourceMappingURL=environment-service.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment-service.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/environment-service.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environment-service.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/environment-service.test.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ const events_1 = require("../../../lib/types/events");
8
8
  const feature_toggle_service_v2_1 = __importDefault(require("../../../lib/services/feature-toggle-service-v2"));
9
9
  const test_config_1 = require("../../config/test-config");
10
10
  const database_init_1 = __importDefault(require("../helpers/database-init"));
11
- const environment_1 = require("../../../lib/types/environment");
11
+ const constants_1 = require("../../../lib/util/constants");
12
12
  let stores;
13
13
  let db;
14
14
  let service;
@@ -24,6 +24,8 @@ afterAll(async () => {
24
24
  await db.destroy();
25
25
  });
26
26
  test('Should create feature toggle strategy configuration', async () => {
27
+ const projectId = 'default';
28
+ const username = 'feature-toggle';
27
29
  const config = {
28
30
  name: 'default',
29
31
  constraints: [],
@@ -32,22 +34,24 @@ test('Should create feature toggle strategy configuration', async () => {
32
34
  await service.createFeatureToggle('default', {
33
35
  name: 'Demo',
34
36
  }, 'test');
35
- const createdConfig = await service.createStrategy(config, 'default', 'Demo');
37
+ const createdConfig = await service.createStrategy(config, projectId, 'Demo', username);
36
38
  expect(createdConfig.name).toEqual('default');
37
39
  expect(createdConfig.id).toBeDefined();
38
40
  });
39
41
  test('Should be able to update existing strategy configuration', async () => {
42
+ const projectId = 'default';
43
+ const username = 'existing-strategy';
40
44
  const config = {
41
45
  name: 'default',
42
46
  constraints: [],
43
47
  parameters: {},
44
48
  };
45
- await service.createFeatureToggle('default', {
49
+ await service.createFeatureToggle(projectId, {
46
50
  name: 'update-existing-strategy',
47
51
  }, 'test');
48
- const createdConfig = await service.createStrategy(config, 'default', 'update-existing-strategy');
52
+ const createdConfig = await service.createStrategy(config, 'default', 'update-existing-strategy', username);
49
53
  expect(createdConfig.name).toEqual('default');
50
- const updatedConfig = await service.updateStrategy(createdConfig.id, {
54
+ const updatedConfig = await service.updateStrategy(createdConfig.id, constants_1.DEFAULT_ENV, projectId, username, {
51
55
  parameters: { b2b: true },
52
56
  });
53
57
  expect(createdConfig.id).toEqual(updatedConfig.id);
@@ -64,14 +68,16 @@ test('Should include legacy props in event log when updating strategy configurat
64
68
  await service.createFeatureToggle('default', {
65
69
  name: featureName,
66
70
  }, userName);
67
- await service.createStrategy(config, 'default', featureName);
68
- await service.updateEnabled(featureName, environment_1.GLOBAL_ENV, true, userName);
71
+ await service.createStrategy(config, 'default', featureName, userName);
72
+ await service.updateEnabled('default', featureName, constants_1.DEFAULT_ENV, true, userName);
69
73
  const events = await eventService.getEventsForToggle(featureName);
70
- expect(events[0].type).toBe(events_1.FEATURE_UPDATED);
71
- expect(events[0].data.enabled).toBe(true);
72
- expect(events[0].data.strategies).toBeDefined();
74
+ const updatedEvent = events.find((e) => e.type === events_1.FEATURE_UPDATED);
75
+ expect(updatedEvent.type).toBe(events_1.FEATURE_UPDATED);
76
+ expect(updatedEvent.data.enabled).toBe(true);
77
+ expect(updatedEvent.data.strategies).toBeDefined();
73
78
  });
74
79
  test('Should be able to get strategy by id', async () => {
80
+ const userName = 'strategy';
75
81
  const config = {
76
82
  name: 'default',
77
83
  constraints: [],
@@ -80,7 +86,7 @@ test('Should be able to get strategy by id', async () => {
80
86
  await service.createFeatureToggle('default', {
81
87
  name: 'get-strategy-by-id',
82
88
  }, 'test');
83
- const createdConfig = await service.createStrategy(config, 'default', 'Demo');
89
+ const createdConfig = await service.createStrategy(config, 'default', 'Demo', userName, constants_1.DEFAULT_ENV);
84
90
  const fetchedConfig = await service.getStrategy(createdConfig.id);
85
91
  expect(fetchedConfig).toEqual(createdConfig);
86
92
  });
@@ -1 +1 @@
1
- {"version":3,"file":"feature-toggle-service-v2.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/feature-toggle-service-v2.e2e.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-toggle-service-v2.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/feature-toggle-service-v2.e2e.test.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ beforeAll(async () => {
28
28
  accessService = new access_service_1.AccessService(stores, config);
29
29
  featureToggleService = new feature_toggle_service_v2_1.default(stores, config);
30
30
  projectService = new project_service_1.default(stores, config, accessService, featureToggleService);
31
- projectHealthService = new project_health_service_1.default(stores, config);
31
+ projectHealthService = new project_health_service_1.default(stores, config, featureToggleService);
32
32
  });
33
33
  afterAll(async () => {
34
34
  await db.destroy();
@@ -40,12 +40,12 @@ test('Project with no stale toggles should have 100% health rating', async () =>
40
40
  description: 'Fancy',
41
41
  };
42
42
  const savedProject = await projectService.createProject(project, user);
43
- await stores.featureToggleStore.createFeature('health-rating', {
43
+ await stores.featureToggleStore.create('health-rating', {
44
44
  name: 'health-rating-not-stale',
45
45
  description: 'new',
46
46
  stale: false,
47
47
  });
48
- await stores.featureToggleStore.createFeature('health-rating', {
48
+ await stores.featureToggleStore.create('health-rating', {
49
49
  name: 'health-rating-not-stale-2',
50
50
  description: 'new too',
51
51
  stale: false,
@@ -60,22 +60,22 @@ test('Project with two stale toggles and two non stale should have 50% health ra
60
60
  description: 'Fancy',
61
61
  };
62
62
  const savedProject = await projectService.createProject(project, user);
63
- await stores.featureToggleStore.createFeature('health-rating-2', {
63
+ await stores.featureToggleStore.create('health-rating-2', {
64
64
  name: 'health-rating-2-not-stale',
65
65
  description: 'new',
66
66
  stale: false,
67
67
  });
68
- await stores.featureToggleStore.createFeature('health-rating-2', {
68
+ await stores.featureToggleStore.create('health-rating-2', {
69
69
  name: 'health-rating-2-not-stale-2',
70
70
  description: 'new too',
71
71
  stale: false,
72
72
  });
73
- await stores.featureToggleStore.createFeature('health-rating-2', {
73
+ await stores.featureToggleStore.create('health-rating-2', {
74
74
  name: 'health-rating-2-stale-1',
75
75
  description: 'stale',
76
76
  stale: true,
77
77
  });
78
- await stores.featureToggleStore.createFeature('health-rating-2', {
78
+ await stores.featureToggleStore.create('health-rating-2', {
79
79
  name: 'health-rating-2-stale-2',
80
80
  description: 'stale too',
81
81
  stale: true,
@@ -90,19 +90,19 @@ test('Project with one non-stale, one potentially stale and one stale should hav
90
90
  description: 'Fancy',
91
91
  };
92
92
  const savedProject = await projectService.createProject(project, user);
93
- await stores.featureToggleStore.createFeature('health-rating-3', {
93
+ await stores.featureToggleStore.create('health-rating-3', {
94
94
  name: 'health-rating-3-not-stale',
95
95
  description: 'new',
96
96
  stale: false,
97
97
  });
98
- await stores.featureToggleStore.createFeature('health-rating-3', {
98
+ await stores.featureToggleStore.create('health-rating-3', {
99
99
  name: 'health-rating-3-potentially-stale',
100
100
  description: 'new too',
101
101
  type: 'release',
102
102
  stale: false,
103
103
  createdAt: new Date(Date.UTC(2020, 1, 1)),
104
104
  });
105
- await stores.featureToggleStore.createFeature('health-rating-3', {
105
+ await stores.featureToggleStore.create('health-rating-3', {
106
106
  name: 'health-rating-3-stale',
107
107
  description: 'stale',
108
108
  stale: true,
@@ -1 +1 @@
1
- {"version":3,"file":"project-health-service.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/project-health-service.e2e.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-health-service.e2e.test.js","sourceRoot":"","sources":["../../../../src/test/e2e/services/project-health-service.e2e.test.ts"],"names":[],"mappings":"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"}