From 6747b6082271ce1be0555eca4aa6a3f97969d4fc Mon Sep 17 00:00:00 2001 From: Will Browne Date: Fri, 25 Jul 2025 13:02:05 +0100 Subject: [PATCH] Plugins: Remove pluginsDetailsRightPanel feature toggle (#107321) remove pluginsDetailsRightPanel feature toggle --- .../configure-grafana/feature-toggles/index.md | 1 - packages/grafana-data/src/types/featureToggles.gen.ts | 5 ----- pkg/services/featuremgmt/registry.go | 8 -------- pkg/services/featuremgmt/toggles_gen.csv | 1 - pkg/services/featuremgmt/toggles_gen.go | 4 ---- pkg/services/featuremgmt/toggles_gen.json | 3 ++- .../plugins/admin/components/PluginDetailsBody.tsx | 2 +- .../admin/components/PluginDetailsPage.test.tsx | 11 +---------- .../plugins/admin/components/PluginDetailsPage.tsx | 9 ++------- .../plugins/admin/components/PluginSubtitle.tsx | 3 +-- .../plugins/admin/hooks/usePluginDetailsTabs.tsx | 2 +- .../plugins/admin/pages/PluginDetails.test.tsx | 5 ----- 12 files changed, 8 insertions(+), 46 deletions(-) diff --git a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md index 290d3040229..cc448ec4ba3 100644 --- a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md +++ b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md @@ -35,7 +35,6 @@ Most [generally available](https://grafana.com/docs/release-life-cycle/#general- | `influxdbBackendMigration` | Query InfluxDB InfluxQL without the proxy | Yes | | `dataplaneFrontendFallback` | Support dataplane contract field name change for transformations and field name matchers where the name is different | Yes | | `unifiedRequestLog` | Writes error logs to the request logger | Yes | -| `pluginsDetailsRightPanel` | Enables right panel for the plugins details page | Yes | | `recordedQueriesMulti` | Enables writing multiple items from a single query within Recorded Queries | Yes | | `logsExploreTableVisualisation` | A table visualisation for logs in Explore | Yes | | `awsDatasourcesTempCredentials` | Support temporary security credentials in AWS plugins for Grafana Cloud customers | Yes | diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index 15b138e4ff7..97f2ba25bcd 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -166,11 +166,6 @@ export interface FeatureToggles { */ pluginsFrontendSandbox?: boolean; /** - * Enables right panel for the plugins details page - * @default true - */ - pluginsDetailsRightPanel?: boolean; - /** * Enables previous SQL data source dataset dropdown behavior */ sqlDatasourceDatabaseSelection?: boolean; diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go index 4fdb2c87c27..8bce171f419 100644 --- a/pkg/services/featuremgmt/registry.go +++ b/pkg/services/featuremgmt/registry.go @@ -261,14 +261,6 @@ var ( Stage: FeatureStagePrivatePreview, Owner: grafanaPluginsPlatformSquad, }, - { - Name: "pluginsDetailsRightPanel", - Description: "Enables right panel for the plugins details page", - Stage: FeatureStageGeneralAvailability, - FrontendOnly: true, - Expression: "true", - Owner: grafanaPluginsPlatformSquad, - }, { Name: "sqlDatasourceDatabaseSelection", Description: "Enables previous SQL data source dataset dropdown behavior", diff --git a/pkg/services/featuremgmt/toggles_gen.csv b/pkg/services/featuremgmt/toggles_gen.csv index 531ac398257..778164b525b 100644 --- a/pkg/services/featuremgmt/toggles_gen.csv +++ b/pkg/services/featuremgmt/toggles_gen.csv @@ -33,7 +33,6 @@ faroDatasourceSelector,preview,@grafana/app-o11y,false,false,true enableDatagridEditing,preview,@grafana/dataviz-squad,false,false,true extraThemes,experimental,@grafana/grafana-frontend-platform,false,false,true pluginsFrontendSandbox,privatePreview,@grafana/plugins-platform-backend,false,false,false -pluginsDetailsRightPanel,GA,@grafana/plugins-platform-backend,false,false,true sqlDatasourceDatabaseSelection,preview,@grafana/oss-big-tent,false,false,true recordedQueriesMulti,GA,@grafana/observability-metrics,false,false,false logsExploreTableVisualisation,GA,@grafana/observability-logs,false,false,true diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go index 96930b299c9..810b1e641cb 100644 --- a/pkg/services/featuremgmt/toggles_gen.go +++ b/pkg/services/featuremgmt/toggles_gen.go @@ -143,10 +143,6 @@ const ( // Enables the plugins frontend sandbox FlagPluginsFrontendSandbox = "pluginsFrontendSandbox" - // FlagPluginsDetailsRightPanel - // Enables right panel for the plugins details page - FlagPluginsDetailsRightPanel = "pluginsDetailsRightPanel" - // FlagSqlDatasourceDatabaseSelection // Enables previous SQL data source dataset dropdown behavior FlagSqlDatasourceDatabaseSelection = "sqlDatasourceDatabaseSelection" diff --git a/pkg/services/featuremgmt/toggles_gen.json b/pkg/services/featuremgmt/toggles_gen.json index 08c49aac219..18fde824fc9 100644 --- a/pkg/services/featuremgmt/toggles_gen.json +++ b/pkg/services/featuremgmt/toggles_gen.json @@ -2348,7 +2348,8 @@ "metadata": { "name": "pluginsDetailsRightPanel", "resourceVersion": "1753285129398", - "creationTimestamp": "2024-08-13T09:55:30Z" + "creationTimestamp": "2024-08-13T09:55:30Z", + "deletionTimestamp": "2025-07-25T08:56:36Z" }, "spec": { "description": "Enables right panel for the plugins details page", diff --git a/public/app/features/plugins/admin/components/PluginDetailsBody.tsx b/public/app/features/plugins/admin/components/PluginDetailsBody.tsx index 9a83a03b688..0cfbf334fb6 100644 --- a/public/app/features/plugins/admin/components/PluginDetailsBody.tsx +++ b/public/app/features/plugins/admin/components/PluginDetailsBody.tsx @@ -87,7 +87,7 @@ export function PluginDetailsBody({ plugin, queryParams, pageId, info, showDetai return ; } - if (pageId === PluginTabIds.PLUGINDETAILS && config.featureToggles.pluginsDetailsRightPanel && showDetails) { + if (pageId === PluginTabIds.PLUGINDETAILS && showDetails) { return (
diff --git a/public/app/features/plugins/admin/components/PluginDetailsPage.test.tsx b/public/app/features/plugins/admin/components/PluginDetailsPage.test.tsx index 4a5a7b5c7bd..da4eef2f0d4 100644 --- a/public/app/features/plugins/admin/components/PluginDetailsPage.test.tsx +++ b/public/app/features/plugins/admin/components/PluginDetailsPage.test.tsx @@ -106,14 +106,7 @@ describe('PluginDetailsPage', () => { expect(screen.getByText('Plugin not found')).toBeInTheDocument(); }); - it('should not show right panel when feature toggle is disabled', () => { - config.featureToggles.pluginsDetailsRightPanel = false; - render(); - expect(screen.queryByTestId('plugin-details-panel')).not.toBeInTheDocument(); - }); - - it('should show right panel when feature toggle is enabled and screen is wide', () => { - config.featureToggles.pluginsDetailsRightPanel = true; + it('should show right panel when screen is wide', () => { window.matchMedia = jest.fn().mockImplementation((query) => ({ matches: query !== '(max-width: 600px)', media: query, @@ -128,7 +121,6 @@ describe('PluginDetailsPage', () => { }); it('should show "Plugin details" tab when screen is narrow', () => { - config.featureToggles.pluginsDetailsRightPanel = true; window.matchMedia = jest.fn().mockImplementation((query) => ({ matches: query === '(max-width: 600px)', media: query, @@ -158,7 +150,6 @@ describe('PluginDetailsPage', () => { }); it('should not show last version in plugin details panel when plugin is core', () => { - config.featureToggles.pluginsDetailsRightPanel = true; window.matchMedia = jest.fn().mockImplementation((query) => ({ matches: query !== '(max-width: 600px)', media: query, diff --git a/public/app/features/plugins/admin/components/PluginDetailsPage.tsx b/public/app/features/plugins/admin/components/PluginDetailsPage.tsx index d5a69de88ec..0e651a8e4bf 100644 --- a/public/app/features/plugins/admin/components/PluginDetailsPage.tsx +++ b/public/app/features/plugins/admin/components/PluginDetailsPage.tsx @@ -5,7 +5,6 @@ import { useMedia } from 'react-use'; import { GrafanaTheme2, NavModelItem } from '@grafana/data'; import { Trans, t } from '@grafana/i18n'; -import { config } from '@grafana/runtime'; import { Alert, Box, Stack, TabContent, TextLink, useStyles2 } from '@grafana/ui'; import { Page } from 'app/core/components/Page/Page'; import { AppNotificationSeverity } from 'app/types/appNotifications'; @@ -83,10 +82,8 @@ export function PluginDetailsPage({ ); } - const conditionalProps = !config.featureToggles.pluginsDetailsRightPanel ? { info: info } : {}; - return ( - + @@ -102,9 +99,7 @@ export function PluginDetailsPage({ /> - {!isNarrowScreen && config.featureToggles.pluginsDetailsRightPanel && ( - - )} + {!isNarrowScreen && } ); diff --git a/public/app/features/plugins/admin/components/PluginSubtitle.tsx b/public/app/features/plugins/admin/components/PluginSubtitle.tsx index 0a66d863938..6e725eb014f 100644 --- a/public/app/features/plugins/admin/components/PluginSubtitle.tsx +++ b/public/app/features/plugins/admin/components/PluginSubtitle.tsx @@ -2,7 +2,6 @@ import { css } from '@emotion/css'; import { Fragment } from 'react'; import { GrafanaTheme2 } from '@grafana/data'; -import { config } from '@grafana/runtime'; import { Alert, Stack, useStyles2 } from '@grafana/ui'; import { InstallControlsWarning } from '../components/InstallControls/InstallControlsWarning'; @@ -46,7 +45,7 @@ export const PluginSubtitle = ({ plugin }: Props) => {
{plugin?.description &&
{plugin?.description}
} - {!config.featureToggles.pluginsDetailsRightPanel && !!plugin?.details?.links?.length && ( + {!!plugin?.details?.links?.length && ( {plugin.details.links.map((link, index) => ( diff --git a/public/app/features/plugins/admin/hooks/usePluginDetailsTabs.tsx b/public/app/features/plugins/admin/hooks/usePluginDetailsTabs.tsx index f0eebd3bd0a..6f0f076d54b 100644 --- a/public/app/features/plugins/admin/hooks/usePluginDetailsTabs.tsx +++ b/public/app/features/plugins/admin/hooks/usePluginDetailsTabs.tsx @@ -74,7 +74,7 @@ export const usePluginDetailsTabs = ( }); } - if (isPublished && isNarrowScreen && config.featureToggles.pluginsDetailsRightPanel) { + if (isPublished && isNarrowScreen) { navModelChildren.push({ text: PluginTabLabels.PLUGINDETAILS, id: PluginTabIds.PLUGINDETAILS, diff --git a/public/app/features/plugins/admin/pages/PluginDetails.test.tsx b/public/app/features/plugins/admin/pages/PluginDetails.test.tsx index b725d3a9d58..b7aaed5cef0 100644 --- a/public/app/features/plugins/admin/pages/PluginDetails.test.tsx +++ b/public/app/features/plugins/admin/pages/PluginDetails.test.tsx @@ -885,11 +885,6 @@ describe('Plugin details page', () => { isDataSourceEditor: false, isOrgAdmin: true, }); - config.featureToggles.pluginsDetailsRightPanel = true; - }); - - afterAll(() => { - config.featureToggles.pluginsDetailsRightPanel = false; }); it('should display Latest release date and report a concern information', async () => {