forked from grafana.jool/grafana-jool
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
819 B
31 lines
819 B
package osskmsproviders
|
|
|
|
import (
|
|
"github.com/grafana/grafana/pkg/services/encryption"
|
|
"github.com/grafana/grafana/pkg/services/kmsproviders"
|
|
grafana "github.com/grafana/grafana/pkg/services/kmsproviders/defaultprovider"
|
|
"github.com/grafana/grafana/pkg/services/secrets"
|
|
"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
|
|
}
|
|
|