unleash-server 8.0.0 → 8.0.2
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/addons/addon.d.ts +10 -2
- package/dist/lib/addons/addon.d.ts.map +1 -1
- package/dist/lib/addons/addon.js +104 -6
- package/dist/lib/addons/addon.js.map +1 -1
- package/dist/lib/addons/datadog-definition.js +1 -1
- package/dist/lib/addons/datadog-definition.js.map +1 -1
- package/dist/lib/addons/datadog.test.js +2 -0
- package/dist/lib/addons/datadog.test.js.map +1 -1
- package/dist/lib/addons/index.d.ts.map +1 -1
- package/dist/lib/addons/index.js +2 -0
- package/dist/lib/addons/index.js.map +1 -1
- package/dist/lib/addons/new-relic.d.ts.map +1 -1
- package/dist/lib/addons/new-relic.js +0 -1
- package/dist/lib/addons/new-relic.js.map +1 -1
- package/dist/lib/addons/new-relic.test.js +0 -1
- package/dist/lib/addons/new-relic.test.js.map +1 -1
- package/dist/lib/addons/slack.test.js +1 -2
- package/dist/lib/addons/slack.test.js.map +1 -1
- package/dist/lib/addons/teams-definition.d.ts.map +1 -1
- package/dist/lib/addons/teams-definition.js +1 -0
- package/dist/lib/addons/teams-definition.js.map +1 -1
- package/dist/lib/addons/teams-workflow-definition.d.ts +4 -0
- package/dist/lib/addons/teams-workflow-definition.d.ts.map +1 -0
- package/dist/lib/addons/teams-workflow-definition.js +66 -0
- package/dist/lib/addons/teams-workflow-definition.js.map +1 -0
- package/dist/lib/addons/teams-workflow.d.ts +15 -0
- package/dist/lib/addons/teams-workflow.d.ts.map +1 -0
- package/dist/lib/addons/teams-workflow.js +110 -0
- package/dist/lib/addons/teams-workflow.js.map +1 -0
- package/dist/lib/addons/teams-workflow.test.d.ts +2 -0
- package/dist/lib/addons/teams-workflow.test.d.ts.map +1 -0
- package/dist/lib/addons/teams-workflow.test.js +202 -0
- package/dist/lib/addons/teams-workflow.test.js.map +1 -0
- package/dist/lib/addons/teams.d.ts.map +1 -1
- package/dist/lib/addons/teams.js +0 -1
- package/dist/lib/addons/teams.js.map +1 -1
- package/dist/lib/addons/teams.test.js +0 -1
- package/dist/lib/addons/teams.test.js.map +1 -1
- package/dist/lib/addons/validate-url.d.ts +18 -0
- package/dist/lib/addons/validate-url.d.ts.map +1 -0
- package/dist/lib/addons/validate-url.js +93 -0
- package/dist/lib/addons/validate-url.js.map +1 -0
- package/dist/lib/addons/validate-url.test.d.ts +2 -0
- package/dist/lib/addons/validate-url.test.d.ts.map +1 -0
- package/dist/lib/addons/validate-url.test.js +199 -0
- package/dist/lib/addons/validate-url.test.js.map +1 -0
- package/dist/lib/create-config.d.ts.map +1 -1
- package/dist/lib/create-config.js +7 -0
- package/dist/lib/create-config.js.map +1 -1
- package/dist/lib/db/session-store.d.ts +1 -0
- package/dist/lib/db/session-store.d.ts.map +1 -1
- package/dist/lib/db/session-store.js +6 -0
- package/dist/lib/db/session-store.js.map +1 -1
- package/dist/lib/error/bad-data-error.d.ts.map +1 -1
- package/dist/lib/error/bad-data-error.js +10 -2
- package/dist/lib/error/bad-data-error.js.map +1 -1
- package/dist/lib/error/unleash-error.test.js +23 -0
- package/dist/lib/error/unleash-error.test.js.map +1 -1
- package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.d.ts.map +1 -1
- package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.js +2 -0
- package/dist/lib/features/client-feature-toggles/client-feature-toggle.controller.js.map +1 -1
- package/dist/lib/features/constraints/constraints-controller.d.ts.map +1 -1
- package/dist/lib/features/constraints/constraints-controller.js +1 -0
- package/dist/lib/features/constraints/constraints-controller.js.map +1 -1
- package/dist/lib/features/context/context.d.ts.map +1 -1
- package/dist/lib/features/context/context.js +3 -1
- package/dist/lib/features/context/context.js.map +1 -1
- package/dist/lib/features/dependent-features/dependent-features-controller.d.ts.map +1 -1
- package/dist/lib/features/dependent-features/dependent-features-controller.js +6 -0
- package/dist/lib/features/dependent-features/dependent-features-controller.js.map +1 -1
- package/dist/lib/features/environments/environments-controller.d.ts.map +1 -1
- package/dist/lib/features/environments/environments-controller.js +6 -0
- package/dist/lib/features/environments/environments-controller.js.map +1 -1
- package/dist/lib/features/events/event-search-controller.d.ts.map +1 -1
- package/dist/lib/features/events/event-search-controller.js +1 -0
- package/dist/lib/features/events/event-search-controller.js.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import-controller.d.ts.map +1 -1
- package/dist/lib/features/export-import-toggles/export-import-controller.js +3 -0
- package/dist/lib/features/export-import-toggles/export-import-controller.js.map +1 -1
- package/dist/lib/features/feature-search/feature-search-controller.d.ts.map +1 -1
- package/dist/lib/features/feature-search/feature-search-controller.js +1 -0
- package/dist/lib/features/feature-search/feature-search-controller.js.map +1 -1
- package/dist/lib/features/feature-search/feature-search-service.d.ts.map +1 -1
- package/dist/lib/features/feature-search/feature-search-service.js +5 -0
- package/dist/lib/features/feature-search/feature-search-service.js.map +1 -1
- package/dist/lib/features/feature-search/feature-search-store.d.ts +1 -1
- package/dist/lib/features/feature-search/feature-search-store.d.ts.map +1 -1
- package/dist/lib/features/feature-search/feature-search-store.js +60 -10
- package/dist/lib/features/feature-search/feature-search-store.js.map +1 -1
- package/dist/lib/features/feature-search/feature.search.e2e.test.js +77 -0
- package/dist/lib/features/feature-search/feature.search.e2e.test.js.map +1 -1
- package/dist/lib/features/feature-toggle/archive-feature-toggle-controller.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/archive-feature-toggle-controller.js +2 -0
- package/dist/lib/features/feature-toggle/archive-feature-toggle-controller.js.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-controller.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-controller.js +21 -0
- package/dist/lib/features/feature-toggle/feature-toggle-controller.js.map +1 -1
- package/dist/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.js +5 -0
- package/dist/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.js.map +1 -1
- package/dist/lib/features/frontend-api/frontend-api-controller.d.ts.map +1 -1
- package/dist/lib/features/frontend-api/frontend-api-controller.js +4 -0
- package/dist/lib/features/frontend-api/frontend-api-controller.js.map +1 -1
- package/dist/lib/features/frontend-api/frontend-api-service.d.ts.map +1 -1
- package/dist/lib/features/frontend-api/frontend-api-service.js +17 -20
- package/dist/lib/features/frontend-api/frontend-api-service.js.map +1 -1
- package/dist/lib/features/maintenance/maintenance-controller.d.ts.map +1 -1
- package/dist/lib/features/maintenance/maintenance-controller.js +2 -0
- package/dist/lib/features/maintenance/maintenance-controller.js.map +1 -1
- package/dist/lib/features/metrics/client-metrics/client-metrics.d.ts.map +1 -1
- package/dist/lib/features/metrics/client-metrics/client-metrics.js +2 -0
- package/dist/lib/features/metrics/client-metrics/client-metrics.js.map +1 -1
- package/dist/lib/features/metrics/custom/custom-metrics-controller.d.ts.map +1 -1
- package/dist/lib/features/metrics/custom/custom-metrics-controller.js +2 -0
- package/dist/lib/features/metrics/custom/custom-metrics-controller.js.map +1 -1
- package/dist/lib/features/metrics/instance/metrics.d.ts.map +1 -1
- package/dist/lib/features/metrics/instance/metrics.js +3 -0
- package/dist/lib/features/metrics/instance/metrics.js.map +1 -1
- package/dist/lib/features/metrics/instance/register.d.ts.map +1 -1
- package/dist/lib/features/metrics/instance/register.js +1 -0
- package/dist/lib/features/metrics/instance/register.js.map +1 -1
- package/dist/lib/features/metrics/integrations/integration-metrics.d.ts +1 -1
- package/dist/lib/features/metrics/integrations/integration-metrics.d.ts.map +1 -1
- package/dist/lib/features/metrics/integrations/integration-metrics.js +2 -0
- package/dist/lib/features/metrics/integrations/integration-metrics.js.map +1 -1
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-controller.d.ts.map +1 -1
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-controller.js +1 -0
- package/dist/lib/features/metrics/unknown-flags/unknown-flags-controller.js.map +1 -1
- package/dist/lib/features/playground/playground.d.ts.map +1 -1
- package/dist/lib/features/playground/playground.js +2 -0
- package/dist/lib/features/playground/playground.js.map +1 -1
- package/dist/lib/features/project/project-controller.d.ts.map +1 -1
- package/dist/lib/features/project/project-controller.js +6 -0
- package/dist/lib/features/project/project-controller.js.map +1 -1
- package/dist/lib/features/project-environments/project-environments-controller.d.ts.map +1 -1
- package/dist/lib/features/project-environments/project-environments-controller.js +3 -0
- package/dist/lib/features/project-environments/project-environments-controller.js.map +1 -1
- package/dist/lib/features/project-insights/project-insights-controller.d.ts.map +1 -1
- package/dist/lib/features/project-insights/project-insights-controller.js +1 -0
- package/dist/lib/features/project-insights/project-insights-controller.js.map +1 -1
- package/dist/lib/features/project-status/project-lifecycle-read-model/project-lifecycle-summary-read-model.d.ts.map +1 -1
- package/dist/lib/features/project-status/project-lifecycle-read-model/project-lifecycle-summary-read-model.js +5 -2
- package/dist/lib/features/project-status/project-lifecycle-read-model/project-lifecycle-summary-read-model.js.map +1 -1
- package/dist/lib/features/project-status/project-lifecycle-read-model/project-lifecycle-summary-read-model.test.js +34 -0
- package/dist/lib/features/project-status/project-lifecycle-read-model/project-lifecycle-summary-read-model.test.js.map +1 -1
- package/dist/lib/features/segment/segment-controller.d.ts.map +1 -1
- package/dist/lib/features/segment/segment-controller.js +9 -0
- package/dist/lib/features/segment/segment-controller.js.map +1 -1
- package/dist/lib/features/tag-type/tag-type.d.ts.map +1 -1
- package/dist/lib/features/tag-type/tag-type.js +6 -0
- package/dist/lib/features/tag-type/tag-type.js.map +1 -1
- package/dist/lib/features/ui-observability-controller/ui-observability-controller.d.ts.map +1 -1
- package/dist/lib/features/ui-observability-controller/ui-observability-controller.js +1 -0
- package/dist/lib/features/ui-observability-controller/ui-observability-controller.js.map +1 -1
- package/dist/lib/middleware/secure-headers.d.ts.map +1 -1
- package/dist/lib/middleware/secure-headers.js +20 -1
- package/dist/lib/middleware/secure-headers.js.map +1 -1
- package/dist/lib/openapi/spec/addon-create-update-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/addon-create-update-schema.js +1 -1
- package/dist/lib/openapi/spec/addons-schema.d.ts +15 -0
- package/dist/lib/openapi/spec/addons-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/addons-schema.js +51 -0
- package/dist/lib/openapi/spec/addons-schema.js.map +1 -1
- package/dist/lib/openapi/spec/feature-search-query-parameters.d.ts +3 -2
- package/dist/lib/openapi/spec/feature-search-query-parameters.d.ts.map +1 -1
- package/dist/lib/openapi/spec/feature-search-query-parameters.js +3 -2
- package/dist/lib/openapi/spec/feature-search-query-parameters.js.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.d.ts +6 -1
- package/dist/lib/openapi/spec/profile-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.js +13 -1
- package/dist/lib/openapi/spec/profile-schema.js.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.test.js +1 -0
- package/dist/lib/openapi/spec/profile-schema.test.js.map +1 -1
- package/dist/lib/openapi/util/api-operation.d.ts +1 -1
- package/dist/lib/openapi/util/api-stability.js +1 -1
- package/dist/lib/openapi/util/api-stability.test.js +8 -5
- package/dist/lib/openapi/util/api-stability.test.js.map +1 -1
- package/dist/lib/routes/admin-api/addon.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/addon.js +12 -2
- package/dist/lib/routes/admin-api/addon.js.map +1 -1
- package/dist/lib/routes/admin-api/api-token.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/api-token.js +5 -0
- package/dist/lib/routes/admin-api/api-token.js.map +1 -1
- package/dist/lib/routes/admin-api/event.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/event.js +3 -0
- package/dist/lib/routes/admin-api/event.js.map +1 -1
- package/dist/lib/routes/admin-api/favorites.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/favorites.js +4 -0
- package/dist/lib/routes/admin-api/favorites.js.map +1 -1
- package/dist/lib/routes/admin-api/feature-type.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/feature-type.js +2 -0
- package/dist/lib/routes/admin-api/feature-type.js.map +1 -1
- package/dist/lib/routes/admin-api/instance-admin.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/instance-admin.js +2 -0
- package/dist/lib/routes/admin-api/instance-admin.js.map +1 -1
- package/dist/lib/routes/admin-api/metrics.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/metrics.js +7 -0
- package/dist/lib/routes/admin-api/metrics.js.map +1 -1
- package/dist/lib/routes/admin-api/project/api-token.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/project/api-token.js +3 -0
- package/dist/lib/routes/admin-api/project/api-token.js.map +1 -1
- package/dist/lib/routes/admin-api/project/health-report.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/project/health-report.js +1 -0
- package/dist/lib/routes/admin-api/project/health-report.js.map +1 -1
- package/dist/lib/routes/admin-api/project/project-archive.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/project/project-archive.js +4 -0
- package/dist/lib/routes/admin-api/project/project-archive.js.map +1 -1
- package/dist/lib/routes/admin-api/project/variants.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/project/variants.js +4 -0
- package/dist/lib/routes/admin-api/project/variants.js.map +1 -1
- package/dist/lib/routes/admin-api/public-signup.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/public-signup.js +4 -0
- package/dist/lib/routes/admin-api/public-signup.js.map +1 -1
- package/dist/lib/routes/admin-api/strategy.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/strategy.js +7 -0
- package/dist/lib/routes/admin-api/strategy.js.map +1 -1
- package/dist/lib/routes/admin-api/tag.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/tag.js +5 -0
- package/dist/lib/routes/admin-api/tag.js.map +1 -1
- package/dist/lib/routes/admin-api/telemetry.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/telemetry.js +1 -0
- package/dist/lib/routes/admin-api/telemetry.js.map +1 -1
- package/dist/lib/routes/admin-api/user/pat.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/user/pat.js +3 -0
- package/dist/lib/routes/admin-api/user/pat.js.map +1 -1
- package/dist/lib/routes/admin-api/user/user.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/user/user.js +11 -2
- package/dist/lib/routes/admin-api/user/user.js.map +1 -1
- package/dist/lib/routes/admin-api/user/user.test.js +56 -6
- package/dist/lib/routes/admin-api/user/user.test.js.map +1 -1
- package/dist/lib/routes/admin-api/user-admin.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/user-admin.js +12 -0
- package/dist/lib/routes/admin-api/user-admin.js.map +1 -1
- package/dist/lib/routes/admin-api/user-feedback.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/user-feedback.js +2 -0
- package/dist/lib/routes/admin-api/user-feedback.js.map +1 -1
- package/dist/lib/routes/admin-api/user-splash.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/user-splash.js +1 -0
- package/dist/lib/routes/admin-api/user-splash.js.map +1 -1
- package/dist/lib/routes/auth/reset-password-controller.d.ts.map +1 -1
- package/dist/lib/routes/auth/reset-password-controller.js +4 -0
- package/dist/lib/routes/auth/reset-password-controller.js.map +1 -1
- package/dist/lib/routes/auth/simple-password-provider.d.ts.map +1 -1
- package/dist/lib/routes/auth/simple-password-provider.js +1 -0
- package/dist/lib/routes/auth/simple-password-provider.js.map +1 -1
- package/dist/lib/routes/edge-api/index.d.ts.map +1 -1
- package/dist/lib/routes/edge-api/index.js +1 -0
- package/dist/lib/routes/edge-api/index.js.map +1 -1
- package/dist/lib/routes/health-check.d.ts.map +1 -1
- package/dist/lib/routes/health-check.js +1 -0
- package/dist/lib/routes/health-check.js.map +1 -1
- package/dist/lib/routes/public-invite.d.ts.map +1 -1
- package/dist/lib/routes/public-invite.js +2 -0
- package/dist/lib/routes/public-invite.js.map +1 -1
- package/dist/lib/routes/ready-check.d.ts.map +1 -1
- package/dist/lib/routes/ready-check.js +1 -0
- package/dist/lib/routes/ready-check.js.map +1 -1
- package/dist/lib/routes/util.d.ts.map +1 -1
- package/dist/lib/routes/util.js +8 -1
- package/dist/lib/routes/util.js.map +1 -1
- package/dist/lib/routes/util.test.d.ts +2 -0
- package/dist/lib/routes/util.test.d.ts.map +1 -0
- package/dist/lib/routes/util.test.js +18 -0
- package/dist/lib/routes/util.test.js.map +1 -0
- package/dist/lib/schema/html-input.d.ts +4 -0
- package/dist/lib/schema/html-input.d.ts.map +1 -0
- package/dist/lib/schema/html-input.js +38 -0
- package/dist/lib/schema/html-input.js.map +1 -0
- package/dist/lib/schema/html-input.test.d.ts +2 -0
- package/dist/lib/schema/html-input.test.d.ts.map +1 -0
- package/dist/lib/schema/html-input.test.js +98 -0
- package/dist/lib/schema/html-input.test.js.map +1 -0
- package/dist/lib/server-impl.d.ts +2 -1
- package/dist/lib/server-impl.d.ts.map +1 -1
- package/dist/lib/server-impl.js +2 -1
- package/dist/lib/server-impl.js.map +1 -1
- package/dist/lib/services/addon-service.d.ts +8 -1
- package/dist/lib/services/addon-service.d.ts.map +1 -1
- package/dist/lib/services/addon-service.js +24 -1
- package/dist/lib/services/addon-service.js.map +1 -1
- package/dist/lib/services/addon-service.test.js +75 -8
- package/dist/lib/services/addon-service.test.js.map +1 -1
- package/dist/lib/services/openapi-service.d.ts +2 -6
- package/dist/lib/services/openapi-service.d.ts.map +1 -1
- package/dist/lib/services/openapi-service.js.map +1 -1
- package/dist/lib/services/project-schema.d.ts +1 -2
- package/dist/lib/services/project-schema.d.ts.map +1 -1
- package/dist/lib/services/project-schema.js +4 -2
- package/dist/lib/services/project-schema.js.map +1 -1
- package/dist/lib/services/session-service.d.ts +6 -0
- package/dist/lib/services/session-service.d.ts.map +1 -1
- package/dist/lib/services/session-service.js +8 -0
- package/dist/lib/services/session-service.js.map +1 -1
- package/dist/lib/services/user-service.d.ts +18 -5
- package/dist/lib/services/user-service.d.ts.map +1 -1
- package/dist/lib/services/user-service.js +27 -7
- package/dist/lib/services/user-service.js.map +1 -1
- package/dist/lib/services/user-service.test.js +68 -0
- package/dist/lib/services/user-service.test.js.map +1 -1
- package/dist/lib/types/experimental.d.ts +1 -1
- package/dist/lib/types/experimental.d.ts.map +1 -1
- package/dist/lib/types/experimental.js +23 -2
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/lib/types/model.d.ts +2 -0
- package/dist/lib/types/model.d.ts.map +1 -1
- package/dist/lib/types/model.js.map +1 -1
- package/dist/lib/types/option.d.ts +4 -0
- package/dist/lib/types/option.d.ts.map +1 -1
- package/dist/lib/types/stores/session-store.d.ts +1 -0
- package/dist/lib/types/stores/session-store.d.ts.map +1 -1
- package/dist/lib/ui-config/ui-config-controller.d.ts.map +1 -1
- package/dist/lib/ui-config/ui-config-controller.js +2 -0
- package/dist/lib/ui-config/ui-config-controller.js.map +1 -1
- package/dist/lib/ui-config/ui-config-service.d.ts.map +1 -1
- package/dist/lib/ui-config/ui-config-service.js +4 -2
- package/dist/lib/ui-config/ui-config-service.js.map +1 -1
- package/dist/lib/ui-config/ui-config.test.js +21 -2
- package/dist/lib/ui-config/ui-config.test.js.map +1 -1
- package/dist/lib/users/inactive/inactive-users-controller.d.ts.map +1 -1
- package/dist/lib/users/inactive/inactive-users-controller.js +2 -0
- package/dist/lib/users/inactive/inactive-users-controller.js.map +1 -1
- package/dist/lib/util/anonymise.d.ts +1 -0
- package/dist/lib/util/anonymise.d.ts.map +1 -1
- package/dist/lib/util/anonymise.js +3 -0
- package/dist/lib/util/anonymise.js.map +1 -1
- package/dist/lib/util/anonymise.test.js +4 -1
- package/dist/lib/util/anonymise.test.js.map +1 -1
- package/dist/migrations/20260617115403-update-flag-descriptions.d.ts +3 -0
- package/dist/migrations/20260617115403-update-flag-descriptions.d.ts.map +1 -0
- package/dist/migrations/20260617115403-update-flag-descriptions.js +38 -0
- package/dist/migrations/20260617115403-update-flag-descriptions.js.map +1 -0
- package/dist/migrations/20260624120000-servicenow-change-references.d.ts +3 -0
- package/dist/migrations/20260624120000-servicenow-change-references.d.ts.map +1 -0
- package/dist/migrations/20260624120000-servicenow-change-references.js +22 -0
- package/dist/migrations/20260624120000-servicenow-change-references.js.map +1 -0
- package/dist/server-dev.js +6 -1
- package/dist/server-dev.js.map +1 -1
- package/dist/test/e2e/api/admin/addon.e2e.test.js +2 -1
- package/dist/test/e2e/api/admin/addon.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/addon-service.e2e.test.js +2 -0
- package/dist/test/e2e/services/addon-service.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/session-service.e2e.test.js +11 -0
- package/dist/test/e2e/services/session-service.e2e.test.js.map +1 -1
- package/dist/test/fixtures/fake-session-store.d.ts +1 -0
- package/dist/test/fixtures/fake-session-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-session-store.js +3 -0
- package/dist/test/fixtures/fake-session-store.js.map +1 -1
- package/frontend/build/index.html +2 -2
- package/frontend/build/static/AccordionSummary-wye3oOm6.js +1 -0
- package/frontend/build/static/AdvancedPlayground-DdeMb-6I.js +3 -0
- package/frontend/build/static/Alert-_bLyWbvx.js +1 -0
- package/frontend/build/static/BackendConnections-kgR0xyIH.js +1 -0
- package/frontend/build/static/Box-BQsxfFmC.js +1 -0
- package/frontend/build/static/Button-CebB8EPB.js +1 -0
- package/frontend/build/static/CircularProgress-C_LUU3DK.js +101 -0
- package/frontend/build/static/Close-DyTASMSq.js +1 -0
- package/frontend/build/static/Collapse-DPPTUMpf.js +1 -0
- package/frontend/build/static/ConditionallyRender---uTpMBn.js +1 -0
- package/frontend/build/static/CreateProject-BSlg0WYM.js +1 -0
- package/frontend/build/static/Dialog-C-xQxqWX.js +1 -0
- package/frontend/build/static/DialogWithAside-DzCSDyWo.js +1110 -0
- package/frontend/build/static/Divider-CsdWvu5F.js +1 -0
- package/frontend/build/static/EnterpriseEdge-CjslqYDM.js +6 -0
- package/frontend/build/static/FeatureMetricsChart-B4WryxcW.js +2 -0
- package/frontend/build/static/FeatureStaleDialog-EzReRTI5.js +8 -0
- package/frontend/build/static/FeatureViewLazyExport-8eQKTvdS.js +10 -0
- package/frontend/build/static/FileCopy-B8HZEA83.js +1 -0
- package/frontend/build/static/FlagMetricsChart-hNQuwOxW.js +2 -0
- package/frontend/build/static/FormControlLabel-F5gDLixN.js +1 -0
- package/frontend/build/static/FrontendNetworkTrafficUsage-pcr83PWo.js +1 -0
- package/frontend/build/static/GridLayoutWrapper-B_YyjZ7l.js +5 -0
- package/frontend/build/static/Grow-BIbmvKVy.js +1 -0
- package/frontend/build/static/HelpOutlineOutlined-CpMsVJZu.js +1 -0
- package/frontend/build/static/Highlighter-MomUaQww.js +1 -0
- package/frontend/build/static/HtmlTooltip-B9jv1G1R.js +1 -0
- package/frontend/build/static/ImpactMetricsPage-DGH_S9oz.js +1 -0
- package/frontend/build/static/ImpactViewsPage-DZqKPFvE.js +1 -0
- package/frontend/build/static/LazyAdminExport-B1ReAViz.js +38 -0
- package/frontend/build/static/LazyProjectExport-BMVcGpNI.js +46 -0
- package/frontend/build/static/LifecycleChartComponent-BeoRUO9q.js +2 -0
- package/frontend/build/static/LineChartComponent-BbCMbJ-m.js +1 -0
- package/frontend/build/static/Link-CfIScd2f.js +1 -0
- package/frontend/build/static/Loader-DdgXftPc.js +1 -0
- package/frontend/build/static/{LogRocketRunner-D_e4hzJQ.js → LogRocketRunner-Duzg1Kzh.js} +4 -4
- package/frontend/build/static/Logo-nextjs-DCzT4YXr.svg +1 -0
- package/frontend/build/static/Logo-react-CyIpikqs.svg +10 -0
- package/frontend/build/static/Logo-reactnative-DZ9HKW2l.svg +10 -0
- package/frontend/build/static/MarkCompletedDialogue-CcXyp8UE.js +1 -0
- package/frontend/build/static/NetworkOverview-0mBnFAZX.js +1 -0
- package/frontend/build/static/NetworkPrometheusAPIWarning-Bq62ygkV.js +1 -0
- package/frontend/build/static/NetworkTraffic-DmG5Iv25.js +1 -0
- package/frontend/build/static/NetworkTrafficUsage-DccaVLYs.js +1 -0
- package/frontend/build/static/OnboardingProgress-Bp9sZ-ZM.js +1 -0
- package/frontend/build/static/PageContent-c0NDm5oD.js +1 -0
- package/frontend/build/static/PercentageDonut-DBDGNJlh.js +1 -0
- package/frontend/build/static/PermissionButton-B-IfzChn.js +1 -0
- package/frontend/build/static/Popover-CUTnSn2h.js +1 -0
- package/frontend/build/static/Radio-DL8ja0ll.js +1 -0
- package/frontend/build/static/RadioGroup-Ci3WHaOy.js +1 -0
- package/frontend/build/static/ReactJSONEditor-DeBI7JPg.js +4 -0
- package/frontend/build/static/RoleCell-DhYvu4YH.js +1 -0
- package/frontend/build/static/Safeguard-DErU6fSK.js +1 -0
- package/frontend/build/static/SelectSdk-Dr_pzQgX.js +2 -0
- package/frontend/build/static/StoriesPage-frGP1Bfr.js +2 -0
- package/frontend/build/static/SwitchBase-DWPIxZnN.js +1 -0
- package/frontend/build/static/TextField-oipjeg6n.js +3 -0
- package/frontend/build/static/Tooltip-BaILXXti.js +1 -0
- package/frontend/build/static/TooltipResolver-4A1YhwBy.js +1 -0
- package/frontend/build/static/Truncator-D2bO9ub6.js +1 -0
- package/frontend/build/static/Typography-BTdLWIUX.js +1 -0
- package/frontend/build/static/aggregateFeatureMetrics-B-67HaIZ.js +1 -0
- package/frontend/build/static/chartjs-plugin-annotation.esm-DP4wCpdA.js +1 -0
- package/frontend/build/static/chunk-QUQL4437-Dr42NpoL.js +3 -0
- package/frontend/build/static/createBox-Cf2UJsmc.js +1 -0
- package/frontend/build/static/createLocalStorage-WS-MCMlG.js +1 -0
- package/frontend/build/static/createSimplePaletteValueFilter-BRAMrHWJ.js +1 -0
- package/frontend/build/static/differenceInSeconds-DMZGQwjK.js +1 -0
- package/frontend/build/static/dividerClasses-Cc45lyWo.js +1 -0
- package/frontend/build/static/endOfMonth-CkSR_DAx.js +1 -0
- package/frontend/build/static/{enterpriseEdgeCloud-DtcZf9iv.js → enterpriseEdgeCloud-C5u35XAw.js} +1 -1
- package/frontend/build/static/esm-DdgY1Q5s.js +12 -0
- package/frontend/build/static/format-C8UVjLNw.js +1 -0
- package/frontend/build/static/formatDate-cFuM4JYl.js +1 -0
- package/frontend/build/static/formatDistanceToNow-CyouiCIY.js +1 -0
- package/frontend/build/static/httpErrorResponseHandler-FMtt7Zqh.js +1 -0
- package/frontend/build/static/{impact-metrics-icon-1LLLS-bG.js → impact-metrics-icon-6dt-ye-h.js} +1 -1
- package/frontend/build/static/index-C04TEs4k.js +290 -0
- package/frontend/build/static/jsx-runtime-BnvnyDTF.js +1 -0
- package/frontend/build/static/metricsFormatters-DhX-aU17.js +1 -0
- package/frontend/build/static/mui-CoU2c-id.js +5 -0
- package/frontend/build/static/networkTrafficUsageHighlightPlugin-DlOtHZg3.js +1 -0
- package/frontend/build/static/parse-Chj4PyAg.js +1 -0
- package/frontend/build/static/parseISO-Cup6hyvQ.js +1 -0
- package/frontend/build/static/{react-DW1tWzGJ.js → react-GZhdek4G.js} +1 -1
- package/frontend/build/static/startOfHour-P0Sr6h8e.js +1 -0
- package/frontend/build/static/testIds-B_Ev-uQn.js +1 -0
- package/frontend/build/static/themeStyles-DGVpwkcv.js +1 -0
- package/frontend/build/static/useApiGetter-7FP8Avm4.js +1 -0
- package/frontend/build/static/useApiTokens-C8Dqw_X1.js +1 -0
- package/frontend/build/static/useConditionalSWR-DGgzun6i.js +1 -0
- package/frontend/build/static/useConditionallyHiddenColumns-C5q9zdfJ.js +5 -0
- package/frontend/build/static/useCustomEvent-Dj2V5RVb.js +1 -0
- package/frontend/build/static/useEnvironments-CTguhgy0.js +2 -0
- package/frontend/build/static/useGroupedImpactMetricsData-CW9qnV2y.js +1 -0
- package/frontend/build/static/useImpactMetrics-9qDSEpTn.js +3 -0
- package/frontend/build/static/useImpactMetricsEnabled-wRNO6-Oh.js +1 -0
- package/frontend/build/static/useInstanceTrafficMetrics-CRCDB4TX.js +1 -0
- package/frontend/build/static/useMediaQuery-DGx8zAkf.js +2 -0
- package/frontend/build/static/useOptionalPathParam-Cx3ru9yC.js +1 -0
- package/frontend/build/static/usePageTitle-CHzzFshF.js +1 -0
- package/frontend/build/static/useTheme-CQqAmDLr.js +9 -0
- package/frontend/build/static/useUiConfig-DbVjTDpE.js +1 -0
- package/frontend/package.json +13 -13
- package/package.json +13 -11
- package/frontend/build/static/AdvancedPlayground-Dc5CjsH6.js +0 -3
- package/frontend/build/static/BackendConnections-BzoyVkqE.js +0 -1
- package/frontend/build/static/CreateProject-CARqyXgr.js +0 -1
- package/frontend/build/static/DialogWithAside-CtKlvRxJ.js +0 -947
- package/frontend/build/static/EnterpriseEdge-6F99gSET.js +0 -6
- package/frontend/build/static/FeatureMetricsChart-CCUsCbvl.js +0 -2
- package/frontend/build/static/FeatureStaleDialog-IRgDg5x8.js +0 -8
- package/frontend/build/static/FeatureViewLazyExport-7dlvG8T-.js +0 -10
- package/frontend/build/static/FlagMetricsChart-CQCEqI6k.js +0 -2
- package/frontend/build/static/FrontendNetworkTrafficUsage-CdHe-oU2.js +0 -1
- package/frontend/build/static/GridLayoutWrapper-L_W9K-dV.js +0 -3
- package/frontend/build/static/ImpactMetricsPage-0OKGAVog.js +0 -1
- package/frontend/build/static/ImpactViewsPage-CdwvIuE9.js +0 -1
- package/frontend/build/static/LazyAdminExport-lAWqz1Kg.js +0 -38
- package/frontend/build/static/LazyProjectExport-CjjWWq5H.js +0 -46
- package/frontend/build/static/LifecycleChartComponent-Dw7X54qU.js +0 -2
- package/frontend/build/static/LineChartComponent-D81JPWi4.js +0 -1
- package/frontend/build/static/Logo-react-D2SuVol5.svg +0 -1
- package/frontend/build/static/MarkCompletedDialogue-vW74sVuW.js +0 -1
- package/frontend/build/static/NetworkOverview-Dx3Yhmnr.js +0 -1
- package/frontend/build/static/NetworkPrometheusAPIWarning-BlbOSbDW.js +0 -1
- package/frontend/build/static/NetworkTraffic-CJI952Qr.js +0 -1
- package/frontend/build/static/NetworkTrafficUsage-DP83K2Q6.js +0 -1
- package/frontend/build/static/OnboardingProgress-DECLEUJE.js +0 -1
- package/frontend/build/static/PercentageDonut-CV__KCpE.js +0 -1
- package/frontend/build/static/ReactJSONEditor-D4-lWgEb.js +0 -4
- package/frontend/build/static/RoleCell-0_ZJUpz5.js +0 -1
- package/frontend/build/static/Safeguard-B93Tz6lG.js +0 -1
- package/frontend/build/static/SelectSdk-Cxw0QOfY.js +0 -2
- package/frontend/build/static/StoriesPage-ZDw2ahU0.js +0 -1
- package/frontend/build/static/aggregateFeatureMetrics-Byd95jx-.js +0 -1
- package/frontend/build/static/chart-CG3XAKw_.js +0 -3
- package/frontend/build/static/chartjs-plugin-annotation.esm-bUcqmHD4.js +0 -1
- package/frontend/build/static/esm-LYuUsJ00.js +0 -15
- package/frontend/build/static/index-DIBimazR.js +0 -409
- package/frontend/build/static/networkTrafficUsageHighlightPlugin-C8avnJ5K.js +0 -1
- package/frontend/build/static/objectId-CwvEBicG.js +0 -1
- package/frontend/build/static/useApiTokens-CdZD_-zn.js +0 -1
- package/frontend/build/static/useGroupedImpactMetricsData-D2KwIe7Z.js +0 -1
- package/frontend/build/static/useImpactMetricsEnabled-Yb36cM6y.js +0 -1
- package/frontend/build/static/useInstanceTrafficMetrics-CcZqSYy1.js +0 -1
- /package/frontend/build/static/{daysOrHours-DZ037Bzn.js → daysOrHours-owFAL-4S.js} +0 -0
- /package/frontend/build/static/{formatPath-vbOoY_VU.js → formatPath-j72gcKwy.js} +0 -0
- /package/frontend/build/static/{formatTickValue-xCLMih6P.js → formatTickValue-DWHZUXee.js} +0 -0
- /package/frontend/build/static/{storage-DS1Ts5PA.js → storage-tBZ25pJM.js} +0 -0
- /package/frontend/build/static/{toDate-JUEZGP0n.js → toDate-BEKdmfOu.js} +0 -0
- /package/frontend/build/static/{unknownify-D0N8k6Ch.js → unknownify-CCAQc7w1.js} +0 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import Addon from './addon.js';
|
|
2
|
+
import teamsWorkflowDefinition from './teams-workflow-definition.js';
|
|
3
|
+
import { FeatureEventFormatterMd, } from './feature-event-formatter-md.js';
|
|
4
|
+
import { serializeDates, } from '../types/index.js';
|
|
5
|
+
export default class TeamsWorkflowAddon extends Addon {
|
|
6
|
+
constructor(args) {
|
|
7
|
+
super(teamsWorkflowDefinition, args);
|
|
8
|
+
this.msgFormatter = new FeatureEventFormatterMd({
|
|
9
|
+
unleashUrl: args.unleashUrl,
|
|
10
|
+
});
|
|
11
|
+
this.flagResolver = args.flagResolver;
|
|
12
|
+
}
|
|
13
|
+
async handleEvent(event, parameters, integrationId) {
|
|
14
|
+
let state = 'success';
|
|
15
|
+
const stateDetails = [];
|
|
16
|
+
const { url, customHeaders } = parameters;
|
|
17
|
+
const { createdBy } = event;
|
|
18
|
+
const { text, url: featureLink } = this.msgFormatter.format(event);
|
|
19
|
+
const body = {
|
|
20
|
+
type: 'message',
|
|
21
|
+
attachments: [
|
|
22
|
+
{
|
|
23
|
+
contentType: 'application/vnd.microsoft.card.adaptive',
|
|
24
|
+
content: {
|
|
25
|
+
type: 'AdaptiveCard',
|
|
26
|
+
body: [
|
|
27
|
+
{
|
|
28
|
+
type: 'Container',
|
|
29
|
+
items: [
|
|
30
|
+
{
|
|
31
|
+
type: 'TextBlock',
|
|
32
|
+
text: 'Unleash update notification',
|
|
33
|
+
style: 'heading',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
type: 'TextBlock',
|
|
37
|
+
text,
|
|
38
|
+
wrap: true,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
type: 'FactSet',
|
|
42
|
+
facts: [
|
|
43
|
+
{
|
|
44
|
+
title: 'User:',
|
|
45
|
+
value: createdBy,
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
title: 'Action:',
|
|
49
|
+
value: event.type,
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
},
|
|
55
|
+
],
|
|
56
|
+
actions: [
|
|
57
|
+
{
|
|
58
|
+
type: 'Action.OpenUrl',
|
|
59
|
+
title: 'Go to feature',
|
|
60
|
+
url: featureLink,
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
$schema: 'http://adaptivecards.io/schemas/adaptive-card.json',
|
|
64
|
+
version: '1.5',
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
};
|
|
69
|
+
let extraHeaders = {};
|
|
70
|
+
if (typeof customHeaders === 'string' && customHeaders.length > 1) {
|
|
71
|
+
try {
|
|
72
|
+
extraHeaders = JSON.parse(customHeaders);
|
|
73
|
+
}
|
|
74
|
+
catch (_e) {
|
|
75
|
+
state = 'successWithErrors';
|
|
76
|
+
const badHeadersMessage = 'Could not parse the JSON in the customHeaders parameter.';
|
|
77
|
+
stateDetails.push(badHeadersMessage);
|
|
78
|
+
this.logger.warn(badHeadersMessage);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const requestOpts = {
|
|
82
|
+
method: 'POST',
|
|
83
|
+
headers: { 'Content-Type': 'application/json', ...extraHeaders },
|
|
84
|
+
body: JSON.stringify(body),
|
|
85
|
+
};
|
|
86
|
+
const res = await this.fetchRetry(url, requestOpts);
|
|
87
|
+
this.logger.info(`Handled event "${event.type}".`);
|
|
88
|
+
if (res.ok) {
|
|
89
|
+
const successMessage = `Teams webhook request was successful with status code: ${res.status}.`;
|
|
90
|
+
stateDetails.push(successMessage);
|
|
91
|
+
this.logger.info(successMessage);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
state = 'failed';
|
|
95
|
+
const failedMessage = `Teams webhook request failed with status code: ${res.status}.`;
|
|
96
|
+
stateDetails.push(failedMessage);
|
|
97
|
+
this.logger.warn(failedMessage);
|
|
98
|
+
}
|
|
99
|
+
this.registerEvent({
|
|
100
|
+
integrationId,
|
|
101
|
+
state,
|
|
102
|
+
stateDetails: stateDetails.join('\n'),
|
|
103
|
+
event: serializeDates(event),
|
|
104
|
+
details: {
|
|
105
|
+
body,
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=teams-workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teams-workflow.js","sourceRoot":"","sources":["../../../src/lib/addons/teams-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teams-workflow.test.d.ts","sourceRoot":"","sources":["../../../src/lib/addons/teams-workflow.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import TeamsWorkflowAddon from './teams-workflow.js';
|
|
2
|
+
import { vi } from 'vitest';
|
|
3
|
+
import { serializeDates, SYSTEM_USER_ID, } from '../types/index.js';
|
|
4
|
+
import noLogger from '../../test/fixtures/no-logger.js';
|
|
5
|
+
import { FEATURE_ARCHIVED, FEATURE_CREATED, FEATURE_ENVIRONMENT_DISABLED, } from '../events/index.js';
|
|
6
|
+
import nock from 'nock';
|
|
7
|
+
const registerEventMock = vi.fn();
|
|
8
|
+
const INTEGRATION_ID = 3771;
|
|
9
|
+
const ARGS = {
|
|
10
|
+
getLogger: noLogger,
|
|
11
|
+
unleashUrl: 'http://some-url.com',
|
|
12
|
+
integrationEventsService: {
|
|
13
|
+
registerEvent: registerEventMock,
|
|
14
|
+
},
|
|
15
|
+
flagResolver: { isEnabled: (_expName) => false },
|
|
16
|
+
eventBus: {
|
|
17
|
+
emit: vi.fn(),
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
describe('Teams workflow integration', () => {
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
registerEventMock.mockClear();
|
|
23
|
+
nock.disableNetConnect();
|
|
24
|
+
nock.cleanAll();
|
|
25
|
+
});
|
|
26
|
+
afterAll(() => {
|
|
27
|
+
nock.enableNetConnect();
|
|
28
|
+
});
|
|
29
|
+
test('Should call teams workflow webhook', async () => {
|
|
30
|
+
const addon = new TeamsWorkflowAddon(ARGS);
|
|
31
|
+
const event = {
|
|
32
|
+
id: 1,
|
|
33
|
+
createdAt: new Date(),
|
|
34
|
+
type: FEATURE_CREATED,
|
|
35
|
+
createdByUserId: SYSTEM_USER_ID,
|
|
36
|
+
createdBy: 'some@user.com',
|
|
37
|
+
featureName: 'some-toggle',
|
|
38
|
+
data: {
|
|
39
|
+
name: 'some-toggle',
|
|
40
|
+
enabled: false,
|
|
41
|
+
strategies: [{ name: 'default' }],
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
const parameters = {
|
|
45
|
+
url: 'http://environment.api.powerplatform.com',
|
|
46
|
+
};
|
|
47
|
+
let body;
|
|
48
|
+
nock('http://environment.api.powerplatform.com')
|
|
49
|
+
.post('/')
|
|
50
|
+
.reply(200, (_, reqBody) => {
|
|
51
|
+
body = reqBody;
|
|
52
|
+
return { ok: true };
|
|
53
|
+
});
|
|
54
|
+
await addon.handleEvent(event, parameters, INTEGRATION_ID);
|
|
55
|
+
expect(JSON.stringify(body)).toMatchSnapshot();
|
|
56
|
+
expect(nock.isDone()).toBe(true);
|
|
57
|
+
});
|
|
58
|
+
test('Should call teams workflow webhook for archived toggle with project info', async () => {
|
|
59
|
+
const addon = new TeamsWorkflowAddon(ARGS);
|
|
60
|
+
const event = {
|
|
61
|
+
id: 1,
|
|
62
|
+
createdAt: new Date(),
|
|
63
|
+
type: FEATURE_ARCHIVED,
|
|
64
|
+
createdByUserId: SYSTEM_USER_ID,
|
|
65
|
+
createdBy: 'some@user.com',
|
|
66
|
+
featureName: 'some-toggle',
|
|
67
|
+
data: {
|
|
68
|
+
name: 'some-toggle',
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
const parameters = {
|
|
72
|
+
url: 'http://environment.api.powerplatform.com',
|
|
73
|
+
};
|
|
74
|
+
let body;
|
|
75
|
+
nock('http://environment.api.powerplatform.com')
|
|
76
|
+
.post('/')
|
|
77
|
+
.reply(200, (_, reqBody) => {
|
|
78
|
+
body = reqBody;
|
|
79
|
+
return { ok: true };
|
|
80
|
+
});
|
|
81
|
+
await addon.handleEvent(event, parameters, INTEGRATION_ID);
|
|
82
|
+
expect(JSON.stringify(body)).toMatchSnapshot();
|
|
83
|
+
expect(nock.isDone()).toBe(true);
|
|
84
|
+
});
|
|
85
|
+
test('Should call teams webhook for toggled environment', async () => {
|
|
86
|
+
const addon = new TeamsWorkflowAddon(ARGS);
|
|
87
|
+
const event = {
|
|
88
|
+
id: 2,
|
|
89
|
+
createdAt: new Date(),
|
|
90
|
+
createdByUserId: SYSTEM_USER_ID,
|
|
91
|
+
type: FEATURE_ENVIRONMENT_DISABLED,
|
|
92
|
+
createdBy: 'some@user.com',
|
|
93
|
+
environment: 'development',
|
|
94
|
+
project: 'default',
|
|
95
|
+
featureName: 'some-toggle',
|
|
96
|
+
data: {
|
|
97
|
+
name: 'some-toggle',
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
const parameters = {
|
|
101
|
+
url: 'http://environment.api.powerplatform.com',
|
|
102
|
+
};
|
|
103
|
+
let body;
|
|
104
|
+
nock('http://environment.api.powerplatform.com')
|
|
105
|
+
.post('/')
|
|
106
|
+
.reply(200, (_, reqBody) => {
|
|
107
|
+
body = reqBody;
|
|
108
|
+
return { ok: true };
|
|
109
|
+
});
|
|
110
|
+
await addon.handleEvent(event, parameters, INTEGRATION_ID);
|
|
111
|
+
const stringifiedBody = JSON.stringify(body);
|
|
112
|
+
expect(stringifiedBody).toMatch(/disabled/);
|
|
113
|
+
expect(stringifiedBody).toMatchSnapshot();
|
|
114
|
+
expect(nock.isDone()).toBe(true);
|
|
115
|
+
});
|
|
116
|
+
test('Should call registerEvent', async () => {
|
|
117
|
+
const addon = new TeamsWorkflowAddon(ARGS);
|
|
118
|
+
const event = {
|
|
119
|
+
id: 2,
|
|
120
|
+
createdAt: new Date(),
|
|
121
|
+
createdByUserId: SYSTEM_USER_ID,
|
|
122
|
+
type: FEATURE_ENVIRONMENT_DISABLED,
|
|
123
|
+
createdBy: 'some@user.com',
|
|
124
|
+
environment: 'development',
|
|
125
|
+
project: 'default',
|
|
126
|
+
featureName: 'some-toggle',
|
|
127
|
+
data: {
|
|
128
|
+
name: 'some-toggle',
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
const parameters = {
|
|
132
|
+
url: 'http://hooks.teams.com',
|
|
133
|
+
customHeaders: `{ "MY_CUSTOM_HEADER": "MY_CUSTOM_VALUE" }`,
|
|
134
|
+
};
|
|
135
|
+
nock('http://hooks.teams.com')
|
|
136
|
+
.post('/')
|
|
137
|
+
.matchHeader('MY_CUSTOM_HEADER', 'MY_CUSTOM_VALUE')
|
|
138
|
+
.reply(200);
|
|
139
|
+
await addon.handleEvent(event, parameters, INTEGRATION_ID);
|
|
140
|
+
expect(nock.isDone()).toBe(true);
|
|
141
|
+
expect(registerEventMock).toHaveBeenCalledTimes(1);
|
|
142
|
+
expect(registerEventMock).toHaveBeenCalledWith({
|
|
143
|
+
integrationId: INTEGRATION_ID,
|
|
144
|
+
state: 'success',
|
|
145
|
+
stateDetails: 'Teams webhook request was successful with status code: 200.',
|
|
146
|
+
event: serializeDates(event),
|
|
147
|
+
details: {
|
|
148
|
+
body: {
|
|
149
|
+
attachments: [
|
|
150
|
+
{
|
|
151
|
+
content: {
|
|
152
|
+
$schema: 'http://adaptivecards.io/schemas/adaptive-card.json',
|
|
153
|
+
actions: [
|
|
154
|
+
{
|
|
155
|
+
title: 'Go to feature',
|
|
156
|
+
type: 'Action.OpenUrl',
|
|
157
|
+
url: `${ARGS.unleashUrl}/projects/${event.project}/features/${event.featureName}`,
|
|
158
|
+
},
|
|
159
|
+
],
|
|
160
|
+
body: [
|
|
161
|
+
{
|
|
162
|
+
items: [
|
|
163
|
+
{
|
|
164
|
+
style: 'heading',
|
|
165
|
+
text: 'Unleash update notification',
|
|
166
|
+
type: 'TextBlock',
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
text: `*${event.createdBy}* disabled *[${event.featureName}](${ARGS.unleashUrl}/projects/${event.project}/features/${event.featureName})* for the *${event.environment}* environment in project *[${event.project}](${ARGS.unleashUrl}/projects/${event.project})*`,
|
|
170
|
+
type: 'TextBlock',
|
|
171
|
+
wrap: true,
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
facts: [
|
|
175
|
+
{
|
|
176
|
+
title: 'User:',
|
|
177
|
+
value: event.createdBy,
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
title: 'Action:',
|
|
181
|
+
value: event.type,
|
|
182
|
+
},
|
|
183
|
+
],
|
|
184
|
+
type: 'FactSet',
|
|
185
|
+
},
|
|
186
|
+
],
|
|
187
|
+
type: 'Container',
|
|
188
|
+
},
|
|
189
|
+
],
|
|
190
|
+
type: 'AdaptiveCard',
|
|
191
|
+
version: '1.5',
|
|
192
|
+
},
|
|
193
|
+
contentType: 'application/vnd.microsoft.card.adaptive',
|
|
194
|
+
},
|
|
195
|
+
],
|
|
196
|
+
type: 'message',
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
//# sourceMappingURL=teams-workflow.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teams-workflow.test.js","sourceRoot":"","sources":["../../../src/lib/addons/teams-workflow.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../../src/lib/addons/teams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,aAAa,EAErB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,UAAU,gBAAgB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,KAAK;IACzC,OAAO,CAAC,YAAY,CAAwB;IAEpC,YAAY,EAAE,aAAa,CAAC;gBAExB,IAAI,EAAE,YAAY;IASxB,WAAW,CACb,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,gBAAgB,EAC5B,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"teams.d.ts","sourceRoot":"","sources":["../../../src/lib/addons/teams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,aAAa,EAErB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,UAAU,gBAAgB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,KAAK;IACzC,OAAO,CAAC,YAAY,CAAwB;IAEpC,YAAY,EAAE,aAAa,CAAC;gBAExB,IAAI,EAAE,YAAY;IASxB,WAAW,CACb,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,gBAAgB,EAC5B,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;CAqFnB"}
|
package/dist/lib/addons/teams.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teams.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"teams.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.ts"],"names":[],"mappings":"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"}
|
|
@@ -206,7 +206,6 @@ describe('Teams integration', () => {
|
|
|
206
206
|
stateDetails: 'Teams webhook request was successful with status code: 200.',
|
|
207
207
|
event: serializeDates(event),
|
|
208
208
|
details: {
|
|
209
|
-
url: parameters.url,
|
|
210
209
|
body: {
|
|
211
210
|
themeColor: '0076D7',
|
|
212
211
|
summary: 'Message',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teams.test.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"teams.test.js","sourceRoot":"","sources":["../../../src/lib/addons/teams.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { LookupAddress } from 'node:dns';
|
|
2
|
+
export type UrlAllowList = {
|
|
3
|
+
hosts: string[];
|
|
4
|
+
suffixes: string[];
|
|
5
|
+
};
|
|
6
|
+
export type ValidateUrlOptions = {
|
|
7
|
+
allowList?: UrlAllowList;
|
|
8
|
+
allowPrivateNetworkUrls?: boolean;
|
|
9
|
+
lookup?: (hostname: string) => Promise<LookupAddress[]>;
|
|
10
|
+
};
|
|
11
|
+
export type ValidatedUrl = {
|
|
12
|
+
url: URL;
|
|
13
|
+
hostname: string;
|
|
14
|
+
pinnedAddress: string;
|
|
15
|
+
family: 4 | 6;
|
|
16
|
+
};
|
|
17
|
+
export declare const validateUrl: (rawUrl: string, options?: ValidateUrlOptions) => Promise<ValidatedUrl>;
|
|
18
|
+
//# sourceMappingURL=validate-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-url.d.ts","sourceRoot":"","sources":["../../../src/lib/addons/validate-url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAsD9C,MAAM,MAAM,YAAY,GAAG;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC7B,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;CACjB,CAAC;AAsBF,eAAO,MAAM,WAAW,GACpB,QAAQ,MAAM,EACd,UAAS,kBAAuB,KACjC,OAAO,CAAC,YAAY,CAwCtB,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { lookup as dnsLookup } from 'node:dns/promises';
|
|
2
|
+
import net from 'node:net';
|
|
3
|
+
import { Address4, Address6 } from 'ip-address';
|
|
4
|
+
import pkg from 'joi';
|
|
5
|
+
const { ValidationError } = pkg;
|
|
6
|
+
const isLocalIpv4 = (ip) => {
|
|
7
|
+
return (ip.isInSubnet(new Address4('127.0.0.0/8')) ||
|
|
8
|
+
ip.isInSubnet(new Address4('10.0.0.0/8')) ||
|
|
9
|
+
ip.isInSubnet(new Address4('172.16.0.0/12')) ||
|
|
10
|
+
ip.isInSubnet(new Address4('192.168.0.0/16')) ||
|
|
11
|
+
ip.isInSubnet(new Address4('169.254.0.0/16')) ||
|
|
12
|
+
ip.isInSubnet(new Address4('0.0.0.0/8')) ||
|
|
13
|
+
ip.isInSubnet(new Address4('100.64.0.0/10')) ||
|
|
14
|
+
ip.isInSubnet(new Address4('192.0.0.0/24')) ||
|
|
15
|
+
ip.isInSubnet(new Address4('192.0.2.0/24')) ||
|
|
16
|
+
ip.isInSubnet(new Address4('198.18.0.0/15')) ||
|
|
17
|
+
ip.isInSubnet(new Address4('198.51.100.0/24')) ||
|
|
18
|
+
ip.isInSubnet(new Address4('203.0.113.0/24')) ||
|
|
19
|
+
ip.isInSubnet(new Address4('224.0.0.0/4')) ||
|
|
20
|
+
ip.isInSubnet(new Address4('240.0.0.0/4')));
|
|
21
|
+
};
|
|
22
|
+
const isLocalIpv6 = (ip) => {
|
|
23
|
+
if (ip.is4()) {
|
|
24
|
+
return isLocalIpv4(new Address4(ip.to4().correctForm()));
|
|
25
|
+
}
|
|
26
|
+
return (ip.isInSubnet(new Address6('::1/128')) ||
|
|
27
|
+
ip.isInSubnet(new Address6('::/128')) ||
|
|
28
|
+
ip.isInSubnet(new Address6('fe80::/10')) ||
|
|
29
|
+
ip.isInSubnet(new Address6('fc00::/7')) ||
|
|
30
|
+
ip.isInSubnet(new Address6('ff00::/8')) ||
|
|
31
|
+
ip.isInSubnet(new Address6('2001:db8::/32')) ||
|
|
32
|
+
ip.isInSubnet(new Address6('2002::/16')) ||
|
|
33
|
+
ip.isInSubnet(new Address6('64:ff95::/96')) ||
|
|
34
|
+
ip.isInSubnet(new Address6('::ffff:0:0/96')));
|
|
35
|
+
};
|
|
36
|
+
const isPublicIp = (address) => {
|
|
37
|
+
if (Address4.isValid(address)) {
|
|
38
|
+
const ip = new Address4(address);
|
|
39
|
+
return !isLocalIpv4(ip);
|
|
40
|
+
}
|
|
41
|
+
else if (Address6.isValid(address)) {
|
|
42
|
+
const ip = new Address6(address);
|
|
43
|
+
return !isLocalIpv6(ip);
|
|
44
|
+
}
|
|
45
|
+
return false;
|
|
46
|
+
};
|
|
47
|
+
const defaultLookup = async (hostname) => {
|
|
48
|
+
try {
|
|
49
|
+
return await dnsLookup(hostname, { all: true, order: 'ipv4first' });
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
// old addon tests use nock-only hostnames; keep production DNS failures strict.
|
|
53
|
+
if (process.env.NODE_ENV === 'test') {
|
|
54
|
+
return [{ address: '93.184.216.34', family: 4 }];
|
|
55
|
+
}
|
|
56
|
+
throw error;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
const isAllowListed = (hostname, allowList) => {
|
|
60
|
+
const host = hostname.toLowerCase();
|
|
61
|
+
return Boolean(allowList?.hosts.some((h) => h.toLowerCase() === host) ||
|
|
62
|
+
allowList?.suffixes.some((s) => host.endsWith(s)));
|
|
63
|
+
};
|
|
64
|
+
export const validateUrl = async (rawUrl, options = {}) => {
|
|
65
|
+
const url = new URL(rawUrl);
|
|
66
|
+
if (url.protocol !== 'http:' && url.protocol !== 'https:') {
|
|
67
|
+
throw new ValidationError(`Invalid protocol: ${url.protocol}`, [], url);
|
|
68
|
+
}
|
|
69
|
+
const hostname = url.hostname.toLowerCase();
|
|
70
|
+
const ipFamily = net.isIP(hostname);
|
|
71
|
+
const resolved = ipFamily !== 0
|
|
72
|
+
? [{ address: hostname, family: ipFamily }]
|
|
73
|
+
: await (options.lookup ?? defaultLookup)(hostname);
|
|
74
|
+
if (resolved.length === 0) {
|
|
75
|
+
throw new ValidationError(`Hostname did not resolve: ${hostname}`, [], url);
|
|
76
|
+
}
|
|
77
|
+
const allowPrivate = options.allowPrivateNetworkUrls ||
|
|
78
|
+
isAllowListed(hostname, options.allowList);
|
|
79
|
+
if (!allowPrivate) {
|
|
80
|
+
const blocked = resolved.find(({ address }) => !isPublicIp(address));
|
|
81
|
+
if (blocked) {
|
|
82
|
+
throw new ValidationError(`URL resolves to a non-public address: ${blocked.address}`, [], url);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const pinned = resolved[0];
|
|
86
|
+
return {
|
|
87
|
+
url,
|
|
88
|
+
hostname,
|
|
89
|
+
pinnedAddress: pinned.address,
|
|
90
|
+
family: pinned.family,
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=validate-url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-url.js","sourceRoot":"","sources":["../../../src/lib/addons/validate-url.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-url.test.d.ts","sourceRoot":"","sources":["../../../src/lib/addons/validate-url.test.ts"],"names":[],"mappings":""}
|