From c9f402c764d41a7ff85ef26979f8b4fcbe1b4b81 Mon Sep 17 00:00:00 2001 From: Jay Clifford <45856600+Jayclifford345@users.noreply.github.com> Date: Tue, 14 Oct 2025 11:40:40 +0100 Subject: [PATCH] Plugins: Install Grafana Pathfinder behind a feature flag (#109909) Co-authored-by: Jack Baldry --- .../feature-toggles/index.md | 1 + .../src/types/featureToggles.gen.ts | 4 ++ pkg/services/featuremgmt/codeowners.go | 1 + pkg/services/featuremgmt/registry.go | 6 +++ pkg/services/featuremgmt/toggles_gen.csv | 1 + pkg/services/featuremgmt/toggles_gen.go | 4 ++ pkg/services/featuremgmt/toggles_gen.json | 44 +++++++++++++------ pkg/setting/setting_plugins.go | 3 ++ 8 files changed, 50 insertions(+), 14 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 e8b12113400..f4826193d63 100644 --- a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md +++ b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md @@ -109,6 +109,7 @@ Most [generally available](https://grafana.com/docs/release-life-cycle/#general- | `azureMonitorLogsBuilderEditor` | Enables the logs builder mode for the Azure Monitor data source | | `localeFormatPreference` | Specifies the locale so the correct format for numbers and dates can be shown | | `logsPanelControls` | Enables a control component for the logs panel in Explore | +| `grafanaPathfinder` | Enables Pathfinder app | | `azureResourcePickerUpdates` | Enables the updated Azure Monitor resource picker | ## Development feature toggles diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index 551e8be9fb3..476c60e68da 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -1166,6 +1166,10 @@ export interface FeatureToggles { */ teamFolders?: boolean; /** + * Enables Pathfinder app + */ + grafanaPathfinder?: boolean; + /** * Enables the alerting triage feature * @default false */ diff --git a/pkg/services/featuremgmt/codeowners.go b/pkg/services/featuremgmt/codeowners.go index 75e868fd57b..ea213578d9e 100644 --- a/pkg/services/featuremgmt/codeowners.go +++ b/pkg/services/featuremgmt/codeowners.go @@ -32,4 +32,5 @@ const ( growthAndOnboarding codeowner = "@grafana/growth-and-onboarding" grafanaDatasourcesCoreServicesSquad codeowner = "@grafana/grafana-datasources-core-services" grafanaBackendGroup codeowner = "@grafana/grafana-backend-group" + grafanaPathfinderSquad codeowner = "@grafana/pathfinder" ) diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go index 3a9823098b0..06581c7e601 100644 --- a/pkg/services/featuremgmt/registry.go +++ b/pkg/services/featuremgmt/registry.go @@ -2024,6 +2024,12 @@ var ( Owner: grafanaFrontendSearchNavOrganise, Expression: "false", }, + { + Name: "grafanaPathfinder", + Description: "Enables Pathfinder app", + Stage: FeatureStagePublicPreview, + Owner: grafanaPathfinderSquad, + }, { Name: "alertingTriage", Description: "Enables the alerting triage feature", diff --git a/pkg/services/featuremgmt/toggles_gen.csv b/pkg/services/featuremgmt/toggles_gen.csv index 691b5b23a48..b54bf6df753 100644 --- a/pkg/services/featuremgmt/toggles_gen.csv +++ b/pkg/services/featuremgmt/toggles_gen.csv @@ -260,6 +260,7 @@ favoriteDatasources,experimental,@grafana/plugins-platform-backend,false,false,t newLogContext,experimental,@grafana/observability-logs,false,false,true newClickhouseConfigPageDesign,privatePreview,@grafana/partner-datasources,false,false,false teamFolders,experimental,@grafana/grafana-search-navigate-organise,false,false,false +grafanaPathfinder,preview,@grafana/pathfinder,false,false,false alertingTriage,experimental,@grafana/alerting-squad,false,false,true graphiteBackendMode,privatePreview,@grafana/partner-datasources,false,false,false azureResourcePickerUpdates,preview,@grafana/partner-datasources,false,false,true diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go index beae6f8bd83..036298d25e2 100644 --- a/pkg/services/featuremgmt/toggles_gen.go +++ b/pkg/services/featuremgmt/toggles_gen.go @@ -1050,6 +1050,10 @@ const ( // Enables team folders functionality FlagTeamFolders = "teamFolders" + // FlagGrafanaPathfinder + // Enables Pathfinder app + FlagGrafanaPathfinder = "grafanaPathfinder" + // FlagAlertingTriage // Enables the alerting triage feature FlagAlertingTriage = "alertingTriage" diff --git a/pkg/services/featuremgmt/toggles_gen.json b/pkg/services/featuremgmt/toggles_gen.json index 19526aeed92..e6dda337118 100644 --- a/pkg/services/featuremgmt/toggles_gen.json +++ b/pkg/services/featuremgmt/toggles_gen.json @@ -1816,6 +1816,21 @@ "hideFromDocs": true } }, + { + "metadata": { + "name": "grafanaPathfinder", + "resourceVersion": "1760434668782", + "creationTimestamp": "2025-08-20T12:30:29Z", + "annotations": { + "grafana.app/updatedTimestamp": "2025-10-14 09:37:48.782577 +0000 UTC" + } + }, + "spec": { + "description": "Enables Pathfinder app", + "stage": "preview", + "codeowner": "@grafana/pathfinder" + } + }, { "metadata": { "name": "grafanaconThemes", @@ -2274,6 +2289,19 @@ "requiresRestart": true } }, + { + "metadata": { + "name": "kubernetesStars", + "resourceVersion": "1759149842036", + "creationTimestamp": "2025-09-29T12:44:02Z" + }, + "spec": { + "description": "Routes stars requests from /api to the /apis endpoint", + "stage": "experimental", + "codeowner": "@grafana/grafana-app-platform-squad", + "requiresRestart": true + } + }, { "metadata": { "name": "kubernetesZanzanaPopulate", @@ -2289,19 +2317,6 @@ "hideFromDocs": true } }, - { - "metadata": { - "name": "kubernetesStars", - "resourceVersion": "1759149842036", - "creationTimestamp": "2025-09-29T12:44:02Z" - }, - "spec": { - "description": "Routes stars requests from /api to the /apis endpoint", - "stage": "experimental", - "codeowner": "@grafana/grafana-app-platform-squad", - "requiresRestart": true - } - }, { "metadata": { "name": "localeFormatPreference", @@ -3204,7 +3219,8 @@ "metadata": { "name": "queryServiceWithConnections", "resourceVersion": "1756367172351", - "creationTimestamp": "2025-08-28T07:46:12Z" + "creationTimestamp": "2025-08-28T19:28:26Z", + "deletionTimestamp": "2025-08-29T12:49:57Z" }, "spec": { "description": "Adds datasource connections to the query service", diff --git a/pkg/setting/setting_plugins.go b/pkg/setting/setting_plugins.go index b03aa02c304..98c53a2f06b 100644 --- a/pkg/setting/setting_plugins.go +++ b/pkg/setting/setting_plugins.go @@ -153,6 +153,9 @@ func (cfg *Cfg) readPluginSettings(iniFile *ini.File) error { if cfg.IsFeatureToggleEnabled("grafanaAdvisor") { // Use literal string to avoid circular dependency preinstallPluginsAsync["grafana-advisor-app"] = InstallPlugin{"grafana-advisor-app", "", ""} } + if cfg.IsFeatureToggleEnabled("grafanaPathfinder") { // Use literal string to avoid circular dependency + preinstallPluginsAsync["grafana-pathfinder-app"] = InstallPlugin{"grafana-pathfinder-app", "", ""} + } cfg.processPreinstallPlugins(rawInstallPluginsAsync, preinstallPluginsAsync) rawInstallPluginsSync := util.SplitString(pluginsSection.Key("preinstall_sync").MustString(""))