diff --git a/frontend/src/component/feature/FeatureToggleList/FeatureToggleListTable.tsx b/frontend/src/component/feature/FeatureToggleList/FeatureToggleListTable.tsx index 5a012752db..d9b8024004 100644 --- a/frontend/src/component/feature/FeatureToggleList/FeatureToggleListTable.tsx +++ b/frontend/src/component/feature/FeatureToggleList/FeatureToggleListTable.tsx @@ -34,7 +34,6 @@ import { ExportFlags } from './ExportFlags.tsx'; import { createFeatureOverviewCell } from 'component/common/Table/cells/FeatureOverviewCell/FeatureOverviewCell'; import { AvatarCell } from 'component/project/Project/PaginatedProjectFeatureToggles/AvatarCell'; import { StatusCell } from './StatusCell/StatusCell.tsx'; -import { useUiFlag } from 'hooks/useUiFlag.ts'; export const featuresPlaceholder = Array(15).fill({ name: 'Name of the feature', @@ -70,7 +69,6 @@ export const FeatureToggleListTable: FC = () => { const isSmallScreen = useMediaQuery(theme.breakpoints.down('md')); const isMediumScreen = useMediaQuery(theme.breakpoints.down('lg')); const [showExportDialog, setShowExportDialog] = useState(false); - const reportUnknownFlagsEnabled = useUiFlag('reportUnknownFlags'); const { setToastApiError } = useToast(); @@ -261,16 +259,14 @@ export const FeatureToggleListTable: FC = () => { title='Flags overview' actions={ <> - {reportUnknownFlagsEnabled && ( - - Unknown flags - - )} + + Unknown flags + ({ export const UnknownFlagsTable = () => { const { unknownFlags, loading } = useUnknownFlags(); - const unknownFlagsEnabled = useUiFlag('reportUnknownFlags'); const [searchValue, setSearchValue] = useState(''); @@ -179,8 +176,6 @@ export const UnknownFlagsTable = () => { useFlexLayout, ); - if (!unknownFlagsEnabled) return ; - return ( { - const reportUnknownFlagsEnabled = useUiFlag('reportUnknownFlags'); - - const { data, error, mutate } = useConditionalSWR( - reportUnknownFlagsEnabled, - DEFAULT_DATA, + const { data, error, mutate } = useSWR( formatApiPath(ENDPOINT), fetcher, options, diff --git a/frontend/src/interfaces/uiConfig.ts b/frontend/src/interfaces/uiConfig.ts index 7303cc43a4..58761aa122 100644 --- a/frontend/src/interfaces/uiConfig.ts +++ b/frontend/src/interfaces/uiConfig.ts @@ -86,7 +86,6 @@ export type UiFlags = { edgeObservability?: boolean; customMetrics?: boolean; impactMetrics?: boolean; - reportUnknownFlags?: boolean; lifecycleGraphs?: boolean; addConfiguration?: boolean; }; diff --git a/src/lib/features/metrics/client-metrics/metrics-service-v2.ts b/src/lib/features/metrics/client-metrics/metrics-service-v2.ts index 659a9d251b..996a3985f6 100644 --- a/src/lib/features/metrics/client-metrics/metrics-service-v2.ts +++ b/src/lib/features/metrics/client-metrics/metrics-service-v2.ts @@ -137,14 +137,12 @@ export default class ClientMetricsServiceV2 { ); let unknownToggleNames: string[] = []; - if (this.flagResolver.isEnabled('reportUnknownFlags')) { - try { - unknownToggleNames = toggleNames.filter( - (name) => !existingFlags.includes(name), - ); - } catch (e) { - this.logger.error(e); - } + try { + unknownToggleNames = toggleNames.filter( + (name) => !existingFlags.includes(name), + ); + } catch (e) { + this.logger.error(e); } const validatedToggleNames = diff --git a/src/lib/features/metrics/unknown-flags/unknown-flags-controller.ts b/src/lib/features/metrics/unknown-flags/unknown-flags-controller.ts index 65c7cc11b0..600f418166 100644 --- a/src/lib/features/metrics/unknown-flags/unknown-flags-controller.ts +++ b/src/lib/features/metrics/unknown-flags/unknown-flags-controller.ts @@ -7,19 +7,15 @@ import { createResponseSchema } from '../../../openapi/util/create-response-sche import Controller from '../../../routes/controller.js'; import type { IAuthRequest } from '../../../routes/unleash-types.js'; import type { OpenApiService } from '../../../services/openapi-service.js'; -import type { IFlagResolver } from '../../../types/experimental.js'; import type { IUnleashConfig } from '../../../types/option.js'; import { NONE } from '../../../types/permissions.js'; import { serializeDates } from '../../../types/serialize-dates.js'; import type { IUnleashServices } from '../../../services/index.js'; import type { UnknownFlagsService } from './unknown-flags-service.js'; -import { NotFoundError } from '../../../error/index.js'; export default class UnknownFlagsController extends Controller { private unknownFlagsService: UnknownFlagsService; - private flagResolver: IFlagResolver; - private openApiService: OpenApiService; constructor( @@ -31,7 +27,6 @@ export default class UnknownFlagsController extends Controller { ) { super(config); this.unknownFlagsService = unknownFlagsService; - this.flagResolver = config.flagResolver; this.openApiService = openApiService; this.route({ @@ -58,9 +53,6 @@ export default class UnknownFlagsController extends Controller { _: IAuthRequest, res: Response, ): Promise { - if (!this.flagResolver.isEnabled('reportUnknownFlags')) { - throw new NotFoundError(); - } const unknownFlags = await this.unknownFlagsService.getAll({ limit: 1000, orderBy: [ diff --git a/src/lib/features/metrics/unknown-flags/unknown-flags-service.ts b/src/lib/features/metrics/unknown-flags/unknown-flags-service.ts index 0ca96e0de5..dbf0886629 100644 --- a/src/lib/features/metrics/unknown-flags/unknown-flags-service.ts +++ b/src/lib/features/metrics/unknown-flags/unknown-flags-service.ts @@ -1,6 +1,5 @@ import type { Logger } from '../../../logger.js'; import type { - IFlagResolver, IUnknownFlagsStore, IUnleashConfig, } from '../../../types/index.js'; @@ -14,8 +13,6 @@ import type { export class UnknownFlagsService { private logger: Logger; - private flagResolver: IFlagResolver; - private unknownFlagsStore: IUnknownFlagsStore; private unknownFlagsCache: Map; @@ -25,7 +22,6 @@ export class UnknownFlagsService { config: IUnleashConfig, ) { this.unknownFlagsStore = unknownFlagsStore; - this.flagResolver = config.flagResolver; this.logger = config.getLogger( '/features/metrics/unknown-flags/unknown-flags-service.ts', ); @@ -37,7 +33,6 @@ export class UnknownFlagsService { } register(unknownFlags: UnknownFlagReport[]) { - if (!this.flagResolver.isEnabled('reportUnknownFlags')) return; for (const flag of unknownFlags) { const key = this.getKey(flag); this.unknownFlagsCache.set(key, flag); @@ -45,7 +40,6 @@ export class UnknownFlagsService { } async flush(): Promise { - if (!this.flagResolver.isEnabled('reportUnknownFlags')) return; if (this.unknownFlagsCache.size === 0) return; const cached = Array.from(this.unknownFlagsCache.values()); @@ -57,12 +51,10 @@ export class UnknownFlagsService { } async getAll(queryParams?: QueryParams): Promise { - if (!this.flagResolver.isEnabled('reportUnknownFlags')) return []; return this.unknownFlagsStore.getAll(queryParams); } async clear(hoursAgo: number) { - if (!this.flagResolver.isEnabled('reportUnknownFlags')) return; return this.unknownFlagsStore.clear(hoursAgo); } } diff --git a/src/lib/features/metrics/unknown-flags/unknown-flags.e2e.test.ts b/src/lib/features/metrics/unknown-flags/unknown-flags.e2e.test.ts index 3b7c8f7a2d..08aa19a815 100644 --- a/src/lib/features/metrics/unknown-flags/unknown-flags.e2e.test.ts +++ b/src/lib/features/metrics/unknown-flags/unknown-flags.e2e.test.ts @@ -48,13 +48,7 @@ let services: IUnleashServices; let destroy: () => Promise; beforeAll(async () => { - const setup = await getSetup({ - experimental: { - flags: { - reportUnknownFlags: true, - }, - }, - }); + const setup = await getSetup(); request = setup.request; stores = setup.stores; destroy = setup.destroy; diff --git a/src/lib/types/experimental.ts b/src/lib/types/experimental.ts index 8efae9bbe7..d55e168d42 100644 --- a/src/lib/types/experimental.ts +++ b/src/lib/types/experimental.ts @@ -52,7 +52,6 @@ export type IFlagKey = | 'consumptionModel' | 'consumptionModelUI' | 'edgeObservability' - | 'reportUnknownFlags' | 'customMetrics' | 'impactMetrics' | 'lifecycleGraphs' @@ -247,10 +246,6 @@ const flags: IFlags = { process.env.EXPERIMENTAL_EDGE_OBSERVABILITY, false, ), - reportUnknownFlags: parseEnvVarBoolean( - process.env.UNLEASH_EXPERIMENTAL_REPORT_UNKNOWN_FLAGS, - false, - ), impactMetrics: parseEnvVarBoolean( process.env.UNLEASH_EXPERIMENTAL_IMPACT_METRICS, false, diff --git a/src/server-dev.ts b/src/server-dev.ts index 85354c7307..6628d3c8d9 100644 --- a/src/server-dev.ts +++ b/src/server-dev.ts @@ -50,7 +50,6 @@ process.nextTick(async () => { deltaApi: true, uniqueSdkTracking: true, strictSchemaValidation: true, - reportUnknownFlags: true, customMetrics: true, impactMetrics: true, lifecycleGraphs: true,