From 383aa3dde4d2b9ef1617d5b4f4d20bc24dbe5ceb Mon Sep 17 00:00:00 2001 From: Jaanus Sellin Date: Fri, 28 Apr 2023 11:18:03 +0300 Subject: [PATCH] feat: remove bulk operations flag (#3643) --- .../archive/ArchiveTable/ArchiveTable.tsx | 30 ++++++++----------- .../ArchivedFeatureDeleteConfirm.tsx | 7 +---- .../ProjectFeatureToggles.tsx | 30 ++++++++----------- frontend/src/interfaces/uiConfig.ts | 1 - .../__snapshots__/create-config.test.ts.snap | 2 -- .../admin-api/project/project-archive.ts | 11 ------- .../admin-api/project/project-features.ts | 5 ---- src/lib/routes/admin-api/tag.ts | 4 --- src/lib/types/experimental.ts | 4 --- src/server-dev.ts | 1 - .../e2e/api/admin/feature-archive.e2e.test.ts | 1 - .../api/admin/project/features.e2e.test.ts | 1 - src/test/e2e/api/admin/tags.e2e.test.ts | 1 - 13 files changed, 25 insertions(+), 73 deletions(-) diff --git a/frontend/src/component/archive/ArchiveTable/ArchiveTable.tsx b/frontend/src/component/archive/ArchiveTable/ArchiveTable.tsx index 5ecd5029ab..6aede2799f 100644 --- a/frontend/src/component/archive/ArchiveTable/ArchiveTable.tsx +++ b/frontend/src/component/archive/ArchiveTable/ArchiveTable.tsx @@ -95,24 +95,18 @@ export const ArchiveTable = ({ const columns = useMemo( () => [ - ...(uiConfig?.flags?.bulkOperations - ? [ - { - id: 'Select', - Header: ({ getToggleAllRowsSelectedProps }: any) => ( - - ), - Cell: ({ row }: any) => ( - - ), - maxWidth: 50, - disableSortBy: true, - hideInMenu: true, - }, - ] - : []), + { + id: 'Select', + Header: ({ getToggleAllRowsSelectedProps }: any) => ( + + ), + Cell: ({ row }: any) => ( + + ), + maxWidth: 50, + disableSortBy: true, + hideInMenu: true, + }, { Header: 'Seen', width: 85, diff --git a/frontend/src/component/archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureDeleteConfirm/ArchivedFeatureDeleteConfirm.tsx b/frontend/src/component/archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureDeleteConfirm/ArchivedFeatureDeleteConfirm.tsx index b46dad7960..8fb50babe2 100644 --- a/frontend/src/component/archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureDeleteConfirm/ArchivedFeatureDeleteConfirm.tsx +++ b/frontend/src/component/archive/ArchiveTable/ArchivedFeatureActionCell/ArchivedFeatureDeleteConfirm/ArchivedFeatureDeleteConfirm.tsx @@ -43,12 +43,7 @@ export const ArchivedFeatureDeleteConfirm = ({ if (deletedFeatures.length === 0) { return; } - - if (uiConfig?.flags?.bulkOperations) { - await deleteFeatures(projectId, deletedFeatures); - } else { - await deleteFeature(deletedFeatures[0]); - } + await deleteFeatures(projectId, deletedFeatures); await refetch(); setToastData({ diff --git a/frontend/src/component/project/Project/ProjectFeatureToggles/ProjectFeatureToggles.tsx b/frontend/src/component/project/Project/ProjectFeatureToggles/ProjectFeatureToggles.tsx index 6d50b1bcb5..4772dc117c 100644 --- a/frontend/src/component/project/Project/ProjectFeatureToggles/ProjectFeatureToggles.tsx +++ b/frontend/src/component/project/Project/ProjectFeatureToggles/ProjectFeatureToggles.tsx @@ -240,24 +240,18 @@ export const ProjectFeatureToggles = ({ const columns = useMemo( () => [ - ...(uiConfig?.flags?.bulkOperations - ? [ - { - id: 'Select', - Header: ({ getToggleAllRowsSelectedProps }: any) => ( - - ), - Cell: ({ row }: any) => ( - - ), - maxWidth: 50, - disableSortBy: true, - hideInMenu: true, - }, - ] - : []), + { + id: 'Select', + Header: ({ getToggleAllRowsSelectedProps }: any) => ( + + ), + Cell: ({ row }: any) => ( + + ), + maxWidth: 50, + disableSortBy: true, + hideInMenu: true, + }, { id: 'favorite', Header: ( diff --git a/frontend/src/interfaces/uiConfig.ts b/frontend/src/interfaces/uiConfig.ts index 8a6a765229..c94a63ccb8 100644 --- a/frontend/src/interfaces/uiConfig.ts +++ b/frontend/src/interfaces/uiConfig.ts @@ -45,7 +45,6 @@ export interface IFlags { crOnVariants?: boolean; proPlanAutoCharge?: boolean; notifications?: boolean; - bulkOperations?: boolean; personalAccessTokensKillSwitch?: boolean; demo?: boolean; strategyTitle?: boolean; diff --git a/src/lib/__snapshots__/create-config.test.ts.snap b/src/lib/__snapshots__/create-config.test.ts.snap index 374f6f5dc2..f5a607d20e 100644 --- a/src/lib/__snapshots__/create-config.test.ts.snap +++ b/src/lib/__snapshots__/create-config.test.ts.snap @@ -67,7 +67,6 @@ exports[`should create default config 1`] = ` }, "flags": { "anonymiseEventLog": false, - "bulkOperations": false, "caseInsensitiveInOperators": false, "cleanClientApi": false, "crOnVariants": false, @@ -94,7 +93,6 @@ exports[`should create default config 1`] = ` "flagResolver": FlagResolver { "experiments": { "anonymiseEventLog": false, - "bulkOperations": false, "caseInsensitiveInOperators": false, "cleanClientApi": false, "crOnVariants": false, diff --git a/src/lib/routes/admin-api/project/project-archive.ts b/src/lib/routes/admin-api/project/project-archive.ts index 13396a4046..02450e049a 100644 --- a/src/lib/routes/admin-api/project/project-archive.ts +++ b/src/lib/routes/admin-api/project/project-archive.ts @@ -14,7 +14,6 @@ import { IAuthRequest } from '../../unleash-types'; import { OpenApiService } from '../../../services/openapi-service'; import { emptyResponse } from '../../../openapi/util/standard-responses'; import { BatchFeaturesSchema, createRequestSchema } from '../../../openapi'; -import NotFoundError from '../../../error/notfound-error'; import Controller from '../../controller'; const PATH = '/:projectId'; @@ -105,9 +104,6 @@ export default class ProjectArchiveController extends Controller { req: IAuthRequest, res: Response, ): Promise { - if (!this.flagResolver.isEnabled('bulkOperations')) { - throw new NotFoundError('Bulk operations are not enabled'); - } const { projectId } = req.params; const { features } = req.body; const user = extractUsername(req); @@ -119,9 +115,6 @@ export default class ProjectArchiveController extends Controller { req: IAuthRequest, res: Response, ): Promise { - if (!this.flagResolver.isEnabled('bulkOperations')) { - throw new NotFoundError('Bulk operations are not enabled'); - } const { projectId } = req.params; const { features } = req.body; const user = extractUsername(req); @@ -133,10 +126,6 @@ export default class ProjectArchiveController extends Controller { req: IAuthRequest, res: Response, ): Promise { - if (!this.flagResolver.isEnabled('bulkOperations')) { - throw new NotFoundError('Bulk operations are not enabled'); - } - const { features } = req.body; const { projectId } = req.params; const userName = extractUsername(req); diff --git a/src/lib/routes/admin-api/project/project-features.ts b/src/lib/routes/admin-api/project/project-features.ts index 3326213c7f..f83d989e8c 100644 --- a/src/lib/routes/admin-api/project/project-features.ts +++ b/src/lib/routes/admin-api/project/project-features.ts @@ -40,7 +40,6 @@ import { } from '../../../openapi'; import { OpenApiService, FeatureToggleService } from '../../../services'; import { querySchema } from '../../../schema/feature-schema'; -import NotFoundError from '../../../error/notfound-error'; import { BatchStaleSchema } from '../../../openapi/spec/batch-stale-schema'; interface FeatureStrategyParams { @@ -594,10 +593,6 @@ export default class ProjectFeaturesController extends Controller { req: IAuthRequest<{ projectId: string }, void, BatchStaleSchema>, res: Response, ): Promise { - if (!this.flagResolver.isEnabled('bulkOperations')) { - throw new NotFoundError('Bulk operations are not enabled'); - } - const { features, stale } = req.body; const { projectId } = req.params; const userName = extractUsername(req); diff --git a/src/lib/routes/admin-api/tag.ts b/src/lib/routes/admin-api/tag.ts index 0d13202bf2..1f8c02b240 100644 --- a/src/lib/routes/admin-api/tag.ts +++ b/src/lib/routes/admin-api/tag.ts @@ -24,7 +24,6 @@ import { import { emptyResponse } from '../../openapi/util/standard-responses'; import FeatureTagService from 'lib/services/feature-tag-service'; import { TagsBulkAddSchema } from '../../openapi/spec/tags-bulk-add-schema'; -import NotFoundError from '../../error/notfound-error'; import { IFlagResolver } from '../../types'; const version = 1; @@ -214,9 +213,6 @@ class TagController extends Controller { req: IAuthRequest, res: Response, ): Promise { - if (!this.flagResolver.isEnabled('bulkOperations')) { - throw new NotFoundError('Bulk operations are not enabled'); - } const { features, tags } = req.body; const userName = extractUsername(req); await this.featureTagService.updateTags( diff --git a/src/lib/types/experimental.ts b/src/lib/types/experimental.ts index b0d40a7944..61724b233a 100644 --- a/src/lib/types/experimental.ts +++ b/src/lib/types/experimental.ts @@ -49,10 +49,6 @@ const flags = { process.env.UNLEASH_PRO_PLAN_AUTO_CHARGE, false, ), - bulkOperations: parseEnvVarBoolean( - process.env.UNLEASH_BULK_OPERATIONS, - false, - ), personalAccessTokensKillSwitch: parseEnvVarBoolean( process.env.UNLEASH_PAT_KILL_SWITCH, false, diff --git a/src/server-dev.ts b/src/server-dev.ts index 4b782ba940..f2d0ba5c1e 100644 --- a/src/server-dev.ts +++ b/src/server-dev.ts @@ -39,7 +39,6 @@ process.nextTick(async () => { anonymiseEventLog: false, responseTimeWithAppNameKillSwitch: false, newProjectOverview: true, - bulkOperations: true, optimal304: true, optimal304Differ: false, }, diff --git a/src/test/e2e/api/admin/feature-archive.e2e.test.ts b/src/test/e2e/api/admin/feature-archive.e2e.test.ts index a373be066e..9fecb9c16b 100644 --- a/src/test/e2e/api/admin/feature-archive.e2e.test.ts +++ b/src/test/e2e/api/admin/feature-archive.e2e.test.ts @@ -15,7 +15,6 @@ beforeAll(async () => { experimental: { flags: { strictSchemaValidation: true, - bulkOperations: true, }, }, }); diff --git a/src/test/e2e/api/admin/project/features.e2e.test.ts b/src/test/e2e/api/admin/project/features.e2e.test.ts index c249bb27b0..b80f1c8baf 100644 --- a/src/test/e2e/api/admin/project/features.e2e.test.ts +++ b/src/test/e2e/api/admin/project/features.e2e.test.ts @@ -89,7 +89,6 @@ beforeAll(async () => { experimental: { flags: { strictSchemaValidation: true, - bulkOperations: true, }, }, }, diff --git a/src/test/e2e/api/admin/tags.e2e.test.ts b/src/test/e2e/api/admin/tags.e2e.test.ts index c8e9ef5456..1cd26fd98f 100644 --- a/src/test/e2e/api/admin/tags.e2e.test.ts +++ b/src/test/e2e/api/admin/tags.e2e.test.ts @@ -11,7 +11,6 @@ beforeAll(async () => { experimental: { flags: { strictSchemaValidation: true, - bulkOperations: true, }, }, });