diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index 964ccbc97f6..0571e693109 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -41,7 +41,6 @@ export interface FeatureToggles { vizActions?: boolean; disableSecretsCompatibility?: boolean; logRequestsInstrumentedAsUnknown?: boolean; - topnav?: boolean; grpcServer?: boolean; cloudWatchCrossAccountQuerying?: boolean; showDashboardValidationWarnings?: boolean; diff --git a/pkg/api/frontendsettings.go b/pkg/api/frontendsettings.go index 3aea664fe2d..e6449361268 100644 --- a/pkg/api/frontendsettings.go +++ b/pkg/api/frontendsettings.go @@ -176,6 +176,10 @@ func (hs *HTTPServer) getFrontendSettings(c *contextmodel.ReqContext) (*dtos.Fro secretsManagerPluginEnabled := kvstore.EvaluateRemoteSecretsPlugin(c.Req.Context(), hs.secretsPluginManager, hs.Cfg) == nil trustedTypesDefaultPolicyEnabled := (hs.Cfg.CSPEnabled && strings.Contains(hs.Cfg.CSPTemplate, "require-trusted-types-for")) || (hs.Cfg.CSPReportOnlyEnabled && strings.Contains(hs.Cfg.CSPReportOnlyTemplate, "require-trusted-types-for")) isCloudMigrationTarget := hs.Features.IsEnabled(c.Req.Context(), featuremgmt.FlagOnPremToCloudMigrations) && hs.Cfg.CloudMigration.IsTarget + featureToggles := hs.Features.GetEnabled(c.Req.Context()) + // this is needed for backwards compatibility with external plugins + // we should remove this once we can be sure that no external plugins rely on this + featureToggles["topnav"] = true frontendSettings := &dtos.FrontendSettingsDTO{ DefaultDatasource: defaultDS, @@ -260,7 +264,7 @@ func (hs *HTTPServer) getFrontendSettings(c *contextmodel.ReqContext) (*dtos.Fro EnabledFeatures: hs.License.EnabledFeatures(), }, - FeatureToggles: hs.Features.GetEnabled(c.Req.Context()), + FeatureToggles: featureToggles, AnonymousEnabled: hs.Cfg.AnonymousEnabled, AnonymousDeviceLimit: hs.Cfg.AnonymousDeviceLimit, RendererAvailable: hs.RenderService.IsAvailable(c.Req.Context()), diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go index d9766ec870e..82a06e7885a 100644 --- a/pkg/services/featuremgmt/registry.go +++ b/pkg/services/featuremgmt/registry.go @@ -187,15 +187,6 @@ var ( Stage: FeatureStageExperimental, Owner: hostedGrafanaTeam, }, - { - // Some plugins rely on topnav feature flag being enabled, so we cannot remove this until we - // can afford the breaking change, or we've detemined no one else is relying on it - Name: "topnav", - Description: "Enables topnav support in external plugins. The new Grafana navigation cannot be disabled.", - Stage: FeatureStageDeprecated, - Expression: "true", // enabled by default - Owner: grafanaFrontendPlatformSquad, - }, { Name: "grpcServer", Description: "Run the GRPC server", diff --git a/pkg/services/featuremgmt/toggles_gen.csv b/pkg/services/featuremgmt/toggles_gen.csv index 978bcbdb39b..4f88acddc57 100644 --- a/pkg/services/featuremgmt/toggles_gen.csv +++ b/pkg/services/featuremgmt/toggles_gen.csv @@ -22,7 +22,6 @@ canvasPanelNesting,experimental,@grafana/dataviz-squad,false,false,true vizActions,experimental,@grafana/dataviz-squad,false,false,true disableSecretsCompatibility,experimental,@grafana/hosted-grafana-team,false,true,false logRequestsInstrumentedAsUnknown,experimental,@grafana/hosted-grafana-team,false,false,false -topnav,deprecated,@grafana/grafana-frontend-platform,false,false,false grpcServer,preview,@grafana/search-and-storage,false,false,false cloudWatchCrossAccountQuerying,GA,@grafana/aws-datasources,false,false,false showDashboardValidationWarnings,experimental,@grafana/dashboards-squad,false,false,false diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go index 221a413cdb3..655e1992622 100644 --- a/pkg/services/featuremgmt/toggles_gen.go +++ b/pkg/services/featuremgmt/toggles_gen.go @@ -99,10 +99,6 @@ const ( // Logs the path for requests that are instrumented as unknown FlagLogRequestsInstrumentedAsUnknown = "logRequestsInstrumentedAsUnknown" - // FlagTopnav - // Enables topnav support in external plugins. The new Grafana navigation cannot be disabled. - FlagTopnav = "topnav" - // FlagGrpcServer // Run the GRPC server FlagGrpcServer = "grpcServer" diff --git a/pkg/services/featuremgmt/toggles_gen.json b/pkg/services/featuremgmt/toggles_gen.json index 35140c0d400..279d08e224b 100644 --- a/pkg/services/featuremgmt/toggles_gen.json +++ b/pkg/services/featuremgmt/toggles_gen.json @@ -2987,6 +2987,7 @@ "name": "topnav", "resourceVersion": "1720021873452", "creationTimestamp": "2022-06-20T14:25:43Z", + "deletionTimestamp": "2024-10-15T15:00:51Z", "annotations": { "grafana.app/updatedTimestamp": "2024-07-03 15:51:13.452477 +0000 UTC" }