// To change feature flags edit this file and run:
//     make gen-feature-toggles
//
// Alternatively run tests in:
//     pkg/services/featuremgmt/toggles_gen_test.go
// twice to generate and validate the feature flag files

package featuremgmt

import (
	"embed"
	"encoding/json"

	featuretoggleapi "github.com/grafana/grafana/pkg/services/featuremgmt/feature_toggle_api"
)

var (
	// Register each toggle here
	standardFeatureFlags = []FeatureFlag{
		{
			Name:        "panelTitleSearch",
			Description: "Search for dashboards using panel title",
			Stage:       FeatureStagePublicPreview,
			Owner:       grafanaSearchAndStorageSquad,
			Expression:  "false",
		},
		{
			Name:         "publicDashboardsEmailSharing",
			Description:  "Enables public dashboard sharing to be restricted to only allowed emails",
			Stage:        FeatureStagePublicPreview,
			Owner:        grafanaOperatorExperienceSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "publicDashboardsScene",
			Description:  "Enables public dashboard rendering using scenes",
			Stage:        FeatureStageGeneralAvailability,
			FrontendOnly: true,
			Owner:        grafanaOperatorExperienceSquad,
			Expression:   "true", // enabled by default
		},
		{
			Name:        "lokiExperimentalStreaming",
			Description: "Support new streaming approach for loki (prototype, needs special loki build)",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaOSSBigTent,
			Expression:  "false",
		},
		{
			Name:        "featureHighlights",
			Description: "Highlight Grafana Enterprise features",
			Stage:       FeatureStageGeneralAvailability,
			Owner:       grafanaOperatorExperienceSquad,
			Expression:  "false",
		},
		{
			Name:        "storage",
			Description: "Configurable storage for dashboards, datasources, and resources",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaSearchAndStorageSquad,
			Expression:  "false",
		},
		{
			Name:         "canvasPanelNesting",
			Description:  "Allow elements nesting",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDatavizSquad,
			Expression:   "false",
		},
		{
			Name:        "grpcServer",
			Description: "Run the GRPC server",
			Stage:       FeatureStagePublicPreview,
			Owner:       grafanaSearchAndStorageSquad,
			Expression:  "false",
		},
		{
			Name:        "cloudWatchCrossAccountQuerying",
			Description: "Enables cross-account querying in CloudWatch datasources",
			Stage:       FeatureStageGeneralAvailability,
			Expression:  "true", // enabled by default
			Owner:       awsDatasourcesSquad,
		},
		{
			Name:        "alertingBacktesting",
			Description: "Rule backtesting API for alerting",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaAlertingSquad,
			Expression:  "false",
		},
		{
			Name:         "logsContextDatasourceUi",
			Description:  "Allow datasource to provide custom UI for context view",
			Stage:        FeatureStageGeneralAvailability,
			FrontendOnly: true,
			Owner:        grafanaObservabilityLogsSquad,
			Expression:   "true", // turned on by default
		},
		{
			Name:         "lokiShardSplitting",
			Description:  "Use stream shards to split queries into smaller subqueries",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaObservabilityLogsSquad,
			Expression:   "false",
		},
		{
			Name:         "lokiQuerySplitting",
			Description:  "Split large interval queries into subqueries with smaller time intervals",
			Stage:        FeatureStageGeneralAvailability,
			FrontendOnly: true,
			Owner:        grafanaObservabilityLogsSquad,
			Expression:   "true", // turned on by default
		},
		{
			Name:         "influxdbBackendMigration",
			Description:  "Query InfluxDB InfluxQL without the proxy",
			Stage:        FeatureStageGeneralAvailability,
			FrontendOnly: true,
			Owner:        grafanaPartnerPluginsSquad,
			Expression:   "true", // enabled by default
		},
		{
			Name:            "liveAPIServer",
			Description:     "Registers a live apiserver",
			Stage:           FeatureStageExperimental,
			RequiresDevMode: true,
			HideFromDocs:    true,
			Owner:           grafanaAppPlatformSquad,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:         "starsFromAPIServer",
			Description:  "populate star status from apiserver",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaFrontendNavigation,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:            "kubernetesStars",
			Description:     "Routes stars requests from /api to the /apis endpoint",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaAppPlatformSquad,
			RequiresRestart: true, // changes the API routing
			Expression:      "false",
		},
		{
			Name:        "influxqlStreamingParser",
			Description: "Enable streaming JSON parser for InfluxDB datasource InfluxQL query language",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaPartnerPluginsSquad,
			Expression:  "false",
		},
		{
			Name:         "influxdbRunQueriesInParallel",
			Description:  "Enables running InfluxDB Influxql queries in parallel",
			Stage:        FeatureStagePrivatePreview,
			FrontendOnly: false,
			Owner:        grafanaPartnerPluginsSquad,
			Expression:   "false",
		},
		{
			Name:        "lokiLogsDataplane",
			Description: "Changes logs responses from Loki to be compliant with the dataplane specification.",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaOSSBigTent,
			Expression:  "false",
		},
		{
			Name:        "disableSSEDataplane",
			Description: "Disables dataplane specific processing in server side expressions.",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaDatasourcesCoreServicesSquad,
			Expression:  "false",
		},
		{
			Name:        "renderAuthJWT",
			Description: "Uses JWT-based auth for rendering instead of relying on remote cache",
			Stage:       FeatureStagePublicPreview,
			Owner:       grafanaOperatorExperienceSquad,
			Expression:  "false",
		},
		{
			Name:        "refactorVariablesTimeRange",
			Description: "Refactor time range variables flow to reduce number of API calls made when query variables are chained",
			Stage:       FeatureStagePublicPreview,
			Owner:       grafanaDashboardsSquad,
			Expression:  "false",
		},
		{
			Name:         "faroDatasourceSelector",
			Description:  "Enable the data source selector within the Frontend Apps section of the Frontend Observability",
			Stage:        FeatureStagePublicPreview,
			FrontendOnly: true,
			Owner:        appO11ySquad,
			Expression:   "false",
		},
		{
			Name:         "enableDatagridEditing",
			Description:  "Enables the edit functionality in the datagrid panel",
			FrontendOnly: false, // The set of plugins returned in frontend settings changes based on this flag
			Stage:        FeatureStagePublicPreview,
			Owner:        grafanaDatavizSquad,
			Expression:   "false",
		},
		{
			Name:         "faroSessionReplay",
			Description:  "Enable Faro session replay for Grafana",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaSessionReplaySquad,
			Expression:   "false",
		},
		{
			Name:         "logsExploreTableVisualisation",
			Description:  "A table visualisation for logs in Explore",
			Stage:        FeatureStageGeneralAvailability,
			Expression:   "true", // enabled by default,
			FrontendOnly: true,
			Owner:        grafanaObservabilityLogsSquad,
		},
		{
			Name:        "awsDatasourcesTempCredentials",
			Description: "Support temporary security credentials in AWS plugins for Grafana Cloud customers",
			Stage:       FeatureStageGeneralAvailability,
			Expression:  "true", // enabled by default
			Owner:       awsDatasourcesSquad,
		},
		{
			Name:         "mlExpressions",
			Description:  "Enable support for Machine Learning in server-side expressions",
			Stage:        FeatureStageExperimental,
			FrontendOnly: false,
			Owner:        grafanaAlertingSquad,
			Expression:   "false",
		},
		{
			Name:            "datasourceAPIServers",
			Description:     "Expose some datasources as apiservers.",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaAppPlatformSquad,
			RequiresRestart: true, // changes the API routing
			Expression:      "false",
		},
		{
			Name:            "grafanaAPIServerWithExperimentalAPIs",
			Description:     "Register experimental APIs with the k8s API server, including all datasources",
			Stage:           FeatureStageExperimental,
			RequiresRestart: true,
			RequiresDevMode: true,
			Owner:           grafanaAppPlatformSquad,
			Expression:      "false",
		},
		{
			Name:            "provisioning",
			Description:     "Next generation provisioning... and git",
			Stage:           FeatureStageExperimental,
			RequiresRestart: true,
			Owner:           grafanaAppPlatformSquad,
			Expression:      "false",
		},
		{
			Name:            "grafanaAPIServerEnsureKubectlAccess",
			Description:     "Start an additional https handler and write kubectl options",
			Stage:           FeatureStageExperimental,
			RequiresDevMode: true,
			RequiresRestart: true,
			Owner:           grafanaAppPlatformSquad,
			Expression:      "false",
		},
		{
			Name:        "awsAsyncQueryCaching",
			Description: "Enable caching for async queries for Redshift and Athena. Requires that the datasource has caching and async query support enabled",
			Stage:       FeatureStageGeneralAvailability,
			Expression:  "true", // enabled by default
			Owner:       awsDatasourcesSquad,
		},
		{
			Name:        "queryCacheRequestDeduplication",
			Description: "Enable request deduplication when query caching is enabled. Requests issuing the same query will be deduplicated, only the first request to arrive will be executed and the response will be shared with requests arriving while there is a request in-flight",
			Stage:       FeatureStageExperimental,
			Expression:  "false", // enabled by default
			Owner:       grafanaOperatorExperienceSquad,
		},
		{
			Name:            "configurableSchedulerTick",
			Description:     "Enable changing the scheduler base interval via configuration option unified_alerting.scheduler_tick_interval",
			Stage:           FeatureStageExperimental,
			FrontendOnly:    false,
			Owner:           grafanaAlertingSquad,
			RequiresRestart: true,
			HideFromDocs:    true,
			Expression:      "false",
		},
		{
			Name:         "dashgpt",
			Description:  "Enable AI powered features in dashboards",
			Stage:        FeatureStageGeneralAvailability,
			FrontendOnly: true,
			Owner:        grafanaDashboardsSquad,
			Expression:   "true", // enabled by default
		},
		{
			Name:         "aiGeneratedDashboardChanges",
			Description:  "Enable AI powered features for dashboards to auto-summary changes when saving",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDashboardsSquad,
			Expression:   "false",
		},
		{
			Name:         "reportingCsvEncodingOptions",
			Description:  "Enables CSV encoding options in the reporting feature",
			Stage:        FeatureStageExperimental,
			FrontendOnly: false,
			Owner:        grafanaOperatorExperienceSquad,
			Expression:   "false",
		},
		{
			Name:        "sseGroupByDatasource",
			Description: "Send query to the same datasource in a single request when using server side expressions. The `cloudWatchBatchQueries` feature toggle should be enabled if this used with CloudWatch.",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaDatasourcesCoreServicesSquad,
			Expression:  "false",
		},
		{
			Name:         "lokiRunQueriesInParallel",
			Description:  "Enables running Loki queries in parallel",
			Stage:        FeatureStagePrivatePreview,
			FrontendOnly: false,
			Owner:        grafanaOSSBigTent,
			Expression:   "false",
		},
		{
			Name:        "externalServiceAccounts",
			Description: "Automatic service account and token setup for plugins",
			Stage:       FeatureStagePublicPreview,
			Owner:       identityAccessTeam,
			Expression:  "false",
		},
		{
			Name:            "kubernetesSnapshots",
			Description:     "Routes snapshot requests from /api to the /apis endpoint",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaAppPlatformSquad,
			RequiresRestart: true, // changes the API routing
			Expression:      "false",
		},
		{
			Name:            "kubernetesLibraryPanels",
			Description:     "Routes library panel requests from /api to the /apis endpoint",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaAppPlatformSquad,
			RequiresRestart: true, // changes the API routing
			Expression:      "false",
		},
		{
			Name:         "kubernetesDashboards",
			Description:  "Use the kubernetes API in the frontend for dashboards",
			Stage:        FeatureStageGeneralAvailability,
			Owner:        grafanaDashboardsSquad,
			FrontendOnly: false,  // The backend changes permission behavior based on this flag
			Expression:   "true", // enabled by default
		},
		{
			Name:            "kubernetesShortURLs",
			Description:     "Enables k8s short url api and uses it under the hood when handling legacy /api",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaAppPlatformSquad,
			RequiresRestart: true, // changes the API routing
			Expression:      "false",
		},
		{
			Name:         "useKubernetesShortURLsAPI",
			Description:  "Routes short url requests from /api to the /apis endpoint in the frontend. Depends on kubernetesShortURLs",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaSharingSquad,
			FrontendOnly: true,
			Expression:   "false",
		},
		{
			Name:            "kubernetesAlertingRules",
			Description:     "Adds support for Kubernetes alerting and recording rules",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaAlertingSquad,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:            "kubernetesCorrelations",
			Description:     "Adds support for Kubernetes correlations",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaDataProSquad,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:            "kubernetesUnifiedStorageQuotas",
			Description:     "Adds support for Kubernetes unified storage quotas",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaSearchAndStorageSquad,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:            "kubernetesLogsDrilldown",
			Description:     "Adds support for Kubernetes logs drilldown",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaObservabilityLogsSquad,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:            "kubernetesQueryCaching",
			Description:     "Adds support for Kubernetes querycaching",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaOperatorExperienceSquad,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:        "dashboardDisableSchemaValidationV1",
			Description: "Disable schema validation for dashboards/v1",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaAppPlatformSquad,
			Expression:  "false",
		},
		{
			Name:        "dashboardDisableSchemaValidationV2",
			Description: "Disable schema validation for dashboards/v2",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaAppPlatformSquad,
			Expression:  "false",
		},
		{
			Name:        "dashboardSchemaValidationLogging",
			Description: "Log schema validation errors so they can be analyzed later",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaAppPlatformSquad,
			Expression:  "false",
		},
		{
			Name:        "scanRowInvalidDashboardParseFallbackEnabled",
			Description: "Enable fallback parsing behavior when scan row encounters invalid dashboard JSON",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaSearchAndStorageSquad,
			Expression:  "false",
		},
		{
			Name:            "datasourceQueryTypes",
			Description:     "Show query type endpoints in datasource API servers (currently hardcoded for testdata, expressions, and prometheus)",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaAppPlatformSquad,
			RequiresRestart: true, // changes the API routing
			Expression:      "false",
		},
		{
			Name:            "datasourceDisableIdApi",
			Description:     "Does not register datasource apis that use the numeric id",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaDatasourcesCoreServicesSquad,
			RequiresRestart: true, // affects the routes at startup
			Expression:      "false",
		},
		{
			Name:            "queryService",
			Description:     "Register /apis/query.grafana.app/ -- will eventually replace /api/ds/query",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaDatasourcesCoreServicesSquad,
			RequiresRestart: true, // Adds a route at startup
			Expression:      "false",
		},
		{
			Name:            "queryServiceWithConnections",
			Description:     "Adds datasource connections to the query service",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaDatasourcesCoreServicesSquad,
			RequiresRestart: true, // Adds a route at startup
			Expression:      "false",
		},
		{
			Name:            "queryServiceRewrite",
			Description:     "Rewrite requests targeting /ds/query to the query service",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaDatasourcesCoreServicesSquad,
			RequiresRestart: true, // changes the API routing
			Expression:      "false",
		},
		{
			Name:         "queryServiceFromUI",
			Description:  "Routes requests to the new query service",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaDatasourcesCoreServicesSquad,
			FrontendOnly: true, // and can change at startup
			Expression:   "false",
		},
		{
			Name:            "datasourcesRerouteLegacyCRUDAPIs",
			Description:     "Handle datasource CRUD requests to the legacy API routes by querying the new datasource api group endpoints behind the scenes.",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaDatasourcesCoreServicesSquad,
			RequiresRestart: false,
			Expression:      "false",
		},
		{
			Name:        "cloudWatchBatchQueries",
			Description: "Runs CloudWatch metrics queries as separate batches",
			Stage:       FeatureStageGeneralAvailability,
			Owner:       awsDatasourcesSquad,
			Expression:  "false",
		},
		{
			Name:         "cachingOptimizeSerializationMemoryUsage",
			Description:  "If enabled, the caching backend gradually serializes query responses for the cache, comparing against the configured `[caching]max_value_mb` value as it goes. This can can help prevent Grafana from running out of memory while attempting to cache very large query responses.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaOperatorExperienceSquad,
			FrontendOnly: false,
			Expression:   "false",
		},
		{
			Name:        "alertmanagerRemoteSecondary",
			Description: "Enable Grafana to sync configuration and state with a remote Alertmanager.",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaAlertingSquad,
			Expression:  "false",
		},
		{
			Name:         "alertingProvenanceLockWrites",
			Description:  "Enables a feature to avoid issues with concurrent writes to the alerting provenance table in MySQL",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingUIUseBackendFilters",
			Description:  "Enables the UI to use certain backend-side filters",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingUIUseFullyCompatBackendFilters",
			Description:  "Enables the UI to use rules backend-side filters 100% compatible with the frontend filters",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:        "alertmanagerRemotePrimary",
			Description: "Enable Grafana to have a remote Alertmanager instance as the primary Alertmanager.",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaAlertingSquad,
			Expression:  "false",
		},
		{
			Name:            "annotationPermissionUpdate",
			Description:     "Change the way annotation permissions work by scoping them to folders and dashboards.",
			Stage:           FeatureStageGeneralAvailability,
			RequiresDevMode: false,
			Expression:      "true", // enabled by default
			Owner:           identityAccessTeam,
		},
		{
			Name:         "dashboardScene",
			Description:  "Enables dashboard rendering using scenes for all roles",
			Stage:        FeatureStageGeneralAvailability,
			FrontendOnly: true,
			Owner:        grafanaDashboardsSquad,
			Expression:   "true", // enabled by default
		},
		{
			Name:         "dashboardNewLayouts",
			Description:  "Enables new dashboard layouts",
			Stage:        FeatureStagePublicPreview,
			FrontendOnly: false, // The restore backend feature changes behavior based on this flag
			Owner:        grafanaDashboardsSquad,
			Expression:   "false",
		},
		{
			Name:         "dashboardUndoRedo",
			Description:  "Enables undo/redo in dynamic dashboards",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDashboardsSquad,
			Expression:   "false",
		},
		{
			Name:         "unlimitedLayoutsNesting",
			Description:  "Enables unlimited dashboard panel grouping",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDashboardsSquad,
			Expression:   "false",
		},
		{
			Name:         "drilldownRecommendations",
			Description:  "Enables showing recently used drilldowns or recommendations given by the datasource in the AdHocFilters and GroupBy variables",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDashboardsSquad,
			Expression:   "false",
		},
		{
			Name:         "perPanelNonApplicableDrilldowns",
			Description:  "Enables viewing non-applicable drilldowns on a panel level",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDashboardsSquad,
			Expression:   "false",
		},
		{
			Name:         "panelGroupBy",
			Description:  "Enables a group by action per panel",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDashboardsSquad,
			Expression:   "false",
		},
		{
			Name:         "perPanelFiltering",
			Description:  "Enables filtering by grouping labels on the panel level through legend or tooltip",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDashboardsSquad,
			Expression:   "false",
		},
		{
			Name:         "panelFilterVariable",
			Description:  "Enables use of the `systemPanelFilterVar` variable to filter panels in a dashboard",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDashboardsSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "pdfTables",
			Description:  "Enables generating table data as PDF in reporting",
			Stage:        FeatureStagePublicPreview,
			FrontendOnly: false,
			Owner:        grafanaOperatorExperienceSquad,
			Expression:   "false",
		},
		{
			Name:         "canvasPanelPanZoom",
			Description:  "Allow pan and zoom in canvas panel",
			Stage:        FeatureStagePublicPreview,
			FrontendOnly: true,
			Owner:        grafanaDatavizSquad,
			Expression:   "false",
		},
		{
			Name:         "timeComparison",
			Description:  "Enables time comparison option in supported panels",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDatavizSquad,
			Expression:   "false",
		},
		{
			Name:         "tableSharedCrosshair",
			Description:  "Enables shared crosshair in table panel",
			FrontendOnly: true,
			Stage:        FeatureStageExperimental,
			Owner:        grafanaDatavizSquad,
			Expression:   "false",
		},
		{
			Name:            "cloudRBACRoles",
			Description:     "Enabled grafana cloud specific RBAC roles",
			Stage:           FeatureStagePublicPreview,
			Owner:           identityAccessTeam,
			HideFromDocs:    true,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:        "alertingQueryOptimization",
			Description: "Optimizes eligible queries in order to reduce load on datasources",
			Stage:       FeatureStageGeneralAvailability,
			Owner:       grafanaAlertingSquad,
			Expression:  "false",
		},
		{
			Name:            "jitterAlertRulesWithinGroups",
			Description:     "Distributes alert rule evaluations more evenly over time, including spreading out rules within the same group. Disables sequential evaluation if enabled.",
			FrontendOnly:    false,
			Stage:           FeatureStagePublicPreview,
			Owner:           grafanaAlertingSquad,
			HideFromDocs:    true,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:            "auditLoggingAppPlatform",
			Description:     "Enable audit logging with Kubernetes under app platform",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaOperatorExperienceSquad,
			HideFromDocs:    true,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:        "secretsManagementAppPlatformUI",
			Description: "Enable the secrets management app platform UI",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaOperatorExperienceSquad,
			Expression:  "false",
		},
		{
			Name:         "secretsKeeperUI",
			Description:  "Enable the Secrets Keeper management UI for configuring external secret storage",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaOperatorExperienceSquad,
			Expression:   "false",
		},
		{
			Name:         "alertingSaveStatePeriodic",
			Description:  "Writes the state periodically to the database, asynchronous to rule evaluation",
			Stage:        FeatureStagePrivatePreview,
			FrontendOnly: false,
			Owner:        grafanaAlertingSquad,
			Expression:   "false",
		},
		{
			Name:         "alertingSaveStateCompressed",
			Description:  "Enables the compressed protobuf-based alert state storage. Default is enabled.",
			Stage:        FeatureStagePublicPreview,
			FrontendOnly: false,
			Owner:        grafanaAlertingSquad,
			Expression:   "true",
		},
		{
			Name:        "scopeApi",
			Description: "In-development feature flag for the scope api using the app platform.",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaAppPlatformSquad,
			Expression:  "false",
		},
		{
			Name:         "useScopeSingleNodeEndpoint",
			Description:  "Use the single node endpoint for the scope api. This is used to fetch the scope parent node.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaOperatorExperienceSquad,
			Expression:   "false",
			FrontendOnly: true,
			HideFromDocs: true,
		},
		{
			Name:         "useMultipleScopeNodesEndpoint",
			Description:  "Makes the frontend use the 'names' param for fetching multiple scope nodes at once",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaOperatorExperienceSquad,
			Expression:   "false",
			FrontendOnly: true,
			HideFromDocs: true,
		},
		{
			Name:         "logQLScope",
			Description:  "In-development feature that will allow injection of labels into loki queries.",
			Stage:        FeatureStagePrivatePreview,
			Owner:        grafanaOSSBigTent,
			Expression:   "false",
			HideFromDocs: true,
		},
		{
			Name:         "sqlExpressions",
			Description:  "Enables SQL Expressions, which can execute SQL queries against data source results.",
			Stage:        FeatureStagePublicPreview,
			FrontendOnly: false,
			Owner:        grafanaDatasourcesCoreServicesSquad,
			Expression:   "false",
		},
		{
			Name:         "sqlExpressionsColumnAutoComplete",
			Description:  "Enables column autocomplete for SQL Expressions",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDataProSquad,
			Expression:   "false",
		},
		{
			Name:            "kubernetesAggregator",
			Description:     "Enable grafana's embedded kube-aggregator",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaAppPlatformSquad,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:            "kubernetesAggregatorCapTokenAuth",
			Description:     "Enable CAP token based authentication in grafana's embedded kube-aggregator",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaAppPlatformSquad,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:         "groupByVariable",
			Description:  "Enable groupBy variable support in scenes dashboards",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaDashboardsSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:            "scopeFilters",
			Description:     "Enables the use of scope filters in Grafana",
			FrontendOnly:    false,
			Stage:           FeatureStageExperimental,
			Owner:           grafanaDashboardsSquad,
			RequiresRestart: false,
			HideFromDocs:    true,
			Expression:      "false",
		},
		{
			Name:         "oauthRequireSubClaim",
			Description:  "Require that sub claims is present in oauth tokens.",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "refreshTokenRequired",
			Description:  "Require that refresh tokens are present in oauth tokens.",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "newDashboardWithFiltersAndGroupBy",
			Description:  "Enables filters and group by variables on all new dashboards. Variables are added only if default data source supports filtering.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaDashboardsSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "dashboardAdHocAndGroupByWrapper",
			Description:  "Wraps the ad hoc and group by variables in a single wrapper, with all other variables below it",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaDashboardsSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "cloudWatchNewLabelParsing",
			Description:  "Updates CloudWatch label parsing to be more accurate",
			Stage:        FeatureStageGeneralAvailability,
			Expression:   "true", // enabled by default
			Owner:        awsDatasourcesSquad,
			FrontendOnly: false,
		},
		{
			Name:            "disableNumericMetricsSortingInExpressions",
			Description:     "In server-side expressions, disable the sorting of numeric-kind metrics by their metric name or labels.",
			Stage:           FeatureStageExperimental,
			FrontendOnly:    false,
			Owner:           grafanaOSSBigTent,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:         "grafanaManagedRecordingRules",
			Description:  "Enables Grafana-managed recording rules.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "queryLibrary",
			Description:  "Enables Saved queries (query library) feature",
			Stage:        FeatureStagePublicPreview,
			Owner:        grafanaSharingSquad,
			FrontendOnly: false,
			Expression:   "false",
		},
		{
			Name:         "savedQueriesRBAC",
			Description:  "Enables Saved queries (query library) RBAC permissions",
			Stage:        FeatureStagePublicPreview,
			Owner:        grafanaSharingSquad,
			FrontendOnly: false,
			Expression:   "false",
		},
		{
			Name:         "dashboardLibrary",
			Description:  "Displays datasource provisioned dashboards in dashboard empty page, only when coming from datasource configuration page",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaSharingSquad,
			FrontendOnly: false,
			Expression:   "false",
		},
		{
			Name:         "suggestedDashboards",
			Description:  "Displays datasource provisioned and community dashboards in dashboard empty page, only when coming from datasource configuration page",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaSharingSquad,
			FrontendOnly: false,
			Expression:   "false",
		},
		{
			Name:         "dashboardValidatorApp",
			Description:  "Enables dashboard validator app to run compatibility checks between a dashboard and data source",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaSharingSquad,
			FrontendOnly: false,
			Expression:   "false",
		},
		{
			Name:         "dashboardTemplates",
			Description:  "Enables a flow to get started with a new dashboard from a template",
			Stage:        FeatureStagePublicPreview,
			Owner:        grafanaSharingSquad,
			FrontendOnly: false,
			Expression:   "false",
		},
		{
			Name:         "alertingListViewV2",
			Description:  "Enables the new alert list view design",
			Stage:        FeatureStagePrivatePreview,
			Owner:        grafanaAlertingSquad,
			FrontendOnly: true,
			Expression:   "false",
		},
		{
			Name:         "alertingNavigationV2",
			Description:  "Enables the new Alerting navigation structure with improved menu grouping",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			FrontendOnly: false,
			Expression:   "false",
		},
		{
			Name:         "alertingSavedSearches",
			Description:  "Enables saved searches for alert rules list",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			FrontendOnly: true,
			Expression:   "false",
		},
		{
			Name:         "alertingDisableSendAlertsExternal",
			Description:  "Disables the ability to send alerts to an external Alertmanager datasource.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingSyncNotifiersApiMigration",
			Description:  "Use the new k8s API for fetching integration type schemas",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			FrontendOnly: true,
			Expression:   "false",
		},
		{
			Name:         "preserveDashboardStateWhenNavigating",
			Description:  "Enables possibility to preserve dashboard variables and time range when navigating between dashboards",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaDashboardsSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingCentralAlertHistory",
			Description:  "Enables the new central alert history.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			FrontendOnly: false, // changes navtree from backend
			Expression:   "false",
		},
		{
			Name:        "pluginProxyPreserveTrailingSlash",
			Description: "Preserve plugin proxy trailing slash.",
			Stage:       FeatureStageGeneralAvailability,
			Owner:       grafanaPluginsPlatformSquad,
			Expression:  "false", // disabled by default
		},
		{
			Name:        "azureMonitorPrometheusExemplars",
			Description: "Allows configuration of Azure Monitor as a data source that can provide Prometheus exemplars",
			Stage:       FeatureStageGeneralAvailability,
			Owner:       grafanaPartnerPluginsSquad,
			Expression:  "true", // enabled by default
		},
		{
			Name:         "authZGRPCServer",
			Description:  "Enables the gRPC server for authorization",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "zanzana",
			Description:  "Use openFGA as authorization engine.",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "zanzanaNoLegacyClient",
			Description:  "Use openFGA as main authorization engine and disable legacy RBAC clietn.",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:            "reloadDashboardsOnParamsChange",
			Description:     "Enables reload of dashboards on scopes, time range and variables changes",
			FrontendOnly:    false,
			Stage:           FeatureStageExperimental,
			Owner:           grafanaDashboardsSquad,
			RequiresRestart: false,
			HideFromDocs:    true,
			Expression:      "false",
		},
		{
			Name:            "enableScopesInMetricsExplore",
			Description:     "Enables the scopes usage in Metrics Explore",
			FrontendOnly:    false,
			Stage:           FeatureStageExperimental,
			Owner:           grafanaDashboardsSquad,
			RequiresRestart: false,
			HideFromDocs:    true,
			Expression:      "false",
		},
		{
			Name:        "cloudWatchRoundUpEndTime",
			Description: "Round up end time for metric queries to the next minute to avoid missing data",
			Stage:       FeatureStageGeneralAvailability,
			Owner:       awsDatasourcesSquad,
			Expression:  "true",
		},
		{
			Name:        "prometheusAzureOverrideAudience",
			Description: "Deprecated. Allow override default AAD audience for Azure Prometheus endpoint. Enabled by default. This feature should no longer be used and will be removed in the future.",
			Stage:       FeatureStageDeprecated,
			Owner:       grafanaPartnerPluginsSquad,
			Expression:  "true", // Enabled by default for now
		},
		{
			Name:         "alertingFilterV2",
			Description:  "Enable the new alerting search experience",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:            "dataplaneAggregator",
			Description:     "Enable grafana dataplane aggregator",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaAppPlatformSquad,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:        "newFiltersUI",
			Description: "Enables new combobox style UI for the Ad hoc filters variable in scenes architecture",
			Stage:       FeatureStageGeneralAvailability,
			Owner:       grafanaDashboardsSquad,
			Expression:  "true", // enabled by default
		},
		{
			Name:         "vizActionsAuth",
			Description:  "Allows authenticated API calls in actions",
			Stage:        FeatureStagePublicPreview,
			Owner:        grafanaDatavizSquad,
			FrontendOnly: true,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingPrometheusRulesPrimary",
			Description:  "Uses Prometheus rules as the primary source of truth for ruler-enabled data sources",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			FrontendOnly: true,
			Expression:   "false",
		},
		{
			Name:         "exploreLogsShardSplitting",
			Description:  "Deprecated. Replace with lokiShardSplitting. Used in Logs Drilldown to split queries into multiple queries based on the number of shards",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaObservabilityLogsSquad,
			Expression:   "false",
		},
		{
			Name:         "exploreLogsAggregatedMetrics",
			Description:  "Used in Logs Drilldown to query by aggregated metrics",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaObservabilityLogsSquad,
			Expression:   "false",
		},
		{
			Name:         "appPlatformGrpcClientAuth",
			Description:  "Enables the gRPC client to authenticate with the App Platform by using ID & access tokens",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "groupAttributeSync",
			Description:  "Enable the groupsync extension for managing Group Attribute Sync feature",
			Stage:        FeatureStagePrivatePreview,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingQueryAndExpressionsStepMode",
			Description:  "Enables step mode for alerting queries and expressions",
			Stage:        FeatureStageGeneralAvailability,
			Owner:        grafanaAlertingSquad,
			FrontendOnly: true,
			Expression:   "true",
		},
		{
			Name:        "improvedExternalSessionHandling",
			Description: "Enables improved support for OAuth external sessions. After enabling this feature, users might need to re-authenticate themselves.",
			Stage:       FeatureStageGeneralAvailability,
			Expression:  "true", // enabled by default
			Owner:       identityAccessTeam,
		},
		{
			Name:        "useSessionStorageForRedirection",
			Description: "Use session storage for handling the redirection after login",
			Stage:       FeatureStageGeneralAvailability,
			Owner:       identityAccessTeam,
			Expression:  "true",
		},
		{
			Name:        "rolePickerDrawer",
			Description: "Enables the new role picker drawer design",
			Stage:       FeatureStageExperimental,
			Owner:       identityAccessTeam,
			Expression:  "false",
		},
		{
			Name:         "managedDualWriter",
			Description:  "Pick the dual write mode from database configs",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaSearchAndStorageSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:        "pluginsSriChecks",
			Description: "Enables SRI checks for plugin assets",
			Stage:       FeatureStageGeneralAvailability,
			Owner:       grafanaPluginsPlatformSquad,
			Expression:  "false", // disabled by default
		},
		{
			Name:        "unifiedStorageBigObjectsSupport",
			Description: "Enables to save big objects in blob storage",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaSearchAndStorageSquad,
			Expression:  "false",
		},
		{
			Name:        "timeRangeProvider",
			Description: "Enables time pickers sync",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaFrontendPlatformSquad,
			Expression:  "false",
		},
		{
			Name:         "timeRangePan",
			Description:  "Enables time range panning functionality",
			Stage:        FeatureStageGeneralAvailability,
			FrontendOnly: true,
			Owner:        grafanaDatavizSquad,
			Expression:   "true",
		},
		{
			Name:         "newTimeRangeZoomShortcuts",
			Description:  "Enables new keyboard shortcuts for time range zoom operations",
			Stage:        FeatureStageGeneralAvailability,
			FrontendOnly: true,
			Owner:        grafanaDatavizSquad,
			Expression:   "true",
		},
		{
			Name:        "azureMonitorDisableLogLimit",
			Description: "Disables the log limit restriction for Azure Monitor when true. The limit is enabled by default.",
			Stage:       FeatureStageGeneralAvailability,
			Owner:       grafanaPartnerPluginsSquad,
			Expression:  "false",
		},
		{
			Name:            "playlistsReconciler",
			Description:     "Enables experimental reconciler for playlists",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaAppPlatformSquad,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:         "passwordlessMagicLinkAuthentication",
			Description:  "Enable passwordless login via magic link authentication",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "prometheusSpecialCharsInLabelValues",
			Description:  "Adds support for quotes and special characters in label values for Prometheus queries",
			FrontendOnly: true,
			Stage:        FeatureStageExperimental,
			Owner:        grafanaOSSBigTent,
			Expression:   "false",
		},
		{
			Name:            "enableExtensionsAdminPage",
			Description:     "Enables the extension admin page regardless of development mode",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaPluginsPlatformSquad,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:        "enableSCIM",
			Description: "Enables SCIM support for user and group management",
			Stage:       FeatureStageGeneralAvailability,
			Owner:       identityAccessTeam,
			Expression:  "true",
		},
		{
			Name:         "crashDetection",
			Description:  "Enables browser crash detection reporting to Faro.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaObservabilityTracesAndProfilingSquad,
			FrontendOnly: true,
			Expression:   "false",
		},
		{
			Name:         "alertingUIOptimizeReducer",
			Description:  "Enables removing the reducer from the alerting UI when creating a new alert rule and using instant query",
			Stage:        FeatureStageGeneralAvailability,
			FrontendOnly: true,
			Owner:        grafanaAlertingSquad,
			Expression:   "true", // enabled by default
		},
		{
			Name:        "azureMonitorEnableUserAuth",
			Description: "Enables user auth for Azure Monitor datasource only",
			Stage:       FeatureStageGeneralAvailability,
			Owner:       grafanaPartnerPluginsSquad,
			Expression:  "true", // Enabled by default for now
		},
		{
			Name:         "alertingAIGenAlertRules",
			Description:  "Enable AI-generated alert rules.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingAIFeedback",
			Description:  "Enable AI-generated feedback from the Grafana UI.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingAIImproveAlertRules",
			Description:  "Enable AI-improve alert rules labels and annotations.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingAIGenTemplates",
			Description:  "Enable AI-generated alerting templates.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingEnrichmentPerRule",
			Description:  "Enable enrichment per rule in the alerting UI.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingEnrichmentAssistantInvestigations",
			Description:  "Enable Assistant Investigations enrichment type.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingAIAnalyzeCentralStateHistory",
			Description:  "Enable AI-analyze central state history.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingNotificationsStepMode",
			Description:  "Enables simplified step mode in the notifications section",
			Stage:        FeatureStageGeneralAvailability,
			Owner:        grafanaAlertingSquad,
			FrontendOnly: true,
			Expression:   "true",
		},
		{
			Name:         "unifiedStorageSearchUI",
			Description:  "Enable unified storage search UI",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaSearchAndStorageSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:        "elasticsearchCrossClusterSearch",
			Description: "Enables cross cluster search in the Elasticsearch data source",
			Stage:       FeatureStageGeneralAvailability,
			Owner:       grafanaPartnerPluginsSquad,
			Expression:  "false",
		},
		{
			// Remove this flag once Loki v4 is released and the min supported version is v3.0+,
			// since users on v2.9 need it to disable the feature, as it doesn't work for them.
			Name:        "lokiLabelNamesQueryApi",
			Description: "Defaults to using the Loki `/labels` API instead of `/series`",
			Stage:       FeatureStageGeneralAvailability,
			Owner:       grafanaOSSBigTent,
			Expression:  "true",
		},
		{
			Name:        "k8SFolderCounts",
			Description: "Enable folder's api server counts",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaSearchAndStorageSquad,
			Expression:  "false",
		},
		{
			Name:        "improvedExternalSessionHandlingSAML",
			Description: "Enables improved support for SAML external sessions. Ensure the NameID format is correctly configured in Grafana for SAML Single Logout to function properly.",
			Stage:       FeatureStageGeneralAvailability,
			Expression:  "true", // enabled by default
			Owner:       identityAccessTeam,
		},
		{
			Name:         "teamHttpHeadersTempo",
			Description:  "Enables LBAC for datasources for Tempo to apply LBAC filtering of traces to the client requests for users in teams",
			Stage:        FeatureStageExperimental,
			FrontendOnly: false,
			Owner:        identityAccessTeam,
			Expression:   "false",
		},
		{
			Name:         "teamHttpHeadersFromAppPlatform",
			Description:  "Use the Kubernetes TeamLBACRule API for team HTTP headers on datasource query requests",
			Stage:        FeatureStageExperimental,
			FrontendOnly: false,
			Owner:        identityAccessTeam,
			Expression:   "false",
		},
		{
			Name:        "grafanaAdvisor",
			Description: "Enables Advisor app",
			Stage:       FeatureStagePrivatePreview,
			Owner:       grafanaPluginsPlatformSquad,
			Expression:  "false",
		},
		{
			Name:        "elasticsearchImprovedParsing",
			Description: "Enables less memory intensive Elasticsearch result parsing",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaPartnerPluginsSquad,
			Expression:  "false",
		},
		{
			Name:            "datasourceConnectionsTab",
			Description:     "Shows defined connections for a data source in the plugins detail page",
			Stage:           FeatureStagePrivatePreview,
			Owner:           grafanaPluginsPlatformSquad,
			RequiresDevMode: false,
			FrontendOnly:    true,
			Expression:      "false",
		},
		{
			Name:         "fetchRulesUsingPost",
			Description:  "Use a POST request to list rules by passing down the namespaces user has access to",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "fetchRulesInCompactMode",
			Description:  "Add compact=true when fetching rules",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "newLogsPanel",
			Description:  "Enables the new logs panel",
			Stage:        FeatureStageGeneralAvailability,
			FrontendOnly: true,
			Owner:        grafanaObservabilityLogsSquad,
			Expression:   "true",
		},
		{
			Name:            "grafanaconThemes",
			Description:     "Enables the temporary themes for GrafanaCon",
			Stage:           FeatureStageGeneralAvailability,
			Owner:           grafanaFrontendPlatformSquad,
			HideFromDocs:    true,
			RequiresRestart: true,
			Expression:      "true",
		},
		{
			Name:         "alertingJiraIntegration",
			Description:  "Enables the new Jira integration for contact points in cloud alert managers.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			FrontendOnly: true,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:            "alertingUseNewSimplifiedRoutingHashAlgorithm",
			Description:     "",
			Stage:           FeatureStagePublicPreview,
			Owner:           grafanaAlertingSquad,
			HideFromDocs:    true,
			RequiresRestart: true,
			Expression:      "true",
		},
		{
			Name:         "useScopesNavigationEndpoint",
			Description:  "Use the scopes navigation endpoint instead of the dashboardbindings endpoint",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaOperatorExperienceSquad,
			FrontendOnly: true,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "scopeSearchAllLevels",
			Description:  "Enable scope search to include all levels of the scope node tree",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaOperatorExperienceSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingRuleVersionHistoryRestore",
			Description:  "Enables the alert rule version history restore feature",
			FrontendOnly: true,
			Stage:        FeatureStageGeneralAvailability,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "true", // enabled by default
		},
		{
			Name:         "newShareReportDrawer",
			Description:  "Enables the report creation drawer in a dashboard",
			Stage:        FeatureStagePublicPreview,
			Owner:        grafanaOperatorExperienceSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "rendererDisableAppPluginsPreload",
			Description:  "Disable pre-loading app plugins when the request is coming from the renderer",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaOperatorExperienceSquad,
			HideFromDocs: true,
			FrontendOnly: true,
			Expression:   "false",
		},
		{
			Name:         "assetSriChecks",
			Description:  "Enables SRI checks for Grafana JavaScript assets",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaFrontendOpsWG,
			FrontendOnly: true,
			Expression:   "false",
		},
		{
			Name:        "alertRuleRestore",
			Description: "Enables the alert rule restore feature",
			Stage:       FeatureStagePublicPreview,
			Owner:       grafanaAlertingSquad,
			Expression:  "true", // enabled by default
		},
		{
			Name:         "infinityRunQueriesInParallel",
			Description:  "Enables running Infinity queries in parallel",
			Stage:        FeatureStagePrivatePreview,
			FrontendOnly: false,
			Owner:        grafanaOSSBigTent,
			Expression:   "false",
		},
		{
			Name:         "alertingMigrationUI",
			Description:  "Enables the alerting migration UI, to migrate data source-managed rules to Grafana-managed rules",
			FrontendOnly: true,
			Stage:        FeatureStageGeneralAvailability,
			Owner:        grafanaAlertingSquad,
			Expression:   "true",
		},
		{
			Name:         "alertingImportYAMLUI",
			Description:  "Enables a UI feature for importing rules from a Prometheus file to Grafana-managed rules",
			FrontendOnly: true,
			Stage:        FeatureStageGeneralAvailability,
			Owner:        grafanaAlertingSquad,
			Expression:   "true",
		},
		{
			Name:         "alertingMigrationWizardUI",
			Description:  "Enables the migration wizard UI to migrate alert rules and notification resources from external sources to Grafana Alerting",
			FrontendOnly: true,
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			Expression:   "false",
		},
		{
			Name:        "azureMonitorLogsBuilderEditor",
			Description: "Enables the logs builder mode for the Azure Monitor data source",
			Stage:       FeatureStagePublicPreview,
			Owner:       grafanaPartnerPluginsSquad,
			Expression:  "false",
		},
		{
			Name:        "localeFormatPreference",
			Description: "Specifies the locale so the correct format for numbers and dates can be shown",
			Stage:       FeatureStageDeprecated, // not continuing the work for now, will be removed
			Owner:       grafanaFrontendPlatformSquad,
			Expression:  "false",
		},
		{
			Name:         "unifiedStorageGrpcConnectionPool",
			Description:  "Enables the unified storage grpc connection pool",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaSearchAndStorageSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingRulePermanentlyDelete",
			Description:  "Enables UI functionality to permanently delete alert rules",
			FrontendOnly: true,
			Stage:        FeatureStageGeneralAvailability,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "true", // enabled by default
		},
		{
			Name:         "alertingRuleRecoverDeleted",
			Description:  "Enables the UI functionality to recover and view deleted alert rules",
			FrontendOnly: false, // changes navtree from the backend
			Stage:        FeatureStageGeneralAvailability,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "true", // enabled by default
		},
		{
			Name:         "multiTenantTempCredentials",
			Description:  "use multi-tenant path for awsTempCredentials",
			Stage:        FeatureStageExperimental,
			HideFromDocs: true,
			Owner:        awsDatasourcesSquad,
			Expression:   "false",
		},
		{
			Name:         "unifiedNavbars",
			Description:  "Enables unified navbars",
			Stage:        FeatureStageGeneralAvailability,
			Owner:        grafanaPluginsPlatformSquad,
			FrontendOnly: true,
			Expression:   "false", // enabled by default
		},
		{
			Name:         "logsPanelControls",
			Description:  "Enables a control component for the logs panel in Explore",
			Stage:        FeatureStagePublicPreview,
			FrontendOnly: true,
			Owner:        grafanaObservabilityLogsSquad,
			Expression:   "true",
		},
		{
			Name:         "metricsFromProfiles",
			Description:  "Enables creating metrics from profiles and storing them as recording rules",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaObservabilityTracesAndProfilingSquad,
			FrontendOnly: true,
			Expression:   "false",
		},
		{
			Name:         "grafanaAssistantInProfilesDrilldown",
			Description:  "Enables integration with Grafana Assistant in Profiles Drilldown",
			Stage:        FeatureStageGeneralAvailability,
			Owner:        grafanaObservabilityTracesAndProfilingSquad,
			FrontendOnly: true,
			Expression:   "true",
		},
		{
			Name:        "tempoAlerting",
			Description: "Enables creating alerts from Tempo data source",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaObservabilityTracesAndProfilingSquad,
			Expression:  "false",
		},
		{
			Name:         "pluginsAutoUpdate",
			Description:  "Enables auto-updating of users installed plugins",
			Stage:        FeatureStageExperimental,
			FrontendOnly: false,
			Owner:        grafanaPluginsPlatformSquad,
			Expression:   "false",
		},
		{
			Name:         "alertingListViewV2PreviewToggle",
			Description:  "Enables the alerting list view v2 preview toggle",
			FrontendOnly: true,
			Stage:        FeatureStagePrivatePreview,
			Owner:        grafanaAlertingSquad,
			Expression:   "false",
		},
		{
			Name:        "alertRuleUseFiredAtForStartsAt",
			Description: "Use FiredAt for StartsAt when sending alerts to Alertmaanger",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaAlertingSquad,
			Expression:  "false",
		},
		{
			Name:         "alertingBulkActionsInUI",
			Description:  "Enables the alerting bulk actions in the UI",
			FrontendOnly: true,
			Stage:        FeatureStageGeneralAvailability,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "true", // enabled by default
		},
		{
			Name:         "kubernetesAuthzApis",
			Description:  "Deprecated: Use kubernetesAuthzCoreRolesApi, kubernetesAuthzRolesApi, and kubernetesAuthzRoleBindingsApi instead",
			Stage:        FeatureStageDeprecated,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "kubernetesAuthZHandlerRedirect",
			Description:  "Deprecated: Use kubernetesAuthZResourcePermissionsRedirect and kubernetesAuthZRolesRedirect instead",
			Stage:        FeatureStageDeprecated,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "kubernetesAuthZResourcePermissionsRedirect",
			Description:  "Redirects the traffic from the legacy resource permissions endpoints to the new K8s AuthZ endpoints",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "kubernetesAuthZRolesRedirect",
			Description:  "Redirects the traffic from the legacy roles endpoints to the new K8s AuthZ endpoints",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "kubernetesAuthzResourcePermissionApis",
			Description:  "Registers AuthZ resource permission /apis endpoints",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "kubernetesAuthzZanzanaSync",
			Description:  "Enable sync of Zanzana authorization store on AuthZ CRD mutations",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "kubernetesAuthzCoreRolesApi",
			Description:  "Registers AuthZ Core Roles /apis endpoint",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "kubernetesAuthzGlobalRolesApi",
			Description:  "Registers AuthZ Global Roles /apis endpoint",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "kubernetesAuthzRolesApi",
			Description:  "Registers AuthZ Roles /apis endpoint",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "kubernetesAuthzTeamLBACRuleApi",
			Description:  "Registers AuthZ TeamLBACRule /apis endpoint",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "kubernetesAuthzRoleBindingsApi",
			Description:  "Registers AuthZ Role Bindings /apis endpoint",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "kubernetesAuthnMutation",
			Description:  "Enables create, delete, and update mutations for resources owned by IAM identity",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "kubernetesExternalGroupMapping",
			Description:  "Routes external group mapping requests from /api to the /apis endpoint",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:        "restoreDashboards",
			Description: "Enables restore deleted dashboards feature",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaFrontendNavigation,
			Expression:  "false",
		},
		{
			Name:         "recentlyViewedDashboards",
			Description:  "Enables recently viewed dashboards section in the browsing dashboard page",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaFrontendNavigation,
			FrontendOnly: true,
			Expression:   "false",
		},
		{
			Name:         "experimentRecentlyViewedDashboards",
			Description:  "A/A test for recently viewed dashboards feature",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaFrontendNavigation,
			FrontendOnly: true,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertEnrichment",
			Description:  "Enable configuration of alert enrichments in Grafana Cloud.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertEnrichmentMultiStep",
			Description:  "Allow multiple steps per enrichment.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertEnrichmentConditional",
			Description:  "Enable conditional alert enrichment steps.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingImportAlertmanagerAPI",
			Description:  "Enables the API to import Alertmanager configuration",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingImportAlertmanagerUI",
			Description:  "Enables the UI to see imported Alertmanager configuration",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingDisableDMAinUI",
			Description:  "Disables the DMA feature in the UI",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "sharingDashboardImage",
			Description:  "Enables image sharing functionality for dashboards",
			Stage:        FeatureStageGeneralAvailability,
			Owner:        grafanaSharingSquad,
			FrontendOnly: true,
			Expression:   "true",
		},
		{
			Name:        "preferLibraryPanelTitle",
			Description: "Prefer library panel title over viz panel title.",
			Stage:       FeatureStagePrivatePreview,
			Owner:       grafanaDashboardsSquad,
			Expression:  "false",
		},
		{
			Name:        "tabularNumbers",
			Description: "Use fixed-width numbers globally in the UI",
			Stage:       FeatureStageGeneralAvailability,
			Owner:       grafanaFrontendPlatformSquad,
			Expression:  "false",
		},
		{
			Name:         "newInfluxDSConfigPageDesign",
			Description:  "Enables new design for the InfluxDB data source configuration page",
			Stage:        FeatureStagePrivatePreview,
			FrontendOnly: false,
			Owner:        grafanaPartnerPluginsSquad,
			Expression:   "false",
		},
		{
			Name:         "enableAppChromeExtensions",
			Description:  "Set this to true to enable all app chrome extensions registered by plugins.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaPluginsPlatformSquad,
			HideFromDocs: true,
			FrontendOnly: true,
			Expression:   "false", // extensions will be disabled by default
		},
		{
			Name:         "enableDashboardEmptyExtensions",
			Description:  "Set this to true to enable all dashboard empty state extensions registered by plugins.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaDashboardsSquad,
			HideFromDocs: true,
			FrontendOnly: true,
			Expression:   "false", // extensions will be disabled by default
		},
		{
			Name:         "foldersAppPlatformAPI",
			Description:  "Enables use of app platform API for folders",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaFrontendNavigation,
			HideFromDocs: true,
			FrontendOnly: true,
			Expression:   "false",
		},
		{
			Name:         "otelLogsFormatting",
			Description:  "Applies OTel formatting templates to displayed logs",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaObservabilityLogsSquad,
			Expression:   "false",
		},
		{
			Name:         "alertingNotificationHistory",
			Description:  "Enables the notification history feature",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "unifiedStorageSearchDualReaderEnabled",
			Description:  "Enable dual reader for unified storage search",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaSearchAndStorageSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "dashboardLevelTimeMacros",
			Description:  "Supports __from and __to macros that always use the dashboard level time range",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaDashboardsSquad,
			FrontendOnly: true,
			Expression:   "false",
		},
		{
			Name:         "alertmanagerRemoteSecondaryWithRemoteState",
			Description:  "Starts Grafana in remote secondary mode pulling the latest state from the remote Alertmanager to avoid duplicate notifications.",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "restrictedPluginApis",
			Description:  "Enables sharing a list of APIs with a list of plugins",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaPluginsPlatformSquad,
			HideFromDocs: true,
			FrontendOnly: true,
			Expression:   "false",
		},
		{
			Name:         "favoriteDatasources",
			Description:  "Enable favorite datasources",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaPluginsPlatformSquad,
			FrontendOnly: true,
			Expression:   "false",
		},
		{
			Name:         "newLogContext",
			Description:  "New Log Context component",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaObservabilityLogsSquad,
			FrontendOnly: true,
			Expression:   "false",
		},
		{
			Name:         "newClickhouseConfigPageDesign",
			Description:  "Enables new design for the Clickhouse data source configuration page",
			Stage:        FeatureStagePrivatePreview,
			FrontendOnly: false,
			Owner:        grafanaPartnerPluginsSquad,
			Expression:   "false",
		},
		{
			Name:         "teamFolders",
			Description:  "Enables team folders functionality",
			Stage:        FeatureStageExperimental,
			FrontendOnly: false,
			Owner:        grafanaFrontendNavigation,
			Expression:   "false",
		},
		{
			Name:        "interactiveLearning",
			Description: "Enables the interactive learning app",
			Stage:       FeatureStagePublicPreview,
			Owner:       grafanaPathfinderSquad,
			Expression:  "false",
		},
		{
			Name:         "alertingTriage",
			Description:  "Enables the alerting triage feature",
			Stage:        FeatureStageExperimental,
			FrontendOnly: false, // changes navtree in backend
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "graphiteBackendMode",
			Description:  "Enables the Graphite data source full backend mode",
			Stage:        FeatureStagePrivatePreview,
			FrontendOnly: false,
			Owner:        grafanaPartnerPluginsSquad,
			Expression:   "false",
		},
		{
			Name:         "azureResourcePickerUpdates",
			Description:  "Enables the updated Azure Monitor resource picker",
			Stage:        FeatureStageGeneralAvailability,
			FrontendOnly: true,
			Owner:        grafanaPartnerPluginsSquad,
			Expression:   "true",
		},
		{
			Name:            "prometheusTypeMigration",
			Description:     "Checks for deprecated Prometheus authentication methods (SigV4 and Azure), installs the relevant data source, and migrates the Prometheus data sources",
			Stage:           FeatureStageExperimental,
			RequiresRestart: true,
			Owner:           grafanaPartnerPluginsSquad,
			Expression:      "false",
		},
		{
			Name:            "pluginContainers",
			Description:     "Enables running plugins in containers",
			Stage:           FeatureStagePrivatePreview,
			Owner:           grafanaPluginsPlatformSquad,
			Expression:      "false",
			RequiresRestart: true,
		},
		{
			Name:         "cdnPluginsLoadFirst",
			Description:  "Prioritize loading plugins from the CDN before other sources",
			Stage:        FeatureStageExperimental,
			FrontendOnly: false,
			Owner:        grafanaPluginsPlatformSquad,
			Expression:   "false",
		},
		{
			Name:         "cdnPluginsUrls",
			Description:  "Enable loading plugins via declarative URLs",
			Stage:        FeatureStageExperimental,
			FrontendOnly: false,
			Owner:        grafanaPluginsPlatformSquad,
			Expression:   "false",
		},
		{
			Name:         "pluginInstallAPISync",
			Description:  "Enable syncing plugin installations to the installs API",
			FrontendOnly: false,
			Stage:        FeatureStageExperimental,
			Owner:        grafanaPluginsPlatformSquad,
			Expression:   "false",
		},
		{
			Name:         "newGauge",
			Description:  "Enable new gauge visualization",
			Stage:        FeatureStagePublicPreview,
			FrontendOnly: true,
			Owner:        grafanaDatavizSquad,
			Expression:   "false",
		},
		{
			Name:         "newVizSuggestions",
			Description:  "Enable new visualization suggestions",
			Stage:        FeatureStagePublicPreview,
			FrontendOnly: true,
			Owner:        grafanaDatavizSquad,
			Expression:   "false",
		},
		{
			Name:         "panelStyleActions",
			Description:  "Enable style actions (copy/paste) in the panel editor",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDatavizSquad,
			Expression:   "false",
		},
		{
			Name:         "vizPresets",
			Description:  "Enable visualization presets",
			Stage:        FeatureStagePublicPreview,
			FrontendOnly: true,
			Owner:        grafanaDatavizSquad,
			Expression:   "false",
		},
		{
			Name:         "externalVizSuggestions",
			Description:  "Enable all plugins to supply visualization suggestions (including 3rd party plugins)",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDatavizSquad,
			Expression:   "false",
		},
		{
			Name:         "heatmapRowsAxisOptions",
			Description:  "Enable Y-axis scale configuration options for pre-bucketed heatmap data (heatmap-rows)",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDatavizSquad,
			Expression:   "false",
		},
		{
			Name:         "preventPanelChromeOverflow",
			Description:  "Restrict PanelChrome contents with overflow: hidden;",
			Stage:        FeatureStagePublicPreview,
			FrontendOnly: true,
			Owner:        grafanaFrontendPlatformSquad,
			Expression:   "true",
		},
		{
			Name:        "jaegerEnableGrpcEndpoint",
			Description: "Enable querying trace data through Jaeger's gRPC endpoint (HTTP)",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaOSSBigTent,
			Expression:  "false",
		},
		{
			Name:         "pluginStoreServiceLoading",
			Description:  "Load plugins on store service startup instead of wire provider, and call RegisterFixedRoles after all plugins are loaded",
			Stage:        FeatureStageExperimental,
			FrontendOnly: false,
			Owner:        grafanaPluginsPlatformSquad,
			Expression:   "false",
		},
		{
			Name:         "newPanelPadding",
			Description:  "Increases panel padding globally",
			Stage:        FeatureStagePublicPreview,
			FrontendOnly: true,
			Owner:        grafanaDashboardsSquad,
			Expression:   "true",
		},
		{
			Name:         "onlyStoreActionSets",
			Description:  "When storing dashboard and folder resource permissions, only store action sets and not the full list of underlying permission",
			Stage:        FeatureStageGeneralAvailability,
			FrontendOnly: false,
			HideFromDocs: true,
			Owner:        identityAccessTeam,
			Expression:   "true",
		},
		{
			Name:         "excludeRedundantManagedPermissions",
			Description:  "Exclude redundant individual dashboard/folder permissions from managed roles at query time",
			Stage:        FeatureStageExperimental,
			FrontendOnly: false,
			HideFromDocs: true,
			Owner:        identityAccessTeam,
			Expression:   "false",
		},
		{
			Name:         "pluginInsights",
			Description:  "Show insights for plugins in the plugin details page",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaPluginsPlatformSquad,
			Expression:   "false",
		},
		{
			Name:            "panelTimeSettings",
			Description:     "Enables a new panel time settings drawer",
			FrontendOnly:    false,
			Stage:           FeatureStageExperimental,
			Owner:           grafanaDashboardsSquad,
			RequiresRestart: false,
			HideFromDocs:    false,
			Expression:      "false",
		},
		{
			Name:        "elasticsearchRawDSLQuery",
			Description: "Enables the raw DSL query editor in the Elasticsearch data source",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaPartnerPluginsSquad,
			Expression:  "false",
		},
		{
			Name:        "kubernetesAnnotations",
			Description: "Enables app platform API for annotations",
			Stage:       FeatureStageExperimental,
			Owner:       grafanaBackendServicesSquad,
			Expression:  "false",
		},
		{
			Name:        "awsDatasourcesHttpProxy",
			Description: "Enables http proxy settings for aws datasources",
			Stage:       FeatureStageExperimental,
			Owner:       awsDatasourcesSquad,
			Expression:  "false",
		},
		{
			Name:         "transformationsEmptyPlaceholder",
			Description:  "Show transformation quick-start cards in empty transformations state",
			Stage:        FeatureStagePublicPreview,
			FrontendOnly: true,
			Owner:        grafanaDataProSquad,
			Expression:   "false",
		},
		{
			Name:            "opentsdbBackendMigration",
			Description:     "Run queries through the data source backend",
			Stage:           FeatureStageGeneralAvailability,
			Owner:           grafanaOSSBigTent,
			Expression:      "false",
			RequiresRestart: true,
		},
		{
			Name:         "ttlPluginInstanceManager",
			Description:  "Enable TTL plugin instance manager",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaPluginsPlatformSquad,
			Expression:   "false",
		},
		{
			Name:         "lokiQueryLimitsContext",
			Description:  "Send X-Loki-Query-Limits-Context header to Loki on first split request",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaObservabilityLogsSquad,
			Expression:   "false",
		},
		{
			Name:            "rudderstackUpgrade",
			Description:     "Enables the new version of rudderstack",
			FrontendOnly:    true,
			Stage:           FeatureStageExperimental,
			Owner:           grafanaFrontendPlatformSquad,
			Expression:      "false",
			RequiresRestart: false,
			HideFromDocs:    false,
		},
		{
			Name:            "kubernetesAlertingHistorian",
			Description:     "Adds support for Kubernetes alerting historian APIs",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaAlertingSquad,
			RequiresRestart: true,
			Expression:      "false",
		},
		{
			Name:         "useMTPlugins",
			Description:  "Enables plugins decoupling from bootdata",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaPluginsPlatformSquad,
			FrontendOnly: true,
			Expression:   "false",
			HideFromDocs: true,
		},
		{
			Name:         "multiPropsVariables",
			Description:  "Enables support for variables whose values can have multiple properties",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDashboardsSquad,
			Expression:   "false",
		},
		{
			Name:         "smoothingTransformation",
			Description:  "Enables the ASAP smoothing transformation for time series data",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDataProSquad,
			Expression:   "false",
		},
		{
			Name:         "secretsManagementAppPlatformAwsKeeper",
			Description:  "Enables the creation of keepers that manage secrets stored on AWS secrets manager",
			Stage:        FeatureStageExperimental,
			HideFromDocs: true,
			FrontendOnly: false,
			Owner:        grafanaOperatorExperienceSquad,
			Expression:   "false",
		},
		{
			Name:         "profilesExemplars",
			Description:  "Enables profiles exemplars support in profiles drilldown",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaObservabilityTracesAndProfilingSquad,
			FrontendOnly: false,
			Expression:   "false",
		},
		{
			Name:            "alertingSyncDispatchTimer",
			Description:     "Use synchronized dispatch timer to minimize duplicate notifications across alertmanager HA pods",
			Stage:           FeatureStageExperimental,
			Owner:           grafanaAlertingSquad,
			RequiresRestart: true,
			HideFromDocs:    true,
			Expression:      "false",
		},
		{
			Name:         "queryWithAssistant",
			Description:  "Enables the Query with Assistant button in the query editor",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaOSSBigTent,
			Expression:   "false",
		},
		{
			Name:         "queryEditorNext",
			Description:  "Enables next generation query editor experience",
			Stage:        FeatureStageExperimental,
			FrontendOnly: true,
			Owner:        grafanaDataProSquad,
			Expression:   "false",
		},
		{
			Name:         "kubernetesTeamBindings",
			Description:  "Enables search for team bindings in the app platform API",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "kubernetesTeamsHandlerRedirect",
			Description:  "Redirects the request to teams related endpoints to the app platform API",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "kubernetesTeamSync",
			Description:  "Use the new APIs for syncing users to teams",
			Stage:        FeatureStageExperimental,
			Owner:        identityAccessTeam,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingMultiplePolicies",
			Description:  "Enables the ability to create multiple alerting policies",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
		{
			Name:         "alertingIgnorePendingForNoDataAndError",
			Description:  "Makes NoData and Error alerts fire immediately, without 'pending' stage",
			Stage:        FeatureStageExperimental,
			Owner:        grafanaAlertingSquad,
			HideFromDocs: true,
			Expression:   "false",
		},
	}
)

//go:embed toggles_gen.json
var f embed.FS

// Get the cached feature list (exposed as a k8s resource)
func GetEmbeddedFeatureList() (featuretoggleapi.FeatureList, error) {
	features := featuretoggleapi.FeatureList{}
	body, err := f.ReadFile("toggles_gen.json")
	if err == nil {
		err = json.Unmarshal(body, &features)
	}
	return features, err
}
