Encryption: Refactor secrets service (#41771)

* Refactor kmsproviders pkg

* Update tests

* Fix linting

Co-authored-by: Joan López de la Franca Beltran <joanjan14@gmail.com>
This commit is contained in:
Tania B
2021-11-17 11:52:45 +02:00
committed by GitHub
co-authored by Joan López de la Franca Beltran
parent b8dd9fdd4a
commit bc60ae3c66
9 changed files with 104 additions and 48 deletions
+11
View File
@@ -0,0 +1,11 @@
package kmsproviders
import "github.com/grafana/grafana/pkg/services/secrets"
const (
Default = "secretKey"
)
type Service interface {
Provide() (map[string]secrets.Provider, error)
}
@@ -0,0 +1,31 @@
package osskmsproviders
import (
"github.com/grafana/grafana/pkg/services/encryption"
"github.com/grafana/grafana/pkg/services/kmsproviders"
"github.com/grafana/grafana/pkg/services/secrets"
grafana "github.com/grafana/grafana/pkg/services/secrets/defaultprovider"
"github.com/grafana/grafana/pkg/setting"
)
type Service struct {
enc encryption.Internal
settings setting.Provider
}
func ProvideService(enc encryption.Internal, settings setting.Provider) Service {
return Service{
enc: enc,
settings: settings,
}
}
func (s Service) Provide() (map[string]secrets.Provider, error) {
if !s.settings.IsFeatureToggleEnabled(secrets.EnvelopeEncryptionFeatureToggle) {
return nil, nil
}
return map[string]secrets.Provider{
kmsproviders.Default: grafana.New(s.settings, s.enc),
}, nil
}