unleash-server 5.1.8 → 5.2.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 (485) hide show
  1. package/dist/lib/create-config.js +5 -2
  2. package/dist/lib/create-config.js.map +1 -1
  3. package/dist/lib/db/access-store.d.ts +2 -1
  4. package/dist/lib/db/access-store.js +17 -3
  5. package/dist/lib/db/access-store.js.map +1 -1
  6. package/dist/lib/db/client-metrics-store-v2.js +19 -30
  7. package/dist/lib/db/client-metrics-store-v2.js.map +1 -1
  8. package/dist/lib/db/context-field-store.d.ts +4 -1
  9. package/dist/lib/db/context-field-store.js +44 -14
  10. package/dist/lib/db/context-field-store.js.map +1 -1
  11. package/dist/lib/db/environment-store.d.ts +1 -0
  12. package/dist/lib/db/environment-store.js +6 -0
  13. package/dist/lib/db/environment-store.js.map +1 -1
  14. package/dist/lib/db/event-store.js +2 -1
  15. package/dist/lib/db/event-store.js.map +1 -1
  16. package/dist/lib/db/feature-strategy-store.d.ts +2 -0
  17. package/dist/lib/db/feature-strategy-store.js +25 -0
  18. package/dist/lib/db/feature-strategy-store.js.map +1 -1
  19. package/dist/lib/db/feature-strategy-store.test.js +75 -0
  20. package/dist/lib/db/feature-strategy-store.test.js.map +1 -0
  21. package/dist/lib/db/group-store.d.ts +1 -1
  22. package/dist/lib/db/group-store.js +2 -2
  23. package/dist/lib/db/group-store.js.map +1 -1
  24. package/dist/lib/db/index.js +2 -2
  25. package/dist/lib/db/index.js.map +1 -1
  26. package/dist/lib/db/project-store.js +2 -1
  27. package/dist/lib/db/project-store.js.map +1 -1
  28. package/dist/lib/db/role-store.js +2 -2
  29. package/dist/lib/db/role-store.js.map +1 -1
  30. package/dist/lib/db/segment-store.d.ts +6 -2
  31. package/dist/lib/db/segment-store.js +27 -6
  32. package/dist/lib/db/segment-store.js.map +1 -1
  33. package/dist/lib/error/no-access-error.d.ts +3 -2
  34. package/dist/lib/error/no-access-error.js +10 -4
  35. package/dist/lib/error/no-access-error.js.map +1 -1
  36. package/dist/lib/error/unleash-error.test.js +8 -2
  37. package/dist/lib/error/unleash-error.test.js.map +1 -1
  38. package/dist/lib/features/access/createAccessService.js +5 -5
  39. package/dist/lib/features/access/createAccessService.js.map +1 -1
  40. package/dist/lib/features/export-import-toggles/createExportImportService.js +4 -2
  41. package/dist/lib/features/export-import-toggles/createExportImportService.js.map +1 -1
  42. package/dist/lib/features/export-import-toggles/export-import-api-usage.test.d.ts +1 -0
  43. package/dist/lib/features/export-import-toggles/export-import-api-usage.test.js +69 -0
  44. package/dist/lib/features/export-import-toggles/export-import-api-usage.test.js.map +1 -0
  45. package/dist/lib/features/export-import-toggles/export-import-controller.js +5 -1
  46. package/dist/lib/features/export-import-toggles/export-import-controller.js.map +1 -1
  47. package/dist/lib/features/export-import-toggles/export-import-service.js +7 -2
  48. package/dist/lib/features/export-import-toggles/export-import-service.js.map +1 -1
  49. package/dist/lib/features/feature-toggle/createFeatureToggleService.js +4 -4
  50. package/dist/lib/features/feature-toggle/createFeatureToggleService.js.map +1 -1
  51. package/dist/lib/features/playground/advanced-playground.test.d.ts +1 -0
  52. package/dist/lib/features/playground/advanced-playground.test.js +238 -0
  53. package/dist/lib/features/playground/advanced-playground.test.js.map +1 -0
  54. package/dist/lib/{util → features/playground}/feature-evaluator/client.d.ts +3 -2
  55. package/dist/lib/{util → features/playground}/feature-evaluator/client.js +1 -1
  56. package/dist/lib/features/playground/feature-evaluator/client.js.map +1 -0
  57. package/dist/lib/features/playground/feature-evaluator/constraint.js.map +1 -0
  58. package/dist/lib/features/playground/feature-evaluator/context.js.map +1 -0
  59. package/dist/lib/features/playground/feature-evaluator/feature-evaluator.js.map +1 -0
  60. package/dist/lib/features/playground/feature-evaluator/feature.js.map +1 -0
  61. package/dist/lib/{util → features/playground}/feature-evaluator/helpers.d.ts +1 -1
  62. package/dist/lib/features/playground/feature-evaluator/helpers.js.map +1 -0
  63. package/dist/lib/{util → features/playground}/feature-evaluator/index.d.ts +1 -1
  64. package/dist/lib/{util → features/playground}/feature-evaluator/index.js +2 -2
  65. package/dist/lib/features/playground/feature-evaluator/index.js.map +1 -0
  66. package/dist/lib/features/playground/feature-evaluator/repository/bootstrap-provider.js.map +1 -0
  67. package/dist/lib/features/playground/feature-evaluator/repository/index.js.map +1 -0
  68. package/dist/lib/features/playground/feature-evaluator/repository/storage-provider-in-mem.js.map +1 -0
  69. package/dist/lib/features/playground/feature-evaluator/repository/storage-provider.js.map +1 -0
  70. package/dist/lib/features/playground/feature-evaluator/strategy/application-hostname-strategy.js.map +1 -0
  71. package/dist/lib/features/playground/feature-evaluator/strategy/default-strategy.js.map +1 -0
  72. package/dist/lib/features/playground/feature-evaluator/strategy/flexible-rollout-strategy.js.map +1 -0
  73. package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-random.js.map +1 -0
  74. package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-session-id.js.map +1 -0
  75. package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-user-id.js.map +1 -0
  76. package/dist/lib/features/playground/feature-evaluator/strategy/index.js.map +1 -0
  77. package/dist/lib/features/playground/feature-evaluator/strategy/remote-address-strategy.js.map +1 -0
  78. package/dist/lib/features/playground/feature-evaluator/strategy/strategy.js.map +1 -0
  79. package/dist/lib/{util → features/playground}/feature-evaluator/strategy/unknown-strategy.js +1 -1
  80. package/dist/lib/features/playground/feature-evaluator/strategy/unknown-strategy.js.map +1 -0
  81. package/dist/lib/features/playground/feature-evaluator/strategy/user-with-id-strategy.js.map +1 -0
  82. package/dist/lib/features/playground/feature-evaluator/strategy/util.js.map +1 -0
  83. package/dist/lib/features/playground/feature-evaluator/variant.js.map +1 -0
  84. package/dist/lib/features/playground/generateObjectCombinations.d.ts +7 -0
  85. package/dist/lib/features/playground/generateObjectCombinations.js +16 -0
  86. package/dist/lib/features/playground/generateObjectCombinations.js.map +1 -0
  87. package/dist/lib/features/playground/generateObjectCombinations.test.d.ts +1 -0
  88. package/dist/lib/features/playground/generateObjectCombinations.test.js +33 -0
  89. package/dist/lib/features/playground/generateObjectCombinations.test.js.map +1 -0
  90. package/dist/lib/{util → features/playground}/offline-unleash-client.js +2 -2
  91. package/dist/lib/features/playground/offline-unleash-client.js.map +1 -0
  92. package/dist/lib/{util → features/playground}/offline-unleash-client.test.js +1 -1
  93. package/dist/lib/features/playground/offline-unleash-client.test.js.map +1 -0
  94. package/dist/lib/features/playground/playground-service.d.ts +34 -0
  95. package/dist/lib/features/playground/playground-service.js +114 -0
  96. package/dist/lib/features/playground/playground-service.js.map +1 -0
  97. package/dist/lib/features/playground/playground-view-model.d.ts +4 -0
  98. package/dist/lib/features/playground/playground-view-model.js +49 -0
  99. package/dist/lib/features/playground/playground-view-model.js.map +1 -0
  100. package/dist/lib/features/playground/playground-view-model.test.d.ts +1 -0
  101. package/dist/lib/features/playground/playground-view-model.test.js +122 -0
  102. package/dist/lib/features/playground/playground-view-model.test.js.map +1 -0
  103. package/dist/lib/features/playground/playground.d.ts +16 -0
  104. package/dist/lib/features/playground/playground.js +78 -0
  105. package/dist/lib/features/playground/playground.js.map +1 -0
  106. package/dist/lib/features/playground/playground.test.d.ts +1 -0
  107. package/dist/lib/{routes/admin-api → features/playground}/playground.test.js +3 -2
  108. package/dist/lib/features/playground/playground.test.js.map +1 -0
  109. package/dist/lib/features/playground/validateQueryComplexity.d.ts +1 -0
  110. package/dist/lib/features/playground/validateQueryComplexity.js +15 -0
  111. package/dist/lib/features/playground/validateQueryComplexity.js.map +1 -0
  112. package/dist/lib/features/playground/validateQueryComplexity.test.d.ts +1 -0
  113. package/dist/lib/features/playground/validateQueryComplexity.test.js +19 -0
  114. package/dist/lib/features/playground/validateQueryComplexity.test.js.map +1 -0
  115. package/dist/lib/middleware/rbac-middleware.d.ts +1 -1
  116. package/dist/lib/middleware/rbac-middleware.js +7 -4
  117. package/dist/lib/middleware/rbac-middleware.js.map +1 -1
  118. package/dist/lib/middleware/rbac-middleware.test.js +8 -8
  119. package/dist/lib/middleware/rbac-middleware.test.js.map +1 -1
  120. package/dist/lib/openapi/endpoint-descriptions.d.ts +4 -0
  121. package/dist/lib/openapi/endpoint-descriptions.js +4 -0
  122. package/dist/lib/openapi/endpoint-descriptions.js.map +1 -1
  123. package/dist/lib/openapi/index.js +7 -0
  124. package/dist/lib/openapi/index.js.map +1 -1
  125. package/dist/lib/openapi/meta-schema-rules.test.js +16 -25
  126. package/dist/lib/openapi/meta-schema-rules.test.js.map +1 -1
  127. package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.d.ts +652 -0
  128. package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.js +146 -0
  129. package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.js.map +1 -0
  130. package/dist/lib/openapi/spec/advanced-playground-feature-schema.d.ts +1217 -0
  131. package/dist/lib/openapi/spec/advanced-playground-feature-schema.js +51 -0
  132. package/dist/lib/openapi/spec/advanced-playground-feature-schema.js.map +1 -0
  133. package/dist/lib/openapi/spec/advanced-playground-request-schema.d.ts +95 -0
  134. package/dist/lib/openapi/spec/advanced-playground-request-schema.js +49 -0
  135. package/dist/lib/openapi/spec/advanced-playground-request-schema.js.map +1 -0
  136. package/dist/lib/openapi/spec/advanced-playground-response-schema.d.ts +2560 -0
  137. package/dist/lib/openapi/spec/advanced-playground-response-schema.js +50 -0
  138. package/dist/lib/openapi/spec/advanced-playground-response-schema.js.map +1 -0
  139. package/dist/lib/openapi/spec/client-application-schema.d.ts +17 -0
  140. package/dist/lib/openapi/spec/client-application-schema.js +17 -0
  141. package/dist/lib/openapi/spec/client-application-schema.js.map +1 -1
  142. package/dist/lib/openapi/spec/client-feature-schema.d.ts +44 -13
  143. package/dist/lib/openapi/spec/client-feature-schema.js +17 -12
  144. package/dist/lib/openapi/spec/client-feature-schema.js.map +1 -1
  145. package/dist/lib/openapi/spec/client-features-query-schema.d.ts +12 -0
  146. package/dist/lib/openapi/spec/client-features-query-schema.js +12 -0
  147. package/dist/lib/openapi/spec/client-features-query-schema.js.map +1 -1
  148. package/dist/lib/openapi/spec/client-features-schema.d.ts +90 -14
  149. package/dist/lib/openapi/spec/client-features-schema.js +7 -0
  150. package/dist/lib/openapi/spec/client-features-schema.js.map +1 -1
  151. package/dist/lib/openapi/spec/client-features-schema.test.js +5 -12
  152. package/dist/lib/openapi/spec/client-features-schema.test.js.map +1 -1
  153. package/dist/lib/openapi/spec/client-metrics-schema.d.ts +1 -1
  154. package/dist/lib/openapi/spec/client-metrics-schema.js +1 -1
  155. package/dist/lib/openapi/spec/client-metrics-schema.js.map +1 -1
  156. package/dist/lib/openapi/spec/context-field-schema.d.ts +13 -0
  157. package/dist/lib/openapi/spec/context-field-schema.js +13 -0
  158. package/dist/lib/openapi/spec/context-field-schema.js.map +1 -1
  159. package/dist/lib/openapi/spec/context-field-strategies-schema.d.ts +43 -0
  160. package/dist/lib/openapi/spec/context-field-strategies-schema.js +51 -0
  161. package/dist/lib/openapi/spec/context-field-strategies-schema.js.map +1 -0
  162. package/dist/lib/openapi/spec/context-fields-schema.d.ts +13 -0
  163. package/dist/lib/openapi/spec/create-application-schema.d.ts +0 -1
  164. package/dist/lib/openapi/spec/create-application-schema.js +0 -1
  165. package/dist/lib/openapi/spec/create-application-schema.js.map +1 -1
  166. package/dist/lib/openapi/spec/export-result-schema.d.ts +137 -4
  167. package/dist/lib/openapi/spec/feature-environment-schema.d.ts +22 -1
  168. package/dist/lib/openapi/spec/feature-schema.d.ts +49 -2
  169. package/dist/lib/openapi/spec/feature-schema.test.js +1 -1
  170. package/dist/lib/openapi/spec/feature-schema.test.js.map +1 -1
  171. package/dist/lib/openapi/spec/feature-strategy-schema.d.ts +1 -1
  172. package/dist/lib/openapi/spec/feature-strategy-schema.js +1 -1
  173. package/dist/lib/openapi/spec/feature-strategy-schema.js.map +1 -1
  174. package/dist/lib/openapi/spec/feature-variants-schema.d.ts +26 -0
  175. package/dist/lib/openapi/spec/features-schema.d.ts +98 -4
  176. package/dist/lib/openapi/spec/health-check-schema.d.ts +3 -0
  177. package/dist/lib/openapi/spec/health-check-schema.js +3 -0
  178. package/dist/lib/openapi/spec/health-check-schema.js.map +1 -1
  179. package/dist/lib/openapi/spec/health-overview-schema.d.ts +105 -4
  180. package/dist/lib/openapi/spec/health-overview-schema.js +7 -0
  181. package/dist/lib/openapi/spec/health-overview-schema.js.map +1 -1
  182. package/dist/lib/openapi/spec/health-report-schema.d.ts +105 -4
  183. package/dist/lib/openapi/spec/import-toggles-schema.d.ts +274 -8
  184. package/dist/lib/openapi/spec/index.d.ts +3 -0
  185. package/dist/lib/openapi/spec/index.js +3 -0
  186. package/dist/lib/openapi/spec/index.js.map +1 -1
  187. package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts +65 -2
  188. package/dist/lib/openapi/spec/instance-admin-stats-schema.js +65 -2
  189. package/dist/lib/openapi/spec/instance-admin-stats-schema.js.map +1 -1
  190. package/dist/lib/openapi/spec/override-schema.d.ts +5 -0
  191. package/dist/lib/openapi/spec/override-schema.js +5 -0
  192. package/dist/lib/openapi/spec/override-schema.js.map +1 -1
  193. package/dist/lib/openapi/spec/password-schema.d.ts +3 -0
  194. package/dist/lib/openapi/spec/password-schema.js +3 -0
  195. package/dist/lib/openapi/spec/password-schema.js.map +1 -1
  196. package/dist/lib/openapi/spec/playground-feature-schema.d.ts +41 -1
  197. package/dist/lib/openapi/spec/playground-feature-schema.js +6 -1
  198. package/dist/lib/openapi/spec/playground-feature-schema.js.map +1 -1
  199. package/dist/lib/openapi/spec/playground-feature-schema.test.js +3 -0
  200. package/dist/lib/openapi/spec/playground-feature-schema.test.js.map +1 -1
  201. package/dist/lib/openapi/spec/playground-request-schema.d.ts +7 -1
  202. package/dist/lib/openapi/spec/playground-request-schema.js +1 -1
  203. package/dist/lib/openapi/spec/playground-request-schema.js.map +1 -1
  204. package/dist/lib/openapi/spec/playground-response-schema.d.ts +93 -3
  205. package/dist/lib/openapi/spec/playground-strategy-schema.d.ts +13 -1
  206. package/dist/lib/openapi/spec/playground-strategy-schema.js +13 -0
  207. package/dist/lib/openapi/spec/playground-strategy-schema.js.map +1 -1
  208. package/dist/lib/openapi/spec/profile-schema.d.ts +49 -2
  209. package/dist/lib/openapi/spec/project-overview-schema.d.ts +104 -4
  210. package/dist/lib/openapi/spec/project-overview-schema.js +6 -0
  211. package/dist/lib/openapi/spec/project-overview-schema.js.map +1 -1
  212. package/dist/lib/openapi/spec/push-variants-schema.d.ts +26 -0
  213. package/dist/lib/openapi/spec/sdk-context-schema.d.ts +6 -0
  214. package/dist/lib/openapi/spec/sdk-context-schema.js +14 -2
  215. package/dist/lib/openapi/spec/sdk-context-schema.js.map +1 -1
  216. package/dist/lib/openapi/spec/state-schema.d.ts +72 -4
  217. package/dist/lib/openapi/spec/variant-schema.d.ts +21 -0
  218. package/dist/lib/openapi/spec/variant-schema.js +13 -0
  219. package/dist/lib/openapi/spec/variant-schema.js.map +1 -1
  220. package/dist/lib/openapi/spec/variants-schema.d.ts +26 -0
  221. package/dist/lib/openapi/util/create-response-schema.d.ts +1 -0
  222. package/dist/lib/openapi/util/create-response-schema.js +7 -1
  223. package/dist/lib/openapi/util/create-response-schema.js.map +1 -1
  224. package/dist/lib/proxy/proxy-repository.js +1 -1
  225. package/dist/lib/proxy/proxy-repository.js.map +1 -1
  226. package/dist/lib/routes/admin-api/api-token.d.ts +2 -0
  227. package/dist/lib/routes/admin-api/api-token.js +120 -11
  228. package/dist/lib/routes/admin-api/api-token.js.map +1 -1
  229. package/dist/lib/routes/admin-api/context.d.ts +3 -0
  230. package/dist/lib/routes/admin-api/context.js +21 -0
  231. package/dist/lib/routes/admin-api/context.js.map +1 -1
  232. package/dist/lib/routes/admin-api/index.js +1 -1
  233. package/dist/lib/routes/admin-api/index.js.map +1 -1
  234. package/dist/lib/routes/admin-api/instance-admin.d.ts +3 -1
  235. package/dist/lib/routes/admin-api/instance-admin.js +41 -0
  236. package/dist/lib/routes/admin-api/instance-admin.js.map +1 -1
  237. package/dist/lib/routes/admin-api/metrics.test.js +12 -0
  238. package/dist/lib/routes/admin-api/metrics.test.js.map +1 -1
  239. package/dist/lib/routes/admin-api/project/api-token.js +7 -0
  240. package/dist/lib/routes/admin-api/project/api-token.js.map +1 -1
  241. package/dist/lib/routes/admin-api/user/user.js +5 -4
  242. package/dist/lib/routes/admin-api/user/user.js.map +1 -1
  243. package/dist/lib/routes/admin-api/user/user.test.js +30 -5
  244. package/dist/lib/routes/admin-api/user/user.test.js.map +1 -1
  245. package/dist/lib/routes/admin-api/user-admin.js +0 -1
  246. package/dist/lib/routes/admin-api/user-admin.js.map +1 -1
  247. package/dist/lib/routes/client-api/feature.js +4 -0
  248. package/dist/lib/routes/client-api/feature.js.map +1 -1
  249. package/dist/lib/routes/client-api/metrics.js +2 -0
  250. package/dist/lib/routes/client-api/metrics.js.map +1 -1
  251. package/dist/lib/routes/client-api/register.js +2 -0
  252. package/dist/lib/routes/client-api/register.js.map +1 -1
  253. package/dist/lib/routes/controller.d.ts +8 -7
  254. package/dist/lib/routes/controller.js +11 -10
  255. package/dist/lib/routes/controller.js.map +1 -1
  256. package/dist/lib/routes/health-check.js +2 -0
  257. package/dist/lib/routes/health-check.js.map +1 -1
  258. package/dist/lib/server-impl.js +1 -1
  259. package/dist/lib/server-impl.js.map +1 -1
  260. package/dist/lib/services/access-service.d.ts +6 -4
  261. package/dist/lib/services/access-service.js +47 -11
  262. package/dist/lib/services/access-service.js.map +1 -1
  263. package/dist/lib/services/access-service.test.js +39 -22
  264. package/dist/lib/services/access-service.test.js.map +1 -1
  265. package/dist/lib/services/api-token-service.d.ts +1 -0
  266. package/dist/lib/services/api-token-service.js +3 -0
  267. package/dist/lib/services/api-token-service.js.map +1 -1
  268. package/dist/lib/services/context-service.d.ts +4 -1
  269. package/dist/lib/services/context-service.js +14 -1
  270. package/dist/lib/services/context-service.js.map +1 -1
  271. package/dist/lib/services/feature-toggle-service.d.ts +1 -1
  272. package/dist/lib/services/feature-toggle-service.js +6 -7
  273. package/dist/lib/services/feature-toggle-service.js.map +1 -1
  274. package/dist/lib/services/group-service.js +1 -3
  275. package/dist/lib/services/group-service.js.map +1 -1
  276. package/dist/lib/services/index.d.ts +1 -1
  277. package/dist/lib/services/index.js +1 -1
  278. package/dist/lib/services/index.js.map +1 -1
  279. package/dist/lib/services/instance-stats-service.d.ts +2 -3
  280. package/dist/lib/services/project-service.js +1 -0
  281. package/dist/lib/services/project-service.js.map +1 -1
  282. package/dist/lib/services/user-service.d.ts +1 -0
  283. package/dist/lib/services/user-service.js +8 -0
  284. package/dist/lib/services/user-service.js.map +1 -1
  285. package/dist/lib/services/version-service.d.ts +37 -1
  286. package/dist/lib/services/version-service.js +76 -5
  287. package/dist/lib/services/version-service.js.map +1 -1
  288. package/dist/lib/services/version-service.test.js +196 -9
  289. package/dist/lib/services/version-service.test.js.map +1 -1
  290. package/dist/lib/types/experimental.d.ts +1 -1
  291. package/dist/lib/types/experimental.js +6 -2
  292. package/dist/lib/types/experimental.js.map +1 -1
  293. package/dist/lib/types/model.d.ts +9 -4
  294. package/dist/lib/types/model.js +1 -0
  295. package/dist/lib/types/model.js.map +1 -1
  296. package/dist/lib/types/option.d.ts +2 -0
  297. package/dist/lib/types/permissions.d.ts +34 -27
  298. package/dist/lib/types/permissions.js +85 -29
  299. package/dist/lib/types/permissions.js.map +1 -1
  300. package/dist/lib/types/services.d.ts +1 -1
  301. package/dist/lib/types/stores/access-store.d.ts +1 -1
  302. package/dist/lib/types/stores/context-field-store.d.ts +2 -0
  303. package/dist/lib/types/stores/environment-store.d.ts +1 -0
  304. package/dist/lib/types/stores/feature-strategies-store.d.ts +2 -0
  305. package/dist/lib/types/stores/feature-toggle-store.d.ts +1 -1
  306. package/dist/lib/types/stores/group-store.d.ts +1 -1
  307. package/dist/lib/util/constants.d.ts +7 -1
  308. package/dist/lib/util/constants.js +8 -2
  309. package/dist/lib/util/constants.js.map +1 -1
  310. package/dist/lib/util/ensureArray.d.ts +1 -0
  311. package/dist/lib/util/ensureArray.js +8 -0
  312. package/dist/lib/util/ensureArray.js.map +1 -0
  313. package/dist/lib/util/index.d.ts +1 -1
  314. package/dist/lib/util/index.js +1 -1
  315. package/dist/lib/util/index.js.map +1 -1
  316. package/dist/migrations/20230615122909-fix-env-sort-order.d.ts +2 -0
  317. package/dist/migrations/20230615122909-fix-env-sort-order.js +28 -0
  318. package/dist/migrations/20230615122909-fix-env-sort-order.js.map +1 -0
  319. package/dist/migrations/20230619105029-new-fine-grained-api-token-permissions.d.ts +2 -0
  320. package/dist/migrations/20230619105029-new-fine-grained-api-token-permissions.js +26 -0
  321. package/dist/migrations/20230619105029-new-fine-grained-api-token-permissions.js.map +1 -0
  322. package/dist/migrations/20230619110243-assign-apitoken-permissions-to-rootroles.d.ts +2 -0
  323. package/dist/migrations/20230619110243-assign-apitoken-permissions-to-rootroles.js +23 -0
  324. package/dist/migrations/20230619110243-assign-apitoken-permissions-to-rootroles.js.map +1 -0
  325. package/dist/migrations/20230621141239-refactor-api-token-permissions.d.ts +2 -0
  326. package/dist/migrations/20230621141239-refactor-api-token-permissions.js +19 -0
  327. package/dist/migrations/20230621141239-refactor-api-token-permissions.js.map +1 -0
  328. package/dist/server-dev.js +3 -3
  329. package/dist/server-dev.js.map +1 -1
  330. package/dist/test/arbitraries.test.js +3 -1
  331. package/dist/test/arbitraries.test.js.map +1 -1
  332. package/dist/test/config/test-config.js +0 -1
  333. package/dist/test/config/test-config.js.map +1 -1
  334. package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js +542 -3
  335. package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js.map +1 -1
  336. package/dist/test/e2e/api/admin/api-token.e2e.test.js +14 -1
  337. package/dist/test/e2e/api/admin/api-token.e2e.test.js.map +1 -1
  338. package/dist/test/e2e/api/admin/client-metrics.e2e.test.js +1 -8
  339. package/dist/test/e2e/api/admin/client-metrics.e2e.test.js.map +1 -1
  340. package/dist/test/e2e/api/admin/context.e2e.test.js +47 -1
  341. package/dist/test/e2e/api/admin/context.e2e.test.js.map +1 -1
  342. package/dist/test/e2e/api/admin/project/features.e2e.test.js +14 -14
  343. package/dist/test/e2e/api/admin/project/features.e2e.test.js.map +1 -1
  344. package/dist/test/e2e/api/admin/project/projects.e2e.test.js +14 -0
  345. package/dist/test/e2e/api/admin/project/projects.e2e.test.js.map +1 -1
  346. package/dist/test/e2e/helpers/test-helper.d.ts +1 -1
  347. package/dist/test/e2e/helpers/test-helper.js +4 -2
  348. package/dist/test/e2e/helpers/test-helper.js.map +1 -1
  349. package/dist/test/e2e/services/access-service.e2e.test.js +1 -1
  350. package/dist/test/e2e/services/access-service.e2e.test.js.map +1 -1
  351. package/dist/test/e2e/services/playground-service.test.js +2 -2
  352. package/dist/test/e2e/services/playground-service.test.js.map +1 -1
  353. package/dist/test/fixtures/access-service-mock.js +1 -1
  354. package/dist/test/fixtures/access-service-mock.js.map +1 -1
  355. package/dist/test/fixtures/fake-access-store.d.ts +5 -3
  356. package/dist/test/fixtures/fake-access-store.js +24 -9
  357. package/dist/test/fixtures/fake-access-store.js.map +1 -1
  358. package/dist/test/fixtures/fake-environment-store.d.ts +1 -0
  359. package/dist/test/fixtures/fake-environment-store.js +3 -0
  360. package/dist/test/fixtures/fake-environment-store.js.map +1 -1
  361. package/dist/test/fixtures/fake-feature-strategies-store.d.ts +2 -0
  362. package/dist/test/fixtures/fake-feature-strategies-store.js +7 -0
  363. package/dist/test/fixtures/fake-feature-strategies-store.js.map +1 -1
  364. package/dist/test/fixtures/fake-group-store.d.ts +1 -1
  365. package/dist/test/fixtures/fake-group-store.js +1 -1
  366. package/dist/test/fixtures/fake-group-store.js.map +1 -1
  367. package/dist/test/fixtures/fake-role-store.d.ts +1 -1
  368. package/dist/test/fixtures/fake-role-store.js +9 -4
  369. package/dist/test/fixtures/fake-role-store.js.map +1 -1
  370. package/frontend/build/index.html +1 -1
  371. package/frontend/build/static/AdvancedPlayground-520a25e1.js +1 -0
  372. package/frontend/build/static/CreateProject-c430691b.js +4 -0
  373. package/frontend/build/static/{Error-5606eccd.js → Error-492e8b38.js} +1 -1
  374. package/frontend/build/static/FeatureArchiveDialog-70daa567.js +10 -0
  375. package/frontend/build/static/{FeatureMetricsChart-1c6bb078.js → FeatureMetricsChart-bc99b364.js} +2 -2
  376. package/frontend/build/static/FeatureViewLazyExport-01d70575.js +7 -0
  377. package/frontend/build/static/LazyAdminExport-e2c90193.js +37 -0
  378. package/frontend/build/static/LazyProjectExport-fa62d2fe.js +13 -0
  379. package/frontend/build/static/NetworkOverview-3b72e4ea.js +1298 -0
  380. package/frontend/build/static/NetworkTraffic-365db744.js +1 -0
  381. package/frontend/build/static/Playground-b473b399.js +1 -0
  382. package/frontend/build/static/{Playground-6602cb1a.js → PlaygroundGuidancePopper-8e3e97db.js} +12 -12
  383. package/frontend/build/static/RoleCell-9bb513a8.js +1 -0
  384. package/frontend/build/static/StrategyItemContainer-1f7503c7.js +1 -0
  385. package/frontend/build/static/{chartjs-adapter-date-fns.esm-c75aa905.js → chartjs-adapter-date-fns.esm-db338d44.js} +1 -1
  386. package/frontend/build/static/flowchart-elk-definition-170a3958-a428dd25.js +134 -0
  387. package/frontend/build/static/index-0a56292a.js +450 -0
  388. package/frontend/build/static/{index-b3def5eb.js → index-d362ae7a.js} +1 -1
  389. package/frontend/build/static/{index-f8439975.js → index-dc5debe9.js} +1 -1
  390. package/frontend/build/static/is_dark-884249e0.js +1 -0
  391. package/frontend/build/static/mindmap-definition-44684416-3c9425ff.js +101 -0
  392. package/frontend/build/static/stringify-ec884b6d.js +1 -0
  393. package/frontend/build/static/timeline-definition-8e5a9bc6-d289cd6d.js +62 -0
  394. package/frontend/build/static/{unknownify-6683037a.js → unknownify-5b23bf29.js} +1 -1
  395. package/frontend/package.json +18 -17
  396. package/package.json +16 -13
  397. package/dist/lib/routes/admin-api/playground.d.ts +0 -12
  398. package/dist/lib/routes/admin-api/playground.js +0 -46
  399. package/dist/lib/routes/admin-api/playground.js.map +0 -1
  400. package/dist/lib/routes/admin-api/playground.test.js.map +0 -1
  401. package/dist/lib/services/playground-service.d.ts +0 -12
  402. package/dist/lib/services/playground-service.js +0 -65
  403. package/dist/lib/services/playground-service.js.map +0 -1
  404. package/dist/lib/util/feature-evaluator/client.js.map +0 -1
  405. package/dist/lib/util/feature-evaluator/constraint.js.map +0 -1
  406. package/dist/lib/util/feature-evaluator/context.js.map +0 -1
  407. package/dist/lib/util/feature-evaluator/feature-evaluator.js.map +0 -1
  408. package/dist/lib/util/feature-evaluator/feature.js.map +0 -1
  409. package/dist/lib/util/feature-evaluator/helpers.js.map +0 -1
  410. package/dist/lib/util/feature-evaluator/index.js.map +0 -1
  411. package/dist/lib/util/feature-evaluator/repository/bootstrap-provider.js.map +0 -1
  412. package/dist/lib/util/feature-evaluator/repository/index.js.map +0 -1
  413. package/dist/lib/util/feature-evaluator/repository/storage-provider-in-mem.js.map +0 -1
  414. package/dist/lib/util/feature-evaluator/repository/storage-provider.js.map +0 -1
  415. package/dist/lib/util/feature-evaluator/strategy/application-hostname-strategy.js.map +0 -1
  416. package/dist/lib/util/feature-evaluator/strategy/default-strategy.js.map +0 -1
  417. package/dist/lib/util/feature-evaluator/strategy/flexible-rollout-strategy.js.map +0 -1
  418. package/dist/lib/util/feature-evaluator/strategy/gradual-rollout-random.js.map +0 -1
  419. package/dist/lib/util/feature-evaluator/strategy/gradual-rollout-session-id.js.map +0 -1
  420. package/dist/lib/util/feature-evaluator/strategy/gradual-rollout-user-id.js.map +0 -1
  421. package/dist/lib/util/feature-evaluator/strategy/index.js.map +0 -1
  422. package/dist/lib/util/feature-evaluator/strategy/remote-address-strategy.js.map +0 -1
  423. package/dist/lib/util/feature-evaluator/strategy/strategy.js.map +0 -1
  424. package/dist/lib/util/feature-evaluator/strategy/unknown-strategy.js.map +0 -1
  425. package/dist/lib/util/feature-evaluator/strategy/user-with-id-strategy.js.map +0 -1
  426. package/dist/lib/util/feature-evaluator/strategy/util.js.map +0 -1
  427. package/dist/lib/util/feature-evaluator/variant.js.map +0 -1
  428. package/dist/lib/util/offline-unleash-client.js.map +0 -1
  429. package/dist/lib/util/offline-unleash-client.test.js.map +0 -1
  430. package/frontend/build/static/CreateProject-217f67b6.js +0 -4
  431. package/frontend/build/static/FeatureArchiveDialog-c311c641.js +0 -4
  432. package/frontend/build/static/FeatureViewLazyExport-06cf4baa.js +0 -7
  433. package/frontend/build/static/LazyAdminExport-04c8032d.js +0 -43
  434. package/frontend/build/static/LazyProjectExport-d9663a8c.js +0 -19
  435. package/frontend/build/static/NetworkOverview-2bce4916.js +0 -1296
  436. package/frontend/build/static/NetworkTraffic-7db94d86.js +0 -1
  437. package/frontend/build/static/StrategyItemContainer-0140b94f.js +0 -1
  438. package/frontend/build/static/index-1f392976.js +0 -450
  439. package/frontend/build/static/useProjectRole-122ac4bb.js +0 -1
  440. package/frontend/build/static/v4-a960c1f4.js +0 -1
  441. /package/dist/lib/{routes/admin-api/playground.test.d.ts → db/feature-strategy-store.test.d.ts} +0 -0
  442. /package/dist/lib/{util → features/playground}/feature-evaluator/constraint.d.ts +0 -0
  443. /package/dist/lib/{util → features/playground}/feature-evaluator/constraint.js +0 -0
  444. /package/dist/lib/{util → features/playground}/feature-evaluator/context.d.ts +0 -0
  445. /package/dist/lib/{util → features/playground}/feature-evaluator/context.js +0 -0
  446. /package/dist/lib/{util → features/playground}/feature-evaluator/feature-evaluator.d.ts +0 -0
  447. /package/dist/lib/{util → features/playground}/feature-evaluator/feature-evaluator.js +0 -0
  448. /package/dist/lib/{util → features/playground}/feature-evaluator/feature.d.ts +0 -0
  449. /package/dist/lib/{util → features/playground}/feature-evaluator/feature.js +0 -0
  450. /package/dist/lib/{util → features/playground}/feature-evaluator/helpers.js +0 -0
  451. /package/dist/lib/{util → features/playground}/feature-evaluator/repository/bootstrap-provider.d.ts +0 -0
  452. /package/dist/lib/{util → features/playground}/feature-evaluator/repository/bootstrap-provider.js +0 -0
  453. /package/dist/lib/{util → features/playground}/feature-evaluator/repository/index.d.ts +0 -0
  454. /package/dist/lib/{util → features/playground}/feature-evaluator/repository/index.js +0 -0
  455. /package/dist/lib/{util → features/playground}/feature-evaluator/repository/storage-provider-in-mem.d.ts +0 -0
  456. /package/dist/lib/{util → features/playground}/feature-evaluator/repository/storage-provider-in-mem.js +0 -0
  457. /package/dist/lib/{util → features/playground}/feature-evaluator/repository/storage-provider.d.ts +0 -0
  458. /package/dist/lib/{util → features/playground}/feature-evaluator/repository/storage-provider.js +0 -0
  459. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/application-hostname-strategy.d.ts +0 -0
  460. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/application-hostname-strategy.js +0 -0
  461. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/default-strategy.d.ts +0 -0
  462. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/default-strategy.js +0 -0
  463. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/flexible-rollout-strategy.d.ts +0 -0
  464. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/flexible-rollout-strategy.js +0 -0
  465. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-random.d.ts +0 -0
  466. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-random.js +0 -0
  467. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-session-id.d.ts +0 -0
  468. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-session-id.js +0 -0
  469. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-user-id.d.ts +0 -0
  470. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-user-id.js +0 -0
  471. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/index.d.ts +0 -0
  472. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/index.js +0 -0
  473. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/remote-address-strategy.d.ts +0 -0
  474. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/remote-address-strategy.js +0 -0
  475. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/strategy.d.ts +0 -0
  476. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/strategy.js +0 -0
  477. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/unknown-strategy.d.ts +0 -0
  478. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/user-with-id-strategy.d.ts +0 -0
  479. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/user-with-id-strategy.js +0 -0
  480. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/util.d.ts +0 -0
  481. /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/util.js +0 -0
  482. /package/dist/lib/{util → features/playground}/feature-evaluator/variant.d.ts +0 -0
  483. /package/dist/lib/{util → features/playground}/feature-evaluator/variant.js +0 -0
  484. /package/dist/lib/{util → features/playground}/offline-unleash-client.d.ts +0 -0
  485. /package/dist/lib/{util → features/playground}/offline-unleash-client.test.d.ts +0 -0
