Encryption: Refactor securejsondata.SecureJsonData to stop relying on global functions (#38865)
* Encryption: Add support to encrypt/decrypt sjd * Add datasources.Service as a proxy to datasources db operations * Encrypt ds.SecureJsonData before calling SQLStore * Move ds cache code into ds service * Fix tlsmanager tests * Fix pluginproxy tests * Remove some securejsondata.GetEncryptedJsonData usages * Add pluginsettings.Service as a proxy for plugin settings db operations * Add AlertNotificationService as a proxy for alert notification db operations * Remove some securejsondata.GetEncryptedJsonData usages * Remove more securejsondata.GetEncryptedJsonData usages * Fix lint errors * Minor fixes * Remove encryption global functions usages from ngalert * Fix lint errors * Minor fixes * Minor fixes * Remove securejsondata.DecryptedValue usage * Refactor the refactor * Remove securejsondata.DecryptedValue usage * Move securejsondata to migrations package * Move securejsondata to migrations package * Minor fix * Fix integration test * Fix integration tests * Undo undesired changes * Fix tests * Add context.Context into encryption methods * Fix tests * Fix tests * Fix tests * Trigger CI * Fix test * Add names to params of encryption service interface * Remove bus from CacheServiceImpl * Add logging * Add keys to logger Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com> * Add missing key to logger Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com> * Undo changes in markdown files * Fix formatting * Add context to secrets service * Rename decryptSecureJsonData to decryptSecureJsonDataFn * Name args in GetDecryptedValueFn * Add template back to NewAlertmanagerNotifier * Copy GetDecryptedValueFn to ngalert * Add logging to pluginsettings * Fix pluginsettings test Co-authored-by: Tania B <yalyna.ts@gmail.com> Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
This commit is contained in:
co-authored by
Emil Tullstedt
Tania B
parent
da813877fb
commit
722c414fef
+10
-5
@@ -7,6 +7,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/plugins/backendplugin"
|
||||
"github.com/grafana/grafana/pkg/services/datasources"
|
||||
"github.com/grafana/grafana/pkg/services/oauthtoken"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/grafana/grafana/pkg/tsdb/cloudmonitoring"
|
||||
@@ -19,9 +20,10 @@ func NewService(
|
||||
pluginManager plugins.Manager,
|
||||
backendPluginManager backendplugin.Manager,
|
||||
oauthTokenService *oauthtoken.Service,
|
||||
dataSourcesService *datasources.Service,
|
||||
cloudMonitoringService *cloudmonitoring.Service,
|
||||
) *Service {
|
||||
s := newService(cfg, pluginManager, backendPluginManager, oauthTokenService)
|
||||
s := newService(cfg, pluginManager, backendPluginManager, oauthTokenService, dataSourcesService)
|
||||
|
||||
// register backend data sources using legacy plugin
|
||||
// contracts/non-SDK contracts
|
||||
@@ -31,14 +33,15 @@ func NewService(
|
||||
}
|
||||
|
||||
func newService(cfg *setting.Cfg, manager plugins.Manager, backendPluginManager backendplugin.Manager,
|
||||
oauthTokenService oauthtoken.OAuthTokenService) *Service {
|
||||
oauthTokenService oauthtoken.OAuthTokenService, dataSourcesService *datasources.Service) *Service {
|
||||
return &Service{
|
||||
Cfg: cfg,
|
||||
PluginManager: manager,
|
||||
BackendPluginManager: backendPluginManager,
|
||||
// nolint:staticcheck // plugins.DataPlugin deprecated
|
||||
registry: map[string]func(*models.DataSource) (plugins.DataPlugin, error){},
|
||||
OAuthTokenService: oauthTokenService,
|
||||
registry: map[string]func(*models.DataSource) (plugins.DataPlugin, error){},
|
||||
OAuthTokenService: oauthTokenService,
|
||||
DataSourcesService: dataSourcesService,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,6 +51,7 @@ type Service struct {
|
||||
PluginManager plugins.Manager
|
||||
BackendPluginManager backendplugin.Manager
|
||||
OAuthTokenService oauthtoken.OAuthTokenService
|
||||
DataSourcesService *datasources.Service
|
||||
//nolint: staticcheck // plugins.DataPlugin deprecated
|
||||
registry map[string]func(*models.DataSource) (plugins.DataPlugin, error)
|
||||
}
|
||||
@@ -65,7 +69,8 @@ func (s *Service) HandleRequest(ctx context.Context, ds *models.DataSource, quer
|
||||
|
||||
return plugin.DataQuery(ctx, ds, query)
|
||||
}
|
||||
return dataPluginQueryAdapter(ds.Type, s.BackendPluginManager, s.OAuthTokenService).DataQuery(ctx, ds, query)
|
||||
return dataPluginQueryAdapter(ds.Type, s.BackendPluginManager, s.OAuthTokenService, s.DataSourcesService).
|
||||
DataQuery(ctx, ds, query)
|
||||
}
|
||||
|
||||
// RegisterQueryHandler registers a query handler factory.
|
||||
|
||||
Reference in New Issue
Block a user