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,