diff --git a/pkg/models/licensing.go b/pkg/models/licensing.go index aadc0e8b3bb..c4de1f15f1e 100644 --- a/pkg/models/licensing.go +++ b/pkg/models/licensing.go @@ -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 } diff --git a/pkg/plugins/backendplugin/manager.go b/pkg/plugins/backendplugin/manager.go index 5913b202708..36f9b36ebd5 100644 --- a/pkg/plugins/backendplugin/manager.go +++ b/pkg/plugins/backendplugin/manager.go @@ -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) diff --git a/pkg/plugins/backendplugin/manager_test.go b/pkg/plugins/backendplugin/manager_test.go index 28fb8a737cc..8dbcadad369 100644 --- a/pkg/plugins/backendplugin/manager_test.go +++ b/pkg/plugins/backendplugin/manager_test.go @@ -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} } diff --git a/pkg/services/licensing/oss.go b/pkg/services/licensing/oss.go index b3a8556c9cc..aacdc989d94 100644 --- a/pkg/services/licensing/oss.go +++ b/pkg/services/licensing/oss.go @@ -60,7 +60,3 @@ func (l *OSSLicensingService) Init() error { func (*OSSLicensingService) HasValidLicense() bool { return false } - -func (*OSSLicensingService) TokenRaw() string { - return "" -}