Plugins: Refactor plugin config into separate env var and request scoped services (#83261)
* seperate services for env + req * merge with main * fix tests * undo changes to golden file * fix linter * remove unused fields * split out new config struct * provide config * undo go mod changes * more renaming * fix tests * undo bra.toml changes * update go.work.sum * undo changes * trigger * apply PR feedback
This commit is contained in:
@@ -1,16 +1,13 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"github.com/grafana/grafana-azure-sdk-go/azsettings"
|
||||
|
||||
"github.com/grafana/grafana/pkg/plugins/log"
|
||||
"github.com/grafana/grafana/pkg/services/featuremgmt"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
|
||||
type Cfg struct {
|
||||
log log.Logger
|
||||
|
||||
// PluginManagementCfg is the configuration for the plugin management system.
|
||||
// It includes settings which are used to configure different components of plugin management.
|
||||
type PluginManagementCfg struct {
|
||||
DevMode bool
|
||||
|
||||
PluginsPath string
|
||||
@@ -20,25 +17,6 @@ type Cfg struct {
|
||||
DisablePlugins []string
|
||||
ForwardHostEnvVars []string
|
||||
|
||||
// AWS Plugin Auth
|
||||
AWSAllowedAuthProviders []string
|
||||
AWSAssumeRoleEnabled bool
|
||||
AWSExternalId string
|
||||
AWSSessionDuration string
|
||||
AWSListMetricsPageLimit string
|
||||
AWSForwardSettingsPlugins []string
|
||||
|
||||
// Azure Cloud settings
|
||||
Azure *azsettings.AzureSettings
|
||||
AzureAuthEnabled bool
|
||||
|
||||
// Proxy Settings
|
||||
ProxySettings setting.SecureSocksDSProxySettings
|
||||
|
||||
BuildVersion string // TODO Remove
|
||||
|
||||
LogDatasourceRequests bool
|
||||
|
||||
PluginsCDNURLTemplate string
|
||||
|
||||
Tracing Tracing
|
||||
@@ -52,57 +30,27 @@ type Cfg struct {
|
||||
|
||||
AngularSupportEnabled bool
|
||||
HideAngularDeprecation []string
|
||||
|
||||
ConcurrentQueryCount int
|
||||
|
||||
UserFacingDefaultError string
|
||||
|
||||
DataProxyRowLimit int64
|
||||
|
||||
SQLDatasourceMaxOpenConnsDefault int
|
||||
SQLDatasourceMaxIdleConnsDefault int
|
||||
SQLDatasourceMaxConnLifetimeDefault int
|
||||
}
|
||||
|
||||
func NewCfg(devMode bool, pluginsPath string, pluginSettings setting.PluginSettings, pluginsAllowUnsigned []string,
|
||||
awsAllowedAuthProviders []string, awsAssumeRoleEnabled bool, awsExternalId string, awsSessionDuration string, awsListMetricsPageLimit string, AWSForwardSettingsPlugins []string, azure *azsettings.AzureSettings, secureSocksDSProxy setting.SecureSocksDSProxySettings,
|
||||
grafanaVersion string, logDatasourceRequests bool, pluginsCDNURLTemplate string, appURL string, appSubURL string, tracing Tracing, features featuremgmt.FeatureToggles, angularSupportEnabled bool,
|
||||
grafanaComURL string, disablePlugins []string, hideAngularDeprecation []string, forwardHostEnvVars []string, concurrentQueryCount int, azureAuthEnabled bool,
|
||||
userFacingDefaultError string, dataProxyRowLimit int64,
|
||||
sqlDatasourceMaxOpenConnsDefault int, sqlDatasourceMaxIdleConnsDefault int, sqlDatasourceMaxConnLifetimeDefault int,
|
||||
) *Cfg {
|
||||
return &Cfg{
|
||||
log: log.New("plugin.cfg"),
|
||||
PluginsPath: pluginsPath,
|
||||
BuildVersion: grafanaVersion,
|
||||
DevMode: devMode,
|
||||
PluginSettings: pluginSettings,
|
||||
PluginsAllowUnsigned: pluginsAllowUnsigned,
|
||||
DisablePlugins: disablePlugins,
|
||||
AWSAllowedAuthProviders: awsAllowedAuthProviders,
|
||||
AWSAssumeRoleEnabled: awsAssumeRoleEnabled,
|
||||
AWSExternalId: awsExternalId,
|
||||
AWSSessionDuration: awsSessionDuration,
|
||||
AWSListMetricsPageLimit: awsListMetricsPageLimit,
|
||||
AWSForwardSettingsPlugins: AWSForwardSettingsPlugins,
|
||||
Azure: azure,
|
||||
ProxySettings: secureSocksDSProxy,
|
||||
LogDatasourceRequests: logDatasourceRequests,
|
||||
PluginsCDNURLTemplate: pluginsCDNURLTemplate,
|
||||
Tracing: tracing,
|
||||
GrafanaComURL: grafanaComURL,
|
||||
GrafanaAppURL: appURL,
|
||||
GrafanaAppSubURL: appSubURL,
|
||||
Features: features,
|
||||
AngularSupportEnabled: angularSupportEnabled,
|
||||
HideAngularDeprecation: hideAngularDeprecation,
|
||||
ForwardHostEnvVars: forwardHostEnvVars,
|
||||
ConcurrentQueryCount: concurrentQueryCount,
|
||||
AzureAuthEnabled: azureAuthEnabled,
|
||||
UserFacingDefaultError: userFacingDefaultError,
|
||||
DataProxyRowLimit: dataProxyRowLimit,
|
||||
SQLDatasourceMaxOpenConnsDefault: sqlDatasourceMaxOpenConnsDefault,
|
||||
SQLDatasourceMaxIdleConnsDefault: sqlDatasourceMaxIdleConnsDefault,
|
||||
SQLDatasourceMaxConnLifetimeDefault: sqlDatasourceMaxConnLifetimeDefault,
|
||||
// NewPluginManagementCfg returns a new PluginManagementCfg.
|
||||
func NewPluginManagementCfg(devMode bool, pluginsPath string, pluginSettings setting.PluginSettings, pluginsAllowUnsigned []string,
|
||||
pluginsCDNURLTemplate string, appURL string, appSubURL string, tracing Tracing, features featuremgmt.FeatureToggles,
|
||||
angularSupportEnabled bool, grafanaComURL string, disablePlugins []string, hideAngularDeprecation []string,
|
||||
forwardHostEnvVars []string) *PluginManagementCfg {
|
||||
return &PluginManagementCfg{
|
||||
PluginsPath: pluginsPath,
|
||||
DevMode: devMode,
|
||||
PluginSettings: pluginSettings,
|
||||
PluginsAllowUnsigned: pluginsAllowUnsigned,
|
||||
DisablePlugins: disablePlugins,
|
||||
PluginsCDNURLTemplate: pluginsCDNURLTemplate,
|
||||
Tracing: tracing,
|
||||
GrafanaComURL: grafanaComURL,
|
||||
GrafanaAppURL: appURL,
|
||||
GrafanaAppSubURL: appSubURL,
|
||||
Features: features,
|
||||
AngularSupportEnabled: angularSupportEnabled,
|
||||
HideAngularDeprecation: hideAngularDeprecation,
|
||||
ForwardHostEnvVars: forwardHostEnvVars,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user