proxy

package
v0.0.0-...-d8ecb06 Latest Latest
Warning

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

Go to latest
Published: Aug 14, 2023 License: Apache-2.0 Imports: 12 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"
)
View Source
var Cli = New()

Cli is the default Proxy Client.

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(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

func NewWithCfg(cfg *ClientCfg) Client

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.

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