diff --git a/pkg/server/wire.go b/pkg/server/wire.go index 548bab4ff65..419c9d241a4 100644 --- a/pkg/server/wire.go +++ b/pkg/server/wire.go @@ -246,6 +246,8 @@ var wireBasicSet = wire.NewSet( wire.Bind(new(alerting.DashAlertExtractor), new(*alerting.DashAlertExtractorService)), comments.ProvideService, guardian.ProvideService, + secretsStore.ProvideRemotePluginCheck, + wire.Bind(new(secretsStore.UseRemoteSecretsPluginCheck), new(*secretsStore.OSSRemoteSecretsPluginCheck)), secretsStore.ProvideService, avatar.ProvideAvatarCacheServer, authproxy.ProvideAuthProxy, diff --git a/pkg/services/secrets/kvstore/kvstore.go b/pkg/services/secrets/kvstore/kvstore.go index a0fe9474e88..6a8e051a7a4 100644 --- a/pkg/services/secrets/kvstore/kvstore.go +++ b/pkg/services/secrets/kvstore/kvstore.go @@ -4,7 +4,6 @@ import ( "context" "github.com/grafana/grafana/pkg/infra/log" - "github.com/grafana/grafana/pkg/plugins" "github.com/grafana/grafana/pkg/services/secrets" "github.com/grafana/grafana/pkg/services/sqlstore" ) @@ -14,11 +13,11 @@ const ( AllOrganizations = -1 ) -func ProvideService(sqlStore sqlstore.Store, secretsService secrets.Service, sm plugins.SecretsManagerManager) SecretsKVStore { +func ProvideService(sqlStore sqlstore.Store, secretsService secrets.Service, remoteCheck UseRemoteSecretsPluginCheck) SecretsKVStore { logger := log.New("secrets.kvstore") - if shouldUseRemoteSecretsPlugin(&sm) { + if remoteCheck.ShouldUseRemoteSecretsPlugin() { return &secretsKVStorePlugin{ - secretsPlugin: sm.SecretsManager().SecretsManager, + secretsPlugin: remoteCheck.GetManager().SecretsManager().SecretsManager, secretsService: secretsService, log: logger, } diff --git a/pkg/services/secrets/kvstore/remote_plugin_check.go b/pkg/services/secrets/kvstore/remote_plugin_check.go index 5568840d146..10e6960e45c 100644 --- a/pkg/services/secrets/kvstore/remote_plugin_check.go +++ b/pkg/services/secrets/kvstore/remote_plugin_check.go @@ -1,7 +1,26 @@ package kvstore -import "github.com/grafana/grafana/pkg/plugins" +import ( + "github.com/grafana/grafana/pkg/plugins" +) -func shouldUseRemoteSecretsPlugin(sm *plugins.SecretsManagerManager) bool { +type UseRemoteSecretsPluginCheck interface { + ShouldUseRemoteSecretsPlugin() bool + GetManager() plugins.SecretsManagerManager +} + +type OSSRemoteSecretsPluginCheck struct { + UseRemoteSecretsPluginCheck +} + +func ProvideRemotePluginCheck() *OSSRemoteSecretsPluginCheck { + return &OSSRemoteSecretsPluginCheck{} +} + +func (c *OSSRemoteSecretsPluginCheck) ShouldUseRemoteSecretsPlugin() bool { return false } + +func (c *OSSRemoteSecretsPluginCheck) GetManager() plugins.SecretsManagerManager { + return nil +}