From ab4a6f5c929c4a8c2e39f413b0035f6c0b0f6d51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gast=C3=B3n=20Fournier?= Date: Fri, 21 Apr 2023 10:25:40 +0200 Subject: [PATCH] chore: GA project specific segments (#3583) ## About the changes General availability of project-specific segments Now new permissions can be assigned to non-admin users to allow them to create segments specifically bounded to a project (note that unique naming restriction applies across projects, this limitation can be lifted later). ![image](https://user-images.githubusercontent.com/455064/233579161-40ab25c5-a306-4fbc-82e5-8d09b3cb6a5f.png) This enables a section in the project configuration to add project-specific segments ![image](https://user-images.githubusercontent.com/455064/233578924-7056c626-ff1f-4dad-b00c-7fbd851158a6.png) --- .../project/Project/ProjectSettings/ProjectSettings.tsx | 4 ---- frontend/src/component/segments/SegmentFormStepOne.tsx | 6 +----- frontend/src/component/segments/SegmentTable.tsx | 4 +--- frontend/src/interfaces/uiConfig.ts | 1 - src/lib/__snapshots__/create-config.test.ts.snap | 2 -- src/lib/types/experimental.ts | 4 ---- src/server-dev.ts | 1 - 7 files changed, 2 insertions(+), 20 deletions(-) diff --git a/frontend/src/component/project/Project/ProjectSettings/ProjectSettings.tsx b/frontend/src/component/project/Project/ProjectSettings/ProjectSettings.tsx index c54fb0debd..54cd56ff23 100644 --- a/frontend/src/component/project/Project/ProjectSettings/ProjectSettings.tsx +++ b/frontend/src/component/project/Project/ProjectSettings/ProjectSettings.tsx @@ -10,14 +10,11 @@ import { ProjectAccess } from 'component/project/ProjectAccess/ProjectAccess'; import ProjectEnvironmentList from 'component/project/ProjectEnvironment/ProjectEnvironment'; import { ChangeRequestConfiguration } from './ChangeRequestConfiguration/ChangeRequestConfiguration'; import { ProjectApiAccess } from 'component/project/Project/ProjectSettings/ProjectApiAccess/ProjectApiAccess'; -import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig'; import { ProjectSegments } from './ProjectSegments/ProjectSegments'; export const ProjectSettings = () => { const location = useLocation(); const navigate = useNavigate(); - const { uiConfig } = useUiConfig(); - const { projectScopedSegments } = uiConfig.flags; const tabs: ITab[] = [ { @@ -31,7 +28,6 @@ export const ProjectSettings = () => { { id: 'segments', label: 'Segments', - hidden: !Boolean(projectScopedSegments), }, { id: 'change-requests', diff --git a/frontend/src/component/segments/SegmentFormStepOne.tsx b/frontend/src/component/segments/SegmentFormStepOne.tsx index d043720fce..13b5539c63 100644 --- a/frontend/src/component/segments/SegmentFormStepOne.tsx +++ b/frontend/src/component/segments/SegmentFormStepOne.tsx @@ -126,11 +126,7 @@ export const SegmentFormStepOne: React.FC = ({ data-testid={SEGMENT_DESC_ID} /> diff --git a/frontend/src/component/segments/SegmentTable.tsx b/frontend/src/component/segments/SegmentTable.tsx index c312002376..fbd31bbe51 100644 --- a/frontend/src/component/segments/SegmentTable.tsx +++ b/frontend/src/component/segments/SegmentTable.tsx @@ -92,9 +92,7 @@ export const SegmentTable = () => { columns: ['createdAt', 'createdBy'], }, { - condition: - Boolean(projectId) || - !Boolean(uiConfig.flags.projectScopedSegments), + condition: Boolean(projectId), columns: ['project'], }, ], diff --git a/frontend/src/interfaces/uiConfig.ts b/frontend/src/interfaces/uiConfig.ts index 1c17fa1920..74fb296975 100644 --- a/frontend/src/interfaces/uiConfig.ts +++ b/frontend/src/interfaces/uiConfig.ts @@ -48,7 +48,6 @@ export interface IFlags { notifications?: boolean; loginHistory?: boolean; bulkOperations?: boolean; - projectScopedSegments?: boolean; projectScopedStickiness?: boolean; personalAccessTokensKillSwitch?: boolean; demo?: boolean; diff --git a/src/lib/__snapshots__/create-config.test.ts.snap b/src/lib/__snapshots__/create-config.test.ts.snap index f7299a9602..6851542913 100644 --- a/src/lib/__snapshots__/create-config.test.ts.snap +++ b/src/lib/__snapshots__/create-config.test.ts.snap @@ -86,7 +86,6 @@ exports[`should create default config 1`] = ` "optimal304Differ": false, "personalAccessTokensKillSwitch": false, "proPlanAutoCharge": false, - "projectScopedSegments": false, "projectScopedStickiness": false, "responseTimeWithAppNameKillSwitch": false, "strategyTitle": false, @@ -115,7 +114,6 @@ exports[`should create default config 1`] = ` "optimal304Differ": false, "personalAccessTokensKillSwitch": false, "proPlanAutoCharge": false, - "projectScopedSegments": false, "projectScopedStickiness": false, "responseTimeWithAppNameKillSwitch": false, "strategyTitle": false, diff --git a/src/lib/types/experimental.ts b/src/lib/types/experimental.ts index 32da3c011d..4d626af0cc 100644 --- a/src/lib/types/experimental.ts +++ b/src/lib/types/experimental.ts @@ -55,10 +55,6 @@ const flags = { process.env.UNLEASH_BULK_OPERATIONS, false, ), - projectScopedSegments: parseEnvVarBoolean( - process.env.PROJECT_SCOPED_SEGMENTS, - false, - ), projectScopedStickiness: parseEnvVarBoolean( process.env.PROJECT_SCOPED_STICKINESS, false, diff --git a/src/server-dev.ts b/src/server-dev.ts index a4a5da393f..35ab750373 100644 --- a/src/server-dev.ts +++ b/src/server-dev.ts @@ -40,7 +40,6 @@ process.nextTick(async () => { responseTimeWithAppNameKillSwitch: false, newProjectOverview: true, bulkOperations: true, - projectScopedSegments: true, projectScopedStickiness: true, optimal304: true, optimal304Differ: false,