diff --git a/frontend/src/component/admin/adminRoutes.ts b/frontend/src/component/admin/adminRoutes.ts index 70132d5587..62837ddedd 100644 --- a/frontend/src/component/admin/adminRoutes.ts +++ b/frontend/src/component/admin/adminRoutes.ts @@ -80,7 +80,6 @@ export const adminRoutes: INavigationMenuItem[] = [ { path: '/admin/cors', title: 'CORS origins', - flag: 'embedProxyFrontend', menu: { adminSettings: true }, group: 'access', }, diff --git a/frontend/src/component/admin/apiToken/ApiTokenForm/useApiTokenForm.ts b/frontend/src/component/admin/apiToken/ApiTokenForm/useApiTokenForm.ts index 14a844ff87..1e6bc9e39f 100644 --- a/frontend/src/component/admin/apiToken/ApiTokenForm/useApiTokenForm.ts +++ b/frontend/src/component/admin/apiToken/ApiTokenForm/useApiTokenForm.ts @@ -1,5 +1,4 @@ import { useEffect, useState } from 'react'; -import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig'; import { useEnvironments } from 'hooks/api/getters/useEnvironments/useEnvironments'; import type { IApiTokenCreate } from 'hooks/api/actions/useApiTokensApi/useApiTokensApi'; import { TokenType } from 'interfaces/token'; @@ -14,10 +13,8 @@ import type { SelectOption } from './TokenTypeSelector/TokenTypeSelector'; export type ApiTokenFormErrorType = 'tokenName' | 'projects'; export const useApiTokenForm = (project?: string) => { const { environments } = useEnvironments(); - const { uiConfig } = useUiConfig(); const initialEnvironment = environments?.find((e) => e.enabled)?.name; - const hasCreateTokenPermission = useHasRootAccess(CREATE_CLIENT_API_TOKEN); const hasCreateProjectTokenPermission = useHasRootAccess( CREATE_PROJECT_API_TOKEN, project, @@ -29,24 +26,18 @@ export const useApiTokenForm = (project?: string) => { label: `Server-side SDK (${TokenType.CLIENT})`, title: 'Connect server-side SDK or Unleash Proxy/Edge', enabled: - hasCreateTokenPermission || hasCreateProjectTokenPermission, + useHasRootAccess(CREATE_CLIENT_API_TOKEN) || + hasCreateProjectTokenPermission, }, - ]; - - const hasCreateFrontendAccess = useHasRootAccess(CREATE_FRONTEND_API_TOKEN); - const hasCreateFrontendTokenAccess = useHasRootAccess( - CREATE_PROJECT_API_TOKEN, - project, - ); - - if (uiConfig.flags.embedProxyFrontend) { - apiTokenTypes.splice(1, 0, { + { key: TokenType.FRONTEND, label: `Client-side SDK (${TokenType.FRONTEND})`, title: 'Connect web and mobile SDK directly to Unleash', - enabled: hasCreateFrontendAccess || hasCreateFrontendTokenAccess, - }); - } + enabled: + useHasRootAccess(CREATE_FRONTEND_API_TOKEN) || + hasCreateProjectTokenPermission, + }, + ]; const firstAccessibleType = apiTokenTypes.find((t) => t.enabled)?.key; diff --git a/frontend/src/interfaces/uiConfig.ts b/frontend/src/interfaces/uiConfig.ts index 0f87b1dab0..7fc37de819 100644 --- a/frontend/src/interfaces/uiConfig.ts +++ b/frontend/src/interfaces/uiConfig.ts @@ -54,7 +54,6 @@ export type UiFlags = { T?: boolean; UNLEASH_CLOUD?: boolean; UG?: boolean; - embedProxyFrontend?: boolean; maintenanceMode?: boolean; messageBanner?: Variant; banner?: Variant; diff --git a/src/lib/features/frontend-api/frontend-api-controller.ts b/src/lib/features/frontend-api/frontend-api-controller.ts index 09579dcfd6..bc91ca083d 100644 --- a/src/lib/features/frontend-api/frontend-api-controller.ts +++ b/src/lib/features/frontend-api/frontend-api-controller.ts @@ -208,9 +208,6 @@ export default class FrontendAPIController extends Controller { req: ApiUserRequest, res: Response, ) { - if (!this.config.flagResolver.isEnabled('embedProxy')) { - throw new NotFoundError(); - } const toggles = await this.services.frontendApiService.getFrontendApiFeatures( req.user, @@ -231,10 +228,6 @@ export default class FrontendAPIController extends Controller { req: ApiUserRequest, res: Response, ) { - if (!this.config.flagResolver.isEnabled('embedProxy')) { - throw new NotFoundError(); - } - if (this.config.flagResolver.isEnabled('disableMetrics')) { res.sendStatus(204); return; @@ -254,9 +247,6 @@ export default class FrontendAPIController extends Controller { req: ApiUserRequest, res: Response, ) { - if (!this.config.flagResolver.isEnabled('embedProxy')) { - throw new NotFoundError(); - } // Client registration is not yet supported by @unleash/proxy, // but proxy clients may still expect a 200 from this endpoint. res.sendStatus(200); diff --git a/src/lib/middleware/api-token-middleware.ts b/src/lib/middleware/api-token-middleware.ts index bde8fa0315..3040a81d97 100644 --- a/src/lib/middleware/api-token-middleware.ts +++ b/src/lib/middleware/api-token-middleware.ts @@ -64,9 +64,7 @@ const apiAccessMiddleware = ( (apiUser.type === CLIENT && !isClientApi(req) && !isEdgeMetricsApi(req)) || - (apiUser.type === FRONTEND && !isProxyApi(req)) || - (apiUser.type === FRONTEND && - !flagResolver.isEnabled('embedProxy')) + (apiUser.type === FRONTEND && !isProxyApi(req)) ) { res.status(403).send({ message: TOKEN_TYPE_ERROR_MESSAGE, diff --git a/src/lib/types/experimental.ts b/src/lib/types/experimental.ts index 427a232308..9f23d2c277 100644 --- a/src/lib/types/experimental.ts +++ b/src/lib/types/experimental.ts @@ -9,8 +9,6 @@ export type IFlagKey = | 'encryptEmails' | 'enableLicense' | 'enableLicenseChecker' - | 'embedProxy' - | 'embedProxyFrontend' | 'responseTimeWithAppNameKillSwitch' | 'maintenanceMode' | 'messageBanner' @@ -77,14 +75,6 @@ const flags: IFlags = { anonymiseEventLog: false, enableLicense: false, enableLicenseChecker: false, - embedProxy: parseEnvVarBoolean( - process.env.UNLEASH_EXPERIMENTAL_EMBED_PROXY, - true, - ), - embedProxyFrontend: parseEnvVarBoolean( - process.env.UNLEASH_EXPERIMENTAL_EMBED_PROXY_FRONTEND, - true, - ), responseTimeWithAppNameKillSwitch: parseEnvVarBoolean( process.env.UNLEASH_RESPONSE_TIME_WITH_APP_NAME_KILL_SWITCH, false, diff --git a/src/server-dev.ts b/src/server-dev.ts index 07c9111b3c..5af332a5d7 100644 --- a/src/server-dev.ts +++ b/src/server-dev.ts @@ -36,8 +36,6 @@ process.nextTick(async () => { experimental: { // externalResolver: unleash, flags: { - embedProxy: true, - embedProxyFrontend: true, anonymiseEventLog: false, responseTimeWithAppNameKillSwitch: false, outdatedSdksBanner: true, diff --git a/src/test/config/test-config.ts b/src/test/config/test-config.ts index ca115f3f88..18b2b4cb18 100644 --- a/src/test/config/test-config.ts +++ b/src/test/config/test-config.ts @@ -24,12 +24,6 @@ export function createTestConfig(config?: IUnleashOptions): IUnleashConfig { clientFeatureCaching: { enabled: false, }, - experimental: { - flags: { - embedProxy: true, - embedProxyFrontend: true, - }, - }, publicFolder: path.join(__dirname, '../examples'), }; const options = mergeAll([testConfig, config || {}]);