diff --git a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md index 166bb548e53..eec5f5be414 100644 --- a/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md +++ b/docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md @@ -57,7 +57,6 @@ Some features are enabled by default. You can disable these feature by setting t | `migrationLocking` | Lock database during migrations | | `correlations` | Correlations page | | `newDBLibrary` | Use jmoiron/sqlx rather than xorm for a few backend services | -| `validateDashboardsOnSave` | Validate dashboard JSON POSTed to api/dashboards/db | | `autoMigrateOldPanels` | Migrate old angular panels to supported versions (graph, table-old, worldmap, etc) | | `disableAngular` | Dynamic flag to disable angular at runtime. The preferred method is to set `angular_support_enabled` to `false` in the [security] settings, which allows you to change the state at runtime. | | `grpcServer` | Run the GRPC server | diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index 808cb78f427..b7c0acc3ec1 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -33,7 +33,6 @@ export interface FeatureToggles { datasourceQueryMultiStatus?: boolean; traceToMetrics?: boolean; newDBLibrary?: boolean; - validateDashboardsOnSave?: boolean; autoMigrateOldPanels?: boolean; disableAngular?: boolean; canvasPanelNesting?: boolean; diff --git a/pkg/api/dashboard.go b/pkg/api/dashboard.go index 54f59de902d..d6e181cdb21 100644 --- a/pkg/api/dashboard.go +++ b/pkg/api/dashboard.go @@ -392,29 +392,6 @@ func (hs *HTTPServer) PostDashboard(c *contextmodel.ReqContext) response.Respons if err := web.Bind(c.Req, &cmd); err != nil { return response.Error(http.StatusBadRequest, "bad request data", err) } - - if hs.Features.IsEnabled(featuremgmt.FlagValidateDashboardsOnSave) { - kind := hs.Kinds.Dashboard() - - dashbytes, err := cmd.Dashboard.Bytes() - if err != nil { - return response.Error(http.StatusBadRequest, "unable to parse dashboard", err) - } - // Ideally, coremodel validation calls would be integrated into the web - // framework. But this does the job for now. - schv, err := cmd.Dashboard.Get("schemaVersion").Int() - - // Only try to validate if the schemaVersion is at least the handoff version - // (the minimum schemaVersion against which the dashboard schema is known to - // work), or if schemaVersion is absent (which will happen once the kind schema - // becomes canonical). - if err != nil || schv >= dashboard.HandoffSchemaVersion { - if _, _, err := kind.JSONValueMux(dashbytes); err != nil { - return response.Error(http.StatusBadRequest, "invalid dashboard json", err) - } - } - } - return hs.postDashboard(c, cmd) } diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go index 6ffe5309870..380e255419d 100644 --- a/pkg/services/featuremgmt/registry.go +++ b/pkg/services/featuremgmt/registry.go @@ -104,13 +104,6 @@ var ( Stage: FeatureStagePublicPreview, Owner: grafanaBackendPlatformSquad, }, - { - Name: "validateDashboardsOnSave", - Description: "Validate dashboard JSON POSTed to api/dashboards/db", - Stage: FeatureStagePublicPreview, - RequiresRestart: true, - Owner: grafanaAsCodeSquad, - }, { Name: "autoMigrateOldPanels", Description: "Migrate old angular panels to supported versions (graph, table-old, worldmap, etc)", diff --git a/pkg/services/featuremgmt/toggles_gen.csv b/pkg/services/featuremgmt/toggles_gen.csv index ea7ab74fdd4..efda0bae398 100644 --- a/pkg/services/featuremgmt/toggles_gen.csv +++ b/pkg/services/featuremgmt/toggles_gen.csv @@ -14,7 +14,6 @@ correlations,preview,@grafana/explore-squad,false,false,false,false datasourceQueryMultiStatus,experimental,@grafana/plugins-platform-backend,false,false,false,false traceToMetrics,experimental,@grafana/observability-traces-and-profiling,false,false,false,true newDBLibrary,preview,@grafana/backend-platform,false,false,false,false -validateDashboardsOnSave,preview,@grafana/grafana-as-code,false,false,true,false autoMigrateOldPanels,preview,@grafana/dataviz-squad,false,false,false,true disableAngular,preview,@grafana/dataviz-squad,false,false,false,true canvasPanelNesting,experimental,@grafana/dataviz-squad,false,false,false,true diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go index 5ef6bdb8949..4acd886b2f1 100644 --- a/pkg/services/featuremgmt/toggles_gen.go +++ b/pkg/services/featuremgmt/toggles_gen.go @@ -67,10 +67,6 @@ const ( // Use jmoiron/sqlx rather than xorm for a few backend services FlagNewDBLibrary = "newDBLibrary" - // FlagValidateDashboardsOnSave - // Validate dashboard JSON POSTed to api/dashboards/db - FlagValidateDashboardsOnSave = "validateDashboardsOnSave" - // FlagAutoMigrateOldPanels // Migrate old angular panels to supported versions (graph, table-old, worldmap, etc) FlagAutoMigrateOldPanels = "autoMigrateOldPanels"