@@ -11,23 +11,34 @@ export declare const variantsSchema: {
11
11
  readonly $id: "#/components/schemas/variantSchema";
12
12
  readonly type: "object";
13
13
  readonly additionalProperties: false;
14
+ readonly description: "A variant allows for further separation of users into segments. See [our excellent documentation](https://docs.getunleash.io/reference/feature-toggle-variants#what-are-variants) for a more detailed description";
14
15
  readonly required: readonly ["name", "weight"];
15
16
  readonly properties: {
16
17
  readonly name: {
17
18
  readonly type: "string";
19
+ readonly description: "The variants name. Is unique for this feature toggle";
20
+ readonly example: "blue_group";
18
21
  };
19
22
  readonly weight: {
20
23
  readonly type: "number";
24
+ readonly description: "The weight is the likelihood of any one user getting this variant. It is a number between 0 and 1000. See the section on [variant weights](https://docs.getunleash.io/reference/feature-toggle-variants#variant-weight) for more information";
25
+ readonly minimum: 0;
26
+ readonly maximum: 1000;
21
27
  };
22
28
  readonly weightType: {
29
+ readonly description: "Set to fix if this variant must have exactly the weight allocated to it. If the type is variable, the weight will adjust so that the total weight of all variants adds up to 1000";
23
30
  readonly type: "string";
31
+ readonly example: "fix";
24
32
  };
25
33
  readonly stickiness: {
26
34
  readonly type: "string";
35
+ readonly description: "[Stickiness](https://docs.getunleash.io/reference/feature-toggle-variants#variant-stickiness) is how Unleash guarantees that the same user gets the same variant every time";
36
+ readonly example: "custom.context.field";
27
37
  };
28
38
  readonly payload: {
29
39
  readonly type: "object";
30
40
  readonly required: readonly ["type", "value"];
41
+ readonly description: "Extra data configured for this variant";
31
42
  readonly properties: {
32
43
  readonly type: {
33
44
  readonly type: "string";
@@ -36,8 +47,13 @@ export declare const variantsSchema: {
36
47
  readonly type: "string";
37
48
  };
38
49
  };
50
+ readonly example: {
51
+ readonly type: "json";
52
+ readonly value: "{color: red}";
53
+ };
39
54
  };
40
55
  readonly overrides: {
56
+ readonly description: "Overrides assigning specific variants to specific users. The weighting system automatically assigns users to specific groups for you, but any overrides in this list will take precedence.";
41
57
  readonly type: "array";
42
58
  readonly items: {
43
59
  readonly $ref: "#/components/schemas/overrideSchema";
@@ -51,15 +67,20 @@ export declare const variantsSchema: {
51
67
  readonly type: "object";
52
68
  readonly additionalProperties: false;
53
69
  readonly required: readonly ["contextName", "values"];
70
+ readonly description: "An override for deciding which variant should be assigned to a user based on the context name";
54
71
  readonly properties: {
55
72
  readonly contextName: {
73
+ readonly description: "The name of the context field used to determine overrides";
56
74
  readonly type: "string";
75
+ readonly example: "userId";
57
76
  };
58
77
  readonly values: {
78
+ readonly description: "Which values that should be overriden";
59
79
  readonly type: "array";
60
80
  readonly items: {
61
81
  readonly type: "string";
62
82
  };
83
+ readonly example: readonly ["red", "blue"];
63
84
  };
64
85
  };
65
86
  readonly components: {};
@@ -72,15 +93,20 @@ export declare const variantsSchema: {
72
93
  readonly type: "object";
73
94
  readonly additionalProperties: false;
74
95
  readonly required: readonly ["contextName", "values"];
96
+ readonly description: "An override for deciding which variant should be assigned to a user based on the context name";
75
97
  readonly properties: {
76
98
  readonly contextName: {
99
+ readonly description: "The name of the context field used to determine overrides";
77
100
  readonly type: "string";
101
+ readonly example: "userId";
78
102
  };
79
103
  readonly values: {
104
+ readonly description: "Which values that should be overriden";
80
105
  readonly type: "array";
81
106
  readonly items: {
82
107
  readonly type: "string";
83
108
  };
109
+ readonly example: readonly ["red", "blue"];
84
110
  };
85
111
  };
86
112
  readonly components: {};
@@ -5,4 +5,5 @@ export declare const createResponseSchemas: (description: string, content: {
5
5
  export declare const schemaNamed: (schemaName: string) => OpenAPIV3.MediaTypeObject;
6
6
  export declare const schemaTyped: (type: OpenAPIV3.NonArraySchemaObjectType) => OpenAPIV3.MediaTypeObject;
7
7
  export declare const createResponseSchema: (schemaName: string) => OpenAPIV3.ResponseObject;
8
+ export declare const createCsvResponseSchema: (schemaName: string, example: string) => OpenAPIV3.ResponseObject;
8
9
  export declare const resourceCreatedResponseSchema: (schemaName: string) => OpenAPIV3.ResponseObject;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resourceCreatedResponseSchema = exports.createResponseSchema = exports.schemaTyped = exports.schemaNamed = exports.createResponseSchemas = void 0;
3
+ exports.resourceCreatedResponseSchema = exports.createCsvResponseSchema = exports.createResponseSchema = exports.schemaTyped = exports.schemaNamed = exports.createResponseSchemas = void 0;
4
4
  const createResponseSchemas = (description, content) => {
5
5
  return {
6
6
  description,
@@ -30,6 +30,12 @@ const createResponseSchema = (schemaName) => {
30
30
  });
31
31
  };
32
32
  exports.createResponseSchema = createResponseSchema;
33
+ const createCsvResponseSchema = (schemaName, example) => {
34
+ return (0, exports.createResponseSchemas)(schemaName, {
35
+ 'text/csv': { example, ...(0, exports.schemaTyped)('string') },
36
+ });
37
+ };
38
+ exports.createCsvResponseSchema = createCsvResponseSchema;
33
39
  const resourceCreatedResponseSchema = (schemaName) => {
34
40
  return {
35
41
  headers: {
@@ -1 +1 @@
1
- {"version":3,"file":"create-response-schema.js","sourceRoot":"","sources":["../../../../src/lib/openapi/util/create-response-schema.ts"],"names":[],"mappings":";;;AAEO,MAAM,qBAAqB,GAAG,CACjC,WAAmB,EACnB,OAAuD,EAC/B,EAAE;IAC1B,OAAO;QACH,WAAW;QACX,OAAO,EAAE,OAAO;KACnB,CAAC;AACN,CAAC,CAAC;AARW,QAAA,qBAAqB,yBAQhC;AAEK,MAAM,WAAW,GAAG,CAAC,UAAkB,EAA6B,EAAE;IACzE,OAAO;QACH,MAAM,EAAE;YACJ,IAAI,EAAE,wBAAwB,UAAU,EAAE;SAC7C;KACJ,CAAC;AACN,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB;AAEK,MAAM,WAAW,GAAG,CACvB,IAAwC,EACf,EAAE;IAC3B,OAAO;QACH,MAAM,EAAE;YACJ,IAAI;SACP;KACJ,CAAC;AACN,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB;AAEK,MAAM,oBAAoB,GAAG,CAChC,UAAkB,EACM,EAAE;IAC1B,OAAO,IAAA,6BAAqB,EAAC,UAAU,EAAE;QACrC,kBAAkB,EAAE,IAAA,mBAAW,EAAC,UAAU,CAAC;KAC9C,CAAC,CAAC;AACP,CAAC,CAAC;AANW,QAAA,oBAAoB,wBAM/B;AAEK,MAAM,6BAA6B,GAAG,CACzC,UAAkB,EACM,EAAE;IAC1B,OAAO;QACH,OAAO,EAAE;YACL,QAAQ,EAAE;gBACN,WAAW,EAAE,6CAA6C;gBAC1D,MAAM,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,KAAK;iBAChB;aACJ;SACJ;QACD,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE;YACL,kBAAkB,EAAE;gBAChB,MAAM,EAAE;oBACJ,IAAI,EAAE,wBAAwB,UAAU,EAAE;iBAC7C;aACJ;SACJ;KACJ,CAAC;AACN,CAAC,CAAC;AAtBW,QAAA,6BAA6B,iCAsBxC"}
1
+ {"version":3,"file":"create-response-schema.js","sourceRoot":"","sources":["../../../../src/lib/openapi/util/create-response-schema.ts"],"names":[],"mappings":";;;AAEO,MAAM,qBAAqB,GAAG,CACjC,WAAmB,EACnB,OAAuD,EAC/B,EAAE;IAC1B,OAAO;QACH,WAAW;QACX,OAAO,EAAE,OAAO;KACnB,CAAC;AACN,CAAC,CAAC;AARW,QAAA,qBAAqB,yBAQhC;AAEK,MAAM,WAAW,GAAG,CAAC,UAAkB,EAA6B,EAAE;IACzE,OAAO;QACH,MAAM,EAAE;YACJ,IAAI,EAAE,wBAAwB,UAAU,EAAE;SAC7C;KACJ,CAAC;AACN,CAAC,CAAC;AANW,QAAA,WAAW,eAMtB;AAEK,MAAM,WAAW,GAAG,CACvB,IAAwC,EACf,EAAE;IAC3B,OAAO;QACH,MAAM,EAAE;YACJ,IAAI;SACP;KACJ,CAAC;AACN,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB;AAEK,MAAM,oBAAoB,GAAG,CAChC,UAAkB,EACM,EAAE;IAC1B,OAAO,IAAA,6BAAqB,EAAC,UAAU,EAAE;QACrC,kBAAkB,EAAE,IAAA,mBAAW,EAAC,UAAU,CAAC;KAC9C,CAAC,CAAC;AACP,CAAC,CAAC;AANW,QAAA,oBAAoB,wBAM/B;AAEK,MAAM,uBAAuB,GAAG,CACnC,UAAkB,EAClB,OAAe,EACS,EAAE;IAC1B,OAAO,IAAA,6BAAqB,EAAC,UAAU,EAAE;QACrC,UAAU,EAAE,EAAE,OAAO,EAAE,GAAG,IAAA,mBAAW,EAAC,QAAQ,CAAC,EAAE;KACpD,CAAC,CAAC;AACP,CAAC,CAAC;AAPW,QAAA,uBAAuB,2BAOlC;AAEK,MAAM,6BAA6B,GAAG,CACzC,UAAkB,EACM,EAAE;IAC1B,OAAO;QACH,OAAO,EAAE;YACL,QAAQ,EAAE;gBACN,WAAW,EAAE,6CAA6C;gBAC1D,MAAM,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE,KAAK;iBAChB;aACJ;SACJ;QACD,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE;YACL,kBAAkB,EAAE;gBAChB,MAAM,EAAE;oBACJ,IAAI,EAAE,wBAAwB,UAAU,EAAE;iBAC7C;aACJ;SACJ;KACJ,CAAC;AACN,CAAC,CAAC;AAtBW,QAAA,6BAA6B,iCAsBxC"}
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ProxyRepository = void 0;
7
7
  const events_1 = __importDefault(require("events"));
8
- const offline_unleash_client_1 = require("../util/offline-unleash-client");
8
+ const offline_unleash_client_1 = require("../features/playground/offline-unleash-client");
9
9
  const constants_1 = require("../util/constants");
10
10
  const unleash_client_1 = require("unleash-client");
11
11
  const configuration_revision_service_1 = require("../features/feature-toggle/configuration-revision-service");
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-repository.js","sourceRoot":"","sources":["../../../src/lib/proxy/proxy-repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy-repository.js","sourceRoot":"","sources":["../../../src/lib/proxy/proxy-repository.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { Response } from 'express';
2
2
  import Controller from '../controller';
3
3
  import { IAuthRequest } from '../unleash-types';
4
4
  import { IUnleashConfig } from '../../types/option';
5
+ import { ApiTokenType } from '../../types/models/api-token';
5
6
  import { IUnleashServices } from '../../types';
6
7
  import { ApiTokensSchema } from '../../openapi/spec/api-tokens-schema';
7
8
  import { ApiTokenSchema } from '../../openapi/spec/api-token-schema';
@@ -9,6 +10,7 @@ import { UpdateApiTokenSchema } from '../../openapi/spec/update-api-token-schema
9
10
  interface TokenParam {
10
11
  token: string;
11
12
  }
13
+ export declare const tokenTypeToCreatePermission: (tokenType: ApiTokenType) => string;
12
14
  export declare class ApiTokenController extends Controller {
13
15
  private apiTokenService;
14
16
  private accessService;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ApiTokenController = void 0;
6
+ exports.ApiTokenController = exports.tokenTypeToCreatePermission = void 0;
7
7
  const controller_1 = __importDefault(require("../controller"));
8
8
  const permissions_1 = require("../../types/permissions");
9
9
  const api_token_1 = require("../../types/models/api-token");
@@ -15,6 +15,62 @@ const serialize_dates_1 = require("../../types/serialize-dates");
15
15
  const api_token_schema_2 = require("../../openapi/spec/api-token-schema");
16
16
  const standard_responses_1 = require("../../openapi/util/standard-responses");
17
17
  const util_1 = require("../../util");
18
+ const error_1 = require("../../error");
19
+ const tokenTypeToCreatePermission = (tokenType) => {
20
+ switch (tokenType) {
21
+ case api_token_1.ApiTokenType.ADMIN:
22
+ return permissions_1.ADMIN;
23
+ case api_token_1.ApiTokenType.CLIENT:
24
+ return permissions_1.CREATE_CLIENT_API_TOKEN;
25
+ case api_token_1.ApiTokenType.FRONTEND:
26
+ return permissions_1.CREATE_FRONTEND_API_TOKEN;
27
+ }
28
+ };
29
+ exports.tokenTypeToCreatePermission = tokenTypeToCreatePermission;
30
+ const permissionToTokenType = (permission) => {
31
+ if ([
32
+ permissions_1.CREATE_FRONTEND_API_TOKEN,
33
+ permissions_1.READ_FRONTEND_API_TOKEN,
34
+ permissions_1.DELETE_FRONTEND_API_TOKEN,
35
+ permissions_1.UPDATE_FRONTEND_API_TOKEN,
36
+ ].includes(permission)) {
37
+ return api_token_1.ApiTokenType.FRONTEND;
38
+ }
39
+ else if ([
40
+ permissions_1.CREATE_CLIENT_API_TOKEN,
41
+ permissions_1.READ_CLIENT_API_TOKEN,
42
+ permissions_1.DELETE_CLIENT_API_TOKEN,
43
+ permissions_1.UPDATE_CLIENT_API_TOKEN,
44
+ ].includes(permission)) {
45
+ return api_token_1.ApiTokenType.CLIENT;
46
+ }
47
+ else if (permissions_1.ADMIN === permission) {
48
+ return api_token_1.ApiTokenType.ADMIN;
49
+ }
50
+ else {
51
+ return undefined;
52
+ }
53
+ };
54
+ const tokenTypeToUpdatePermission = (tokenType) => {
55
+ switch (tokenType) {
56
+ case api_token_1.ApiTokenType.ADMIN:
57
+ return permissions_1.ADMIN;
58
+ case api_token_1.ApiTokenType.CLIENT:
59
+ return permissions_1.UPDATE_CLIENT_API_TOKEN;
60
+ case api_token_1.ApiTokenType.FRONTEND:
61
+ return permissions_1.UPDATE_FRONTEND_API_TOKEN;
62
+ }
63
+ };
64
+ const tokenTypeToDeletePermission = (tokenType) => {
65
+ switch (tokenType) {
66
+ case api_token_1.ApiTokenType.ADMIN:
67
+ return permissions_1.ADMIN;
68
+ case api_token_1.ApiTokenType.CLIENT:
69
+ return permissions_1.DELETE_CLIENT_API_TOKEN;
70
+ case api_token_1.ApiTokenType.FRONTEND:
71
+ return permissions_1.DELETE_FRONTEND_API_TOKEN;
72
+ }
73
+ };
18
74
  class ApiTokenController extends controller_1.default {
19
75
  constructor(config, { apiTokenService, accessService, proxyService, openApiService, }) {
20
76
  super(config);
@@ -27,7 +83,7 @@ class ApiTokenController extends controller_1.default {
27
83
  method: 'get',
28
84
  path: '',
29
85
  handler: this.getAllApiTokens,
30
- permission: permissions_1.READ_API_TOKEN,
86
+ permission: [permissions_1.ADMIN, permissions_1.READ_CLIENT_API_TOKEN, permissions_1.READ_FRONTEND_API_TOKEN],
31
87
  middleware: [
32
88
  openApiService.validPath({
33
89
  tags: ['API tokens'],
@@ -42,7 +98,11 @@ class ApiTokenController extends controller_1.default {
42
98
  method: 'post',
43
99
  path: '',
44
100
  handler: this.createApiToken,
45
- permission: permissions_1.CREATE_API_TOKEN,
101
+ permission: [
102
+ permissions_1.ADMIN,
103
+ permissions_1.CREATE_CLIENT_API_TOKEN,
104
+ permissions_1.CREATE_FRONTEND_API_TOKEN,
105
+ ],
46
106
  middleware: [
47
107
  openApiService.validPath({
48
108
  tags: ['API tokens'],
@@ -58,7 +118,11 @@ class ApiTokenController extends controller_1.default {
58
118
  method: 'put',
59
119
  path: '/:token',
60
120
  handler: this.updateApiToken,
61
- permission: permissions_1.UPDATE_API_TOKEN,
121
+ permission: [
122
+ permissions_1.ADMIN,
123
+ permissions_1.UPDATE_CLIENT_API_TOKEN,
124
+ permissions_1.UPDATE_FRONTEND_API_TOKEN,
125
+ ],
62
126
  middleware: [
63
127
  openApiService.validPath({
64
128
  tags: ['API tokens'],
@@ -75,7 +139,11 @@ class ApiTokenController extends controller_1.default {
75
139
  path: '/:token',
76
140
  handler: this.deleteApiToken,
77
141
  acceptAnyContentType: true,
78
- permission: permissions_1.DELETE_API_TOKEN,
142
+ permission: [
143
+ permissions_1.ADMIN,
144
+ permissions_1.DELETE_CLIENT_API_TOKEN,
145
+ permissions_1.DELETE_FRONTEND_API_TOKEN,
146
+ ],
79
147
  middleware: [
80
148
  openApiService.validPath({
81
149
  tags: ['API tokens'],
@@ -94,8 +162,15 @@ class ApiTokenController extends controller_1.default {
94
162
  }
95
163
  async createApiToken(req, res) {
96
164
  const createToken = await api_token_schema_1.createApiToken.validateAsync(req.body);
97
- const token = await this.apiTokenService.createApiToken(createToken, (0, util_1.extractUsername)(req));
98
- this.openApiService.respondWithValidation(201, res, api_token_schema_2.apiTokenSchema.$id, (0, serialize_dates_1.serializeDates)(token), { location: `api-tokens` });
165
+ const permissionRequired = (0, exports.tokenTypeToCreatePermission)(createToken.type);
166
+ const hasPermission = await this.accessService.hasPermission(req.user, permissionRequired);
167
+ if (hasPermission) {
168
+ const token = await this.apiTokenService.createApiToken(createToken, (0, util_1.extractUsername)(req));
169
+ this.openApiService.respondWithValidation(201, res, api_token_schema_2.apiTokenSchema.$id, (0, serialize_dates_1.serializeDates)(token), { location: `api-tokens` });
170
+ }
171
+ else {
172
+ throw new error_1.OperationDeniedError(`You don't have the necessary access [${permissionRequired}] to perform this operation`);
173
+ }
99
174
  }
100
175
  async updateApiToken(req, res) {
101
176
  const { token } = req.params;
@@ -104,11 +179,39 @@ class ApiTokenController extends controller_1.default {
104
179
  this.logger.error(req.body);
105
180
  return res.status(400).send();
106
181
  }
182
+ let tokenToUpdate;
183
+ try {
184
+ tokenToUpdate = await this.apiTokenService.getToken(token);
185
+ }
186
+ catch (error) { }
187
+ if (!tokenToUpdate) {
188
+ res.status(200).end();
189
+ return;
190
+ }
191
+ const permissionRequired = tokenTypeToUpdatePermission(tokenToUpdate.type);
192
+ const hasPermission = await this.accessService.hasPermission(req.user, permissionRequired);
193
+ if (!hasPermission) {
194
+ throw new error_1.OperationDeniedError(`You do not have the required access [${permissionRequired}] to perform this operation`);
195
+ }
107
196
  await this.apiTokenService.updateExpiry(token, new Date(expiresAt), (0, util_1.extractUsername)(req));
108
197
  return res.status(200).end();
109
198
  }
110
199
  async deleteApiToken(req, res) {
111
200
  const { token } = req.params;
201
+ let tokenToUpdate;
202
+ try {
203
+ tokenToUpdate = await this.apiTokenService.getToken(token);
204
+ }
205
+ catch (error) { }
206
+ if (!tokenToUpdate) {
207
+ res.status(200).end();
208
+ return;
209
+ }
210
+ const permissionRequired = tokenTypeToDeletePermission(tokenToUpdate.type);
211
+ let hasPermission = await this.accessService.hasPermission(req.user, permissionRequired);
212
+ if (!hasPermission) {
213
+ throw new error_1.OperationDeniedError(`You do not have the required access [${permissionRequired}] to perform this operation`);
214
+ }
112
215
  await this.apiTokenService.delete(token, (0, util_1.extractUsername)(req));
113
216
  await this.proxyService.deleteClientForProxyToken(token);
114
217
  res.status(200).end();
@@ -118,10 +221,16 @@ class ApiTokenController extends controller_1.default {
118
221
  if (user.isAPI && user.permissions.includes(permissions_1.ADMIN)) {
119
222
  return allTokens;
120
223
  }
121
- if (await this.accessService.hasPermission(user, permissions_1.UPDATE_API_TOKEN)) {
122
- return allTokens;
123
- }
124
- return allTokens.filter((token) => token.type !== api_token_1.ApiTokenType.ADMIN);
224
+ const userPermissions = await this.accessService.getPermissionsForUser(user);
225
+ const allowedTokenTypes = [
226
+ permissions_1.ADMIN,
227
+ permissions_1.READ_CLIENT_API_TOKEN,
228
+ permissions_1.READ_FRONTEND_API_TOKEN,
229
+ ]
230
+ .filter((readPerm) => userPermissions.some((p) => p.permission === readPerm || p.permission === permissions_1.ADMIN))
231
+ .map(permissionToTokenType)
232
+ .filter((t) => t);
233
+ return allTokens.filter((token) => allowedTokenTypes.includes(token.type));
125
234
  }
126
235
  }
127
236
  exports.ApiTokenController = ApiTokenController;
@@ -1 +1 @@
1
- {"version":3,"file":"api-token.js","sourceRoot":"","sources":["../../../../src/lib/routes/admin-api/api-token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-token.js","sourceRoot":"","sources":["../../../../src/lib/routes/admin-api/api-token.ts"],"names":[],"mappings":"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"}
@@ -21,5 +21,8 @@ export declare class ContextController extends Controller {
21
21
  updateContextField(req: IAuthRequest<ContextParam, void, UpsertContextFieldSchema>, res: Response): Promise<void>;
22
22
  deleteContextField(req: IAuthRequest<ContextParam>, res: Response): Promise<void>;
23
23
  validate(req: Request<void, void, NameSchema>, res: Response): Promise<void>;
24
+ getStrategiesByContextField(req: IAuthRequest<{
25
+ contextField: string;
26
+ }>, res: Response): Promise<void>;
24
27
  }
25
28
  export {};
@@ -13,6 +13,7 @@ const create_response_schema_1 = require("../../openapi/util/create-response-sch
13
13
  const serialize_dates_1 = require("../../types/serialize-dates");
14
14
  const notfound_error_1 = __importDefault(require("../../error/notfound-error"));
15
15
  const standard_responses_1 = require("../../openapi/util/standard-responses");
16
+ const context_field_strategies_schema_1 = require("../../openapi/spec/context-field-strategies-schema");
16
17
  class ContextController extends controller_1.default {
17
18
  constructor(config, { contextService, openApiService, }) {
18
19
  super(config);
@@ -49,6 +50,21 @@ class ContextController extends controller_1.default {
49
50
  }),
50
51
  ],
51
52
  });
53
+ this.route({
54
+ method: 'get',
55
+ path: '/:contextField/strategies',
56
+ handler: this.getStrategiesByContextField,
57
+ permission: permissions_1.NONE,
58
+ middleware: [
59
+ openApiService.validPath({
60
+ tags: ['Strategies'],
61
+ operationId: 'getStrategiesByContextField',
62
+ responses: {
63
+ 200: (0, create_response_schema_1.createResponseSchema)('contextFieldStrategiesSchema'),
64
+ },
65
+ }),
66
+ ],
67
+ });
52
68
  this.route({
53
69
  method: 'post',
54
70
  path: '',
@@ -157,6 +173,11 @@ class ContextController extends controller_1.default {
157
173
  await this.contextService.validateName(name);
158
174
  res.status(200).end();
159
175
  }
176
+ async getStrategiesByContextField(req, res) {
177
+ const { contextField } = req.params;
178
+ const contextFields = await this.contextService.getStrategiesByContextField(contextField);
179
+ this.openApiService.respondWithValidation(200, res, context_field_strategies_schema_1.contextFieldStrategiesSchema.$id, (0, serialize_dates_1.serializeDates)(contextFields));
180
+ }
160
181
  }
161
182
  exports.ContextController = ContextController;
162
183
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/lib/routes/admin-api/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/lib/routes/admin-api/context.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ const feature_type_1 = require("./feature-type");
9
9
  const archive_1 = __importDefault(require("./archive"));
10
10
  const strategy_1 = __importDefault(require("./strategy"));
11
11
  const event_1 = __importDefault(require("./event"));
12
- const playground_1 = __importDefault(require("./playground"));
12
+ const playground_1 = __importDefault(require("../../features/playground/playground"));
13
13
  const metrics_1 = __importDefault(require("./metrics"));
14
14
  const user_1 = __importDefault(require("./user/user"));
15
15
  const config_1 = __importDefault(require("./config"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/routes/admin-api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/routes/admin-api/index.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,13 @@ import { IUnleashServices } from '../../types/services';
4
4
  import { IUnleashConfig } from '../../types/option';
5
5
  import Controller from '../controller';
6
6
  import { UiConfigSchema } from '../../openapi/spec/ui-config-schema';
7
- import { InstanceStats } from '../../services/instance-stats-service';
7
+ import { InstanceStats, InstanceStatsSigned } from '../../services/instance-stats-service';
8
8
  declare class InstanceAdminController extends Controller {
9
9
  private instanceStatsService;
10
10
  private openApiService;
11
+ private jsonCsvParser;
11
12
  constructor(config: IUnleashConfig, { instanceStatsService, openApiService, }: Pick<IUnleashServices, 'instanceStatsService' | 'openApiService'>);
13
+ instanceStatsExample(): InstanceStatsSigned;
12
14
  getStatistics(req: AuthedRequest, res: Response<InstanceStats>): Promise<void>;
13
15
  getStatisticsCSV(req: AuthedRequest, res: Response<UiConfigSchema>): Promise<void>;
14
16
  }
@@ -10,6 +10,7 @@ const create_response_schema_1 = require("../../openapi/util/create-response-sch
10
10
  class InstanceAdminController extends controller_1.default {
11
11
  constructor(config, { instanceStatsService, openApiService, }) {
12
12
  super(config);
13
+ this.jsonCsvParser = new json2csv_1.Parser();
13
14
  this.openApiService = openApiService;
14
15
  this.instanceStatsService = instanceStatsService;
15
16
  this.route({
@@ -17,6 +18,17 @@ class InstanceAdminController extends controller_1.default {
17
18
  path: '/statistics/csv',
18
19
  handler: this.getStatisticsCSV,
19
20
  permission: permissions_1.NONE,
21
+ middleware: [
22
+ openApiService.validPath({
23
+ tags: ['Instance Admin'],
24
+ summary: 'Instance usage statistics',
25
+ description: 'Provides statistics about various features of Unleash to allow for reporting of usage for self-hosted customers. The response contains data such as the number of users, groups, features, strategies, versions, etc.',
26
+ operationId: 'getInstanceAdminStatsCsv',
27
+ responses: {
28
+ 200: (0, create_response_schema_1.createCsvResponseSchema)('instanceAdminStatsSchemaCsv', this.jsonCsvParser.parse(this.instanceStatsExample())),
29
+ },
30
+ }),
31
+ ],
20
32
  });
21
33
  this.route({
22
34
  method: 'get',
@@ -27,6 +39,8 @@ class InstanceAdminController extends controller_1.default {
27
39
  openApiService.validPath({
28
40
  tags: ['Instance Admin'],
29
41
  operationId: 'getInstanceAdminStats',
42
+ summary: 'Instance usage statistics',
43
+ description: 'Provides statistics about various features of Unleash to allow for reporting of usage for self-hosted customers. The response contains data such as the number of users, groups, features, strategies, versions, etc.',
30
44
  responses: {
31
45
  200: (0, create_response_schema_1.createResponseSchema)('instanceAdminStatsSchema'),
32
46
  },
@@ -35,6 +49,33 @@ class InstanceAdminController extends controller_1.default {
35
49
  ],
36
50
  });
37
51
  }
52
+ instanceStatsExample() {
53
+ return {
54
+ OIDCenabled: true,
55
+ SAMLenabled: false,
56
+ clientApps: [
57
+ { range: 'allTime', count: 15 },
58
+ { range: '30d', count: 9 },
59
+ { range: '7d', count: 5 },
60
+ ],
61
+ contextFields: 6,
62
+ environments: 2,
63
+ featureExports: 0,
64
+ featureImports: 0,
65
+ featureToggles: 29,
66
+ groups: 3,
67
+ instanceId: 'ed3861ae-78f9-4e8c-8e57-b57efc15f82b',
68
+ projects: 1,
69
+ roles: 5,
70
+ segments: 2,
71
+ strategies: 8,
72
+ sum: 'some-sha256-hash',
73
+ timestamp: new Date(2023, 6, 12, 10, 0, 0, 0),
74
+ users: 10,
75
+ versionEnterprise: '5.1.7',
76
+ versionOSS: '5.1.7',
77
+ };
78
+ }
38
79
  async getStatistics(req, res) {
39
80
  const instanceStats = await this.instanceStatsService.getSignedStats();
40
81
  res.json(instanceStats);
@@ -1 +1 @@
1
- {"version":3,"file":"instance-admin.js","sourceRoot":"","sources":["../../../../src/lib/routes/admin-api/instance-admin.ts"],"names":[],"mappings":";;;;;AAAA,uCAAkC;AAKlC,+DAAuC;AACvC,yDAA+C;AAO/C,sFAAiF;AAEjF,MAAM,uBAAwB,SAAQ,oBAAU;IAK5C,YACI,MAAsB,EACtB,EACI,oBAAoB,EACpB,cAAc,GACkD;QAEpE,KAAK,CAAC,MAAM,CAAC,CAAC;QAEd,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAEjD,IAAI,CAAC,KAAK,CAAC;YACP,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,IAAI,CAAC,gBAAgB;YAC9B,UAAU,EAAE,kBAAI;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC;YACP,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,IAAI,CAAC,aAAa;YAC3B,UAAU,EAAE,kBAAI;YAChB,UAAU,EAAE;gBACR,cAAc,CAAC,SAAS,CAAC;oBACrB,IAAI,EAAE,CAAC,gBAAgB,CAAC;oBACxB,WAAW,EAAE,uBAAuB;oBACpC,SAAS,EAAE;wBACP,GAAG,EAAE,IAAA,6CAAoB,EAAC,0BAA0B,CAAC;qBACxD;oBACD,UAAU,EAAE,IAAI;iBACnB,CAAC;aACL;SACJ,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,aAAa,CACf,GAAkB,EAClB,GAA4B;QAE5B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,CAAC;QACvE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,gBAAgB,CAClB,GAAkB,EAClB,GAA6B;QAE7B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,CAAC;QACvE,MAAM,QAAQ,GAAG,WACb,aAAa,CAAC,UAClB,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;QAErB,MAAM,cAAc,GAAG,IAAI,iBAAM,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAEhD,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACvB,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;CACJ;AAED,kBAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"instance-admin.js","sourceRoot":"","sources":["../../../../src/lib/routes/admin-api/instance-admin.ts"],"names":[],"mappings":"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"}
@@ -75,6 +75,18 @@ test('should store application', () => {
75
75
  .send({ appName, strategies: ['default'] })
76
76
  .expect(202);
77
77
  });
78
+ test('should store application coming from edit application form', () => {
79
+ expect.assertions(0);
80
+ const appName = '123!23';
81
+ return request
82
+ .post(`/api/admin/metrics/applications/${appName}`)
83
+ .send({
84
+ url: 'http://test.com',
85
+ description: 'This is an optional description',
86
+ icon: 'arrow-down',
87
+ })
88
+ .expect(202);
89
+ });
78
90
  test('should store application details without strategies', () => {
79
91
  expect.assertions(0);
80
92
  const appName = '123!23';