connutil

package
v0.14.1 Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2025 License: MPL-2.0 Imports: 29 Imported by: 40

Documentation

Index

Constants

View Source
const (
	AuthTypeGCPIAM           = "gcp_iam"
	AuthTypeCert             = "cert"
	AuthTypeUsernamePassword = ""
)

Variables

View Source
var ErrNotInitialized = errors.New("connection has not been initialized")

Functions

func GetCloudSQLAuthOptions added in v0.10.1

func GetCloudSQLAuthOptions(credentials string, usePrivateIP bool) ([]cloudsqlconn.Option, error)

GetCloudSQLAuthOptions takes a credentials JSON and returns a set of GCP CloudSQL options - always WithIAMAUthN, and then the appropriate file/JSON option.

func ValidateAuthType added in v0.10.1

func ValidateAuthType(authType string) bool

Types

type ConnectionProducer

type ConnectionProducer interface {
	Close() error
	Init(context.Context, map[string]interface{}, bool) (map[string]interface{}, error)
	Connection(context.Context) (interface{}, error)

	sync.Locker

	// DEPRECATED, will be removed in 0.12
	Initialize(context.Context, map[string]interface{}, bool) error
}

ConnectionProducer can be used as an embedded interface in the Database definition. It implements the methods dealing with individual database connections and is used in all the builtin database types.

type SQLConnectionProducer

type SQLConnectionProducer struct {
	ConnectionURL            string      `json:"connection_url" mapstructure:"connection_url" structs:"connection_url"`
	MaxOpenConnections       int         `json:"max_open_connections" mapstructure:"max_open_connections" structs:"max_open_connections"`
	MaxIdleConnections       int         `json:"max_idle_connections" mapstructure:"max_idle_connections" structs:"max_idle_connections"`
	MaxConnectionLifetimeRaw interface{} `json:"max_connection_lifetime" mapstructure:"max_connection_lifetime" structs:"max_connection_lifetime"`
	DisableEscaping          bool        `json:"disable_escaping" mapstructure:"disable_escaping" structs:"disable_escaping"`

	SelfManaged bool `json:"self_managed" mapstructure:"self_managed" structs:"self_managed"`

	// Username/Password is the default auth type when AuthType is not set
	Username string `json:"username" mapstructure:"username" structs:"username"`
	Password string `json:"password" mapstructure:"password" structs:"password"`

	// AuthType defines the type of client authenticate used for this connection
	AuthType           string `json:"auth_type" mapstructure:"auth_type" structs:"auth_type"`
	ServiceAccountJSON string `json:"service_account_json" mapstructure:"service_account_json" structs:"service_account_json"`
	TLSConfig          *tls.Config

	Type      string
	RawConfig map[string]interface{}

	Initialized bool

	sync.Mutex
	// contains filtered or unexported fields
}

SQLConnectionProducer implements ConnectionProducer and provides a generic producer for most sql databases

func (*SQLConnectionProducer) Close

func (c *SQLConnectionProducer) Close() error

Close attempts to close the connection

func (*SQLConnectionProducer) Connection

func (c *SQLConnectionProducer) Connection(ctx context.Context) (interface{}, error)

func (*SQLConnectionProducer) Init

func (c *SQLConnectionProducer) Init(ctx context.Context, conf map[string]interface{}, verifyConnection bool) (map[string]interface{}, error)

func (*SQLConnectionProducer) Initialize

func (c *SQLConnectionProducer) Initialize(ctx context.Context, conf map[string]interface{}, verifyConnection bool) error

func (*SQLConnectionProducer) SecretValues

func (c *SQLConnectionProducer) SecretValues() map[string]interface{}

func (*SQLConnectionProducer) SetCredentials added in v0.1.12

func (c *SQLConnectionProducer) SetCredentials(ctx context.Context, statements dbplugin.Statements, staticUser dbplugin.StaticUserConfig) (username, password string, err error)

SetCredentials uses provided information to set/create a user in the database. Unlike CreateUser, this method requires a username be provided and uses the name given, instead of generating a name. This is used for creating and setting the password of static accounts, as well as rolling back passwords in the database in the event an updated database fails to save in Vault's storage.

func (*SQLConnectionProducer) StaticConnection added in v0.14.0

func (c *SQLConnectionProducer) StaticConnection(_ context.Context, _, _ string) (*sql.DB, error)

Jump to

Keyboard shortcuts

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