Azure: Use SSO settings in plugin context (#112058)

* Bump grafana-azure-sdk-go

* Set override values

* Add Azure settings helper covering SSO cases

* Ensure Azure settings are correctly created

- Add mock for sso settings service
- Add tests
- Update wire

* Minor improvements

* Test updates

* Move fake implementation

* add interface to limit leakage

* rename

* work sync

* Fix wire

* Add fake provider

* Update tests

* Actually fix the workspace

* More go dependency fixes

* Update tests

* Update workspace, again

* Add missing tests

* Fix dependencies

* These dependencies..

* More dependency things

* Okay now dependencies really are fixed

* Lint

* Update pkg/services/pluginsintegration/pluginconfig/request.go

Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>

---------

Co-authored-by: Will Browne <wbrowne@tcd.ie>
Co-authored-by: Misi <mgyongyosi@users.noreply.github.com>
This commit is contained in:
Andreas Christou
2025-10-10 11:46:26 +01:00
committed by GitHub
co-authored by Misi Will Browne
parent 59459560c2
commit fa9d6be255
15 changed files with 652 additions and 75 deletions
+11 -8
View File
@@ -188,6 +188,7 @@ import (
"github.com/grafana/grafana/pkg/services/pluginsintegration/pluginexternal"
"github.com/grafana/grafana/pkg/services/pluginsintegration/plugininstaller"
service6 "github.com/grafana/grafana/pkg/services/pluginsintegration/pluginsettings/service"
"github.com/grafana/grafana/pkg/services/pluginsintegration/pluginsso"
"github.com/grafana/grafana/pkg/services/pluginsintegration/pluginstore"
"github.com/grafana/grafana/pkg/services/pluginsintegration/provisionedplugins"
"github.com/grafana/grafana/pkg/services/pluginsintegration/renderer"
@@ -342,7 +343,10 @@ func Initialize(ctx context.Context, cfg *setting.Cfg, opts Options, apiOpts api
hooksService := hooks.ProvideService()
ossLicensingService := licensing.ProvideService(cfg, hooksService)
licensingService := licensing2.ProvideLicensing(cfg, ossLicensingService)
envVarsProvider := pluginconfig.NewEnvVarsProvider(pluginInstanceCfg, licensingService)
registerer := metrics.ProvideRegisterer()
ssosettingsimplService := ssosettingsimpl.ProvideService(cfg, sqlStore, accessControl, routeRegisterImpl, featureToggles, secretsService, usageStats, registerer, ossImpl, ossLicensingService)
defaultSettingsProvider := pluginsso.ProvideDefaultSettingsProvider(ssosettingsimplService)
envVarsProvider := pluginconfig.NewEnvVarsProvider(pluginInstanceCfg, licensingService, defaultSettingsProvider)
inMemory := registry.ProvideService()
rendererManager, err := renderer.ProvideService(pluginManagementCfg, envVarsProvider, inMemory, tracingService)
if err != nil {
@@ -424,7 +428,6 @@ func Initialize(ctx context.Context, cfg *setting.Cfg, opts Options, apiOpts api
}
publicDashboardStoreImpl := database3.ProvideStore(sqlStore, cfg, featureToggles)
publicDashboardServiceWrapperImpl := service3.ProvideServiceWrapper(publicDashboardStoreImpl)
registerer := metrics.ProvideRegisterer()
apikeyService, err := apikeyimpl.ProvideService(sqlStore, cfg, quotaService)
if err != nil {
return nil, err
@@ -559,7 +562,6 @@ func Initialize(ctx context.Context, cfg *setting.Cfg, opts Options, apiOpts api
pluginService := service7.ProvideDashboardPluginService(featureToggles, dashboardServiceImpl)
service14 := service8.ProvideService(fileStoreManager, pluginService)
orgRoleMapper := connectors.ProvideOrgRoleMapper(cfg, orgService)
ssosettingsimplService := ssosettingsimpl.ProvideService(cfg, sqlStore, accessControl, routeRegisterImpl, featureToggles, secretsService, usageStats, registerer, ossImpl, ossLicensingService)
socialService := socialimpl.ProvideService(cfg, featureToggles, usageStats, bundleregistryService, remoteCache, orgRoleMapper, ssosettingsimplService)
loginStore := authinfoimpl.ProvideStore(sqlStore, secretsService)
authinfoimplService := authinfoimpl.ProvideService(loginStore, remoteCache, secretsService)
@@ -599,7 +601,7 @@ func Initialize(ctx context.Context, cfg *setting.Cfg, opts Options, apiOpts api
return nil, err
}
datasourcePermissionsService := ossaccesscontrol.ProvideDatasourcePermissionsService(cfg, featureToggles, sqlStore)
requestConfigProvider := pluginconfig.NewRequestConfigProvider(pluginInstanceCfg)
requestConfigProvider := pluginconfig.NewRequestConfigProvider(pluginInstanceCfg, defaultSettingsProvider)
baseProvider := plugincontext.ProvideBaseService(cfg, requestConfigProvider)
service15, err := service9.ProvideService(sqlStore, secretsService, secretsKVStore, cfg, featureToggles, accessControl, datasourcePermissionsService, quotaService, pluginstoreService, middlewareHandler, baseProvider)
if err != nil {
@@ -943,7 +945,10 @@ func InitializeForTest(ctx context.Context, t sqlutil.ITestDB, testingT interfac
hooksService := hooks.ProvideService()
ossLicensingService := licensing.ProvideService(cfg, hooksService)
licensingService := licensing2.ProvideLicensing(cfg, ossLicensingService)
envVarsProvider := pluginconfig.NewEnvVarsProvider(pluginInstanceCfg, licensingService)
registerer := metrics.ProvideRegistererForTest()
ssosettingsimplService := ssosettingsimpl.ProvideService(cfg, sqlStore, accessControl, routeRegisterImpl, featureToggles, secretsService, usageStats, registerer, ossImpl, ossLicensingService)
defaultSettingsProvider := pluginsso.ProvideDefaultSettingsProvider(ssosettingsimplService)
envVarsProvider := pluginconfig.NewEnvVarsProvider(pluginInstanceCfg, licensingService, defaultSettingsProvider)
inMemory := registry.ProvideService()
rendererManager, err := renderer.ProvideService(pluginManagementCfg, envVarsProvider, inMemory, tracingService)
if err != nil {
@@ -1025,7 +1030,6 @@ func InitializeForTest(ctx context.Context, t sqlutil.ITestDB, testingT interfac
}
publicDashboardStoreImpl := database3.ProvideStore(sqlStore, cfg, featureToggles)
publicDashboardServiceWrapperImpl := service3.ProvideServiceWrapper(publicDashboardStoreImpl)
registerer := metrics.ProvideRegistererForTest()
apikeyService, err := apikeyimpl.ProvideService(sqlStore, cfg, quotaService)
if err != nil {
return nil, err
@@ -1195,7 +1199,7 @@ func InitializeForTest(ctx context.Context, t sqlutil.ITestDB, testingT interfac
return nil, err
}
datasourcePermissionsService := ossaccesscontrol.ProvideDatasourcePermissionsService(cfg, featureToggles, sqlStore)
requestConfigProvider := pluginconfig.NewRequestConfigProvider(pluginInstanceCfg)
requestConfigProvider := pluginconfig.NewRequestConfigProvider(pluginInstanceCfg, defaultSettingsProvider)
baseProvider := plugincontext.ProvideBaseService(cfg, requestConfigProvider)
service15, err := service9.ProvideService(sqlStore, secretsService, secretsKVStore, cfg, featureToggles, accessControl, datasourcePermissionsService, quotaService, pluginstoreService, middlewareHandler, baseProvider)
if err != nil {
@@ -1227,7 +1231,6 @@ func InitializeForTest(ctx context.Context, t sqlutil.ITestDB, testingT interfac
return nil, err
}
orgRoleMapper := connectors.ProvideOrgRoleMapper(cfg, orgService)
ssosettingsimplService := ssosettingsimpl.ProvideService(cfg, sqlStore, accessControl, routeRegisterImpl, featureToggles, secretsService, usageStats, registerer, ossImpl, ossLicensingService)
socialService := socialimpl.ProvideService(cfg, featureToggles, usageStats, bundleregistryService, remoteCache, orgRoleMapper, ssosettingsimplService)
loginStore := authinfoimpl.ProvideStore(sqlStore, secretsService)
authinfoimplService := authinfoimpl.ProvideService(loginStore, remoteCache, secretsService)