Licensing: Send map of environment variables to plugins (#30347)

Replace hard-coded `GF_ENTERPRISE_LICENSE_TEXT` with a
`map[string]string` to allow the licensing service to allow sending any
environment variable through to the plugins for licensing purposes.
This commit is contained in:
Emil Tullstedt 2021-01-18 14:42:39 +01:00 committed by GitHub
parent a246a26a2f
commit af27dd7e7d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 9 deletions

View File

@ -16,6 +16,9 @@ type Licensing interface {
LicenseURL(user *SignedInUser) string
StateInfo() string
TokenRaw() string
}
type LicenseEnvironment interface {
// Environment is a map of environment variables
Environment() map[string]string
}

View File

@ -98,8 +98,13 @@ func (m *manager) Register(pluginID string, factory PluginFactoryFunc) error {
hostEnv = append(
hostEnv,
fmt.Sprintf("GF_ENTERPRISE_LICENSE_PATH=%s", m.Cfg.EnterpriseLicensePath),
fmt.Sprintf("GF_ENTERPRISE_LICENSE_TEXT=%s", m.License.TokenRaw()),
)
if envProvider, ok := m.License.(models.LicenseEnvironment); ok {
for k, v := range envProvider.Environment() {
hostEnv = append(hostEnv, fmt.Sprintf("%s=%s", k, v))
}
}
}
env := pluginSettings.ToEnv("GF_PLUGIN", hostEnv)

View File

@ -411,6 +411,6 @@ func (t *testLicensingService) HasValidLicense() bool {
return false
}
func (t *testLicensingService) TokenRaw() string {
return t.tokenRaw
func (t *testLicensingService) Environment() map[string]string {
return map[string]string{"GF_ENTERPRISE_LICENSE_TEXT": t.tokenRaw}
}

View File

@ -60,7 +60,3 @@ func (l *OSSLicensingService) Init() error {
func (*OSSLicensingService) HasValidLicense() bool {
return false
}
func (*OSSLicensingService) TokenRaw() string {
return ""
}