@ -38,7 +38,10 @@ func TestRequestConfigProvider_PluginRequestConfig(t *testing.T) {
Enabled : true ,
ShowUI : true ,
ClientCert : "c3rt" ,
ClientCertFilePath : "./c3rt" ,
ClientKey : "k3y" ,
ClientKeyFilePath : "./k3y" ,
RootCAFilePaths : [ ] string { "./ca" } ,
RootCAs : [ ] string { "ca" } ,
ProxyAddress : "https://proxy.grafana.com" ,
ServerName : "secureProxy" ,
@ -49,9 +52,12 @@ func TestRequestConfigProvider_PluginRequestConfig(t *testing.T) {
expected : map [ string ] string {
"GF_INSTANCE_FEATURE_TOGGLES_ENABLE" : "feat-1,feat-2,feat-500" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_SERVER_ENABLED" : "true" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_CLIENT_CERT" : "c3rt" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_CLIENT_KEY" : "k3y" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_ROOT_CA_CERT" : "ca" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_CLIENT_CERT" : "./c3rt" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_CLIENT_CERT_VAL" : "c3rt" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_CLIENT_KEY" : "./k3y" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_CLIENT_KEY_VAL" : "k3y" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_ROOT_CA_CERT" : "./ca" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_ROOT_CA_CERT_VALS" : "ca" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_PROXY_ADDRESS" : "https://proxy.grafana.com" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_SERVER_NAME" : "secureProxy" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_ALLOW_INSECURE" : "true" ,
@ -99,6 +105,29 @@ func TestRequestConfigProvider_PluginRequestConfig(t *testing.T) {
} ,
expected : map [ string ] string { } ,
} ,
{
name : "Multiple Root CA certs in proxy settings are supported" ,
cfg : & PluginInstanceCfg {
ProxySettings : setting . SecureSocksDSProxySettings {
Enabled : true ,
ShowUI : true ,
RootCAFilePaths : [ ] string { "./ca" , "./ca2" } ,
RootCAs : [ ] string { "ca" , "ca2" } ,
ProxyAddress : "https://proxy.grafana.com" ,
ServerName : "secureProxy" ,
AllowInsecure : true ,
} ,
Features : featuremgmt . WithFeatures ( ) ,
} ,
expected : map [ string ] string {
"GF_SECURE_SOCKS_DATASOURCE_PROXY_SERVER_ENABLED" : "true" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_ROOT_CA_CERT" : "./ca ./ca2" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_ROOT_CA_CERT_VALS" : "ca,ca2" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_PROXY_ADDRESS" : "https://proxy.grafana.com" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_SERVER_NAME" : "secureProxy" ,
"GF_SECURE_SOCKS_DATASOURCE_PROXY_ALLOW_INSECURE" : "true" ,
} ,
} ,
}
for _ , tc := range tcs {
t . Run ( tc . name , func ( t * testing . T ) {