From 74639e90d261532a46ca4fce9a371955e232dc08 Mon Sep 17 00:00:00 2001 From: "Tania B." <10127682+undef1nd@users.noreply.github.com> Date: Mon, 12 Jan 2026 18:20:13 +0100 Subject: [PATCH] Migrate enableDatagridEditing to OpenFeature --- pkg/api/frontendsettings.go | 13 +++++++++++-- .../app/plugins/panel/datagrid/featureFlagUtils.tsx | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/pkg/api/frontendsettings.go b/pkg/api/frontendsettings.go index b57262087e5..b4ddb1677c5 100644 --- a/pkg/api/frontendsettings.go +++ b/pkg/api/frontendsettings.go @@ -12,9 +12,11 @@ import ( "github.com/grafana/grafana/pkg/api/dtos" "github.com/grafana/grafana/pkg/api/webassets" + "github.com/grafana/grafana/pkg/apimachinery/identity" "github.com/grafana/grafana/pkg/login/social" "github.com/grafana/grafana/pkg/plugins" "github.com/grafana/grafana/pkg/services/accesscontrol" + "github.com/grafana/grafana/pkg/services/apiserver/endpoints/request" "github.com/grafana/grafana/pkg/services/authn" contextmodel "github.com/grafana/grafana/pkg/services/contexthandler/model" "github.com/grafana/grafana/pkg/services/datasources" @@ -26,6 +28,7 @@ import ( "github.com/grafana/grafana/pkg/setting" "github.com/grafana/grafana/pkg/tsdb/grafanads" "github.com/grafana/grafana/pkg/util" + "github.com/open-feature/go-sdk/openfeature" ) // GetBootdataAPI returns the same data we currently have rendered into index.html @@ -150,8 +153,14 @@ func (hs *HTTPServer) getFrontendSettings(c *contextmodel.ReqContext) (*dtos.Fro continue } - //nolint:staticcheck // not yet migrated to OpenFeature - if panel.ID == "datagrid" && !hs.Features.IsEnabled(c.Req.Context(), featuremgmt.FlagEnableDatagridEditing) { + ns := request.GetNamespaceMapper(hs.Cfg)(1) + ctx := identity.WithServiceIdentityForSingleNamespaceContext(c.Req.Context(), ns) + evalCtx := openfeature.TransactionContext(ctx) + editingEnabled, err := openfeature.NewDefaultClient().BooleanValueDetails(ctx, featuremgmt.FlagEnableDatagridEditing, false, evalCtx) + if err != nil { + hs.log.Error("flag evaluation error", "flag", featuremgmt.FlagEnableDatagridEditing, "error", err) + } + if panel.ID == "datagrid" && !editingEnabled.Value { continue } diff --git a/public/app/plugins/panel/datagrid/featureFlagUtils.tsx b/public/app/plugins/panel/datagrid/featureFlagUtils.tsx index 0b41f53c114..c98a327b605 100644 --- a/public/app/plugins/panel/datagrid/featureFlagUtils.tsx +++ b/public/app/plugins/panel/datagrid/featureFlagUtils.tsx @@ -1,5 +1,5 @@ -import { config } from '@grafana/runtime'; +import { evaluateBooleanFlag } from '@grafana/runtime/internal'; export const isDatagridEnabled = () => { - return config.featureToggles.enableDatagridEditing; + return evaluateBooleanFlag('enableDatagridEditing', false); };