Documentation ¶
Overview ¶
Package proxy provides utilities for updating a data source plugin connection to go through a proxy.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // PluginSecureSocksProxyEnabled is a constant for the GF_SECURE_SOCKS_DATASOURCE_PROXY_SERVER_ENABLED // environment variable used to specify if a secure socks proxy is allowed to be used for datasource connections. PluginSecureSocksProxyEnabled = "GF_SECURE_SOCKS_DATASOURCE_PROXY_SERVER_ENABLED" // PluginSecureSocksProxyClientCert is a constant for the GF_SECURE_SOCKS_DATASOURCE_PROXY_CLIENT_CERT // environment variable used to specify the file location of the client cert for the secure socks proxy. PluginSecureSocksProxyClientCert = "GF_SECURE_SOCKS_DATASOURCE_PROXY_CLIENT_CERT" // PluginSecureSocksProxyClientKey is a constant for the GF_SECURE_SOCKS_DATASOURCE_PROXY_CLIENT_KEY // environment variable used to specify the file location of the client key for the secure socks proxy. PluginSecureSocksProxyClientKey = "GF_SECURE_SOCKS_DATASOURCE_PROXY_CLIENT_KEY" // PluginSecureSocksProxyRootCACert is a constant for the GF_SECURE_SOCKS_DATASOURCE_PROXY_ROOT_CA_CERT // environment variable used to specify the file location of the root ca for the secure socks proxy. PluginSecureSocksProxyRootCACert = "GF_SECURE_SOCKS_DATASOURCE_PROXY_ROOT_CA_CERT" // PluginSecureSocksProxyProxyAddress is a constant for the GF_SECURE_SOCKS_DATASOURCE_PROXY_PROXY_ADDRESS // environment variable used to specify the secure socks proxy server address to proxy the connections to. PluginSecureSocksProxyProxyAddress = "GF_SECURE_SOCKS_DATASOURCE_PROXY_PROXY_ADDRESS" // PluginSecureSocksProxyServerName is a constant for the GF_SECURE_SOCKS_DATASOURCE_PROXY_SERVER_NAME // environment variable used to specify the server name of the secure socks proxy. PluginSecureSocksProxyServerName = "GF_SECURE_SOCKS_DATASOURCE_PROXY_SERVER_NAME" // PluginSecureSocksProxyAllowInsecure is a constant for the GF_SECURE_SOCKS_DATASOURCE_PROXY_ALLOW_INSECURE // environment variable used to specify if the proxy should use a TLS dialer. PluginSecureSocksProxyAllowInsecure = "GF_SECURE_SOCKS_DATASOURCE_PROXY_ALLOW_INSECURE" )
View Source
var DefaultTimeoutOptions = TimeoutOptions{ Timeout: 30 * time.Second, KeepAlive: 30 * time.Second, }
DefaultTimeoutOptions default timeout/connection options for the proxy.
Functions ¶
func SecureSocksProxyEnabledOnDS ¶
SecureSocksProxyEnabledOnDS checks the datasource json data for `enableSecureSocksProxy` to determine if the secure socks proxy should be enabled on it
Types ¶
type AuthOptions ¶
AuthOptions socks5 username and password options. Every datasource can have separate credentials to the proxy.
type Client ¶
type Client interface { SecureSocksProxyEnabled() bool ConfigureSecureSocksHTTPProxy(transport *http.Transport) error NewSecureSocksProxyContextDialer() (proxy.Dialer, error) }
Client is the main Proxy Client interface.
type ClientCfg ¶
type ClientCfg struct { ClientCert string ClientKey string RootCA string ProxyAddress string ServerName string AllowInsecure bool }
ClientCfg contains the information needed to allow datasource connections to be proxied to a secure socks proxy.
type Options ¶
type Options struct { Enabled bool // DatasourceName is the name of the datasource the proxy will be used to communicate with. DatasourceName string // DatasourceType is the type of the datasource the proxy will be used to communicate with. // It should be the value assigned to the type property in a datasource provisioning file (e.g mysql, prometheus) DatasourceType string Auth *AuthOptions Timeouts *TimeoutOptions ClientCfg *ClientCfg }
Options defines per datasource options for creating the proxy dialer.
Click to show internal directories.
Click to hide internal directories.