Replace encryption.Service usages by secrets.Service (#41625)

* Replace encryption.Service by secrets.Service on expr.Service

* Replace encryption.Service by secrets.Service on live pkg

* Rename encryption.Service to encryption.Internal to clarify it must be not used
This commit is contained in:
Joan López de la Franca Beltran
2021-11-12 12:16:39 +01:00
committed by GitHub
parent dcae138379
commit 44837fc592
16 changed files with 66 additions and 53 deletions
+8 -9
View File
@@ -13,8 +13,6 @@ import (
"sync"
"time"
"github.com/grafana/grafana/pkg/services/encryption"
"github.com/centrifugal/centrifuge"
"github.com/go-redis/redis/v8"
"github.com/gobwas/glob"
@@ -41,6 +39,7 @@ import (
"github.com/grafana/grafana/pkg/services/live/pushws"
"github.com/grafana/grafana/pkg/services/live/runstream"
"github.com/grafana/grafana/pkg/services/live/survey"
"github.com/grafana/grafana/pkg/services/secrets"
"github.com/grafana/grafana/pkg/services/sqlstore"
"github.com/grafana/grafana/pkg/setting"
"github.com/grafana/grafana/pkg/tsdb/cloudwatch"
@@ -64,7 +63,7 @@ type CoreGrafanaScope struct {
func ProvideService(plugCtxProvider *plugincontext.Provider, cfg *setting.Cfg, routeRegister routing.RouteRegister,
logsService *cloudwatch.LogsService, pluginStore plugins.Store, cacheService *localcache.CacheService,
dataSourceCache datasources.CacheService, sqlStore *sqlstore.SQLStore, encService encryption.Service,
dataSourceCache datasources.CacheService, sqlStore *sqlstore.SQLStore, secretsService secrets.Service,
usageStatsService usagestats.Service) (*GrafanaLive, error) {
g := &GrafanaLive{
Cfg: cfg,
@@ -75,7 +74,7 @@ func ProvideService(plugCtxProvider *plugincontext.Provider, cfg *setting.Cfg, r
CacheService: cacheService,
DataSourceCache: dataSourceCache,
SQLStore: sqlStore,
EncryptionService: encService,
SecretsService: secretsService,
channels: make(map[string]models.ChannelHandler),
GrafanaScope: CoreGrafanaScope{
Features: make(map[string]models.ChannelHandlerFactory),
@@ -183,8 +182,8 @@ func ProvideService(plugCtxProvider *plugincontext.Provider, cfg *setting.Cfg, r
}
} else {
storage := &pipeline.FileStorage{
DataPath: cfg.DataPath,
EncryptionService: g.EncryptionService,
DataPath: cfg.DataPath,
SecretsService: g.SecretsService,
}
g.pipelineStorage = storage
builder = &pipeline.StorageRuleBuilder{
@@ -193,7 +192,7 @@ func ProvideService(plugCtxProvider *plugincontext.Provider, cfg *setting.Cfg, r
FrameStorage: pipeline.NewFrameStorage(),
Storage: storage,
ChannelHandlerGetter: g,
EncryptionService: g.EncryptionService,
SecretsService: g.SecretsService,
}
}
channelRuleGetter := pipeline.NewCacheSegmentedTree(builder)
@@ -369,7 +368,7 @@ type GrafanaLive struct {
CacheService *localcache.CacheService
DataSourceCache datasources.CacheService
SQLStore *sqlstore.SQLStore
EncryptionService encryption.Service
SecretsService secrets.Service
pluginStore plugins.Store
node *centrifuge.Node
@@ -1220,7 +1219,7 @@ func (g *GrafanaLive) HandleWriteConfigsPutHTTP(c *models.ReqContext) response.R
if cmd.SecureSettings == nil {
cmd.SecureSettings = map[string]string{}
}
secureJSONData, err := g.EncryptionService.DecryptJsonData(c.Req.Context(), existingBackend.SecureSettings, setting.SecretKey)
secureJSONData, err := g.SecretsService.DecryptJsonData(c.Req.Context(), existingBackend.SecureSettings)
if err != nil {
logger.Error("Error decrypting secure settings", "error", err)
return response.Error(http.StatusInternalServerError, "Error decrypting secure settings", err)
+5 -6
View File
@@ -4,14 +4,13 @@ import (
"context"
"fmt"
"github.com/grafana/grafana/pkg/services/secrets"
"github.com/centrifugal/centrifuge"
"github.com/grafana/grafana/pkg/models"
"github.com/grafana/grafana/pkg/services/encryption"
"github.com/grafana/grafana/pkg/services/live/managedstream"
"github.com/grafana/grafana/pkg/services/live/pipeline/pattern"
"github.com/grafana/grafana/pkg/services/live/pipeline/tree"
"github.com/grafana/grafana/pkg/setting"
"github.com/centrifugal/centrifuge"
)
type JsonAutoSettings struct{}
@@ -298,7 +297,7 @@ type StorageRuleBuilder struct {
FrameStorage *FrameStorage
Storage Storage
ChannelHandlerGetter ChannelHandlerGetter
EncryptionService encryption.Service
SecretsService secrets.Service
}
func (f *StorageRuleBuilder) extractSubscriber(config *SubscriberConfig) (Subscriber, error) {
@@ -434,7 +433,7 @@ func (f *StorageRuleBuilder) constructBasicAuth(writeConfig WriteConfig) (*Basic
var password string
hasSecurePassword := len(writeConfig.SecureSettings["basicAuthPassword"]) > 0
if hasSecurePassword {
passwordBytes, err := f.EncryptionService.Decrypt(context.Background(), writeConfig.SecureSettings["basicAuthPassword"], setting.SecretKey)
passwordBytes, err := f.SecretsService.Decrypt(context.Background(), writeConfig.SecureSettings["basicAuthPassword"])
if err != nil {
return nil, fmt.Errorf("basicAuthPassword can't be decrypted: %w", err)
}
+5 -6
View File
@@ -9,15 +9,14 @@ import (
"os"
"path/filepath"
"github.com/grafana/grafana/pkg/services/encryption"
"github.com/grafana/grafana/pkg/setting"
"github.com/grafana/grafana/pkg/services/secrets"
"github.com/grafana/grafana/pkg/util"
)
// FileStorage can load channel rules from a file on disk.
type FileStorage struct {
DataPath string
EncryptionService encryption.Service
DataPath string
SecretsService secrets.Service
}
func (f *FileStorage) ListWriteConfigs(_ context.Context, orgID int64) ([]WriteConfig, error) {
@@ -56,7 +55,7 @@ func (f *FileStorage) CreateWriteConfig(ctx context.Context, orgID int64, cmd Wr
cmd.UID = util.GenerateShortUID()
}
secureSettings, err := f.EncryptionService.EncryptJsonData(ctx, cmd.SecureSettings, setting.SecretKey)
secureSettings, err := f.SecretsService.EncryptJsonData(ctx, cmd.SecureSettings, secrets.WithoutScope())
if err != nil {
return WriteConfig{}, fmt.Errorf("error encrypting data: %w", err)
}
@@ -88,7 +87,7 @@ func (f *FileStorage) UpdateWriteConfig(ctx context.Context, orgID int64, cmd Wr
return WriteConfig{}, fmt.Errorf("can't read write configs: %w", err)
}
secureSettings, err := f.EncryptionService.EncryptJsonData(ctx, cmd.SecureSettings, setting.SecretKey)
secureSettings, err := f.SecretsService.EncryptJsonData(ctx, cmd.SecureSettings, secrets.WithoutScope())
if err != nil {
return WriteConfig{}, fmt.Errorf("error encrypting data: %w", err)
}