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 ¶
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" )
var Cli = New()
Cli is the default Proxy Client.
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(opts *Options) bool ConfigureSecureSocksHTTPProxy(transport *http.Transport, opts *Options) error NewSecureSocksProxyContextDialer(opts *Options) (proxy.Dialer, error) }
Client is the main Proxy Client interface.
func New ¶
func New() Client
New creates a new proxy client from the environment variables set by the grafana-server in the plugin.
func NewWithCfg ¶
NewWithCfg creates a new proxy client from a given config.
type ClientCfg ¶
type ClientCfg struct { Enabled bool ClientCert string ClientKey string RootCA string ProxyAddress string ServerName string }
ClientCfg contains the information needed to allow datasource connections to be proxied to a secure socks proxy.
type Options ¶
type Options struct { Enabled bool Auth *AuthOptions Timeouts *TimeoutOptions }
Options defines per datasource options for creating the proxy dialer.