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.
- package/dist/lib/create-config.js +5 -2
- package/dist/lib/create-config.js.map +1 -1
- package/dist/lib/db/access-store.d.ts +2 -1
- package/dist/lib/db/access-store.js +17 -3
- package/dist/lib/db/access-store.js.map +1 -1
- package/dist/lib/db/client-metrics-store-v2.js +19 -30
- package/dist/lib/db/client-metrics-store-v2.js.map +1 -1
- package/dist/lib/db/context-field-store.d.ts +4 -1
- package/dist/lib/db/context-field-store.js +44 -14
- package/dist/lib/db/context-field-store.js.map +1 -1
- package/dist/lib/db/environment-store.d.ts +1 -0
- package/dist/lib/db/environment-store.js +6 -0
- package/dist/lib/db/environment-store.js.map +1 -1
- package/dist/lib/db/event-store.js +2 -1
- package/dist/lib/db/event-store.js.map +1 -1
- package/dist/lib/db/feature-strategy-store.d.ts +2 -0
- package/dist/lib/db/feature-strategy-store.js +25 -0
- package/dist/lib/db/feature-strategy-store.js.map +1 -1
- package/dist/lib/db/feature-strategy-store.test.js +75 -0
- package/dist/lib/db/feature-strategy-store.test.js.map +1 -0
- package/dist/lib/db/group-store.d.ts +1 -1
- package/dist/lib/db/group-store.js +2 -2
- package/dist/lib/db/group-store.js.map +1 -1
- package/dist/lib/db/index.js +2 -2
- package/dist/lib/db/index.js.map +1 -1
- package/dist/lib/db/project-store.js +2 -1
- package/dist/lib/db/project-store.js.map +1 -1
- package/dist/lib/db/role-store.js +2 -2
- package/dist/lib/db/role-store.js.map +1 -1
- package/dist/lib/db/segment-store.d.ts +6 -2
- package/dist/lib/db/segment-store.js +27 -6
- package/dist/lib/db/segment-store.js.map +1 -1
- package/dist/lib/error/no-access-error.d.ts +3 -2
- package/dist/lib/error/no-access-error.js +10 -4
- package/dist/lib/error/no-access-error.js.map +1 -1
- package/dist/lib/error/unleash-error.test.js +8 -2
- package/dist/lib/error/unleash-error.test.js.map +1 -1
- package/dist/lib/features/access/createAccessService.js +5 -5
- package/dist/lib/features/access/createAccessService.js.map +1 -1
- package/dist/lib/features/export-import-toggles/createExportImportService.js +4 -2
- package/dist/lib/features/export-import-toggles/createExportImportService.js.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import-api-usage.test.d.ts +1 -0
- package/dist/lib/features/export-import-toggles/export-import-api-usage.test.js +69 -0
- package/dist/lib/features/export-import-toggles/export-import-api-usage.test.js.map +1 -0
- package/dist/lib/features/export-import-toggles/export-import-controller.js +5 -1
- package/dist/lib/features/export-import-toggles/export-import-controller.js.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import-service.js +7 -2
- package/dist/lib/features/export-import-toggles/export-import-service.js.map +1 -1
- package/dist/lib/features/feature-toggle/createFeatureToggleService.js +4 -4
- package/dist/lib/features/feature-toggle/createFeatureToggleService.js.map +1 -1
- package/dist/lib/features/playground/advanced-playground.test.d.ts +1 -0
- package/dist/lib/features/playground/advanced-playground.test.js +238 -0
- package/dist/lib/features/playground/advanced-playground.test.js.map +1 -0
- package/dist/lib/{util → features/playground}/feature-evaluator/client.d.ts +3 -2
- package/dist/lib/{util → features/playground}/feature-evaluator/client.js +1 -1
- package/dist/lib/features/playground/feature-evaluator/client.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/constraint.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/context.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/feature-evaluator.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/feature.js.map +1 -0
- package/dist/lib/{util → features/playground}/feature-evaluator/helpers.d.ts +1 -1
- package/dist/lib/features/playground/feature-evaluator/helpers.js.map +1 -0
- package/dist/lib/{util → features/playground}/feature-evaluator/index.d.ts +1 -1
- package/dist/lib/{util → features/playground}/feature-evaluator/index.js +2 -2
- package/dist/lib/features/playground/feature-evaluator/index.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/repository/bootstrap-provider.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/repository/index.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/repository/storage-provider-in-mem.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/repository/storage-provider.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/application-hostname-strategy.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/default-strategy.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/flexible-rollout-strategy.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-random.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-session-id.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/gradual-rollout-user-id.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/index.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/remote-address-strategy.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/strategy.js.map +1 -0
- package/dist/lib/{util → features/playground}/feature-evaluator/strategy/unknown-strategy.js +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/unknown-strategy.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/user-with-id-strategy.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/util.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/variant.js.map +1 -0
- package/dist/lib/features/playground/generateObjectCombinations.d.ts +7 -0
- package/dist/lib/features/playground/generateObjectCombinations.js +16 -0
- package/dist/lib/features/playground/generateObjectCombinations.js.map +1 -0
- package/dist/lib/features/playground/generateObjectCombinations.test.d.ts +1 -0
- package/dist/lib/features/playground/generateObjectCombinations.test.js +33 -0
- package/dist/lib/features/playground/generateObjectCombinations.test.js.map +1 -0
- package/dist/lib/{util → features/playground}/offline-unleash-client.js +2 -2
- package/dist/lib/features/playground/offline-unleash-client.js.map +1 -0
- package/dist/lib/{util → features/playground}/offline-unleash-client.test.js +1 -1
- package/dist/lib/features/playground/offline-unleash-client.test.js.map +1 -0
- package/dist/lib/features/playground/playground-service.d.ts +34 -0
- package/dist/lib/features/playground/playground-service.js +114 -0
- package/dist/lib/features/playground/playground-service.js.map +1 -0
- package/dist/lib/features/playground/playground-view-model.d.ts +4 -0
- package/dist/lib/features/playground/playground-view-model.js +49 -0
- package/dist/lib/features/playground/playground-view-model.js.map +1 -0
- package/dist/lib/features/playground/playground-view-model.test.d.ts +1 -0
- package/dist/lib/features/playground/playground-view-model.test.js +122 -0
- package/dist/lib/features/playground/playground-view-model.test.js.map +1 -0
- package/dist/lib/features/playground/playground.d.ts +16 -0
- package/dist/lib/features/playground/playground.js +78 -0
- package/dist/lib/features/playground/playground.js.map +1 -0
- package/dist/lib/features/playground/playground.test.d.ts +1 -0
- package/dist/lib/{routes/admin-api → features/playground}/playground.test.js +3 -2
- package/dist/lib/features/playground/playground.test.js.map +1 -0
- package/dist/lib/features/playground/validateQueryComplexity.d.ts +1 -0
- package/dist/lib/features/playground/validateQueryComplexity.js +15 -0
- package/dist/lib/features/playground/validateQueryComplexity.js.map +1 -0
- package/dist/lib/features/playground/validateQueryComplexity.test.d.ts +1 -0
- package/dist/lib/features/playground/validateQueryComplexity.test.js +19 -0
- package/dist/lib/features/playground/validateQueryComplexity.test.js.map +1 -0
- package/dist/lib/middleware/rbac-middleware.d.ts +1 -1
- package/dist/lib/middleware/rbac-middleware.js +7 -4
- package/dist/lib/middleware/rbac-middleware.js.map +1 -1
- package/dist/lib/middleware/rbac-middleware.test.js +8 -8
- package/dist/lib/middleware/rbac-middleware.test.js.map +1 -1
- package/dist/lib/openapi/endpoint-descriptions.d.ts +4 -0
- package/dist/lib/openapi/endpoint-descriptions.js +4 -0
- package/dist/lib/openapi/endpoint-descriptions.js.map +1 -1
- package/dist/lib/openapi/index.js +7 -0
- package/dist/lib/openapi/index.js.map +1 -1
- package/dist/lib/openapi/meta-schema-rules.test.js +16 -25
- package/dist/lib/openapi/meta-schema-rules.test.js.map +1 -1
- package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.d.ts +652 -0
- package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.js +146 -0
- package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.js.map +1 -0
- package/dist/lib/openapi/spec/advanced-playground-feature-schema.d.ts +1217 -0
- package/dist/lib/openapi/spec/advanced-playground-feature-schema.js +51 -0
- package/dist/lib/openapi/spec/advanced-playground-feature-schema.js.map +1 -0
- package/dist/lib/openapi/spec/advanced-playground-request-schema.d.ts +95 -0
- package/dist/lib/openapi/spec/advanced-playground-request-schema.js +49 -0
- package/dist/lib/openapi/spec/advanced-playground-request-schema.js.map +1 -0
- package/dist/lib/openapi/spec/advanced-playground-response-schema.d.ts +2560 -0
- package/dist/lib/openapi/spec/advanced-playground-response-schema.js +50 -0
- package/dist/lib/openapi/spec/advanced-playground-response-schema.js.map +1 -0
- package/dist/lib/openapi/spec/client-application-schema.d.ts +17 -0
- package/dist/lib/openapi/spec/client-application-schema.js +17 -0
- package/dist/lib/openapi/spec/client-application-schema.js.map +1 -1
- package/dist/lib/openapi/spec/client-feature-schema.d.ts +44 -13
- package/dist/lib/openapi/spec/client-feature-schema.js +17 -12
- package/dist/lib/openapi/spec/client-feature-schema.js.map +1 -1
- package/dist/lib/openapi/spec/client-features-query-schema.d.ts +12 -0
- package/dist/lib/openapi/spec/client-features-query-schema.js +12 -0
- package/dist/lib/openapi/spec/client-features-query-schema.js.map +1 -1
- package/dist/lib/openapi/spec/client-features-schema.d.ts +90 -14
- package/dist/lib/openapi/spec/client-features-schema.js +7 -0
- package/dist/lib/openapi/spec/client-features-schema.js.map +1 -1
- package/dist/lib/openapi/spec/client-features-schema.test.js +5 -12
- package/dist/lib/openapi/spec/client-features-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/client-metrics-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/client-metrics-schema.js +1 -1
- package/dist/lib/openapi/spec/client-metrics-schema.js.map +1 -1
- package/dist/lib/openapi/spec/context-field-schema.d.ts +13 -0
- package/dist/lib/openapi/spec/context-field-schema.js +13 -0
- package/dist/lib/openapi/spec/context-field-schema.js.map +1 -1
- package/dist/lib/openapi/spec/context-field-strategies-schema.d.ts +43 -0
- package/dist/lib/openapi/spec/context-field-strategies-schema.js +51 -0
- package/dist/lib/openapi/spec/context-field-strategies-schema.js.map +1 -0
- package/dist/lib/openapi/spec/context-fields-schema.d.ts +13 -0
- package/dist/lib/openapi/spec/create-application-schema.d.ts +0 -1
- package/dist/lib/openapi/spec/create-application-schema.js +0 -1
- package/dist/lib/openapi/spec/create-application-schema.js.map +1 -1
- package/dist/lib/openapi/spec/export-result-schema.d.ts +137 -4
- package/dist/lib/openapi/spec/feature-environment-schema.d.ts +22 -1
- package/dist/lib/openapi/spec/feature-schema.d.ts +49 -2
- package/dist/lib/openapi/spec/feature-schema.test.js +1 -1
- package/dist/lib/openapi/spec/feature-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/feature-strategy-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/feature-strategy-schema.js +1 -1
- package/dist/lib/openapi/spec/feature-strategy-schema.js.map +1 -1
- package/dist/lib/openapi/spec/feature-variants-schema.d.ts +26 -0
- package/dist/lib/openapi/spec/features-schema.d.ts +98 -4
- package/dist/lib/openapi/spec/health-check-schema.d.ts +3 -0
- package/dist/lib/openapi/spec/health-check-schema.js +3 -0
- package/dist/lib/openapi/spec/health-check-schema.js.map +1 -1
- package/dist/lib/openapi/spec/health-overview-schema.d.ts +105 -4
- package/dist/lib/openapi/spec/health-overview-schema.js +7 -0
- package/dist/lib/openapi/spec/health-overview-schema.js.map +1 -1
- package/dist/lib/openapi/spec/health-report-schema.d.ts +105 -4
- package/dist/lib/openapi/spec/import-toggles-schema.d.ts +274 -8
- package/dist/lib/openapi/spec/index.d.ts +3 -0
- package/dist/lib/openapi/spec/index.js +3 -0
- package/dist/lib/openapi/spec/index.js.map +1 -1
- package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts +65 -2
- package/dist/lib/openapi/spec/instance-admin-stats-schema.js +65 -2
- package/dist/lib/openapi/spec/instance-admin-stats-schema.js.map +1 -1
- package/dist/lib/openapi/spec/override-schema.d.ts +5 -0
- package/dist/lib/openapi/spec/override-schema.js +5 -0
- package/dist/lib/openapi/spec/override-schema.js.map +1 -1
- package/dist/lib/openapi/spec/password-schema.d.ts +3 -0
- package/dist/lib/openapi/spec/password-schema.js +3 -0
- package/dist/lib/openapi/spec/password-schema.js.map +1 -1
- package/dist/lib/openapi/spec/playground-feature-schema.d.ts +41 -1
- package/dist/lib/openapi/spec/playground-feature-schema.js +6 -1
- package/dist/lib/openapi/spec/playground-feature-schema.js.map +1 -1
- package/dist/lib/openapi/spec/playground-feature-schema.test.js +3 -0
- package/dist/lib/openapi/spec/playground-feature-schema.test.js.map +1 -1
- package/dist/lib/openapi/spec/playground-request-schema.d.ts +7 -1
- package/dist/lib/openapi/spec/playground-request-schema.js +1 -1
- package/dist/lib/openapi/spec/playground-request-schema.js.map +1 -1
- package/dist/lib/openapi/spec/playground-response-schema.d.ts +93 -3
- package/dist/lib/openapi/spec/playground-strategy-schema.d.ts +13 -1
- package/dist/lib/openapi/spec/playground-strategy-schema.js +13 -0
- package/dist/lib/openapi/spec/playground-strategy-schema.js.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.d.ts +49 -2
- package/dist/lib/openapi/spec/project-overview-schema.d.ts +104 -4
- package/dist/lib/openapi/spec/project-overview-schema.js +6 -0
- package/dist/lib/openapi/spec/project-overview-schema.js.map +1 -1
- package/dist/lib/openapi/spec/push-variants-schema.d.ts +26 -0
- package/dist/lib/openapi/spec/sdk-context-schema.d.ts +6 -0
- package/dist/lib/openapi/spec/sdk-context-schema.js +14 -2
- package/dist/lib/openapi/spec/sdk-context-schema.js.map +1 -1
- package/dist/lib/openapi/spec/state-schema.d.ts +72 -4
- package/dist/lib/openapi/spec/variant-schema.d.ts +21 -0
- package/dist/lib/openapi/spec/variant-schema.js +13 -0
- package/dist/lib/openapi/spec/variant-schema.js.map +1 -1
- package/dist/lib/openapi/spec/variants-schema.d.ts +26 -0
- package/dist/lib/openapi/util/create-response-schema.d.ts +1 -0
- package/dist/lib/openapi/util/create-response-schema.js +7 -1
- package/dist/lib/openapi/util/create-response-schema.js.map +1 -1
- package/dist/lib/proxy/proxy-repository.js +1 -1
- package/dist/lib/proxy/proxy-repository.js.map +1 -1
- package/dist/lib/routes/admin-api/api-token.d.ts +2 -0
- package/dist/lib/routes/admin-api/api-token.js +120 -11
- package/dist/lib/routes/admin-api/api-token.js.map +1 -1
- package/dist/lib/routes/admin-api/context.d.ts +3 -0
- package/dist/lib/routes/admin-api/context.js +21 -0
- package/dist/lib/routes/admin-api/context.js.map +1 -1
- package/dist/lib/routes/admin-api/index.js +1 -1
- package/dist/lib/routes/admin-api/index.js.map +1 -1
- package/dist/lib/routes/admin-api/instance-admin.d.ts +3 -1
- package/dist/lib/routes/admin-api/instance-admin.js +41 -0
- package/dist/lib/routes/admin-api/instance-admin.js.map +1 -1
- package/dist/lib/routes/admin-api/metrics.test.js +12 -0
- package/dist/lib/routes/admin-api/metrics.test.js.map +1 -1
- package/dist/lib/routes/admin-api/project/api-token.js +7 -0
- package/dist/lib/routes/admin-api/project/api-token.js.map +1 -1
- package/dist/lib/routes/admin-api/user/user.js +5 -4
- package/dist/lib/routes/admin-api/user/user.js.map +1 -1
- package/dist/lib/routes/admin-api/user/user.test.js +30 -5
- package/dist/lib/routes/admin-api/user/user.test.js.map +1 -1
- package/dist/lib/routes/admin-api/user-admin.js +0 -1
- package/dist/lib/routes/admin-api/user-admin.js.map +1 -1
- package/dist/lib/routes/client-api/feature.js +4 -0
- package/dist/lib/routes/client-api/feature.js.map +1 -1
- package/dist/lib/routes/client-api/metrics.js +2 -0
- package/dist/lib/routes/client-api/metrics.js.map +1 -1
- package/dist/lib/routes/client-api/register.js +2 -0
- package/dist/lib/routes/client-api/register.js.map +1 -1
- package/dist/lib/routes/controller.d.ts +8 -7
- package/dist/lib/routes/controller.js +11 -10
- package/dist/lib/routes/controller.js.map +1 -1
- package/dist/lib/routes/health-check.js +2 -0
- package/dist/lib/routes/health-check.js.map +1 -1
- package/dist/lib/server-impl.js +1 -1
- package/dist/lib/server-impl.js.map +1 -1
- package/dist/lib/services/access-service.d.ts +6 -4
- package/dist/lib/services/access-service.js +47 -11
- package/dist/lib/services/access-service.js.map +1 -1
- package/dist/lib/services/access-service.test.js +39 -22
- package/dist/lib/services/access-service.test.js.map +1 -1
- package/dist/lib/services/api-token-service.d.ts +1 -0
- package/dist/lib/services/api-token-service.js +3 -0
- package/dist/lib/services/api-token-service.js.map +1 -1
- package/dist/lib/services/context-service.d.ts +4 -1
- package/dist/lib/services/context-service.js +14 -1
- package/dist/lib/services/context-service.js.map +1 -1
- package/dist/lib/services/feature-toggle-service.d.ts +1 -1
- package/dist/lib/services/feature-toggle-service.js +6 -7
- package/dist/lib/services/feature-toggle-service.js.map +1 -1
- package/dist/lib/services/group-service.js +1 -3
- package/dist/lib/services/group-service.js.map +1 -1
- package/dist/lib/services/index.d.ts +1 -1
- package/dist/lib/services/index.js +1 -1
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/instance-stats-service.d.ts +2 -3
- package/dist/lib/services/project-service.js +1 -0
- package/dist/lib/services/project-service.js.map +1 -1
- package/dist/lib/services/user-service.d.ts +1 -0
- package/dist/lib/services/user-service.js +8 -0
- package/dist/lib/services/user-service.js.map +1 -1
- package/dist/lib/services/version-service.d.ts +37 -1
- package/dist/lib/services/version-service.js +76 -5
- package/dist/lib/services/version-service.js.map +1 -1
- package/dist/lib/services/version-service.test.js +196 -9
- package/dist/lib/services/version-service.test.js.map +1 -1
- package/dist/lib/types/experimental.d.ts +1 -1
- package/dist/lib/types/experimental.js +6 -2
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/lib/types/model.d.ts +9 -4
- package/dist/lib/types/model.js +1 -0
- package/dist/lib/types/model.js.map +1 -1
- package/dist/lib/types/option.d.ts +2 -0
- package/dist/lib/types/permissions.d.ts +34 -27
- package/dist/lib/types/permissions.js +85 -29
- package/dist/lib/types/permissions.js.map +1 -1
- package/dist/lib/types/services.d.ts +1 -1
- package/dist/lib/types/stores/access-store.d.ts +1 -1
- package/dist/lib/types/stores/context-field-store.d.ts +2 -0
- package/dist/lib/types/stores/environment-store.d.ts +1 -0
- package/dist/lib/types/stores/feature-strategies-store.d.ts +2 -0
- package/dist/lib/types/stores/feature-toggle-store.d.ts +1 -1
- package/dist/lib/types/stores/group-store.d.ts +1 -1
- package/dist/lib/util/constants.d.ts +7 -1
- package/dist/lib/util/constants.js +8 -2
- package/dist/lib/util/constants.js.map +1 -1
- package/dist/lib/util/ensureArray.d.ts +1 -0
- package/dist/lib/util/ensureArray.js +8 -0
- package/dist/lib/util/ensureArray.js.map +1 -0
- package/dist/lib/util/index.d.ts +1 -1
- package/dist/lib/util/index.js +1 -1
- package/dist/lib/util/index.js.map +1 -1
- package/dist/migrations/20230615122909-fix-env-sort-order.d.ts +2 -0
- package/dist/migrations/20230615122909-fix-env-sort-order.js +28 -0
- package/dist/migrations/20230615122909-fix-env-sort-order.js.map +1 -0
- package/dist/migrations/20230619105029-new-fine-grained-api-token-permissions.d.ts +2 -0
- package/dist/migrations/20230619105029-new-fine-grained-api-token-permissions.js +26 -0
- package/dist/migrations/20230619105029-new-fine-grained-api-token-permissions.js.map +1 -0
- package/dist/migrations/20230619110243-assign-apitoken-permissions-to-rootroles.d.ts +2 -0
- package/dist/migrations/20230619110243-assign-apitoken-permissions-to-rootroles.js +23 -0
- package/dist/migrations/20230619110243-assign-apitoken-permissions-to-rootroles.js.map +1 -0
- package/dist/migrations/20230621141239-refactor-api-token-permissions.d.ts +2 -0
- package/dist/migrations/20230621141239-refactor-api-token-permissions.js +19 -0
- package/dist/migrations/20230621141239-refactor-api-token-permissions.js.map +1 -0
- package/dist/server-dev.js +3 -3
- package/dist/server-dev.js.map +1 -1
- package/dist/test/arbitraries.test.js +3 -1
- package/dist/test/arbitraries.test.js.map +1 -1
- package/dist/test/config/test-config.js +0 -1
- package/dist/test/config/test-config.js.map +1 -1
- package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js +542 -3
- package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/api-token.e2e.test.js +14 -1
- package/dist/test/e2e/api/admin/api-token.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/client-metrics.e2e.test.js +1 -8
- package/dist/test/e2e/api/admin/client-metrics.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/context.e2e.test.js +47 -1
- package/dist/test/e2e/api/admin/context.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/features.e2e.test.js +14 -14
- package/dist/test/e2e/api/admin/project/features.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/projects.e2e.test.js +14 -0
- package/dist/test/e2e/api/admin/project/projects.e2e.test.js.map +1 -1
- package/dist/test/e2e/helpers/test-helper.d.ts +1 -1
- package/dist/test/e2e/helpers/test-helper.js +4 -2
- package/dist/test/e2e/helpers/test-helper.js.map +1 -1
- package/dist/test/e2e/services/access-service.e2e.test.js +1 -1
- package/dist/test/e2e/services/access-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/playground-service.test.js +2 -2
- package/dist/test/e2e/services/playground-service.test.js.map +1 -1
- package/dist/test/fixtures/access-service-mock.js +1 -1
- package/dist/test/fixtures/access-service-mock.js.map +1 -1
- package/dist/test/fixtures/fake-access-store.d.ts +5 -3
- package/dist/test/fixtures/fake-access-store.js +24 -9
- package/dist/test/fixtures/fake-access-store.js.map +1 -1
- package/dist/test/fixtures/fake-environment-store.d.ts +1 -0
- package/dist/test/fixtures/fake-environment-store.js +3 -0
- package/dist/test/fixtures/fake-environment-store.js.map +1 -1
- package/dist/test/fixtures/fake-feature-strategies-store.d.ts +2 -0
- package/dist/test/fixtures/fake-feature-strategies-store.js +7 -0
- package/dist/test/fixtures/fake-feature-strategies-store.js.map +1 -1
- package/dist/test/fixtures/fake-group-store.d.ts +1 -1
- package/dist/test/fixtures/fake-group-store.js +1 -1
- package/dist/test/fixtures/fake-group-store.js.map +1 -1
- package/dist/test/fixtures/fake-role-store.d.ts +1 -1
- package/dist/test/fixtures/fake-role-store.js +9 -4
- package/dist/test/fixtures/fake-role-store.js.map +1 -1
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/AdvancedPlayground-520a25e1.js +1 -0
- package/frontend/build/static/CreateProject-c430691b.js +4 -0
- package/frontend/build/static/{Error-5606eccd.js → Error-492e8b38.js} +1 -1
- package/frontend/build/static/FeatureArchiveDialog-70daa567.js +10 -0
- package/frontend/build/static/{FeatureMetricsChart-1c6bb078.js → FeatureMetricsChart-bc99b364.js} +2 -2
- package/frontend/build/static/FeatureViewLazyExport-01d70575.js +7 -0
- package/frontend/build/static/LazyAdminExport-e2c90193.js +37 -0
- package/frontend/build/static/LazyProjectExport-fa62d2fe.js +13 -0
- package/frontend/build/static/NetworkOverview-3b72e4ea.js +1298 -0
- package/frontend/build/static/NetworkTraffic-365db744.js +1 -0
- package/frontend/build/static/Playground-b473b399.js +1 -0
- package/frontend/build/static/{Playground-6602cb1a.js → PlaygroundGuidancePopper-8e3e97db.js} +12 -12
- package/frontend/build/static/RoleCell-9bb513a8.js +1 -0
- package/frontend/build/static/StrategyItemContainer-1f7503c7.js +1 -0
- package/frontend/build/static/{chartjs-adapter-date-fns.esm-c75aa905.js → chartjs-adapter-date-fns.esm-db338d44.js} +1 -1
- package/frontend/build/static/flowchart-elk-definition-170a3958-a428dd25.js +134 -0
- package/frontend/build/static/index-0a56292a.js +450 -0
- package/frontend/build/static/{index-b3def5eb.js → index-d362ae7a.js} +1 -1
- package/frontend/build/static/{index-f8439975.js → index-dc5debe9.js} +1 -1
- package/frontend/build/static/is_dark-884249e0.js +1 -0
- package/frontend/build/static/mindmap-definition-44684416-3c9425ff.js +101 -0
- package/frontend/build/static/stringify-ec884b6d.js +1 -0
- package/frontend/build/static/timeline-definition-8e5a9bc6-d289cd6d.js +62 -0
- package/frontend/build/static/{unknownify-6683037a.js → unknownify-5b23bf29.js} +1 -1
- package/frontend/package.json +18 -17
- package/package.json +16 -13
- package/dist/lib/routes/admin-api/playground.d.ts +0 -12
- package/dist/lib/routes/admin-api/playground.js +0 -46
- package/dist/lib/routes/admin-api/playground.js.map +0 -1
- package/dist/lib/routes/admin-api/playground.test.js.map +0 -1
- package/dist/lib/services/playground-service.d.ts +0 -12
- package/dist/lib/services/playground-service.js +0 -65
- package/dist/lib/services/playground-service.js.map +0 -1
- package/dist/lib/util/feature-evaluator/client.js.map +0 -1
- package/dist/lib/util/feature-evaluator/constraint.js.map +0 -1
- package/dist/lib/util/feature-evaluator/context.js.map +0 -1
- package/dist/lib/util/feature-evaluator/feature-evaluator.js.map +0 -1
- package/dist/lib/util/feature-evaluator/feature.js.map +0 -1
- package/dist/lib/util/feature-evaluator/helpers.js.map +0 -1
- package/dist/lib/util/feature-evaluator/index.js.map +0 -1
- package/dist/lib/util/feature-evaluator/repository/bootstrap-provider.js.map +0 -1
- package/dist/lib/util/feature-evaluator/repository/index.js.map +0 -1
- package/dist/lib/util/feature-evaluator/repository/storage-provider-in-mem.js.map +0 -1
- package/dist/lib/util/feature-evaluator/repository/storage-provider.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/application-hostname-strategy.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/default-strategy.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/flexible-rollout-strategy.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/gradual-rollout-random.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/gradual-rollout-session-id.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/gradual-rollout-user-id.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/index.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/remote-address-strategy.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/strategy.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/unknown-strategy.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/user-with-id-strategy.js.map +0 -1
- package/dist/lib/util/feature-evaluator/strategy/util.js.map +0 -1
- package/dist/lib/util/feature-evaluator/variant.js.map +0 -1
- package/dist/lib/util/offline-unleash-client.js.map +0 -1
- package/dist/lib/util/offline-unleash-client.test.js.map +0 -1
- package/frontend/build/static/CreateProject-217f67b6.js +0 -4
- package/frontend/build/static/FeatureArchiveDialog-c311c641.js +0 -4
- package/frontend/build/static/FeatureViewLazyExport-06cf4baa.js +0 -7
- package/frontend/build/static/LazyAdminExport-04c8032d.js +0 -43
- package/frontend/build/static/LazyProjectExport-d9663a8c.js +0 -19
- package/frontend/build/static/NetworkOverview-2bce4916.js +0 -1296
- package/frontend/build/static/NetworkTraffic-7db94d86.js +0 -1
- package/frontend/build/static/StrategyItemContainer-0140b94f.js +0 -1
- package/frontend/build/static/index-1f392976.js +0 -450
- package/frontend/build/static/useProjectRole-122ac4bb.js +0 -1
- package/frontend/build/static/v4-a960c1f4.js +0 -1
- /package/dist/lib/{routes/admin-api/playground.test.d.ts → db/feature-strategy-store.test.d.ts} +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/constraint.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/constraint.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/context.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/context.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/feature-evaluator.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/feature-evaluator.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/feature.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/feature.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/helpers.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/bootstrap-provider.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/bootstrap-provider.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/index.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/index.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/storage-provider-in-mem.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/storage-provider-in-mem.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/storage-provider.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/repository/storage-provider.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/application-hostname-strategy.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/application-hostname-strategy.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/default-strategy.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/default-strategy.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/flexible-rollout-strategy.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/flexible-rollout-strategy.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-random.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-random.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-session-id.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-session-id.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-user-id.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/gradual-rollout-user-id.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/index.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/index.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/remote-address-strategy.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/remote-address-strategy.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/strategy.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/strategy.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/unknown-strategy.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/user-with-id-strategy.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/user-with-id-strategy.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/util.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/strategy/util.js +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/variant.d.ts +0 -0
- /package/dist/lib/{util → features/playground}/feature-evaluator/variant.js +0 -0
- /package/dist/lib/{util → features/playground}/offline-unleash-client.d.ts +0 -0
- /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("../
|
|
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":";;;;;;AAAA,oDAAkC;AAMlC,
|
|
1
|
+
{"version":3,"file":"proxy-repository.js","sourceRoot":"","sources":["../../../src/lib/proxy/proxy-repository.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAkC;AAMlC,0FAGuD;AACvD,iDAA2D;AAC3D,mDAA+C;AAE/C,8GAEmE;AAWnE,MAAa,eACT,SAAQ,gBAAY;IAyBpB,YACI,MAAc,EACd,MAAc,EACd,QAAkB,EAClB,KAAc;QAEd,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,4BAA4B;YAC7B,QAAQ,CAAC,4BAA4B,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC;IAC3D,CAAC;IAED,UAAU,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS,CAAC,IAAY;QAClB,6DAA6D;QAC7D,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAEzB,oEAAoE;QACpE,+DAA+D;QAC/D,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,gDAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAEvE,IAAI,CAAC,IAAI,CAAC,8BAAa,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,8BAAa,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,IAAI;QACA,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,gDAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,WAAW;QACrB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACf,YAAY,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;gBAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CACb,iDAAiD,CACpD,CAAC;gBACF,OAAO;aACV;YACD,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC7B,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAElE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC1B,IAAI;YACA,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC9C,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACjD;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACxB;IACL,CAAC;IAEO,cAAc,CAAC,KAAa,EAAE,OAAe;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;IACjE,CAAC;IAEO,KAAK,CAAC,UAAU;QACpB,IAAI;YACA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACjC;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B;IACL,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC1B,OAAO,IAAA,6CAAoB,EACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,iBAAiB,CAAC;YACzD,OAAO,EAAE,MAAM,IAAI,CAAC,kBAAkB,EAAE;YACxC,WAAW,EAAE,IAAI,CAAC,uBAAuB,EAAE;SAC9C,CAAC,CACL,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC1B,OAAO,IAAA,6CAAoB,EACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,CAC9C,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAY,CAAC,EAAE;YAC5C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC5D,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;SACnD;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAEO,uBAAuB;QAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,oBAAQ,EAAE;YACrC,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAClC,CAAC;CACJ;AA9ID,0CA8IC"}
|
|
@@ -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.
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
98
|
-
|
|
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
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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":";;;;;;AAEA,+DAAuC;AACvC,
|
|
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":";;;;;;AAEA,+DAAuC;AAEvC,0DAA0D;AAE1D,yDAKiC;AAQjC,kFAGiD;AAGjD,oFAA+E;AAC/E,sFAGmD;AACnD,iEAA6D;AAC7D,gFAAuD;AAEvD,8EAAsE;
|
|
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("
|
|
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":";;;;;AAAA,+DAAuC;AAEvC,wDAA0C;AAC1C,iDAAuD;AACvD,wDAA0C;AAC1C,0DAA4C;AAC5C,oDAAsC;AACtC,
|
|
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;
|
|
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';
|