diff --git a/packages/grafana-data/src/types/featureToggles.gen.ts b/packages/grafana-data/src/types/featureToggles.gen.ts index 35ae1024368..91e27172c1f 100644 --- a/packages/grafana-data/src/types/featureToggles.gen.ts +++ b/packages/grafana-data/src/types/featureToggles.gen.ts @@ -411,10 +411,6 @@ export interface FeatureToggles { */ logRowsPopoverMenu?: boolean; /** - * Disables passing host environment variable to plugin processes - */ - pluginsSkipHostEnvVars?: boolean; - /** * Enables shared crosshair in table panel */ tableSharedCrosshair?: boolean; diff --git a/pkg/plugins/config/config.go b/pkg/plugins/config/config.go index e4edf65dd3d..40e744147bb 100644 --- a/pkg/plugins/config/config.go +++ b/pkg/plugins/config/config.go @@ -28,7 +28,6 @@ type PluginManagementCfg struct { // Features contains the feature toggles used for the plugin management system. type Features struct { - SkipHostEnvVarsEnabled bool SriChecksEnabled bool LocalizationForPlugins bool // Needed only until Tempo Alerting / metrics TraceQL is stable diff --git a/pkg/plugins/manager/loader/loader_test.go b/pkg/plugins/manager/loader/loader_test.go index 248bc9d32ce..6e6021bc021 100644 --- a/pkg/plugins/manager/loader/loader_test.go +++ b/pkg/plugins/manager/loader/loader_test.go @@ -122,12 +122,13 @@ func TestLoader_Load(t *testing.T) { Backend: true, QueryOptions: map[string]bool{"minInterval": true}, }, - Module: "core:plugin/cloudwatch", - BaseURL: "public/plugins/cloudwatch", - FS: mustNewStaticFSForTests(t, filepath.Join(corePluginDir, "app/plugins/datasource/cloudwatch")), - Signature: plugins.SignatureStatusInternal, - Class: plugins.ClassCore, - Translations: map[string]string{}, + Module: "core:plugin/cloudwatch", + BaseURL: "public/plugins/cloudwatch", + FS: mustNewStaticFSForTests(t, filepath.Join(corePluginDir, "app/plugins/datasource/cloudwatch")), + Signature: plugins.SignatureStatusInternal, + Class: plugins.ClassCore, + SkipHostEnvVars: true, + Translations: map[string]string{}, }, }, }, @@ -215,14 +216,15 @@ func TestLoader_Load(t *testing.T) { ExtensionPoints: []plugins.ExtensionPoint{}, }, }, - Class: plugins.ClassExternal, - Module: "public/plugins/test-app/module.js", - BaseURL: "public/plugins/test-app", - FS: mustNewStaticFSForTests(t, filepath.Join(parentDir, "testdata/includes-symlinks")), - Signature: "valid", - SignatureType: plugins.SignatureTypeGrafana, - SignatureOrg: "Grafana Labs", - Translations: map[string]string{}, + Class: plugins.ClassExternal, + Module: "public/plugins/test-app/module.js", + BaseURL: "public/plugins/test-app", + FS: mustNewStaticFSForTests(t, filepath.Join(parentDir, "testdata/includes-symlinks")), + Signature: "valid", + SignatureType: plugins.SignatureTypeGrafana, + SignatureOrg: "Grafana Labs", + SkipHostEnvVars: true, + Translations: map[string]string{}, }, }, }, @@ -268,12 +270,13 @@ func TestLoader_Load(t *testing.T) { Backend: true, State: plugins.ReleaseStateAlpha, }, - Class: plugins.ClassExternal, - Module: "public/plugins/test-datasource/module.js", - BaseURL: "public/plugins/test-datasource", - FS: mustNewStaticFSForTests(t, filepath.Join(parentDir, "testdata/unsigned-datasource/plugin")), - Signature: "unsigned", - Translations: map[string]string{}, + Class: plugins.ClassExternal, + Module: "public/plugins/test-datasource/module.js", + BaseURL: "public/plugins/test-datasource", + FS: mustNewStaticFSForTests(t, filepath.Join(parentDir, "testdata/unsigned-datasource/plugin")), + Signature: "unsigned", + SkipHostEnvVars: true, + Translations: map[string]string{}, }, }, }, @@ -326,12 +329,13 @@ func TestLoader_Load(t *testing.T) { Backend: true, State: plugins.ReleaseStateAlpha, }, - Class: plugins.ClassExternal, - Module: "public/plugins/test-datasource/module.js", - BaseURL: "public/plugins/test-datasource", - FS: mustNewStaticFSForTests(t, filepath.Join(parentDir, "testdata/unsigned-datasource/plugin")), - Signature: plugins.SignatureStatusUnsigned, - Translations: map[string]string{}, + Class: plugins.ClassExternal, + Module: "public/plugins/test-datasource/module.js", + BaseURL: "public/plugins/test-datasource", + FS: mustNewStaticFSForTests(t, filepath.Join(parentDir, "testdata/unsigned-datasource/plugin")), + Signature: plugins.SignatureStatusUnsigned, + SkipHostEnvVars: true, + Translations: map[string]string{}, }, }, }, @@ -422,13 +426,14 @@ func TestLoader_Load(t *testing.T) { }, Backend: false, }, - DefaultNavURL: "/plugins/test-app/page/root-page-react", - FS: mustNewStaticFSForTests(t, filepath.Join(parentDir, "testdata/test-app-with-includes")), - Class: plugins.ClassExternal, - Signature: plugins.SignatureStatusUnsigned, - Module: "public/plugins/test-app/module.js", - BaseURL: "public/plugins/test-app", - Translations: map[string]string{}, + DefaultNavURL: "/plugins/test-app/page/root-page-react", + FS: mustNewStaticFSForTests(t, filepath.Join(parentDir, "testdata/test-app-with-includes")), + Class: plugins.ClassExternal, + Signature: plugins.SignatureStatusUnsigned, + Module: "public/plugins/test-app/module.js", + BaseURL: "public/plugins/test-app", + SkipHostEnvVars: true, + Translations: map[string]string{}, }, }, }, diff --git a/pkg/plugins/manager/pipeline/bootstrap/steps.go b/pkg/plugins/manager/pipeline/bootstrap/steps.go index 7dcc452807b..7608ba2c4fa 100644 --- a/pkg/plugins/manager/pipeline/bootstrap/steps.go +++ b/pkg/plugins/manager/pipeline/bootstrap/steps.go @@ -137,11 +137,10 @@ func configureAppChildPlugin(parent *plugins.Plugin, child *plugins.Plugin) { } // SkipHostEnvVarsDecorateFunc returns a DecorateFunc that configures the SkipHostEnvVars field of the plugin. -// It will be set to true if the FlagPluginsSkipHostEnvVars feature flag is set, and the plugin is not present in the -// ForwardHostEnvVars plugin ids list. +// It will be set to true if the plugin is not present in the ForwardHostEnvVars plugin ids list. func SkipHostEnvVarsDecorateFunc(cfg *config.PluginManagementCfg) DecorateFunc { return func(_ context.Context, p *plugins.Plugin) (*plugins.Plugin, error) { - p.SkipHostEnvVars = cfg.Features.SkipHostEnvVarsEnabled && !slices.Contains(cfg.ForwardHostEnvVars, p.ID) + p.SkipHostEnvVars = !slices.Contains(cfg.ForwardHostEnvVars, p.ID) return p, nil } } diff --git a/pkg/plugins/manager/pipeline/bootstrap/steps_test.go b/pkg/plugins/manager/pipeline/bootstrap/steps_test.go index 0f2bf7008e7..cda6d64bf82 100644 --- a/pkg/plugins/manager/pipeline/bootstrap/steps_test.go +++ b/pkg/plugins/manager/pipeline/bootstrap/steps_test.go @@ -144,65 +144,39 @@ func Test_configureAppChildPlugin(t *testing.T) { func TestSkipEnvVarsDecorateFunc(t *testing.T) { const pluginID = "plugin-id" - - t.Run("config field is false", func(t *testing.T) { - f := SkipHostEnvVarsDecorateFunc(&config.PluginManagementCfg{ - Features: config.Features{SkipHostEnvVarsEnabled: false}, - }) - p, err := f(context.Background(), &plugins.Plugin{JSONData: plugins.JSONData{ID: pluginID}}) - require.NoError(t, err) - require.False(t, p.SkipHostEnvVars) - }) - - t.Run("config field is true", func(t *testing.T) { - t.Run("no plugin settings should set SkipHostEnvVars to true", func(t *testing.T) { + for _, tc := range []struct { + name string + forwardHostEnvVars []string + expSkipHostEnvVars bool + }{ + { + name: "plugin id not present in forwardHostEnvVars should set SkipHostEnvVars to true (empty)", + forwardHostEnvVars: []string{}, + expSkipHostEnvVars: true, + }, + { + name: "plugin id not present in forwardHostEnvVars should set SkipHostEnvVars to true (other id)", + forwardHostEnvVars: []string{"other-id", "yet-another-id"}, + expSkipHostEnvVars: true, + }, + { + name: "plugin id in forwardHostEnvVars should set SkipHostEnvVars to false (only)", + forwardHostEnvVars: []string{pluginID}, + expSkipHostEnvVars: false, + }, + { + name: "plugin id in forwardHostEnvVars should set SkipHostEnvVars to false (with other)", + forwardHostEnvVars: []string{"a-plugin", pluginID, "other-id"}, + expSkipHostEnvVars: false, + }, + } { + t.Run(tc.name, func(t *testing.T) { f := SkipHostEnvVarsDecorateFunc(&config.PluginManagementCfg{ - Features: config.Features{SkipHostEnvVarsEnabled: true}, + ForwardHostEnvVars: tc.forwardHostEnvVars, }) p, err := f(context.Background(), &plugins.Plugin{JSONData: plugins.JSONData{ID: pluginID}}) require.NoError(t, err) - require.True(t, p.SkipHostEnvVars) + require.Equal(t, tc.expSkipHostEnvVars, p.SkipHostEnvVars) }) - - t.Run("plugin setting", func(t *testing.T) { - for _, tc := range []struct { - name string - forwardHostEnvVars []string - expSkipHostEnvVars bool - }{ - { - name: "plugin id not present in forwardHostEnvVars should set SkipHostEnvVars to true (empty)", - forwardHostEnvVars: []string{}, - expSkipHostEnvVars: true, - }, - { - name: "plugin id not present in forwardHostEnvVars should set SkipHostEnvVars to true (other id)", - forwardHostEnvVars: []string{"other-id", "yet-another-id"}, - expSkipHostEnvVars: true, - }, - { - name: "plugin id in forwardHostEnvVars should set SkipHostEnvVars to false (only)", - forwardHostEnvVars: []string{pluginID}, - expSkipHostEnvVars: false, - }, - { - name: "plugin id in forwardHostEnvVars should set SkipHostEnvVars to false (with other)", - forwardHostEnvVars: []string{"a-plugin", pluginID, "other-id"}, - expSkipHostEnvVars: false, - }, - } { - t.Run(tc.name, func(t *testing.T) { - f := SkipHostEnvVarsDecorateFunc(&config.PluginManagementCfg{ - Features: config.Features{ - SkipHostEnvVarsEnabled: true, - }, - ForwardHostEnvVars: tc.forwardHostEnvVars, - }) - p, err := f(context.Background(), &plugins.Plugin{JSONData: plugins.JSONData{ID: pluginID}}) - require.NoError(t, err) - require.Equal(t, tc.expSkipHostEnvVars, p.SkipHostEnvVars) - }) - } - }) - }) + } } diff --git a/pkg/services/featuremgmt/registry.go b/pkg/services/featuremgmt/registry.go index 0f60b9743b3..e2d5e31861d 100644 --- a/pkg/services/featuremgmt/registry.go +++ b/pkg/services/featuremgmt/registry.go @@ -687,13 +687,6 @@ var ( Expression: "true", Owner: grafanaObservabilityLogsSquad, }, - { - Name: "pluginsSkipHostEnvVars", - Description: "Disables passing host environment variable to plugin processes", - Stage: FeatureStageExperimental, - FrontendOnly: false, - Owner: grafanaPluginsPlatformSquad, - }, { Name: "tableSharedCrosshair", Description: "Enables shared crosshair in table panel", diff --git a/pkg/services/featuremgmt/toggles_gen.csv b/pkg/services/featuremgmt/toggles_gen.csv index b3c83f2fac3..f18ad23ecc5 100644 --- a/pkg/services/featuremgmt/toggles_gen.csv +++ b/pkg/services/featuremgmt/toggles_gen.csv @@ -91,7 +91,6 @@ canvasPanelPanZoom,preview,@grafana/dataviz-squad,false,false,true timeComparison,experimental,@grafana/dataviz-squad,false,false,true logsInfiniteScrolling,GA,@grafana/observability-logs,false,false,true logRowsPopoverMenu,GA,@grafana/observability-logs,false,false,true -pluginsSkipHostEnvVars,experimental,@grafana/plugins-platform-backend,false,false,false tableSharedCrosshair,experimental,@grafana/dataviz-squad,false,false,true regressionTransformation,preview,@grafana/datapro,false,false,true kubernetesFeatureToggles,experimental,@grafana/grafana-operator-experience-squad,false,false,true diff --git a/pkg/services/featuremgmt/toggles_gen.go b/pkg/services/featuremgmt/toggles_gen.go index 46c25420ac1..c6cb22cbf57 100644 --- a/pkg/services/featuremgmt/toggles_gen.go +++ b/pkg/services/featuremgmt/toggles_gen.go @@ -375,10 +375,6 @@ const ( // Enable filtering menu displayed when text of a log line is selected FlagLogRowsPopoverMenu = "logRowsPopoverMenu" - // FlagPluginsSkipHostEnvVars - // Disables passing host environment variable to plugin processes - FlagPluginsSkipHostEnvVars = "pluginsSkipHostEnvVars" - // FlagTableSharedCrosshair // Enables shared crosshair in table panel FlagTableSharedCrosshair = "tableSharedCrosshair" diff --git a/pkg/services/featuremgmt/toggles_gen.json b/pkg/services/featuremgmt/toggles_gen.json index 0731f6f9eca..dd79670cfb7 100644 --- a/pkg/services/featuremgmt/toggles_gen.json +++ b/pkg/services/featuremgmt/toggles_gen.json @@ -3220,7 +3220,8 @@ "metadata": { "name": "pluginsSkipHostEnvVars", "resourceVersion": "1753448760331", - "creationTimestamp": "2023-11-15T17:09:14Z" + "creationTimestamp": "2023-11-15T17:09:14Z", + "deletionTimestamp": "2025-11-04T16:51:13Z" }, "spec": { "description": "Disables passing host environment variable to plugin processes", diff --git a/pkg/services/pluginsintegration/loader/loader_test.go b/pkg/services/pluginsintegration/loader/loader_test.go index 110f5de490d..2ac557edaaa 100644 --- a/pkg/services/pluginsintegration/loader/loader_test.go +++ b/pkg/services/pluginsintegration/loader/loader_test.go @@ -119,12 +119,13 @@ func TestLoader_Load(t *testing.T) { Backend: true, QueryOptions: map[string]bool{"minInterval": true}, }, - Module: "core:plugin/cloudwatch", - BaseURL: "public/plugins/cloudwatch", - FS: mustNewStaticFSForTests(t, filepath.Join(corePluginDir(t), "app/plugins/datasource/cloudwatch")), - Signature: plugins.SignatureStatusInternal, - Class: plugins.ClassCore, - Translations: map[string]string{}, + Class: plugins.ClassCore, + BaseURL: "public/plugins/cloudwatch", + FS: mustNewStaticFSForTests(t, filepath.Join(corePluginDir(t), "app/plugins/datasource/cloudwatch")), + Module: "core:plugin/cloudwatch", + Signature: plugins.SignatureStatusInternal, + SkipHostEnvVars: true, + Translations: map[string]string{}, }, }, }, @@ -212,14 +213,15 @@ func TestLoader_Load(t *testing.T) { ExtensionPoints: []plugins.ExtensionPoint{}, }, }, - Class: plugins.ClassExternal, - Module: "public/plugins/test-app/module.js", - BaseURL: "public/plugins/test-app", - FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "includes-symlinks")), - Signature: "valid", - SignatureType: plugins.SignatureTypeGrafana, - SignatureOrg: "Grafana Labs", - Translations: map[string]string{}, + Class: plugins.ClassExternal, + Module: "public/plugins/test-app/module.js", + BaseURL: "public/plugins/test-app", + FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "includes-symlinks")), + Signature: "valid", + SignatureType: plugins.SignatureTypeGrafana, + SignatureOrg: "Grafana Labs", + SkipHostEnvVars: true, + Translations: map[string]string{}, }, }, }, @@ -265,12 +267,13 @@ func TestLoader_Load(t *testing.T) { Backend: true, State: plugins.ReleaseStateAlpha, }, - Class: plugins.ClassExternal, - Module: "public/plugins/test-datasource/module.js", - BaseURL: "public/plugins/test-datasource", - FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "unsigned-datasource/plugin")), - Signature: "unsigned", - Translations: map[string]string{}, + Class: plugins.ClassExternal, + Module: "public/plugins/test-datasource/module.js", + BaseURL: "public/plugins/test-datasource", + FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "unsigned-datasource/plugin")), + Signature: "unsigned", + SkipHostEnvVars: true, + Translations: map[string]string{}, }, }, }, @@ -329,12 +332,13 @@ func TestLoader_Load(t *testing.T) { Backend: true, State: plugins.ReleaseStateAlpha, }, - Class: plugins.ClassExternal, - Module: "public/plugins/test-datasource/module.js", - BaseURL: "public/plugins/test-datasource", - FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "unsigned-datasource/plugin")), - Signature: plugins.SignatureStatusUnsigned, - Translations: map[string]string{}, + Class: plugins.ClassExternal, + Module: "public/plugins/test-datasource/module.js", + BaseURL: "public/plugins/test-datasource", + FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "unsigned-datasource/plugin")), + Signature: plugins.SignatureStatusUnsigned, + SkipHostEnvVars: true, + Translations: map[string]string{}, }, }, }, @@ -449,13 +453,14 @@ func TestLoader_Load(t *testing.T) { }, Backend: false, }, - DefaultNavURL: "/plugins/test-app/page/root-page-react", - FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "test-app-with-includes")), - Class: plugins.ClassExternal, - Signature: plugins.SignatureStatusUnsigned, - Module: "public/plugins/test-app/module.js", - BaseURL: "public/plugins/test-app", - Translations: map[string]string{}, + DefaultNavURL: "/plugins/test-app/page/root-page-react", + FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "test-app-with-includes")), + Class: plugins.ClassExternal, + Signature: plugins.SignatureStatusUnsigned, + Module: "public/plugins/test-app/module.js", + BaseURL: "public/plugins/test-app", + SkipHostEnvVars: true, + Translations: map[string]string{}, }, }, }, @@ -546,7 +551,8 @@ func TestLoader_Load_ExternalRegistration(t *testing.T) { ClientID: "client-id", ClientSecret: "secretz", }, - Translations: map[string]string{}, + SkipHostEnvVars: true, + Translations: map[string]string{}, }, } @@ -641,14 +647,15 @@ func TestLoader_Load_MultiplePlugins(t *testing.T) { Executable: "test", State: plugins.ReleaseStateAlpha, }, - Class: plugins.ClassExternal, - Module: "public/plugins/test-datasource/module.js", - BaseURL: "public/plugins/test-datasource", - FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "valid-v2-pvt-signature/plugin")), - Signature: "valid", - SignatureType: plugins.SignatureTypePrivate, - SignatureOrg: "Will Browne", - Translations: map[string]string{}, + Class: plugins.ClassExternal, + Module: "public/plugins/test-datasource/module.js", + BaseURL: "public/plugins/test-datasource", + FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "valid-v2-pvt-signature/plugin")), + Signature: "valid", + SignatureType: plugins.SignatureTypePrivate, + SignatureOrg: "Will Browne", + SkipHostEnvVars: true, + Translations: map[string]string{}, }, }, pluginErrors: map[string]*plugins.Error{ @@ -760,14 +767,15 @@ func TestLoader_Load_RBACReady(t *testing.T) { }, Backend: false, }, - FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "test-app-with-roles")), - Class: plugins.ClassExternal, - Signature: plugins.SignatureStatusValid, - SignatureType: plugins.SignatureTypePrivate, - SignatureOrg: "gabrielmabille", - Module: "public/plugins/test-app/module.js", - BaseURL: "public/plugins/test-app", - Translations: map[string]string{}, + FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "test-app-with-roles")), + Class: plugins.ClassExternal, + Signature: plugins.SignatureStatusValid, + SignatureType: plugins.SignatureTypePrivate, + SignatureOrg: "gabrielmabille", + Module: "public/plugins/test-app/module.js", + BaseURL: "public/plugins/test-app", + SkipHostEnvVars: true, + Translations: map[string]string{}, }, }, }, @@ -829,14 +837,15 @@ func TestLoader_Load_Signature_RootURL(t *testing.T) { Backend: true, Executable: "test", }, - FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "valid-v2-pvt-signature-root-url-uri/plugin")), - Class: plugins.ClassExternal, - Signature: plugins.SignatureStatusValid, - SignatureType: plugins.SignatureTypePrivate, - SignatureOrg: "Will Browne", - Module: "public/plugins/test-datasource/module.js", - BaseURL: "public/plugins/test-datasource", - Translations: map[string]string{}, + FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "valid-v2-pvt-signature-root-url-uri/plugin")), + Class: plugins.ClassExternal, + Signature: plugins.SignatureStatusValid, + SignatureType: plugins.SignatureTypePrivate, + SignatureOrg: "Will Browne", + SkipHostEnvVars: true, + Module: "public/plugins/test-datasource/module.js", + BaseURL: "public/plugins/test-datasource", + Translations: map[string]string{}, }, } @@ -916,14 +925,15 @@ func TestLoader_Load_DuplicatePlugins(t *testing.T) { }, Backend: false, }, - FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "test-app")), - Class: plugins.ClassExternal, - Signature: plugins.SignatureStatusValid, - SignatureType: plugins.SignatureTypeGrafana, - SignatureOrg: "Grafana Labs", - Module: "public/plugins/test-app/module.js", - BaseURL: "public/plugins/test-app", - Translations: map[string]string{}, + FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "test-app")), + Class: plugins.ClassExternal, + Signature: plugins.SignatureStatusValid, + SignatureType: plugins.SignatureTypeGrafana, + SignatureOrg: "Grafana Labs", + Module: "public/plugins/test-app/module.js", + BaseURL: "public/plugins/test-app", + SkipHostEnvVars: true, + Translations: map[string]string{}, }, } @@ -1007,14 +1017,15 @@ func TestLoader_Load_SkipUninitializedPlugins(t *testing.T) { }, Backend: false, }, - FS: mustNewStaticFSForTests(t, pluginDir1), - Class: plugins.ClassExternal, - Signature: plugins.SignatureStatusValid, - SignatureType: plugins.SignatureTypeGrafana, - SignatureOrg: "Grafana Labs", - Module: "public/plugins/test-app/module.js", - BaseURL: "public/plugins/test-app", - Translations: map[string]string{}, + FS: mustNewStaticFSForTests(t, pluginDir1), + Class: plugins.ClassExternal, + Signature: plugins.SignatureStatusValid, + SignatureType: plugins.SignatureTypeGrafana, + SignatureOrg: "Grafana Labs", + Module: "public/plugins/test-app/module.js", + BaseURL: "public/plugins/test-app", + SkipHostEnvVars: true, + Translations: map[string]string{}, }, } @@ -1169,14 +1180,15 @@ func TestLoader_Load_NestedPlugins(t *testing.T) { }, Backend: true, }, - Module: "public/plugins/test-datasource/module.js", - BaseURL: "public/plugins/test-datasource", - FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "nested-plugins/parent")), - Signature: plugins.SignatureStatusValid, - SignatureType: plugins.SignatureTypeGrafana, - SignatureOrg: "Grafana Labs", - Class: plugins.ClassExternal, - Translations: map[string]string{}, + Module: "public/plugins/test-datasource/module.js", + BaseURL: "public/plugins/test-datasource", + FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "nested-plugins/parent")), + Signature: plugins.SignatureStatusValid, + SignatureType: plugins.SignatureTypeGrafana, + SignatureOrg: "Grafana Labs", + Class: plugins.ClassExternal, + SkipHostEnvVars: true, + Translations: map[string]string{}, } child := &plugins.Plugin{ @@ -1213,14 +1225,15 @@ func TestLoader_Load_NestedPlugins(t *testing.T) { ExtensionPoints: []plugins.ExtensionPoint{}, }, }, - Module: "public/plugins/test-panel/module.js", - BaseURL: "public/plugins/test-panel", - FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "nested-plugins/parent/nested")), - Signature: plugins.SignatureStatusValid, - SignatureType: plugins.SignatureTypeGrafana, - SignatureOrg: "Grafana Labs", - Class: plugins.ClassExternal, - Translations: map[string]string{}, + Module: "public/plugins/test-panel/module.js", + BaseURL: "public/plugins/test-panel", + FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "nested-plugins/parent/nested")), + Signature: plugins.SignatureStatusValid, + SignatureType: plugins.SignatureTypeGrafana, + SignatureOrg: "Grafana Labs", + Class: plugins.ClassExternal, + SkipHostEnvVars: true, + Translations: map[string]string{}, } parent.Children = []*plugins.Plugin{child} @@ -1362,15 +1375,16 @@ func TestLoader_Load_NestedPlugins(t *testing.T) { }, Backend: false, }, - Module: "public/plugins/myorgid-simple-app/module.js", - BaseURL: "public/plugins/myorgid-simple-app", - FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "app-with-child/dist")), - DefaultNavURL: "/plugins/myorgid-simple-app/page/root-page-react", - Signature: plugins.SignatureStatusValid, - SignatureType: plugins.SignatureTypeGrafana, - SignatureOrg: "Grafana Labs", - Class: plugins.ClassExternal, - Translations: map[string]string{}, + Module: "public/plugins/myorgid-simple-app/module.js", + BaseURL: "public/plugins/myorgid-simple-app", + FS: mustNewStaticFSForTests(t, filepath.Join(testDataDir(t), "app-with-child/dist")), + DefaultNavURL: "/plugins/myorgid-simple-app/page/root-page-react", + Signature: plugins.SignatureStatusValid, + SignatureType: plugins.SignatureTypeGrafana, + SignatureOrg: "Grafana Labs", + Class: plugins.ClassExternal, + SkipHostEnvVars: true, + Translations: map[string]string{}, } child := &plugins.Plugin{ @@ -1421,6 +1435,7 @@ func TestLoader_Load_NestedPlugins(t *testing.T) { SignatureType: plugins.SignatureTypeGrafana, SignatureOrg: "Grafana Labs", Class: plugins.ClassExternal, + SkipHostEnvVars: true, Translations: map[string]string{}, } diff --git a/pkg/services/pluginsintegration/pluginconfig/config.go b/pkg/services/pluginsintegration/pluginconfig/config.go index 9b73cec6500..3207c2b3bd4 100644 --- a/pkg/services/pluginsintegration/pluginconfig/config.go +++ b/pkg/services/pluginsintegration/pluginconfig/config.go @@ -30,9 +30,8 @@ func ProvidePluginManagementConfig(cfg *setting.Cfg, settingProvider setting.Pro cfg.AppURL, //nolint:staticcheck // not yet migrated to OpenFeature config.Features{ - SkipHostEnvVarsEnabled: features.IsEnabledGlobally(featuremgmt.FlagPluginsSkipHostEnvVars), - SriChecksEnabled: features.IsEnabledGlobally(featuremgmt.FlagPluginsSriChecks), - TempoAlertingEnabled: features.IsEnabledGlobally(featuremgmt.FlagTempoAlerting), + SriChecksEnabled: features.IsEnabledGlobally(featuremgmt.FlagPluginsSriChecks), + TempoAlertingEnabled: features.IsEnabledGlobally(featuremgmt.FlagTempoAlerting), }, cfg.GrafanaComAPIURL, cfg.DisablePlugins,