diff --git a/src/lib/features/export-import-toggles/export-import.e2e.test.ts b/src/lib/features/export-import-toggles/export-import.e2e.test.ts index e7bf3865b5..fcd6a55939 100644 --- a/src/lib/features/export-import-toggles/export-import.e2e.test.ts +++ b/src/lib/features/export-import-toggles/export-import.e2e.test.ts @@ -64,13 +64,13 @@ const createFlag = async ( username: string = 'test', userId: number = -9999, ) => { - await app.services.featureToggleServiceV2.createFeatureToggle( + await app.services.featureToggleService.createFeatureToggle( projectId, flag, TEST_AUDIT_USER, ); if (strategy) { - await app.services.featureToggleServiceV2.createStrategy( + await app.services.featureToggleService.createStrategy( strategy, { projectId, diff --git a/src/lib/features/feature-toggle/archive-feature-toggle-controller.ts b/src/lib/features/feature-toggle/archive-feature-toggle-controller.ts index 039d279a6f..cdce65624d 100644 --- a/src/lib/features/feature-toggle/archive-feature-toggle-controller.ts +++ b/src/lib/features/feature-toggle/archive-feature-toggle-controller.ts @@ -37,18 +37,18 @@ export default class ArchiveController extends Controller { config: IUnleashConfig, { transactionalFeatureToggleService, - featureToggleServiceV2, + featureToggleService, openApiService, }: Pick< IUnleashServices, | 'transactionalFeatureToggleService' - | 'featureToggleServiceV2' + | 'featureToggleService' | 'openApiService' >, startTransaction: TransactionCreator<UnleashTransaction>, ) { super(config); - this.featureService = featureToggleServiceV2; + this.featureService = featureToggleService; this.openApiService = openApiService; this.transactionalFeatureToggleService = transactionalFeatureToggleService; diff --git a/src/lib/features/feature-toggle/fakes/fake-feature-toggle-store.ts b/src/lib/features/feature-toggle/fakes/fake-feature-toggle-store.ts index 59c3b37e16..7aecc5aaf1 100644 --- a/src/lib/features/feature-toggle/fakes/fake-feature-toggle-store.ts +++ b/src/lib/features/feature-toggle/fakes/fake-feature-toggle-store.ts @@ -248,12 +248,13 @@ export default class FakeFeatureToggleStore implements IFeatureToggleStore { return Promise.resolve(variants); } - getVariantsForEnv( + async getVariantsForEnv( featureName: string, - // eslint-disable-next-line @typescript-eslint/no-unused-vars environment_name: string, ): Promise<IVariant[]> { - return this.getVariants(featureName); + const feature = await this.get(featureName); + // there's no way to filter by environment in the fake store + return feature.variants as IVariant[]; } async saveVariants( diff --git a/src/lib/features/feature-toggle/feature-toggle-controller.ts b/src/lib/features/feature-toggle/feature-toggle-controller.ts index f0932d47c3..bd456dfecb 100644 --- a/src/lib/features/feature-toggle/feature-toggle-controller.ts +++ b/src/lib/features/feature-toggle/feature-toggle-controller.ts @@ -104,7 +104,7 @@ const PATH_STRATEGY = `${PATH_STRATEGIES}/:strategyId`; type ProjectFeaturesServices = Pick< IUnleashServices, - | 'featureToggleServiceV2' + | 'featureToggleService' | 'projectHealthService' | 'openApiService' | 'transactionalFeatureToggleService' @@ -131,7 +131,7 @@ export default class ProjectFeaturesController extends Controller { constructor( config: IUnleashConfig, { - featureToggleServiceV2, + featureToggleService, openApiService, transactionalFeatureToggleService, featureTagService, @@ -139,7 +139,7 @@ export default class ProjectFeaturesController extends Controller { startTransaction: TransactionCreator<UnleashTransaction>, ) { super(config); - this.featureService = featureToggleServiceV2; + this.featureService = featureToggleService; this.transactionalFeatureToggleService = transactionalFeatureToggleService; this.startTransaction = startTransaction; diff --git a/src/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.ts b/src/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.ts index 32669a7917..44445b7754 100644 --- a/src/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.ts +++ b/src/lib/features/feature-toggle/legacy/feature-toggle-legacy-controller.ts @@ -37,17 +37,17 @@ class FeatureController extends Controller { config: IUnleashConfig, { featureTagService, - featureToggleServiceV2, + featureToggleService, openApiService, }: Pick< IUnleashServices, - 'featureTagService' | 'featureToggleServiceV2' | 'openApiService' + 'featureTagService' | 'featureToggleService' | 'openApiService' >, ) { super(config); this.tagService = featureTagService; this.openApiService = openApiService; - this.service = featureToggleServiceV2; + this.service = featureToggleService; this.route({ method: 'post', diff --git a/src/lib/features/feature-toggle/tests/feature-toggles.auth.e2e.test.ts b/src/lib/features/feature-toggle/tests/feature-toggles.auth.e2e.test.ts index 6615ac4356..3e3f136eab 100644 --- a/src/lib/features/feature-toggle/tests/feature-toggles.auth.e2e.test.ts +++ b/src/lib/features/feature-toggle/tests/feature-toggles.auth.e2e.test.ts @@ -115,7 +115,7 @@ test('Should not be possible auto-enable feature flag without CREATE_FEATURE_STR const url = '/api/admin/projects/default/features'; const name = 'auth.flag.enable'; - await app.services.featureToggleServiceV2.createFeatureToggle( + await app.services.featureToggleService.createFeatureToggle( 'default', { name }, TEST_AUDIT_USER, diff --git a/src/lib/features/frontend-api/createFrontendApiService.ts b/src/lib/features/frontend-api/createFrontendApiService.ts index 7eb25ad6ce..93d9e959e2 100644 --- a/src/lib/features/frontend-api/createFrontendApiService.ts +++ b/src/lib/features/frontend-api/createFrontendApiService.ts @@ -34,7 +34,7 @@ export const createFrontendApiService = ( eventService, ); // TODO: remove this dependency after we migrate frontend API - const featureToggleServiceV2 = createFeatureToggleService(db, config); + const featureToggleService = createFeatureToggleService(db, config); const clientFeatureToggleReadModel = new ClientFeatureToggleReadModel( db, config.eventBus, @@ -49,7 +49,7 @@ export const createFrontendApiService = ( config, { segmentReadModel }, { - featureToggleServiceV2, + featureToggleService, clientMetricsServiceV2, settingService, configurationRevisionService, @@ -72,7 +72,7 @@ export const createFakeFrontendApiService = ( eventService, ); // TODO: remove this dependency after we migrate frontend API - const featureToggleServiceV2 = + const featureToggleService = createFakeFeatureToggleService(config).featureToggleService; const clientFeatureToggleReadModel = new FakeClientFeatureToggleReadModel(); const globalFrontendApiCache = new GlobalFrontendApiCache( @@ -85,7 +85,7 @@ export const createFakeFrontendApiService = ( config, { segmentReadModel }, { - featureToggleServiceV2, + featureToggleService, clientMetricsServiceV2, settingService, configurationRevisionService, diff --git a/src/lib/features/frontend-api/frontend-api-service.ts b/src/lib/features/frontend-api/frontend-api-service.ts index b2dd9fd39f..39ce6ba717 100644 --- a/src/lib/features/frontend-api/frontend-api-service.ts +++ b/src/lib/features/frontend-api/frontend-api-service.ts @@ -38,7 +38,7 @@ export type Stores = Pick<IUnleashStores, 'segmentReadModel'>; export type Services = Pick< IUnleashServices, - | 'featureToggleServiceV2' + | 'featureToggleService' | 'clientMetricsServiceV2' | 'settingService' | 'configurationRevisionService' diff --git a/src/lib/features/frontend-api/proxy-repository.ts b/src/lib/features/frontend-api/proxy-repository.ts index cfaebc2d1b..6b3cb5d767 100644 --- a/src/lib/features/frontend-api/proxy-repository.ts +++ b/src/lib/features/frontend-api/proxy-repository.ts @@ -32,7 +32,7 @@ type Stores = Pick<IUnleashStores, 'segmentReadModel'>; type Services = Pick< IUnleashServices, - 'featureToggleServiceV2' | 'configurationRevisionService' + 'featureToggleService' | 'configurationRevisionService' >; // TODO: remove after finished migration to global frontend api cache @@ -170,7 +170,7 @@ export class ProxyRepository private async featuresForToken(): Promise<FeatureInterface[]> { const start = Date.now(); const mappedFeatures = await mapFeaturesForClient( - await this.services.featureToggleServiceV2.getClientFeatures({ + await this.services.featureToggleService.getClientFeatures({ project: this.token.projects, environment: this.environmentNameForToken(), }), diff --git a/src/lib/features/playground/createPlaygroundService.ts b/src/lib/features/playground/createPlaygroundService.ts index 0288b64deb..480a9db035 100644 --- a/src/lib/features/playground/createPlaygroundService.ts +++ b/src/lib/features/playground/createPlaygroundService.ts @@ -17,12 +17,12 @@ export const createPlaygroundService = ( ): PlaygroundService => { const segmentReadModel = new SegmentReadModel(db); const privateProjectChecker = createPrivateProjectChecker(db, config); - const featureToggleServiceV2 = createFeatureToggleService(db, config); + const featureToggleService = createFeatureToggleService(db, config); const playgroundService = new PlaygroundService( config, { - featureToggleServiceV2, + featureToggleService, privateProjectChecker, }, segmentReadModel, @@ -34,13 +34,13 @@ export const createPlaygroundService = ( export const createFakePlaygroundService = (config: IUnleashConfig) => { const segmentReadModel = new FakeSegmentReadModel(); const privateProjectChecker = createFakePrivateProjectChecker(); - const featureToggleServiceV2 = + const featureToggleService = createFakeFeatureToggleService(config).featureToggleService; const playgroundService = new PlaygroundService( config, { - featureToggleServiceV2, + featureToggleService, privateProjectChecker, }, segmentReadModel, diff --git a/src/lib/features/playground/playground-service.ts b/src/lib/features/playground/playground-service.ts index 759a841ae7..6ec1eba0e5 100644 --- a/src/lib/features/playground/playground-service.ts +++ b/src/lib/features/playground/playground-service.ts @@ -82,17 +82,17 @@ export class PlaygroundService { constructor( config: IUnleashConfig, { - featureToggleServiceV2, + featureToggleService, privateProjectChecker, }: Pick< IUnleashServices, - 'featureToggleServiceV2' | 'privateProjectChecker' + 'featureToggleService' | 'privateProjectChecker' >, segmentReadModel: ISegmentReadModel, ) { this.logger = config.getLogger('services/playground-service.ts'); this.flagResolver = config.flagResolver; - this.featureToggleService = featureToggleServiceV2; + this.featureToggleService = featureToggleService; this.privateProjectChecker = privateProjectChecker; this.segmentReadModel = segmentReadModel; } diff --git a/src/lib/routes/admin-api/constraints.ts b/src/lib/routes/admin-api/constraints.ts index ee79311493..2f58dc2ff2 100644 --- a/src/lib/routes/admin-api/constraints.ts +++ b/src/lib/routes/admin-api/constraints.ts @@ -19,12 +19,12 @@ export default class ConstraintController extends Controller { constructor( config: IUnleashConfig, { - featureToggleServiceV2, + featureToggleService, openApiService, - }: Pick<IUnleashServices, 'featureToggleServiceV2' | 'openApiService'>, + }: Pick<IUnleashServices, 'featureToggleService' | 'openApiService'>, ) { super(config); - this.featureService = featureToggleServiceV2; + this.featureService = featureToggleService; this.openApiService = openApiService; this.logger = config.getLogger('/admin-api/validation.ts'); diff --git a/src/lib/routes/admin-api/project/project-archive.ts b/src/lib/routes/admin-api/project/project-archive.ts index 61aaa06fc6..74bf50ec41 100644 --- a/src/lib/routes/admin-api/project/project-archive.ts +++ b/src/lib/routes/admin-api/project/project-archive.ts @@ -50,19 +50,19 @@ export default class ProjectArchiveController extends Controller { config: IUnleashConfig, { transactionalFeatureToggleService, - featureToggleServiceV2, + featureToggleService, openApiService, }: Pick< IUnleashServices, | 'transactionalFeatureToggleService' - | 'featureToggleServiceV2' + | 'featureToggleService' | 'openApiService' >, startTransaction: TransactionCreator<UnleashTransaction>, ) { super(config); this.logger = config.getLogger('/admin-api/archive.js'); - this.featureService = featureToggleServiceV2; + this.featureService = featureToggleService; this.openApiService = openApiService; this.flagResolver = config.flagResolver; this.transactionalFeatureToggleService = diff --git a/src/lib/services/index.ts b/src/lib/services/index.ts index cb9a067feb..899b8da746 100644 --- a/src/lib/services/index.ts +++ b/src/lib/services/index.ts @@ -282,7 +282,7 @@ export const createServices = ( ? new FeatureCollaboratorsReadModel(db) : new FakeFeatureCollaboratorsReadModel(); - const featureToggleServiceV2 = new FeatureToggleService( + const featureToggleService = new FeatureToggleService( stores, config, segmentService, @@ -426,8 +426,7 @@ export const createServices = ( accountService, addonService, eventAnnouncerService, - featureToggleService: featureToggleServiceV2, - featureToggleServiceV2, + featureToggleService, featureTypeService, healthService, projectService, diff --git a/src/lib/types/services.ts b/src/lib/types/services.ts index e37efac1a5..7296305a66 100644 --- a/src/lib/types/services.ts +++ b/src/lib/types/services.ts @@ -78,8 +78,6 @@ export interface IUnleashServices { edgeService: EdgeService; featureTagService: FeatureTagService; featureToggleService: FeatureToggleService; - /** @deprecated use featureToggleService instead, both are interchangeable */ - featureToggleServiceV2: FeatureToggleService; featureTypeService: FeatureTypeService; groupService: GroupService; healthService: HealthService; diff --git a/src/test/e2e/api/client/feature.e2e.test.ts b/src/test/e2e/api/client/feature.e2e.test.ts index 578dccb4f6..ef22d2381e 100644 --- a/src/test/e2e/api/client/feature.e2e.test.ts +++ b/src/test/e2e/api/client/feature.e2e.test.ts @@ -25,7 +25,7 @@ beforeAll(async () => { }, db.rawDatabase, ); - await app.services.featureToggleServiceV2.createFeatureToggle( + await app.services.featureToggleService.createFeatureToggle( 'default', { name: 'featureX', @@ -34,7 +34,7 @@ beforeAll(async () => { }, TEST_AUDIT_USER, ); - await app.services.featureToggleServiceV2.createFeatureToggle( + await app.services.featureToggleService.createFeatureToggle( 'default', { name: 'featureY', @@ -43,7 +43,7 @@ beforeAll(async () => { TEST_AUDIT_USER, ); - await app.services.featureToggleServiceV2.createFeatureToggle( + await app.services.featureToggleService.createFeatureToggle( 'default', { name: 'featureZ', @@ -51,7 +51,7 @@ beforeAll(async () => { }, TEST_AUDIT_USER, ); - await app.services.featureToggleServiceV2.createFeatureToggle( + await app.services.featureToggleService.createFeatureToggle( 'default', { name: 'featureArchivedX', @@ -66,13 +66,13 @@ beforeAll(async () => { TEST_AUDIT_USER, ); - await app.services.featureToggleServiceV2.archiveToggle( + await app.services.featureToggleService.archiveToggle( 'featureArchivedX', testUser, TEST_AUDIT_USER, ); - await app.services.featureToggleServiceV2.createFeatureToggle( + await app.services.featureToggleService.createFeatureToggle( 'default', { name: 'featureArchivedY', @@ -81,12 +81,12 @@ beforeAll(async () => { TEST_AUDIT_USER, ); - await app.services.featureToggleServiceV2.archiveToggle( + await app.services.featureToggleService.archiveToggle( 'featureArchivedY', testUser, TEST_AUDIT_USER, ); - await app.services.featureToggleServiceV2.createFeatureToggle( + await app.services.featureToggleService.createFeatureToggle( 'default', { name: 'featureArchivedZ', @@ -94,12 +94,12 @@ beforeAll(async () => { }, TEST_AUDIT_USER, ); - await app.services.featureToggleServiceV2.archiveToggle( + await app.services.featureToggleService.archiveToggle( 'featureArchivedZ', testUser, TEST_AUDIT_USER, ); - await app.services.featureToggleServiceV2.createFeatureToggle( + await app.services.featureToggleService.createFeatureToggle( 'default', { name: 'feature.with.variants', @@ -107,7 +107,7 @@ beforeAll(async () => { }, TEST_AUDIT_USER, ); - await app.services.featureToggleServiceV2.saveVariants( + await app.services.featureToggleService.saveVariants( 'feature.with.variants', 'default', [ diff --git a/src/test/e2e/api/client/feature.env.disabled.e2e.test.ts b/src/test/e2e/api/client/feature.env.disabled.e2e.test.ts index 722d37d313..3b7dd1741a 100644 --- a/src/test/e2e/api/client/feature.env.disabled.e2e.test.ts +++ b/src/test/e2e/api/client/feature.env.disabled.e2e.test.ts @@ -20,7 +20,7 @@ beforeAll(async () => { }); app = await setupAppWithCustomConfig(db.stores, {}, db.rawDatabase); - await app.services.featureToggleServiceV2.createFeatureToggle( + await app.services.featureToggleService.createFeatureToggle( projectId, { name: featureName, @@ -29,7 +29,7 @@ beforeAll(async () => { TEST_AUDIT_USER, ); - await app.services.featureToggleServiceV2.createStrategy( + await app.services.featureToggleService.createStrategy( { name: 'default', constraints: [], parameters: {} }, { projectId, featureName, environment: DEFAULT_ENV }, TEST_AUDIT_USER, @@ -43,7 +43,7 @@ afterAll(async () => { }); test('returns feature flag for default env', async () => { - await app.services.featureToggleServiceV2.updateEnabled( + await app.services.featureToggleService.updateEnabled( 'default', 'feature.default.1', 'default', diff --git a/src/test/e2e/api/client/feature.token.access.e2e.test.ts b/src/test/e2e/api/client/feature.token.access.e2e.test.ts index 420793c5e7..8404f43d44 100644 --- a/src/test/e2e/api/client/feature.token.access.e2e.test.ts +++ b/src/test/e2e/api/client/feature.token.access.e2e.test.ts @@ -25,7 +25,7 @@ beforeAll(async () => { app = await setupAppWithAuth(db.stores, {}, db.rawDatabase); apiTokenService = app.services.apiTokenService; - const { featureToggleServiceV2, environmentService } = app.services; + const { featureToggleService, environmentService } = app.services; const { environmentStore, projectStore } = db.stores; await environmentStore.create({ @@ -51,7 +51,7 @@ beforeAll(async () => { TEST_AUDIT_USER, ); - await featureToggleServiceV2.createFeatureToggle( + await featureToggleService.createFeatureToggle( project, { name: feature1, @@ -60,7 +60,7 @@ beforeAll(async () => { TEST_AUDIT_USER, ); - await featureToggleServiceV2.createStrategy( + await featureToggleService.createStrategy( { name: 'default', constraints: [], @@ -69,7 +69,7 @@ beforeAll(async () => { { projectId: project, featureName: feature1, environment: DEFAULT_ENV }, TEST_AUDIT_USER, ); - await featureToggleServiceV2.createStrategy( + await featureToggleService.createStrategy( { name: 'flexibleRollout', constraints: [], @@ -80,14 +80,14 @@ beforeAll(async () => { ); // create feature 2 - await featureToggleServiceV2.createFeatureToggle( + await featureToggleService.createFeatureToggle( project, { name: feature2, }, TEST_AUDIT_USER, ); - await featureToggleServiceV2.createStrategy( + await featureToggleService.createStrategy( { name: 'default', constraints: [], @@ -98,14 +98,14 @@ beforeAll(async () => { ); // create feature 3 - await featureToggleServiceV2.createFeatureToggle( + await featureToggleService.createFeatureToggle( project2, { name: feature3, }, TEST_AUDIT_USER, ); - await featureToggleServiceV2.createStrategy( + await featureToggleService.createStrategy( { name: 'default', constraints: [], diff --git a/src/test/e2e/api/client/feature.token.deleted.project.e2e.test.ts b/src/test/e2e/api/client/feature.token.deleted.project.e2e.test.ts index 7dbe545671..3e0fd9376e 100644 --- a/src/test/e2e/api/client/feature.token.deleted.project.e2e.test.ts +++ b/src/test/e2e/api/client/feature.token.deleted.project.e2e.test.ts @@ -26,7 +26,7 @@ beforeAll(async () => { app = await setupAppWithAuth(db.stores, {}, db.rawDatabase); apiTokenService = app.services.apiTokenService; - const { featureToggleServiceV2, environmentService } = app.services; + const { featureToggleService, environmentService } = app.services; const { environmentStore, projectStore } = db.stores; await environmentStore.create({ @@ -59,7 +59,7 @@ beforeAll(async () => { TEST_AUDIT_USER, ); - await featureToggleServiceV2.createFeatureToggle( + await featureToggleService.createFeatureToggle( project, { name: feature1, @@ -68,7 +68,7 @@ beforeAll(async () => { TEST_AUDIT_USER, ); - await featureToggleServiceV2.createStrategy( + await featureToggleService.createStrategy( { name: 'default', constraints: [], @@ -77,7 +77,7 @@ beforeAll(async () => { { projectId: project, featureName: feature1, environment: DEFAULT_ENV }, TEST_AUDIT_USER, ); - await featureToggleServiceV2.createStrategy( + await featureToggleService.createStrategy( { name: 'default', constraints: [], @@ -88,14 +88,14 @@ beforeAll(async () => { ); // create feature 2 - await featureToggleServiceV2.createFeatureToggle( + await featureToggleService.createFeatureToggle( project, { name: feature2, }, TEST_AUDIT_USER, ); - await featureToggleServiceV2.createStrategy( + await featureToggleService.createStrategy( { name: 'default', constraints: [], @@ -106,14 +106,14 @@ beforeAll(async () => { ); // create feature 3 - await featureToggleServiceV2.createFeatureToggle( + await featureToggleService.createFeatureToggle( project2, { name: feature3, }, TEST_AUDIT_USER, ); - await featureToggleServiceV2.createStrategy( + await featureToggleService.createStrategy( { name: 'default', constraints: [], diff --git a/src/test/e2e/api/client/metricsV2.e2e.test.ts b/src/test/e2e/api/client/metricsV2.e2e.test.ts index b6662d063c..23244cb416 100644 --- a/src/test/e2e/api/client/metricsV2.e2e.test.ts +++ b/src/test/e2e/api/client/metricsV2.e2e.test.ts @@ -106,12 +106,12 @@ test('should pick up environment from token', async () => { test('should set lastSeen for toggles with metrics both for toggle and toggle env', async () => { const start = Date.now(); - await app.services.featureToggleServiceV2.createFeatureToggle( + await app.services.featureToggleService.createFeatureToggle( 'default', { name: 't1' }, TEST_AUDIT_USER, ); - await app.services.featureToggleServiceV2.createFeatureToggle( + await app.services.featureToggleService.createFeatureToggle( 'default', { name: 't2' }, TEST_AUDIT_USER, @@ -149,13 +149,13 @@ test('should set lastSeen for toggles with metrics both for toggle and toggle en await app.services.clientMetricsServiceV2.bulkAdd(); await app.services.lastSeenService.store(); - const t1 = await app.services.featureToggleServiceV2.getFeature({ + const t1 = await app.services.featureToggleService.getFeature({ featureName: 't1', archived: false, environmentVariants: true, projectId: 'default', }); - const t2 = await app.services.featureToggleServiceV2.getFeature({ + const t2 = await app.services.featureToggleService.getFeature({ featureName: 't2', archived: false, environmentVariants: true, diff --git a/src/test/e2e/services/playground-service.test.ts b/src/test/e2e/services/playground-service.test.ts index 8453cf836f..ba10934cb0 100644 --- a/src/test/e2e/services/playground-service.test.ts +++ b/src/test/e2e/services/playground-service.test.ts @@ -47,7 +47,7 @@ beforeAll(async () => { service = new PlaygroundService( config, { - featureToggleServiceV2: featureToggleService, + featureToggleService: featureToggleService, privateProjectChecker, }, segmentReadModel,