proxy

package
v0.0.0-...-915dd30 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 14, 2024 License: Apache-2.0 Imports: 17 Imported by: 0

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

func SecureSocksProxyEnabledOnDS(jsonData map[string]interface{}) bool

SecureSocksProxyEnabledOnDS checks the datasource json data for `enableSecureSocksProxy` to determine if the secure socks proxy should be enabled on it

Types

type AuthOptions

type AuthOptions struct {
	Username string
	Password string
}

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.

func New

func New(opts *Options) Client

New creates a new proxy client from a given config.

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.

type TimeoutOptions

type TimeoutOptions struct {
	Timeout   time.Duration
	KeepAlive time.Duration
}

TimeoutOptions timeout/connection options.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL