// To change feature flags, edit: // pkg/services/featuremgmt/registry.go // Then run tests in: // pkg/services/featuremgmt/toggles_gen_test.go // twice to generate and validate the feature flag files package featuremgmt var ( // Register each toggle here standardFeatureFlags = []FeatureFlag{ { Name: "trimDefaults", Description: "Use cue schema to remove values that will be applied automatically", State: FeatureStateBeta, }, { Name: "disableEnvelopeEncryption", Description: "Disable envelope encryption (emergency only)", State: FeatureStateStable, }, { Name: "database_metrics", Description: "Add prometheus metrics for database tables", State: FeatureStateStable, }, { Name: "dashboardPreviews", Description: "Create and show thumbnails for dashboard search results", State: FeatureStateAlpha, }, { Name: "dashboardPreviewsAdmin", Description: "Manage the dashboard previews crawler process from the UI", State: FeatureStateAlpha, RequiresDevMode: true, }, { Name: "live-config", Description: "Save grafana live configuration in SQL tables", State: FeatureStateAlpha, }, { Name: "live-pipeline", Description: "enable a generic live processing pipeline", State: FeatureStateAlpha, }, { Name: "live-service-web-worker", Description: "This will use a webworker thread to processes events rather than the main thread", State: FeatureStateAlpha, FrontendOnly: true, }, { Name: "queryOverLive", Description: "Use grafana live websocket to execute backend queries", State: FeatureStateAlpha, FrontendOnly: true, }, { Name: "panelTitleSearch", Description: "Search for dashboards using panel title", State: FeatureStateAlpha, }, { Name: "tempoServiceGraph", Description: "show service", State: FeatureStateBeta, FrontendOnly: true, }, { Name: "tempoApmTable", Description: "Show APM table", State: FeatureStateAlpha, FrontendOnly: true, }, { Name: "prometheus_azure_auth", Description: "Experimental. Azure authentication for Prometheus datasource", State: FeatureStateBeta, }, { Name: "prometheusAzureOverrideAudience", Description: "Experimental. Allow override default AAD audience for Azure Prometheus endpoint", State: FeatureStateBeta, }, { Name: "influxdbBackendMigration", Description: "Query InfluxDB InfluxQL without the proxy", State: FeatureStateAlpha, FrontendOnly: true, }, { Name: "showFeatureFlagsInUI", Description: "Show feature flags in the settings UI", State: FeatureStateAlpha, RequiresDevMode: true, }, { Name: "publicDashboards", Description: "enables public access to dashboards", State: FeatureStateAlpha, }, { Name: "lokiLive", Description: "support websocket streaming for loki (early prototype)", State: FeatureStateAlpha, }, { Name: "lokiDataframeApi", Description: "use experimental loki api for websocket streaming (early prototype)", State: FeatureStateAlpha, }, { Name: "swaggerUi", Description: "Serves swagger UI", State: FeatureStateBeta, }, { Name: "featureHighlights", Description: "Highlight Enterprise features", State: FeatureStateStable, }, { Name: "dashboardComments", Description: "Enable dashboard-wide comments", State: FeatureStateAlpha, }, { Name: "annotationComments", Description: "Enable annotation comments", State: FeatureStateAlpha, }, { Name: "migrationLocking", Description: "Lock database during migrations", State: FeatureStateBeta, }, { Name: "storage", Description: "Configurable storage for dashboards, datasources, and resources", State: FeatureStateAlpha, }, { Name: "export", Description: "Export grafana instance (to git, etc)", State: FeatureStateAlpha, RequiresDevMode: true, }, { Name: "storageLocalUpload", Description: "allow uploads to local storage", State: FeatureStateAlpha, RequiresDevMode: true, }, { Name: "azureMonitorResourcePickerForMetrics", Description: "New UI for Azure Monitor Metrics Query", State: FeatureStateAlpha, RequiresDevMode: true, FrontendOnly: true, }, { Name: "explore2Dashboard", Description: "Experimental Explore to Dashboard workflow", State: FeatureStateBeta, FrontendOnly: true, }, { Name: "tracing", Description: "Adds trace ID to error notifications", State: FeatureStateAlpha, FrontendOnly: true, }, { Name: "commandPalette", Description: "Enable command palette", State: FeatureStateAlpha, }, { Name: "cloudWatchDynamicLabels", Description: "Use dynamic labels instead of alias patterns in CloudWatch datasource", State: FeatureStateStable, }, { Name: "datasourceQueryMultiStatus", Description: "Introduce HTTP 207 Multi Status for api/ds/query", State: FeatureStateAlpha, }, { Name: "azureMonitorExperimentalUI", Description: "Use grafana-experimental UI in Azure Monitor", State: FeatureStateAlpha, FrontendOnly: true, }, { Name: "traceToMetrics", Description: "Enable trace to metrics links", State: FeatureStateAlpha, FrontendOnly: true, }, { Name: "prometheusStreamingJSONParser", Description: "Enable streaming JSON parser for Prometheus datasource", State: FeatureStateBeta, }, { Name: "validateDashboardsOnSave", Description: "Validate dashboard JSON POSTed to api/dashboards/db", State: FeatureStateAlpha, RequiresRestart: true, }, { Name: "autoMigrateGraphPanels", Description: "Replace the angular graph panel with timeseries", State: FeatureStateBeta, FrontendOnly: true, }, { Name: "prometheusWideSeries", Description: "Enable wide series responses in the Prometheus datasource", State: FeatureStateAlpha, }, { Name: "canvasPanelNesting", Description: "Allow elements nesting", State: FeatureStateAlpha, FrontendOnly: true, }, { Name: "useLegacyHeatmapPanel", Description: "Continue to use the angular/flot based heatmap panel", State: FeatureStateStable, }, { Name: "cloudMonitoringExperimentalUI", Description: "Use grafana-experimental UI in Cloud Monitoring", State: FeatureStateAlpha, FrontendOnly: true, }, { Name: "logRequestsInstrumentedAsUnknown", Description: "Logs the path for requests that are instrumented as unknown", }, { Name: "dataConnectionsConsole", Description: "Enables a new top-level page called Data Connections. This page is an experiment for better grouping of installing / configuring data sources and other plugins.", State: FeatureStateAlpha, }, { Name: "internationalization", Description: "Enables work-in-progress internationalization", State: FeatureStateAlpha, }, { Name: "topnav", Description: "New top nav and page layouts", State: FeatureStateAlpha, }, { Name: "customBranding", Description: "Replaces whitelabeling with the new custom branding feature", State: FeatureStateAlpha, }, } )