unleash-server 5.4.3 → 5.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/dist/lib/addons/addon-schema.js +2 -1
- package/dist/lib/addons/addon-schema.js.map +1 -1
- package/dist/lib/addons/datadog-definition.js +22 -7
- package/dist/lib/addons/datadog-definition.js.map +1 -1
- package/dist/lib/addons/datadog.d.ts +7 -1
- package/dist/lib/addons/datadog.js +16 -3
- package/dist/lib/addons/datadog.js.map +1 -1
- package/dist/lib/addons/datadog.test.js +62 -0
- package/dist/lib/addons/datadog.test.js.map +1 -1
- package/dist/lib/addons/index.js +3 -11
- package/dist/lib/addons/index.js.map +1 -1
- package/dist/lib/addons/slack-app-definition.js +5 -24
- package/dist/lib/addons/slack-app-definition.js.map +1 -1
- package/dist/lib/addons/slack-app.d.ts +0 -1
- package/dist/lib/addons/slack-app.js +5 -17
- package/dist/lib/addons/slack-app.js.map +1 -1
- package/dist/lib/addons/slack-app.test.js +39 -25
- package/dist/lib/addons/slack-app.test.js.map +1 -1
- package/dist/lib/addons/slack-definition.js +11 -4
- package/dist/lib/addons/slack-definition.js.map +1 -1
- package/dist/lib/addons/teams-definition.js +5 -4
- package/dist/lib/addons/teams-definition.js.map +1 -1
- package/dist/lib/addons/webhook-definition.js +10 -12
- package/dist/lib/addons/webhook-definition.js.map +1 -1
- package/dist/lib/create-config.js +13 -1
- package/dist/lib/create-config.js.map +1 -1
- package/dist/lib/create-config.test.js +14 -0
- package/dist/lib/create-config.test.js.map +1 -1
- package/dist/lib/db/access-store.d.ts +23 -5
- package/dist/lib/db/access-store.js +263 -17
- package/dist/lib/db/access-store.js.map +1 -1
- package/dist/lib/db/access-store.test.js +83 -0
- package/dist/lib/db/access-store.test.js.map +1 -0
- package/dist/lib/db/client-applications-store.d.ts +1 -3
- package/dist/lib/db/client-applications-store.js +13 -24
- package/dist/lib/db/client-applications-store.js.map +1 -1
- package/dist/lib/db/event-store.js +1 -0
- package/dist/lib/db/event-store.js.map +1 -1
- package/dist/lib/db/feature-toggle-client-store.js +17 -4
- package/dist/lib/db/feature-toggle-client-store.js.map +1 -1
- package/dist/lib/db/feature-toggle-store.js +1 -1
- package/dist/lib/db/feature-toggle-store.js.map +1 -1
- package/dist/lib/db/group-store.d.ts +4 -2
- package/dist/lib/db/group-store.js +24 -0
- package/dist/lib/db/group-store.js.map +1 -1
- package/dist/lib/db/index.d.ts +1 -2
- package/dist/lib/db/index.js +5 -1
- package/dist/lib/db/index.js.map +1 -1
- package/dist/lib/db/project-stats-store.d.ts +2 -0
- package/dist/lib/db/project-stats-store.js +27 -0
- package/dist/lib/db/project-stats-store.js.map +1 -1
- package/dist/lib/db/project-store.d.ts +7 -1
- package/dist/lib/db/project-store.js +34 -1
- package/dist/lib/db/project-store.js.map +1 -1
- package/dist/lib/error/bad-data-error.d.ts +1 -1
- package/dist/lib/error/index.d.ts +2 -1
- package/dist/lib/error/index.js +3 -1
- package/dist/lib/error/index.js.map +1 -1
- package/dist/lib/error/pattern-error.d.ts +10 -0
- package/dist/lib/error/pattern-error.js +20 -0
- package/dist/lib/error/pattern-error.js.map +1 -0
- package/dist/lib/features/dependent-features/createDependentFeaturesService.d.ts +3 -0
- package/dist/lib/features/dependent-features/createDependentFeaturesService.js +11 -0
- package/dist/lib/features/dependent-features/createDependentFeaturesService.js.map +1 -0
- package/dist/lib/features/dependent-features/dependent-features-controller.d.ts +28 -0
- package/dist/lib/features/dependent-features/dependent-features-controller.js +151 -0
- package/dist/lib/features/dependent-features/dependent-features-controller.js.map +1 -0
- package/dist/lib/features/dependent-features/dependent-features-service.d.ts +11 -0
- package/dist/lib/features/dependent-features/dependent-features-service.js +40 -0
- package/dist/lib/features/dependent-features/dependent-features-service.js.map +1 -0
- package/dist/lib/features/dependent-features/dependent-features-store-type.d.ts +8 -0
- package/dist/lib/features/dependent-features/dependent-features-store-type.js +3 -0
- package/dist/lib/features/dependent-features/dependent-features-store-type.js.map +1 -0
- package/dist/lib/features/dependent-features/dependent-features-store.d.ts +12 -0
- package/dist/lib/features/dependent-features/dependent-features-store.js +56 -0
- package/dist/lib/features/dependent-features/dependent-features-store.js.map +1 -0
- package/dist/lib/features/dependent-features/dependent-features.d.ts +14 -0
- package/dist/lib/features/dependent-features/dependent-features.js +3 -0
- package/dist/lib/features/dependent-features/dependent-features.js.map +1 -0
- package/dist/lib/features/dependent-features/dependent.features.e2e.test.d.ts +1 -0
- package/dist/lib/features/dependent-features/dependent.features.e2e.test.js +82 -0
- package/dist/lib/features/dependent-features/dependent.features.e2e.test.js.map +1 -0
- package/dist/lib/features/dependent-features/fake-dependent-features-store.d.ts +8 -0
- package/dist/lib/features/dependent-features/fake-dependent-features-store.js +22 -0
- package/dist/lib/features/dependent-features/fake-dependent-features-store.js.map +1 -0
- package/dist/lib/features/export-import-toggles/createExportImportService.js +6 -3
- package/dist/lib/features/export-import-toggles/createExportImportService.js.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import-service.d.ts +9 -3
- package/dist/lib/features/export-import-toggles/export-import-service.js +51 -21
- package/dist/lib/features/export-import-toggles/export-import-service.js.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import.e2e.test.js +120 -50
- package/dist/lib/features/export-import-toggles/export-import.e2e.test.js.map +1 -1
- package/dist/lib/features/export-import-toggles/import-permissions-service.d.ts +1 -2
- package/dist/lib/features/export-import-toggles/import-toggles-store-type.d.ts +6 -0
- package/dist/lib/features/export-import-toggles/import-toggles-store.d.ts +2 -1
- package/dist/lib/features/export-import-toggles/import-toggles-store.js +25 -0
- package/dist/lib/features/export-import-toggles/import-toggles-store.js.map +1 -1
- package/dist/lib/features/export-import-toggles/import-validation-messages.d.ts +18 -2
- package/dist/lib/features/export-import-toggles/import-validation-messages.js +27 -11
- package/dist/lib/features/export-import-toggles/import-validation-messages.js.map +1 -1
- package/dist/lib/features/feature-naming-pattern/feature-naming-validation.d.ts +14 -0
- package/dist/lib/features/feature-naming-pattern/feature-naming-validation.js +46 -0
- package/dist/lib/features/feature-naming-pattern/feature-naming-validation.js.map +1 -0
- package/dist/lib/features/feature-naming-pattern/feature-naming-validation.test.d.ts +1 -0
- package/dist/lib/features/feature-naming-pattern/feature-naming-validation.test.js +116 -0
- package/dist/lib/features/feature-naming-pattern/feature-naming-validation.test.js.map +1 -0
- package/dist/lib/features/feature-toggle/createFeatureToggleService.js +11 -2
- package/dist/lib/features/feature-toggle/createFeatureToggleService.js.map +1 -1
- package/dist/lib/features/instance-stats/getActiveUsers.d.ts +9 -0
- package/dist/lib/features/instance-stats/getActiveUsers.e2e.test.d.ts +1 -0
- package/dist/lib/features/instance-stats/getActiveUsers.e2e.test.js +141 -0
- package/dist/lib/features/instance-stats/getActiveUsers.e2e.test.js.map +1 -0
- package/dist/lib/features/instance-stats/getActiveUsers.js +33 -0
- package/dist/lib/features/instance-stats/getActiveUsers.js.map +1 -0
- package/dist/lib/{services → features/instance-stats}/instance-stats-service.d.ts +13 -7
- package/dist/lib/{services → features/instance-stats}/instance-stats-service.js +16 -7
- package/dist/lib/features/instance-stats/instance-stats-service.js.map +1 -0
- package/dist/lib/features/instance-stats/instance-stats-service.test.d.ts +1 -0
- package/dist/lib/{services → features/instance-stats}/instance-stats-service.test.js +6 -5
- package/dist/lib/features/instance-stats/instance-stats-service.test.js.map +1 -0
- package/dist/lib/features/playground/advanced-playground.test.js +2 -3
- package/dist/lib/features/playground/advanced-playground.test.js.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/variant.d.ts +1 -1
- package/dist/lib/features/playground/generateObjectCombinations.d.ts +1 -1
- package/dist/lib/features/playground/generateObjectCombinations.js +14 -4
- package/dist/lib/features/playground/generateObjectCombinations.js.map +1 -1
- package/dist/lib/features/playground/generateObjectCombinations.test.js +21 -0
- package/dist/lib/features/playground/generateObjectCombinations.test.js.map +1 -1
- package/dist/lib/features/playground/playground-service.d.ts +5 -3
- package/dist/lib/features/playground/playground-service.js +18 -3
- package/dist/lib/features/playground/playground-service.js.map +1 -1
- package/dist/lib/features/playground/playground.d.ts +2 -1
- package/dist/lib/features/playground/playground.js +2 -1
- package/dist/lib/features/playground/playground.js.map +1 -1
- package/dist/lib/features/private-project/createPrivateProjectChecker.d.ts +5 -0
- package/dist/lib/features/private-project/createPrivateProjectChecker.js +22 -0
- package/dist/lib/features/private-project/createPrivateProjectChecker.js.map +1 -0
- package/dist/lib/features/private-project/fakePrivateProjectChecker.d.ts +7 -0
- package/dist/lib/features/private-project/fakePrivateProjectChecker.js +15 -0
- package/dist/lib/features/private-project/fakePrivateProjectChecker.js.map +1 -0
- package/dist/lib/features/private-project/privateProjectChecker.d.ts +10 -0
- package/dist/lib/features/private-project/privateProjectChecker.js +22 -0
- package/dist/lib/features/private-project/privateProjectChecker.js.map +1 -0
- package/dist/lib/features/private-project/privateProjectCheckerType.d.ts +5 -0
- package/dist/lib/features/private-project/privateProjectCheckerType.js +3 -0
- package/dist/lib/features/private-project/privateProjectCheckerType.js.map +1 -0
- package/dist/lib/features/private-project/privateProjectStore.d.ts +18 -0
- package/dist/lib/features/private-project/privateProjectStore.js +70 -0
- package/dist/lib/features/private-project/privateProjectStore.js.map +1 -0
- package/dist/lib/features/private-project/privateProjectStoreType.d.ts +4 -0
- package/dist/lib/features/private-project/privateProjectStoreType.js +3 -0
- package/dist/lib/features/private-project/privateProjectStoreType.js.map +1 -0
- package/dist/lib/features/project/createProjectService.js +5 -8
- package/dist/lib/features/project/createProjectService.js.map +1 -1
- package/dist/lib/features/segment/createSegmentService.js +5 -2
- package/dist/lib/features/segment/createSegmentService.js.map +1 -1
- package/dist/lib/features/segment/segment-controller.d.ts +39 -0
- package/dist/lib/features/segment/segment-controller.js +291 -0
- package/dist/lib/features/segment/segment-controller.js.map +1 -0
- package/dist/lib/metrics.d.ts +1 -1
- package/dist/lib/metrics.js +30 -1
- package/dist/lib/metrics.js.map +1 -1
- package/dist/lib/metrics.test.js +3 -2
- package/dist/lib/metrics.test.js.map +1 -1
- package/dist/lib/middleware/rbac-middleware.d.ts +2 -0
- package/dist/lib/middleware/rbac-middleware.js +2 -0
- package/dist/lib/middleware/rbac-middleware.js.map +1 -1
- package/dist/lib/middleware/secure-headers.js +18 -0
- package/dist/lib/middleware/secure-headers.js.map +1 -1
- package/dist/lib/openapi/index.js +13 -0
- package/dist/lib/openapi/index.js.map +1 -1
- package/dist/lib/openapi/meta-schema-rules.test.js +14 -4
- package/dist/lib/openapi/meta-schema-rules.test.js.map +1 -1
- package/dist/lib/openapi/spec/addon-type-schema.d.ts +6 -1
- package/dist/lib/openapi/spec/addon-type-schema.js +6 -1
- package/dist/lib/openapi/spec/addon-type-schema.js.map +1 -1
- package/dist/lib/openapi/spec/addons-schema.d.ts +8 -3
- package/dist/lib/openapi/spec/addons-schema.js +8 -3
- package/dist/lib/openapi/spec/addons-schema.js.map +1 -1
- package/dist/lib/openapi/spec/admin-segment-schema.d.ts +115 -0
- package/dist/lib/openapi/spec/admin-segment-schema.js +75 -0
- package/dist/lib/openapi/spec/admin-segment-schema.js.map +1 -0
- package/dist/lib/openapi/spec/admin-segment-schema.test.d.ts +1 -0
- package/dist/lib/openapi/spec/admin-segment-schema.test.js +39 -0
- package/dist/lib/openapi/spec/admin-segment-schema.test.js.map +1 -0
- package/dist/lib/openapi/spec/admin-strategies-schema.d.ts +46 -0
- package/dist/lib/openapi/spec/admin-strategies-schema.js +54 -0
- package/dist/lib/openapi/spec/admin-strategies-schema.js.map +1 -0
- package/dist/lib/openapi/spec/admin-strategies-schema.test.d.ts +1 -0
- package/dist/lib/openapi/spec/admin-strategies-schema.test.js +40 -0
- package/dist/lib/openapi/spec/admin-strategies-schema.test.js.map +1 -0
- package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.d.ts +51 -6
- package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.js +3 -1
- package/dist/lib/openapi/spec/advanced-playground-environment-feature-schema.js.map +1 -1
- package/dist/lib/openapi/spec/advanced-playground-feature-schema.d.ts +101 -11
- package/dist/lib/openapi/spec/advanced-playground-feature-schema.js +2 -0
- package/dist/lib/openapi/spec/advanced-playground-feature-schema.js.map +1 -1
- package/dist/lib/openapi/spec/advanced-playground-request-schema.d.ts +1 -0
- package/dist/lib/openapi/spec/advanced-playground-response-schema.d.ts +203 -22
- package/dist/lib/openapi/spec/advanced-playground-response-schema.js +2 -0
- package/dist/lib/openapi/spec/advanced-playground-response-schema.js.map +1 -1
- package/dist/lib/openapi/spec/client-feature-schema.d.ts +41 -6
- package/dist/lib/openapi/spec/client-feature-schema.js +9 -0
- package/dist/lib/openapi/spec/client-feature-schema.js.map +1 -1
- package/dist/lib/openapi/spec/client-features-schema.d.ts +75 -12
- package/dist/lib/openapi/spec/client-features-schema.js +2 -0
- package/dist/lib/openapi/spec/client-features-schema.js.map +1 -1
- package/dist/lib/openapi/spec/context-field-strategies-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/context-field-strategies-schema.js +1 -1
- package/dist/lib/openapi/spec/context-field-strategies-schema.js.map +1 -1
- package/dist/lib/openapi/spec/create-api-token-schema.d.ts +1 -139
- package/dist/lib/openapi/spec/create-api-token-schema.js +16 -20
- package/dist/lib/openapi/spec/create-api-token-schema.js.map +1 -1
- package/dist/lib/openapi/spec/create-dependent-feature-schema.d.ts +29 -0
- package/dist/lib/openapi/spec/create-dependent-feature-schema.js +31 -0
- package/dist/lib/openapi/spec/create-dependent-feature-schema.js.map +1 -0
- package/dist/lib/openapi/spec/create-feature-naming-pattern-schema.d.ts +29 -0
- package/dist/lib/openapi/spec/create-feature-naming-pattern-schema.js +33 -0
- package/dist/lib/openapi/spec/create-feature-naming-pattern-schema.js.map +1 -0
- package/dist/lib/openapi/spec/create-feature-strategy-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/create-strategy-schema.d.ts +15 -0
- package/dist/lib/openapi/spec/create-strategy-schema.js +15 -0
- package/dist/lib/openapi/spec/create-strategy-schema.js.map +1 -1
- package/dist/lib/openapi/spec/create-strategy-variant-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/create-strategy-variant-schema.js +2 -2
- package/dist/lib/openapi/spec/create-strategy-variant-schema.js.map +1 -1
- package/dist/lib/openapi/spec/dependent-feature-schema.d.ts +30 -0
- package/dist/lib/openapi/spec/dependent-feature-schema.js +14 -0
- package/dist/lib/openapi/spec/dependent-feature-schema.js.map +1 -0
- package/dist/lib/openapi/spec/dora-features-schema.d.ts +20 -0
- package/dist/lib/openapi/spec/dora-features-schema.js +22 -0
- package/dist/lib/openapi/spec/dora-features-schema.js.map +1 -0
- package/dist/lib/openapi/spec/environment-project-schema.d.ts +4 -4
- package/dist/lib/openapi/spec/environments-project-schema.d.ts +4 -4
- package/dist/lib/openapi/spec/event-schema.d.ts +3 -3
- package/dist/lib/openapi/spec/events-schema.d.ts +3 -3
- package/dist/lib/openapi/spec/export-query-schema.d.ts +22 -15
- package/dist/lib/openapi/spec/export-query-schema.js +16 -15
- package/dist/lib/openapi/spec/export-query-schema.js.map +1 -1
- package/dist/lib/openapi/spec/export-result-schema.d.ts +26 -26
- package/dist/lib/openapi/spec/feature-environment-schema.d.ts +6 -6
- package/dist/lib/openapi/spec/feature-events-schema.d.ts +3 -3
- package/dist/lib/openapi/spec/feature-schema.d.ts +12 -12
- package/dist/lib/openapi/spec/feature-strategy-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/feature-variants-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/features-schema.d.ts +24 -24
- package/dist/lib/openapi/spec/health-overview-schema.d.ts +63 -33
- package/dist/lib/openapi/spec/health-overview-schema.js +6 -1
- package/dist/lib/openapi/spec/health-overview-schema.js.map +1 -1
- package/dist/lib/openapi/spec/health-report-schema.d.ts +63 -33
- package/dist/lib/openapi/spec/import-toggles-schema.d.ts +52 -52
- package/dist/lib/openapi/spec/index.d.ts +9 -0
- package/dist/lib/openapi/spec/index.js +9 -0
- package/dist/lib/openapi/spec/index.js.map +1 -1
- package/dist/lib/openapi/spec/instance-admin-stats-schema.d.ts +42 -0
- package/dist/lib/openapi/spec/instance-admin-stats-schema.js +42 -0
- package/dist/lib/openapi/spec/instance-admin-stats-schema.js.map +1 -1
- package/dist/lib/openapi/spec/parent-feature-options-schema.d.ts +11 -0
- package/dist/lib/openapi/spec/parent-feature-options-schema.js +13 -0
- package/dist/lib/openapi/spec/parent-feature-options-schema.js.map +1 -0
- package/dist/lib/openapi/spec/playground-feature-schema.d.ts +5 -5
- package/dist/lib/openapi/spec/playground-request-schema.d.ts +1 -0
- package/dist/lib/openapi/spec/playground-response-schema.d.ts +12 -10
- package/dist/lib/openapi/spec/playground-strategy-schema.d.ts +4 -4
- package/dist/lib/openapi/spec/playground-strategy-schema.js +1 -1
- package/dist/lib/openapi/spec/playground-strategy-schema.js.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.d.ts +12 -12
- package/dist/lib/openapi/spec/project-dora-metrics-schema.d.ts +44 -0
- package/dist/lib/openapi/spec/project-dora-metrics-schema.js +28 -0
- package/dist/lib/openapi/spec/project-dora-metrics-schema.js.map +1 -0
- package/dist/lib/openapi/spec/project-environment-schema.d.ts +4 -4
- package/dist/lib/openapi/spec/project-overview-schema.d.ts +63 -33
- package/dist/lib/openapi/spec/project-overview-schema.js +6 -1
- package/dist/lib/openapi/spec/project-overview-schema.js.map +1 -1
- package/dist/lib/openapi/spec/project-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/project-schema.js +1 -1
- package/dist/lib/openapi/spec/project-schema.js.map +1 -1
- package/dist/lib/openapi/spec/projects-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/push-variants-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/sdk-context-schema.d.ts +1 -0
- package/dist/lib/openapi/spec/sdk-context-schema.js +1 -0
- package/dist/lib/openapi/spec/sdk-context-schema.js.map +1 -1
- package/dist/lib/openapi/spec/sdk-flat-context-schema.d.ts +46 -0
- package/dist/lib/openapi/spec/sdk-flat-context-schema.js +15 -0
- package/dist/lib/openapi/spec/sdk-flat-context-schema.js.map +1 -0
- package/dist/lib/openapi/spec/search-events-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/segments-schema.d.ts +177 -0
- package/dist/lib/openapi/spec/segments-schema.js +26 -0
- package/dist/lib/openapi/spec/segments-schema.js.map +1 -0
- package/dist/lib/openapi/spec/segments-schema.test.d.ts +1 -0
- package/dist/lib/openapi/spec/segments-schema.test.js +16 -0
- package/dist/lib/openapi/spec/segments-schema.test.js.map +1 -0
- package/dist/lib/openapi/spec/state-schema.d.ts +23 -23
- package/dist/lib/openapi/spec/strategy-variant-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.d.ts +35 -0
- package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.js +37 -0
- package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.js.map +1 -0
- package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.test.d.ts +1 -0
- package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.test.js +19 -0
- package/dist/lib/openapi/spec/update-feature-strategy-segments-schema.test.js.map +1 -0
- package/dist/lib/openapi/spec/upsert-segment-schema.d.ts +8 -15
- package/dist/lib/openapi/spec/upsert-segment-schema.js +8 -17
- package/dist/lib/openapi/spec/upsert-segment-schema.js.map +1 -1
- package/dist/lib/openapi/spec/upsert-segment-schema.test.d.ts +1 -0
- package/dist/lib/openapi/spec/upsert-segment-schema.test.js +35 -0
- package/dist/lib/openapi/spec/upsert-segment-schema.test.js.map +1 -0
- package/dist/lib/openapi/spec/validate-feature-schema.d.ts +6 -0
- package/dist/lib/openapi/spec/validate-feature-schema.js +6 -0
- package/dist/lib/openapi/spec/validate-feature-schema.js.map +1 -1
- package/dist/lib/openapi/spec/variant-schema.d.ts +2 -2
- package/dist/lib/openapi/spec/variant-schema.js +2 -2
- package/dist/lib/openapi/spec/variant-schema.js.map +1 -1
- package/dist/lib/openapi/spec/variants-schema.d.ts +2 -2
- package/dist/lib/openapi/util/all-of.d.ts +3 -0
- package/dist/lib/openapi/util/all-of.js +34 -0
- package/dist/lib/openapi/util/all-of.js.map +1 -0
- package/dist/lib/openapi/util/openapi-tags.d.ts +46 -58
- package/dist/lib/openapi/util/openapi-tags.js +27 -34
- package/dist/lib/openapi/util/openapi-tags.js.map +1 -1
- package/dist/lib/openapi/util/openapi-tags.test.d.ts +1 -0
- package/dist/lib/openapi/util/openapi-tags.test.js +15 -0
- package/dist/lib/openapi/util/openapi-tags.test.js.map +1 -0
- package/dist/lib/openapi/validate.js +0 -1
- package/dist/lib/openapi/validate.js.map +1 -1
- package/dist/lib/routes/admin-api/archive.d.ts +1 -1
- package/dist/lib/routes/admin-api/archive.js +3 -2
- package/dist/lib/routes/admin-api/archive.js.map +1 -1
- package/dist/lib/routes/admin-api/context.js +2 -1
- package/dist/lib/routes/admin-api/context.js.map +1 -1
- package/dist/lib/routes/admin-api/feature.js +2 -1
- package/dist/lib/routes/admin-api/feature.js.map +1 -1
- package/dist/lib/routes/admin-api/index.js +2 -0
- package/dist/lib/routes/admin-api/index.js.map +1 -1
- package/dist/lib/routes/admin-api/instance-admin.d.ts +2 -2
- package/dist/lib/routes/admin-api/instance-admin.js +7 -1
- package/dist/lib/routes/admin-api/instance-admin.js.map +1 -1
- package/dist/lib/routes/admin-api/metrics.d.ts +2 -1
- package/dist/lib/routes/admin-api/metrics.js +2 -1
- package/dist/lib/routes/admin-api/metrics.js.map +1 -1
- package/dist/lib/routes/admin-api/project/api-token.d.ts +2 -1
- package/dist/lib/routes/admin-api/project/api-token.js +12 -3
- package/dist/lib/routes/admin-api/project/api-token.js.map +1 -1
- package/dist/lib/routes/admin-api/project/environments.d.ts +2 -1
- package/dist/lib/routes/admin-api/project/environments.js +3 -1
- package/dist/lib/routes/admin-api/project/environments.js.map +1 -1
- package/dist/lib/routes/admin-api/project/index.d.ts +2 -1
- package/dist/lib/routes/admin-api/project/index.js +31 -0
- package/dist/lib/routes/admin-api/project/index.js.map +1 -1
- package/dist/lib/routes/admin-api/strategy.d.ts +1 -1
- package/dist/lib/routes/admin-api/strategy.js.map +1 -1
- package/dist/lib/routes/client-api/metrics.js +14 -8
- package/dist/lib/routes/client-api/metrics.js.map +1 -1
- package/dist/lib/routes/client-api/metrics.test.js +27 -0
- package/dist/lib/routes/client-api/metrics.test.js.map +1 -1
- package/dist/lib/routes/controller.d.ts +1 -1
- package/dist/lib/routes/controller.js +17 -10
- package/dist/lib/routes/controller.js.map +1 -1
- package/dist/lib/routes/proxy-api/index.js +5 -0
- package/dist/lib/routes/proxy-api/index.js.map +1 -1
- package/dist/lib/schema/role-schema.js +3 -1
- package/dist/lib/schema/role-schema.js.map +1 -1
- package/dist/lib/schema/role-schema.test.js +1 -1
- package/dist/lib/schema/role-schema.test.js.map +1 -1
- package/dist/lib/segments/segment-service-interface.d.ts +1 -1
- package/dist/lib/services/access-service.d.ts +29 -11
- package/dist/lib/services/access-service.js +53 -10
- package/dist/lib/services/access-service.js.map +1 -1
- package/dist/lib/services/access-service.test.js +2 -1
- package/dist/lib/services/access-service.test.js.map +1 -1
- package/dist/lib/services/addon-service.js +4 -2
- package/dist/lib/services/addon-service.js.map +1 -1
- package/dist/lib/services/addon-service.test.js +65 -0
- package/dist/lib/services/addon-service.test.js.map +1 -1
- package/dist/lib/services/client-metrics/instance-service.d.ts +5 -2
- package/dist/lib/services/client-metrics/instance-service.js +22 -3
- package/dist/lib/services/client-metrics/instance-service.js.map +1 -1
- package/dist/lib/services/client-metrics/instance-service.test.js +5 -4
- package/dist/lib/services/client-metrics/instance-service.test.js.map +1 -1
- package/dist/lib/services/context-service.d.ts +6 -2
- package/dist/lib/services/context-service.js +16 -2
- package/dist/lib/services/context-service.js.map +1 -1
- package/dist/lib/services/feature-service-potentially-stale.test.js +1 -1
- package/dist/lib/services/feature-service-potentially-stale.test.js.map +1 -1
- package/dist/lib/services/feature-toggle-service.d.ts +20 -7
- package/dist/lib/services/feature-toggle-service.js +109 -41
- package/dist/lib/services/feature-toggle-service.js.map +1 -1
- package/dist/lib/services/group-service.d.ts +4 -4
- package/dist/lib/services/group-service.js +17 -16
- package/dist/lib/services/group-service.js.map +1 -1
- package/dist/lib/services/index.d.ts +3 -2
- package/dist/lib/services/index.js +31 -17
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/project-schema.js +9 -1
- package/dist/lib/services/project-schema.js.map +1 -1
- package/dist/lib/services/project-service.d.ts +16 -12
- package/dist/lib/services/project-service.js +127 -17
- package/dist/lib/services/project-service.js.map +1 -1
- package/dist/lib/services/scheduler-service.d.ts +1 -1
- package/dist/lib/services/scheduler-service.js +3 -3
- package/dist/lib/services/scheduler-service.js.map +1 -1
- package/dist/lib/services/scheduler-service.test.js +15 -15
- package/dist/lib/services/scheduler-service.test.js.map +1 -1
- package/dist/lib/services/segment-service.d.ts +4 -2
- package/dist/lib/services/segment-service.js +17 -10
- package/dist/lib/services/segment-service.js.map +1 -1
- package/dist/lib/services/state-service.test.js +13 -3
- package/dist/lib/services/state-service.test.js.map +1 -1
- package/dist/lib/services/version-service.test.js +3 -0
- package/dist/lib/services/version-service.test.js.map +1 -1
- package/dist/lib/types/events.d.ts +61 -1
- package/dist/lib/types/events.js +66 -4
- package/dist/lib/types/events.js.map +1 -1
- package/dist/lib/types/experimental.d.ts +1 -1
- package/dist/lib/types/experimental.js +9 -5
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/lib/types/group.d.ts +2 -2
- package/dist/lib/types/model.d.ts +31 -2
- package/dist/lib/types/model.js.map +1 -1
- package/dist/lib/types/no-auth-user.d.ts +1 -0
- package/dist/lib/types/no-auth-user.js +3 -1
- package/dist/lib/types/no-auth-user.js.map +1 -1
- package/dist/lib/types/option.d.ts +7 -0
- package/dist/lib/types/services.d.ts +6 -1
- package/dist/lib/types/stores/access-store.d.ts +23 -4
- package/dist/lib/types/stores/feature-strategies-store.d.ts +2 -1
- package/dist/lib/types/stores/group-store.d.ts +4 -2
- package/dist/lib/types/stores/project-stats-store-type.d.ts +2 -0
- package/dist/lib/types/stores/project-store.d.ts +7 -14
- package/dist/lib/types/stores/strategy-store.d.ts +3 -17
- package/dist/lib/types/stores.d.ts +5 -1
- package/dist/lib/util/findDuplicates.d.ts +1 -0
- package/dist/lib/util/findDuplicates.js +18 -0
- package/dist/lib/util/findDuplicates.js.map +1 -0
- package/dist/lib/util/findDuplicates.test.d.ts +1 -0
- package/dist/lib/util/findDuplicates.test.js +23 -0
- package/dist/lib/util/findDuplicates.test.js.map +1 -0
- package/dist/migrations/20230830121352-update-client-applications-usage-table.d.ts +2 -0
- package/dist/migrations/20230830121352-update-client-applications-usage-table.js +16 -0
- package/dist/migrations/20230830121352-update-client-applications-usage-table.js.map +1 -0
- package/dist/migrations/20230905122605-add-feature-naming-description.d.ts +2 -0
- package/dist/migrations/20230905122605-add-feature-naming-description.js +13 -0
- package/dist/migrations/20230905122605-add-feature-naming-description.js.map +1 -0
- package/dist/migrations/20230919104006-dependent-features.d.ts +2 -0
- package/dist/migrations/20230919104006-dependent-features.js +21 -0
- package/dist/migrations/20230919104006-dependent-features.js.map +1 -0
- package/dist/migrations/20230927071830-reset-pnps-feedback.d.ts +2 -0
- package/dist/migrations/20230927071830-reset-pnps-feedback.js +10 -0
- package/dist/migrations/20230927071830-reset-pnps-feedback.js.map +1 -0
- package/dist/server-dev.js +7 -4
- package/dist/server-dev.js.map +1 -1
- package/dist/test/e2e/api/admin/addon.e2e.test.js +0 -1
- package/dist/test/e2e/api/admin/addon.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js +8 -12
- package/dist/test/e2e/api/admin/api-token.auth.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/event.e2e.test.js +9 -2
- package/dist/test/e2e/api/admin/event.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/metrics.e2e.test.js +2 -10
- package/dist/test/e2e/api/admin/metrics.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/environments.e2e.test.js +8 -0
- package/dist/test/e2e/api/admin/project/environments.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/features.e2e.test.js +41 -15
- package/dist/test/e2e/api/admin/project/features.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/project/project.api.tokens.e2e.test.js +30 -3
- package/dist/test/e2e/api/admin/project/project.api.tokens.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/segment.e2e.test.d.ts +1 -0
- package/dist/test/e2e/api/admin/segment.e2e.test.js +272 -0
- package/dist/test/e2e/api/admin/segment.e2e.test.js.map +1 -0
- package/dist/test/e2e/api/admin/state.e2e.test.js +0 -11
- package/dist/test/e2e/api/admin/state.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/admin/strategy.e2e.test.js +1 -1
- package/dist/test/e2e/api/client/feature.e2e.test.js +27 -3
- package/dist/test/e2e/api/client/feature.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/feature.token.access.e2e.test.js +2 -2
- package/dist/test/e2e/api/client/feature.token.access.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/client/segment.e2e.test.js +1 -1
- package/dist/test/e2e/api/client/segment.e2e.test.js.map +1 -1
- package/dist/test/e2e/api/proxy/proxy.e2e.test.js +34 -9
- package/dist/test/e2e/api/proxy/proxy.e2e.test.js.map +1 -1
- package/dist/test/e2e/helpers/app.utils.d.ts +6 -0
- package/dist/test/e2e/helpers/app.utils.js +16 -0
- package/dist/test/e2e/helpers/app.utils.js.map +1 -0
- package/dist/test/e2e/helpers/database.json +24 -0
- package/dist/test/e2e/services/access-service.e2e.test.js +549 -135
- package/dist/test/e2e/services/access-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/api-token-service.e2e.test.js +4 -2
- package/dist/test/e2e/services/api-token-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/client-metrics-service.e2e.test.js +2 -1
- package/dist/test/e2e/services/client-metrics-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js +38 -5
- package/dist/test/e2e/services/feature-toggle-service-v2.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/group-service.e2e.test.js +16 -11
- package/dist/test/e2e/services/group-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/playground-service.test.js +5 -2
- package/dist/test/e2e/services/playground-service.test.js.map +1 -1
- package/dist/test/e2e/services/project-health-service.e2e.test.js +4 -2
- package/dist/test/e2e/services/project-health-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/project-service.e2e.test.js +242 -60
- package/dist/test/e2e/services/project-service.e2e.test.js.map +1 -1
- package/dist/test/fixtures/access-service-mock.d.ts +3 -4
- package/dist/test/fixtures/access-service-mock.js.map +1 -1
- package/dist/test/fixtures/fake-access-store.d.ts +15 -5
- package/dist/test/fixtures/fake-access-store.js +30 -3
- package/dist/test/fixtures/fake-access-store.js.map +1 -1
- package/dist/test/fixtures/fake-group-store.d.ts +4 -2
- package/dist/test/fixtures/fake-group-store.js +3 -0
- package/dist/test/fixtures/fake-group-store.js.map +1 -1
- package/dist/test/fixtures/fake-project-stats-store.d.ts +1 -0
- package/dist/test/fixtures/fake-project-stats-store.js +3 -0
- package/dist/test/fixtures/fake-project-stats-store.js.map +1 -1
- package/dist/test/fixtures/fake-project-store.d.ts +2 -1
- package/dist/test/fixtures/fake-project-store.js +3 -0
- package/dist/test/fixtures/fake-project-store.js.map +1 -1
- package/dist/test/fixtures/no-logger.d.ts +2 -1
- package/dist/test/fixtures/no-logger.js +8 -4
- package/dist/test/fixtures/no-logger.js.map +1 -1
- package/dist/test/fixtures/store.js +3 -0
- package/dist/test/fixtures/store.js.map +1 -1
- package/frontend/README.md +7 -1
- package/frontend/build/index.html +2 -2
- package/frontend/build/static/{AdvancedPlayground-1748fcdd.js → AdvancedPlayground-20059178.js} +11 -11
- package/frontend/build/static/CreateProject-6955728f.js +4 -0
- package/frontend/build/static/{Error-cbce6b64.js → Error-f56339ab.js} +1 -1
- package/frontend/build/static/FeatureArchiveDialog-33dc3a5b.js +10 -0
- package/frontend/build/static/{FeatureMetricsChart-8fd8a304.js → FeatureMetricsChart-5ad514bc.js} +2 -2
- package/frontend/build/static/FeatureViewLazyExport-85a68ed0.js +7 -0
- package/frontend/build/static/LazyAdminExport-e2677758.js +35 -0
- package/frontend/build/static/LazyProjectExport-969bb54e.js +24 -0
- package/frontend/build/static/Logo-android-218bddbb.svg +1 -0
- package/frontend/build/static/Logo-flutter-cc3c706f.svg +1 -0
- package/frontend/build/static/Logo-go-02475b3d.svg +1 -0
- package/frontend/build/static/Logo-java-6e556b26.svg +1 -0
- package/frontend/build/static/Logo-javascript-caebc06e.svg +1 -0
- package/frontend/build/static/Logo-net-0a33abee.svg +1 -0
- package/frontend/build/static/Logo-node-318ed025.svg +1 -0
- package/frontend/build/static/Logo-php-201f18c3.svg +1 -0
- package/frontend/build/static/Logo-python-4305760e.svg +1 -0
- package/frontend/build/static/Logo-react-18e98687.svg +1 -0
- package/frontend/build/static/Logo-ruby-58f46832.svg +1 -0
- package/frontend/build/static/Logo-rust-c83a80f9.svg +1 -0
- package/frontend/build/static/Logo-svelte-97dcb624.svg +1 -0
- package/frontend/build/static/Logo-swift-315f842b.svg +5 -0
- package/frontend/build/static/Logo-vue-0de73099.svg +1 -0
- package/frontend/build/static/{NetworkOverview-349a7bdd.js → NetworkOverview-894877e6.js} +2 -2
- package/frontend/build/static/{NetworkTraffic-60478e50.js → NetworkTraffic-81eff1ae.js} +1 -1
- package/frontend/build/static/ReactJSONEditor-59c8a094.js +129 -0
- package/frontend/build/static/RoleCell-35857d41.js +1 -0
- package/frontend/build/static/{StrategyItemContainer-a4caeace.js → StrategyItemContainer-b250f2d4.js} +1 -1
- package/frontend/build/static/{chartjs-adapter-date-fns.esm-03d2fbea.js → chartjs-adapter-date-fns.esm-c51fe022.js} +1 -1
- package/frontend/build/static/cr-db7653ac.png +0 -0
- package/frontend/build/static/datadog-543762b6.svg +5 -0
- package/frontend/build/static/edge-daisy-chaining-012bfdef.svg +48 -0
- package/frontend/build/static/edge-mode-5d25949b.svg +22 -0
- package/frontend/build/static/edge-offline-f6a0f761.svg +19 -0
- package/frontend/build/static/{flowchart-elk-definition-170a3958-fc100c77.js → flowchart-elk-definition-170a3958-a8c4a86a.js} +1 -1
- package/frontend/build/static/{index-866f9bf9.js → index-0515f416.js} +1 -1
- package/frontend/build/static/index-942e9eeb.js +463 -0
- package/frontend/build/static/{index-3c63138f.js → index-a59b2d65.js} +1 -1
- package/frontend/build/static/{is_dark-31c253e9.js → is_dark-464961a8.js} +1 -1
- package/frontend/build/static/jira-1abe7cbf.svg +17 -0
- package/frontend/build/static/{mindmap-definition-44684416-398682f9.js → mindmap-definition-44684416-3a71a9a5.js} +1 -1
- package/frontend/build/static/slack-36ce798a.svg +18 -0
- package/frontend/build/static/style-97d3ef98.css +1 -0
- package/frontend/build/static/teams-4e30b51f.svg +45 -0
- package/frontend/build/static/{timeline-definition-8e5a9bc6-04a0ae08.js → timeline-definition-8e5a9bc6-da4ebc88.js} +1 -1
- package/frontend/build/static/{unknownify-b8618d88.js → unknownify-3563456b.js} +1 -1
- package/frontend/build/static/unleash-integration-949d8966.svg +1 -0
- package/frontend/build/static/webhooks-b1b44207.svg +16 -0
- package/frontend/package.json +20 -18
- package/package.json +23 -23
- package/dist/lib/services/instance-stats-service.js.map +0 -1
- package/dist/lib/services/instance-stats-service.test.js.map +0 -1
- package/frontend/build/static/CreateProject-972fa820.js +0 -4
- package/frontend/build/static/FeatureArchiveDialog-8a281845.js +0 -10
- package/frontend/build/static/FeatureViewLazyExport-a215d53b.js +0 -7
- package/frontend/build/static/LazyAdminExport-ba7d55ca.js +0 -35
- package/frontend/build/static/LazyProjectExport-12bccd40.js +0 -17
- package/frontend/build/static/RoleCell-144e7eca.js +0 -1
- package/frontend/build/static/datadog-591b6a73.svg +0 -1
- package/frontend/build/static/index-17d74ac9.js +0 -454
- package/frontend/build/static/slack-c0af31c6.svg +0 -1
- package/frontend/build/static/style-770afaee.css +0 -1
- package/frontend/build/static/teams-62e72076.svg +0 -26
- package/frontend/build/static/webhooks-ffa904ac.svg +0 -1
- /package/dist/lib/{services/instance-stats-service.test.d.ts → db/access-store.test.d.ts} +0 -0
- /package/frontend/build/static/{jira-d9eb9af9.svg → jira-comment-d9eb9af9.svg} +0 -0
|
@@ -30,6 +30,7 @@ const defaultContext = {
|
|
|
30
30
|
{ value: 'south', description: 'south-desc' },
|
|
31
31
|
],
|
|
32
32
|
};
|
|
33
|
+
const defaultFeatureName = 'first_feature';
|
|
33
34
|
const createToggle = async (toggle, strategy = defaultStrategy, tags = [], projectId = 'default', username = 'test') => {
|
|
34
35
|
await app.services.featureToggleServiceV2.createFeatureToggle(projectId, toggle, username);
|
|
35
36
|
if (strategy) {
|
|
@@ -52,7 +53,7 @@ const createContext = async (context = defaultContext) => {
|
|
|
52
53
|
const createVariants = async (feature, variants) => {
|
|
53
54
|
await app.services.featureToggleService.saveVariantsOnEnv(types_1.DEFAULT_PROJECT, feature, util_1.DEFAULT_ENV, variants, new user_1.default({ id: 1 }));
|
|
54
55
|
};
|
|
55
|
-
const createProjects = async (projects = [types_1.DEFAULT_PROJECT]) => {
|
|
56
|
+
const createProjects = async (projects = [types_1.DEFAULT_PROJECT], featureLimit = 2) => {
|
|
56
57
|
await db.stores.environmentStore.create({
|
|
57
58
|
name: util_1.DEFAULT_ENV,
|
|
58
59
|
type: 'production',
|
|
@@ -63,6 +64,7 @@ const createProjects = async (projects = [types_1.DEFAULT_PROJECT]) => {
|
|
|
63
64
|
description: '',
|
|
64
65
|
id: project,
|
|
65
66
|
mode: 'open',
|
|
67
|
+
featureLimit,
|
|
66
68
|
});
|
|
67
69
|
await app.linkProjectToEnvironment(project, util_1.DEFAULT_ENV);
|
|
68
70
|
}
|
|
@@ -85,6 +87,7 @@ beforeAll(async () => {
|
|
|
85
87
|
experimental: {
|
|
86
88
|
flags: {
|
|
87
89
|
featuresExportImport: true,
|
|
90
|
+
featureNamingPattern: true,
|
|
88
91
|
},
|
|
89
92
|
},
|
|
90
93
|
}, db.rawDatabase);
|
|
@@ -131,13 +134,13 @@ describe('import-export for project-specific segments', () => {
|
|
|
131
134
|
segments: [segment.id],
|
|
132
135
|
};
|
|
133
136
|
await createToggle({
|
|
134
|
-
name:
|
|
137
|
+
name: defaultFeatureName,
|
|
135
138
|
description: 'the #1 feature',
|
|
136
139
|
}, strategy, [], project);
|
|
137
140
|
const { body } = await app.request
|
|
138
141
|
.post('/api/admin/features-batch/export')
|
|
139
142
|
.send({
|
|
140
|
-
features: [
|
|
143
|
+
features: [defaultFeatureName],
|
|
141
144
|
environment: 'default',
|
|
142
145
|
})
|
|
143
146
|
.set('Content-Type', 'application/json')
|
|
@@ -146,7 +149,7 @@ describe('import-export for project-specific segments', () => {
|
|
|
146
149
|
expect(body).toMatchObject({
|
|
147
150
|
features: [
|
|
148
151
|
{
|
|
149
|
-
name:
|
|
152
|
+
name: defaultFeatureName,
|
|
150
153
|
},
|
|
151
154
|
],
|
|
152
155
|
featureStrategies: [resultStrategy],
|
|
@@ -154,7 +157,7 @@ describe('import-export for project-specific segments', () => {
|
|
|
154
157
|
{
|
|
155
158
|
enabled: false,
|
|
156
159
|
environment: 'default',
|
|
157
|
-
featureName:
|
|
160
|
+
featureName: defaultFeatureName,
|
|
158
161
|
},
|
|
159
162
|
],
|
|
160
163
|
segments: [
|
|
@@ -183,7 +186,7 @@ test('exports features', async () => {
|
|
|
183
186
|
segments: [segment.id],
|
|
184
187
|
};
|
|
185
188
|
await createToggle({
|
|
186
|
-
name:
|
|
189
|
+
name: defaultFeatureName,
|
|
187
190
|
description: 'the #1 feature',
|
|
188
191
|
}, strategy);
|
|
189
192
|
await createToggle({
|
|
@@ -193,7 +196,7 @@ test('exports features', async () => {
|
|
|
193
196
|
const { body } = await app.request
|
|
194
197
|
.post('/api/admin/features-batch/export')
|
|
195
198
|
.send({
|
|
196
|
-
features: [
|
|
199
|
+
features: [defaultFeatureName],
|
|
197
200
|
environment: 'default',
|
|
198
201
|
})
|
|
199
202
|
.set('Content-Type', 'application/json')
|
|
@@ -202,7 +205,7 @@ test('exports features', async () => {
|
|
|
202
205
|
expect(body).toMatchObject({
|
|
203
206
|
features: [
|
|
204
207
|
{
|
|
205
|
-
name:
|
|
208
|
+
name: defaultFeatureName,
|
|
206
209
|
},
|
|
207
210
|
],
|
|
208
211
|
featureStrategies: [resultStrategy],
|
|
@@ -210,7 +213,7 @@ test('exports features', async () => {
|
|
|
210
213
|
{
|
|
211
214
|
enabled: false,
|
|
212
215
|
environment: 'default',
|
|
213
|
-
featureName:
|
|
216
|
+
featureName: defaultFeatureName,
|
|
214
217
|
},
|
|
215
218
|
],
|
|
216
219
|
segments: [
|
|
@@ -235,7 +238,7 @@ test('exports features by tag', async () => {
|
|
|
235
238
|
],
|
|
236
239
|
};
|
|
237
240
|
await createToggle({
|
|
238
|
-
name:
|
|
241
|
+
name: defaultFeatureName,
|
|
239
242
|
description: 'the #1 feature',
|
|
240
243
|
}, strategy, ['mytag']);
|
|
241
244
|
await createToggle({
|
|
@@ -254,7 +257,7 @@ test('exports features by tag', async () => {
|
|
|
254
257
|
expect(body).toMatchObject({
|
|
255
258
|
features: [
|
|
256
259
|
{
|
|
257
|
-
name:
|
|
260
|
+
name: defaultFeatureName,
|
|
258
261
|
},
|
|
259
262
|
],
|
|
260
263
|
featureStrategies: [resultStrategy],
|
|
@@ -262,7 +265,7 @@ test('exports features by tag', async () => {
|
|
|
262
265
|
{
|
|
263
266
|
enabled: false,
|
|
264
267
|
environment: 'default',
|
|
265
|
-
featureName:
|
|
268
|
+
featureName: defaultFeatureName,
|
|
266
269
|
},
|
|
267
270
|
],
|
|
268
271
|
});
|
|
@@ -298,7 +301,7 @@ test('should export custom context fields from strategies and variants', async (
|
|
|
298
301
|
],
|
|
299
302
|
};
|
|
300
303
|
await createToggle({
|
|
301
|
-
name:
|
|
304
|
+
name: defaultFeatureName,
|
|
302
305
|
description: 'the #1 feature',
|
|
303
306
|
}, strategy);
|
|
304
307
|
const variantStickinessContext = {
|
|
@@ -317,7 +320,7 @@ test('should export custom context fields from strategies and variants', async (
|
|
|
317
320
|
};
|
|
318
321
|
await createContext(variantStickinessContext);
|
|
319
322
|
await createContext(variantOverridesContext);
|
|
320
|
-
await createVariants(
|
|
323
|
+
await createVariants(defaultFeatureName, [
|
|
321
324
|
{
|
|
322
325
|
name: 'irrelevant',
|
|
323
326
|
weight: 1000,
|
|
@@ -334,7 +337,7 @@ test('should export custom context fields from strategies and variants', async (
|
|
|
334
337
|
const { body } = await app.request
|
|
335
338
|
.post('/api/admin/features-batch/export')
|
|
336
339
|
.send({
|
|
337
|
-
features: [
|
|
340
|
+
features: [defaultFeatureName],
|
|
338
341
|
environment: 'default',
|
|
339
342
|
})
|
|
340
343
|
.set('Content-Type', 'application/json')
|
|
@@ -343,7 +346,7 @@ test('should export custom context fields from strategies and variants', async (
|
|
|
343
346
|
expect(body).toMatchObject({
|
|
344
347
|
features: [
|
|
345
348
|
{
|
|
346
|
-
name:
|
|
349
|
+
name: defaultFeatureName,
|
|
347
350
|
},
|
|
348
351
|
],
|
|
349
352
|
featureStrategies: [resultStrategy],
|
|
@@ -351,7 +354,7 @@ test('should export custom context fields from strategies and variants', async (
|
|
|
351
354
|
{
|
|
352
355
|
enabled: false,
|
|
353
356
|
environment: 'default',
|
|
354
|
-
featureName:
|
|
357
|
+
featureName: defaultFeatureName,
|
|
355
358
|
},
|
|
356
359
|
],
|
|
357
360
|
contextFields: [
|
|
@@ -363,7 +366,7 @@ test('should export custom context fields from strategies and variants', async (
|
|
|
363
366
|
});
|
|
364
367
|
});
|
|
365
368
|
test('should export tags', async () => {
|
|
366
|
-
const featureName =
|
|
369
|
+
const featureName = defaultFeatureName;
|
|
367
370
|
await createProjects();
|
|
368
371
|
await createToggle({
|
|
369
372
|
name: featureName,
|
|
@@ -372,7 +375,7 @@ test('should export tags', async () => {
|
|
|
372
375
|
const { body } = await app.request
|
|
373
376
|
.post('/api/admin/features-batch/export')
|
|
374
377
|
.send({
|
|
375
|
-
features: [
|
|
378
|
+
features: [defaultFeatureName],
|
|
376
379
|
environment: 'default',
|
|
377
380
|
})
|
|
378
381
|
.set('Content-Type', 'application/json')
|
|
@@ -381,7 +384,7 @@ test('should export tags', async () => {
|
|
|
381
384
|
expect(body).toMatchObject({
|
|
382
385
|
features: [
|
|
383
386
|
{
|
|
384
|
-
name:
|
|
387
|
+
name: defaultFeatureName,
|
|
385
388
|
},
|
|
386
389
|
],
|
|
387
390
|
featureStrategies: [resultStrategy],
|
|
@@ -389,7 +392,7 @@ test('should export tags', async () => {
|
|
|
389
392
|
{
|
|
390
393
|
enabled: false,
|
|
391
394
|
environment: 'default',
|
|
392
|
-
featureName:
|
|
395
|
+
featureName: defaultFeatureName,
|
|
393
396
|
},
|
|
394
397
|
],
|
|
395
398
|
featureTags: [{ featureName, tagValue: 'tag1' }],
|
|
@@ -398,7 +401,7 @@ test('should export tags', async () => {
|
|
|
398
401
|
test('returns no features, when no feature was requested', async () => {
|
|
399
402
|
await createProjects();
|
|
400
403
|
await createToggle({
|
|
401
|
-
name:
|
|
404
|
+
name: defaultFeatureName,
|
|
402
405
|
description: 'the #1 feature',
|
|
403
406
|
});
|
|
404
407
|
await createToggle({
|
|
@@ -415,7 +418,6 @@ test('returns no features, when no feature was requested', async () => {
|
|
|
415
418
|
.expect(200);
|
|
416
419
|
expect(body.features).toHaveLength(0);
|
|
417
420
|
});
|
|
418
|
-
const defaultFeature = 'first_feature';
|
|
419
421
|
const variants = [
|
|
420
422
|
{
|
|
421
423
|
name: 'variantA',
|
|
@@ -442,7 +444,7 @@ const variants = [
|
|
|
442
444
|
];
|
|
443
445
|
const exportedFeature = {
|
|
444
446
|
project: 'old_project',
|
|
445
|
-
name:
|
|
447
|
+
name: defaultFeatureName,
|
|
446
448
|
type: 'release',
|
|
447
449
|
};
|
|
448
450
|
const anotherExportedFeature = {
|
|
@@ -459,7 +461,7 @@ const constraints = [
|
|
|
459
461
|
},
|
|
460
462
|
];
|
|
461
463
|
const exportedStrategy = {
|
|
462
|
-
featureName:
|
|
464
|
+
featureName: defaultFeatureName,
|
|
463
465
|
id: '798cb25a-2abd-47bd-8a95-40ec13472309',
|
|
464
466
|
name: 'default',
|
|
465
467
|
parameters: {},
|
|
@@ -467,17 +469,17 @@ const exportedStrategy = {
|
|
|
467
469
|
};
|
|
468
470
|
const tags = [
|
|
469
471
|
{
|
|
470
|
-
featureName:
|
|
472
|
+
featureName: defaultFeatureName,
|
|
471
473
|
tagType: 'simple',
|
|
472
474
|
tagValue: 'tag1',
|
|
473
475
|
},
|
|
474
476
|
{
|
|
475
|
-
featureName:
|
|
477
|
+
featureName: defaultFeatureName,
|
|
476
478
|
tagType: 'simple',
|
|
477
479
|
tagValue: 'tag2',
|
|
478
480
|
},
|
|
479
481
|
{
|
|
480
|
-
featureName:
|
|
482
|
+
featureName: defaultFeatureName,
|
|
481
483
|
tagType: 'special_tag',
|
|
482
484
|
tagValue: 'feature_tagged',
|
|
483
485
|
},
|
|
@@ -500,8 +502,8 @@ const defaultImportPayload = {
|
|
|
500
502
|
{
|
|
501
503
|
enabled: true,
|
|
502
504
|
environment: 'irrelevant',
|
|
503
|
-
featureName:
|
|
504
|
-
name:
|
|
505
|
+
featureName: defaultFeatureName,
|
|
506
|
+
name: defaultFeatureName,
|
|
505
507
|
variants,
|
|
506
508
|
},
|
|
507
509
|
],
|
|
@@ -552,20 +554,20 @@ const validateImport = (importPayload, status = 200) => app.request
|
|
|
552
554
|
test('import features to existing project and environment', async () => {
|
|
553
555
|
await createProjects();
|
|
554
556
|
await app.importToggles(defaultImportPayload);
|
|
555
|
-
const { body: importedFeature } = await getFeature(
|
|
557
|
+
const { body: importedFeature } = await getFeature(defaultFeatureName);
|
|
556
558
|
expect(importedFeature).toMatchObject({
|
|
557
|
-
name:
|
|
559
|
+
name: defaultFeatureName,
|
|
558
560
|
project: types_1.DEFAULT_PROJECT,
|
|
559
561
|
variants,
|
|
560
562
|
});
|
|
561
|
-
const { body: importedFeatureEnvironment } = await getFeatureEnvironment(
|
|
563
|
+
const { body: importedFeatureEnvironment } = await getFeatureEnvironment(defaultFeatureName);
|
|
562
564
|
expect(importedFeatureEnvironment).toMatchObject({
|
|
563
|
-
name:
|
|
565
|
+
name: defaultFeatureName,
|
|
564
566
|
environment: util_1.DEFAULT_ENV,
|
|
565
567
|
enabled: true,
|
|
566
568
|
strategies: [
|
|
567
569
|
{
|
|
568
|
-
featureName:
|
|
570
|
+
featureName: defaultFeatureName,
|
|
569
571
|
parameters: {},
|
|
570
572
|
constraints,
|
|
571
573
|
sortOrder: 0,
|
|
@@ -573,7 +575,7 @@ test('import features to existing project and environment', async () => {
|
|
|
573
575
|
},
|
|
574
576
|
],
|
|
575
577
|
});
|
|
576
|
-
const { body: importedTags } = await getTags(
|
|
578
|
+
const { body: importedTags } = await getTags(defaultFeatureName);
|
|
577
579
|
expect(importedTags).toMatchObject({
|
|
578
580
|
tags: resultTags,
|
|
579
581
|
});
|
|
@@ -592,6 +594,11 @@ test('import multiple features with same tag', async () => {
|
|
|
592
594
|
tags: [{ value: 'tag1', type: 'simple' }],
|
|
593
595
|
});
|
|
594
596
|
});
|
|
597
|
+
test('import too many feature exceeding limit', async () => {
|
|
598
|
+
const featureLimit = 1;
|
|
599
|
+
await createProjects([types_1.DEFAULT_PROJECT], featureLimit);
|
|
600
|
+
await app.importToggles(importWithMultipleFeatures, 403);
|
|
601
|
+
});
|
|
595
602
|
test('can update toggles on subsequent import', async () => {
|
|
596
603
|
await createProjects();
|
|
597
604
|
await app.importToggles(defaultImportPayload);
|
|
@@ -602,21 +609,21 @@ test('can update toggles on subsequent import', async () => {
|
|
|
602
609
|
features: [{ ...exportedFeature, type: 'operational' }],
|
|
603
610
|
},
|
|
604
611
|
});
|
|
605
|
-
const { body: importedFeature } = await getFeature(
|
|
612
|
+
const { body: importedFeature } = await getFeature(defaultFeatureName);
|
|
606
613
|
expect(importedFeature).toMatchObject({
|
|
607
|
-
name:
|
|
614
|
+
name: defaultFeatureName,
|
|
608
615
|
project: types_1.DEFAULT_PROJECT,
|
|
609
616
|
type: 'operational',
|
|
610
617
|
variants,
|
|
611
618
|
});
|
|
612
|
-
const { body: importedFeatureEnvironment } = await getFeatureEnvironment(
|
|
619
|
+
const { body: importedFeatureEnvironment } = await getFeatureEnvironment(defaultFeatureName);
|
|
613
620
|
expect(importedFeatureEnvironment).toMatchObject({
|
|
614
|
-
name:
|
|
621
|
+
name: defaultFeatureName,
|
|
615
622
|
environment: util_1.DEFAULT_ENV,
|
|
616
623
|
enabled: true,
|
|
617
624
|
strategies: [
|
|
618
625
|
{
|
|
619
|
-
featureName:
|
|
626
|
+
featureName: defaultFeatureName,
|
|
620
627
|
parameters: {},
|
|
621
628
|
constraints,
|
|
622
629
|
sortOrder: 0,
|
|
@@ -671,10 +678,11 @@ test('reject import with duplicate features', async () => {
|
|
|
671
678
|
},
|
|
672
679
|
};
|
|
673
680
|
const { body } = await app.importToggles(importPayloadWithContextFields, 409);
|
|
674
|
-
expect(body.details[0].description).toBe('
|
|
681
|
+
expect(body.details[0].description).toBe('A toggle with that name already exists');
|
|
675
682
|
});
|
|
676
683
|
test('validate import data', async () => {
|
|
677
|
-
|
|
684
|
+
const featureLimit = 1;
|
|
685
|
+
await createProjects([types_1.DEFAULT_PROJECT], featureLimit);
|
|
678
686
|
const contextField = {
|
|
679
687
|
name: 'validate_context_field',
|
|
680
688
|
legalValues: [{ value: 'Value1' }],
|
|
@@ -683,13 +691,18 @@ test('validate import data', async () => {
|
|
|
683
691
|
name: 'created_context_field',
|
|
684
692
|
legalValues: [{ value: 'new_value' }],
|
|
685
693
|
};
|
|
686
|
-
await app.createFeature(
|
|
687
|
-
await app.archiveFeature(
|
|
694
|
+
await app.createFeature(defaultFeatureName);
|
|
695
|
+
await app.archiveFeature(defaultFeatureName);
|
|
688
696
|
await app.createContextField(contextField);
|
|
689
697
|
const importPayloadWithContextFields = {
|
|
690
698
|
...defaultImportPayload,
|
|
691
699
|
data: {
|
|
692
700
|
...defaultImportPayload.data,
|
|
701
|
+
features: [
|
|
702
|
+
exportedFeature,
|
|
703
|
+
exportedFeature,
|
|
704
|
+
anotherExportedFeature,
|
|
705
|
+
],
|
|
693
706
|
featureStrategies: [{ name: 'customStrategy' }],
|
|
694
707
|
segments: [{ id: 1, name: 'customSegment' }],
|
|
695
708
|
contextFields: [
|
|
@@ -701,6 +714,15 @@ test('validate import data', async () => {
|
|
|
701
714
|
],
|
|
702
715
|
},
|
|
703
716
|
};
|
|
717
|
+
// note: this must be done after creating the feature on the earlier lines,
|
|
718
|
+
// to prevent the pattern from blocking the creation.
|
|
719
|
+
await projectStore.update({
|
|
720
|
+
id: types_1.DEFAULT_PROJECT,
|
|
721
|
+
name: 'default',
|
|
722
|
+
description: '',
|
|
723
|
+
mode: 'open',
|
|
724
|
+
featureNaming: { pattern: 'testpattern.+' },
|
|
725
|
+
});
|
|
704
726
|
const { body } = await validateImport(importPayloadWithContextFields, 200);
|
|
705
727
|
expect(body).toMatchObject({
|
|
706
728
|
errors: [
|
|
@@ -712,11 +734,26 @@ test('validate import data', async () => {
|
|
|
712
734
|
message: 'We detected the following context fields that do not have matching legal values with the imported ones:',
|
|
713
735
|
affectedItems: [contextField.name],
|
|
714
736
|
},
|
|
737
|
+
{
|
|
738
|
+
message: 'We detected the following features are duplicate in your import data:',
|
|
739
|
+
affectedItems: [defaultFeatureName],
|
|
740
|
+
},
|
|
741
|
+
{
|
|
742
|
+
message: expect.stringMatching(/\btestpattern.+\b/),
|
|
743
|
+
affectedItems: [
|
|
744
|
+
defaultFeatureName,
|
|
745
|
+
anotherExportedFeature.name,
|
|
746
|
+
],
|
|
747
|
+
},
|
|
748
|
+
{
|
|
749
|
+
message: 'We detected you want to create 2 new features to a project that already has 0 existing features, exceeding the maximum limit of 1.',
|
|
750
|
+
affectedItems: [],
|
|
751
|
+
},
|
|
715
752
|
],
|
|
716
753
|
warnings: [
|
|
717
754
|
{
|
|
718
755
|
message: 'The following features will not be imported as they are currently archived. To import them, please unarchive them first:',
|
|
719
|
-
affectedItems: [
|
|
756
|
+
affectedItems: [defaultFeatureName],
|
|
720
757
|
},
|
|
721
758
|
],
|
|
722
759
|
permissions: [],
|
|
@@ -742,24 +779,57 @@ test('should create new context', async () => {
|
|
|
742
779
|
test('should not import archived features tags', async () => {
|
|
743
780
|
await createProjects();
|
|
744
781
|
await app.importToggles(defaultImportPayload);
|
|
745
|
-
await app.archiveFeature(
|
|
782
|
+
await app.archiveFeature(defaultFeatureName);
|
|
746
783
|
await app.importToggles({
|
|
747
784
|
...defaultImportPayload,
|
|
748
785
|
data: {
|
|
749
786
|
...defaultImportPayload.data,
|
|
750
787
|
featureTags: [
|
|
751
788
|
{
|
|
752
|
-
featureName:
|
|
789
|
+
featureName: defaultFeatureName,
|
|
753
790
|
tagType: 'simple',
|
|
754
791
|
tagValue: 'tag2',
|
|
755
792
|
},
|
|
756
793
|
],
|
|
757
794
|
},
|
|
758
795
|
});
|
|
759
|
-
await unArchiveFeature(
|
|
760
|
-
const { body: importedTags } = await getTags(
|
|
796
|
+
await unArchiveFeature(defaultFeatureName);
|
|
797
|
+
const { body: importedTags } = await getTags(defaultFeatureName);
|
|
761
798
|
expect(importedTags).toMatchObject({
|
|
762
799
|
tags: resultTags,
|
|
763
800
|
});
|
|
764
801
|
});
|
|
802
|
+
test(`should give errors with flag names if the flags don't match the project pattern`, async () => {
|
|
803
|
+
await db.stores.environmentStore.create({
|
|
804
|
+
name: util_1.DEFAULT_ENV,
|
|
805
|
+
type: 'production',
|
|
806
|
+
});
|
|
807
|
+
const pattern = 'testpattern.+';
|
|
808
|
+
for (const project of [types_1.DEFAULT_PROJECT]) {
|
|
809
|
+
await db.stores.projectStore.create({
|
|
810
|
+
name: project,
|
|
811
|
+
description: '',
|
|
812
|
+
id: project,
|
|
813
|
+
mode: 'open',
|
|
814
|
+
featureNaming: { pattern },
|
|
815
|
+
});
|
|
816
|
+
await app.linkProjectToEnvironment(project, util_1.DEFAULT_ENV);
|
|
817
|
+
}
|
|
818
|
+
const flagName = 'unusedfeaturenamethatdoesntmatchpattern';
|
|
819
|
+
const { body } = await app.importToggles({
|
|
820
|
+
...defaultImportPayload,
|
|
821
|
+
data: {
|
|
822
|
+
...defaultImportPayload.data,
|
|
823
|
+
features: [
|
|
824
|
+
{
|
|
825
|
+
project: 'old_project',
|
|
826
|
+
name: flagName,
|
|
827
|
+
type: 'release',
|
|
828
|
+
},
|
|
829
|
+
],
|
|
830
|
+
},
|
|
831
|
+
}, 400);
|
|
832
|
+
expect(body.message).toContain(pattern);
|
|
833
|
+
expect(body.message).toContain(flagName);
|
|
834
|
+
});
|
|
765
835
|
//# sourceMappingURL=export-import.e2e.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export-import.e2e.test.js","sourceRoot":"","sources":["../../../../src/lib/features/export-import-toggles/export-import.e2e.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"export-import.e2e.test.js","sourceRoot":"","sources":["../../../../src/lib/features/export-import-toggles/export-import.e2e.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { IImportTogglesStore } from './import-toggles-store-type';
|
|
|
2
2
|
import { AccessService, ContextService, TagTypeService } from '../../services';
|
|
3
3
|
import { ImportTogglesSchema } from '../../openapi';
|
|
4
4
|
import User from '../../types/user';
|
|
5
|
-
declare type Mode = 'regular' | 'change_request';
|
|
5
|
+
export declare type Mode = 'regular' | 'change_request';
|
|
6
6
|
export declare class ImportPermissionsService {
|
|
7
7
|
private importTogglesStore;
|
|
8
8
|
private accessService;
|
|
@@ -14,4 +14,3 @@ export declare class ImportPermissionsService {
|
|
|
14
14
|
getMissingPermissions(dto: ImportTogglesSchema, user: User, mode: Mode): Promise<string[]>;
|
|
15
15
|
verifyPermissions(dto: ImportTogglesSchema, user: User, mode: Mode): Promise<void>;
|
|
16
16
|
}
|
|
17
|
-
export {};
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
export interface ProjectFeaturesLimit {
|
|
2
|
+
limit: number;
|
|
3
|
+
newFeaturesCount: number;
|
|
4
|
+
currentFeaturesCount: number;
|
|
5
|
+
}
|
|
1
6
|
export interface IImportTogglesStore {
|
|
2
7
|
deleteStrategiesForFeatures(featureNames: string[], environment: string): Promise<void>;
|
|
3
8
|
getArchivedFeatures(featureNames: string[]): Promise<string[]>;
|
|
@@ -6,6 +11,7 @@ export interface IImportTogglesStore {
|
|
|
6
11
|
project: string;
|
|
7
12
|
}[]>;
|
|
8
13
|
getFeaturesInProject(featureNames: string[], project: string): Promise<string[]>;
|
|
14
|
+
getProjectFeaturesLimit(featureNames: string[], project: string): Promise<ProjectFeaturesLimit>;
|
|
9
15
|
deleteTagsForFeatures(tags: string[]): Promise<void>;
|
|
10
16
|
strategiesExistForFeatures(featureNames: string[], environment: string): Promise<boolean>;
|
|
11
17
|
getDisplayPermissions(names: string[]): Promise<{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IImportTogglesStore } from './import-toggles-store-type';
|
|
1
|
+
import { IImportTogglesStore, ProjectFeaturesLimit } from './import-toggles-store-type';
|
|
2
2
|
import { Db } from '../../db/db';
|
|
3
3
|
export declare class ImportTogglesStore implements IImportTogglesStore {
|
|
4
4
|
private db;
|
|
@@ -16,5 +16,6 @@ export declare class ImportTogglesStore implements IImportTogglesStore {
|
|
|
16
16
|
project: string;
|
|
17
17
|
}[]>;
|
|
18
18
|
getFeaturesInProject(featureNames: string[], project: string): Promise<string[]>;
|
|
19
|
+
getProjectFeaturesLimit(featureNames: string[], project: string): Promise<ProjectFeaturesLimit>;
|
|
19
20
|
deleteTagsForFeatures(features: string[]): Promise<void>;
|
|
20
21
|
}
|
|
@@ -5,6 +5,7 @@ const T = {
|
|
|
5
5
|
featureStrategies: 'feature_strategies',
|
|
6
6
|
features: 'features',
|
|
7
7
|
featureTag: 'feature_tag',
|
|
8
|
+
projectSettings: 'project_settings',
|
|
8
9
|
};
|
|
9
10
|
class ImportTogglesStore {
|
|
10
11
|
constructor(db) {
|
|
@@ -60,6 +61,30 @@ class ImportTogglesStore {
|
|
|
60
61
|
.whereIn('name', featureNames);
|
|
61
62
|
return rows.map((row) => row.name);
|
|
62
63
|
}
|
|
64
|
+
async getProjectFeaturesLimit(featureNames, project) {
|
|
65
|
+
const row = await this.db(T.projectSettings)
|
|
66
|
+
.select(['feature_limit'])
|
|
67
|
+
.where('project', project)
|
|
68
|
+
.first();
|
|
69
|
+
const limit = row?.feature_limit ?? Number.MAX_SAFE_INTEGER;
|
|
70
|
+
const existingFeaturesCount = await this.db(T.features)
|
|
71
|
+
.whereIn('name', featureNames)
|
|
72
|
+
.andWhere('project', project)
|
|
73
|
+
.where('archived_at', null)
|
|
74
|
+
.count()
|
|
75
|
+
.then((res) => Number(res[0].count));
|
|
76
|
+
const newFeaturesCount = featureNames.length - existingFeaturesCount;
|
|
77
|
+
const currentFeaturesCount = await this.db(T.features)
|
|
78
|
+
.where('project', project)
|
|
79
|
+
.count()
|
|
80
|
+
.where('archived_at', null)
|
|
81
|
+
.then((res) => Number(res[0].count));
|
|
82
|
+
return {
|
|
83
|
+
limit,
|
|
84
|
+
newFeaturesCount,
|
|
85
|
+
currentFeaturesCount,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
63
88
|
async deleteTagsForFeatures(features) {
|
|
64
89
|
return this.db(T.featureTag).whereIn('feature_name', features).del();
|
|
65
90
|
}
|