From 16b22aa770c886cbd46726ef43c92caaa05e8be1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nuno=20G=C3=B3is=20=28aider=29?= Date: Wed, 21 May 2025 14:58:06 +0100 Subject: [PATCH] chore: Remove featureLinks feature flag --- .../FeatureOverviewMetaData.tsx | 15 +++++---------- frontend/src/interfaces/uiConfig.ts | 1 - .../export-import-service.ts | 11 ++++------- .../export-import.e2e.test.ts | 1 - .../feature-links/feature-link-controller.ts | 9 --------- .../feature-links/feature-link.e2e.test.ts | 1 - .../feature-toggle/feature-toggle-service.ts | 4 +--- .../tests/feature-toggle-service.e2e.test.ts | 1 - src/lib/metrics.ts | 5 +---- src/lib/types/experimental.ts | 5 ----- src/server-dev.ts | 1 - 11 files changed, 11 insertions(+), 43 deletions(-) diff --git a/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewMetaData/FeatureOverviewMetaData.tsx b/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewMetaData/FeatureOverviewMetaData.tsx index 1e6299de78..85a5f27509 100644 --- a/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewMetaData/FeatureOverviewMetaData.tsx +++ b/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewMetaData/FeatureOverviewMetaData.tsx @@ -27,7 +27,6 @@ import type { IFeatureToggle, } from '../../../../../interfaces/featureToggle.ts'; import AddIcon from '@mui/icons-material/Add'; -import { useUiFlag } from 'hooks/useUiFlag'; import { Badge } from 'component/common/Badge/Badge'; import LinkIcon from '@mui/icons-material/Link'; import { UPDATE_FEATURE } from '../../../../providers/AccessProvider/permissions.ts'; @@ -246,17 +245,13 @@ const FeatureOverviewMetaData: FC = ({ const showDependentFeatures = useShowDependentFeatures(project); - const featureLinksEnabled = useUiFlag('featureLinks'); - return ( <> - {featureLinksEnabled ? ( - - ) : null} +
Flag details diff --git a/frontend/src/interfaces/uiConfig.ts b/frontend/src/interfaces/uiConfig.ts index b5b5aef6fd..a183693ac2 100644 --- a/frontend/src/interfaces/uiConfig.ts +++ b/frontend/src/interfaces/uiConfig.ts @@ -89,7 +89,6 @@ export type UiFlags = { addEditStrategy?: boolean; cleanupReminder?: boolean; registerFrontendClient?: boolean; - featureLinks?: boolean; projectLinkTemplates?: boolean; }; diff --git a/src/lib/features/export-import-toggles/export-import-service.ts b/src/lib/features/export-import-toggles/export-import-service.ts index ae91ad79fd..821cfe51e7 100644 --- a/src/lib/features/export-import-toggles/export-import-service.ts +++ b/src/lib/features/export-import-toggles/export-import-service.ts @@ -303,9 +303,7 @@ export default class ExportImportService await this.importTagTypes(dto, auditUser); await this.importTags(dto, auditUser); await this.importContextFields(dto, auditUser); - if (this.flagResolver.isEnabled('featureLinks')) { - await this.importLinks(dto, auditUser); - } + await this.importLinks(dto, auditUser); } async import( @@ -907,7 +905,6 @@ export default class ExportImportService segments, tagTypes, featureDependencies, - featureLinks, ] = await Promise.all([ this.toggleStore.getAllByNames(featureNames), await this.featureEnvironmentStore.getAllByFeatures( @@ -924,10 +921,10 @@ export default class ExportImportService this.segmentReadModel.getAll(), this.tagTypeStore.getAll(), this.dependentFeaturesReadModel.getDependencies(featureNames), - this.flagResolver.isEnabled('featureLinks') - ? this.featureLinksReadModel.getLinks(...featureNames) - : Promise.resolve([]), ]); + const featureLinks = await this.featureLinksReadModel.getLinks( + ...featureNames, + ); this.addSegmentsToStrategies(featureStrategies, strategySegments); const filteredContextFields = contextFields .filter( 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 e5bb8896a7..96a59992b6 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 @@ -171,7 +171,6 @@ beforeAll(async () => { { experimental: { flags: { - featureLinks: true, }, }, }, diff --git a/src/lib/features/feature-links/feature-link-controller.ts b/src/lib/features/feature-links/feature-link-controller.ts index 03f978dba7..1b26afbd6b 100644 --- a/src/lib/features/feature-links/feature-link-controller.ts +++ b/src/lib/features/feature-links/feature-link-controller.ts @@ -108,9 +108,6 @@ export default class FeatureLinkController extends Controller { >, res: Response, ): Promise { - if (!this.flagResolver.isEnabled('featureLinks')) { - res.status(404).end(); - } const { projectId, featureName } = req.params; await this.transactionalFeatureLinkService.transactional((service) => @@ -132,9 +129,6 @@ export default class FeatureLinkController extends Controller { >, res: Response, ): Promise { - if (!this.flagResolver.isEnabled('featureLinks')) { - res.status(404).end(); - } const { projectId, linkId, featureName } = req.params; await this.transactionalFeatureLinkService.transactional((service) => @@ -156,9 +150,6 @@ export default class FeatureLinkController extends Controller { >, res: Response, ): Promise { - if (!this.flagResolver.isEnabled('featureLinks')) { - res.status(404).end(); - } const { projectId, linkId } = req.params; await this.transactionalFeatureLinkService.transactional((service) => diff --git a/src/lib/features/feature-links/feature-link.e2e.test.ts b/src/lib/features/feature-links/feature-link.e2e.test.ts index 651ff64570..35508f11ac 100644 --- a/src/lib/features/feature-links/feature-link.e2e.test.ts +++ b/src/lib/features/feature-links/feature-link.e2e.test.ts @@ -26,7 +26,6 @@ beforeAll(async () => { { experimental: { flags: { - featureLinks: true, }, }, }, diff --git a/src/lib/features/feature-toggle/feature-toggle-service.ts b/src/lib/features/feature-toggle/feature-toggle-service.ts index 7d4c483c66..9b475d52d2 100644 --- a/src/lib/features/feature-toggle/feature-toggle-service.ts +++ b/src/lib/features/feature-toggle/feature-toggle-service.ts @@ -1114,9 +1114,7 @@ export class FeatureToggleService { this.featureCollaboratorsReadModel.getFeatureCollaborators( featureName, ), - this.flagResolver.isEnabled('featureLinks') - ? this.featureLinksReadModel.getLinks(featureName) - : Promise.resolve([]), + this.featureLinksReadModel.getLinks(featureName), ]); if (environmentVariants) { diff --git a/src/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.ts b/src/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.ts index d230bab586..1a89c0f501 100644 --- a/src/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.ts +++ b/src/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.ts @@ -60,7 +60,6 @@ const irrelevantDate = new Date(); beforeAll(async () => { const flags = { - featureLinks: true, projectLinkTemplates: true, }; const config = createTestConfig({ experimental: { flags } }); diff --git a/src/lib/metrics.ts b/src/lib/metrics.ts index 1cd49ae53a..b620ccc89f 100644 --- a/src/lib/metrics.ts +++ b/src/lib/metrics.ts @@ -661,10 +661,7 @@ export function registerPrometheusMetrics( help: 'Count most popular domains used in feature links', labelNames: ['domain'], query: () => { - if (flagResolver.isEnabled('featureLinks')) { - return stores.featureLinkReadModel.getTopDomains(); - } - return Promise.resolve([]); + return stores.featureLinkReadModel.getTopDomains(); }, map: (result) => result.map(({ domain, count }) => ({ diff --git a/src/lib/types/experimental.ts b/src/lib/types/experimental.ts index c46321c036..56a49d6a9c 100644 --- a/src/lib/types/experimental.ts +++ b/src/lib/types/experimental.ts @@ -60,7 +60,6 @@ export type IFlagKey = | 'cleanupReminder' | 'removeInactiveApplications' | 'registerFrontendClient' - | 'featureLinks' | 'projectLinkTemplates' | 'reportUnknownFlags' | 'lastSeenBulkQuery' @@ -286,10 +285,6 @@ const flags: IFlags = { process.env.UNLEASH_EXPERIMENTAL_REGISTER_FRONTEND_CLIENT, false, ), - featureLinks: parseEnvVarBoolean( - process.env.UNLEASH_EXPERIMENTAL_FEATURE_LINKS, - false, - ), projectLinkTemplates: parseEnvVarBoolean( process.env.UNLEASH_EXPERIMENTAL_PROJECT_LINK_TEMPLATES, false, diff --git a/src/server-dev.ts b/src/server-dev.ts index f6b5f3c3a2..859c3ee298 100644 --- a/src/server-dev.ts +++ b/src/server-dev.ts @@ -54,7 +54,6 @@ process.nextTick(async () => { cleanupReminder: true, strictSchemaValidation: true, registerFrontendClient: true, - featureLinks: true, projectLinkTemplates: true, reportUnknownFlags: true, },