awsds

package
v0.4.1 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2024 License: Apache-2.0 Imports: 29 Imported by: 3

Documentation

Index

Constants

View Source
const AllowedAuthProvidersEnvVarKeyName = "AWS_AUTH_AllowedAuthProviders"

AllowedAuthProvidersEnvVarKeyName is the string literal for the aws allowed auth providers environment variable key name

View Source
const AssumeRoleEnabledEnvVarKeyName = "AWS_AUTH_AssumeRoleEnabled"

AssumeRoleEnabledEnvVarKeyName is the string literal for the aws assume role enabled environment variable key name

View Source
const CredentialsPath = ""

path to the shared credentials file in the instance for the aws/aws-sdk if empty string, the path is ~/.aws/credentials

View Source
const GrafargAssumeRoleExternalIdKeyName = "AWS_AUTH_EXTERNAL_ID"

GrafargAssumeRoleExternalIdKeyName is the string literal for the grafarg assume role external id environment variable key name

View Source
const ProfileName = "assume_role_credentials"

the profile containing credentials for GrafargAssueRole auth type in the shared credentials file

View Source
const SessionDurationEnvVarKeyName = "AWS_AUTH_SESSION_DURATION"

SessionDurationEnvVarKeyName is the string literal for the session duration variable key name

Variables

This section is empty.

Functions

func GetUserAgentString

func GetUserAgentString(name string) string

GetUserAgentString returns an agent that can be parsed in server logs

func ShouldCacheQuery

func ShouldCacheQuery(resp *backend.QueryDataResponse) bool

ShouldCacheQuery checks whether resp contains a running query, and returns false if it does

Types

type AWSDatasourceSettings

type AWSDatasourceSettings struct {
	Profile       string   `json:"profile"`
	Region        string   `json:"region"`
	AuthType      AuthType `json:"authType"`
	AssumeRoleARN string   `json:"assumeRoleARN"`
	ExternalID    string   `json:"externalId"`

	// Override the client endpoint
	Endpoint string `json:"endpoint"`

	//go:deprecated Use Region instead
	DefaultRegion string `json:"defaultRegion"`

	// Loaded from DecryptedSecureJSONData (not the json object)
	AccessKey    string `json:"-"`
	SecretKey    string `json:"-"`
	SessionToken string `json:"-"`
}

DatasourceSettings holds basic connection info

func (*AWSDatasourceSettings) Load

LoadSettings will read and validate Settings from the DataSourceConfg

type AmazonSessionProvider

type AmazonSessionProvider func(region string, s AWSDatasourceSettings) (*session.Session, error)

AmazonSessionProvider will return a session (perhaps cached) for given region and settings

type AsyncAWSDatasource

type AsyncAWSDatasource struct {
	*sqlds.SQLDatasource
	// contains filtered or unexported fields
}

func NewAsyncAWSDatasource

func NewAsyncAWSDatasource(driver AsyncDriver) *AsyncAWSDatasource

func (*AsyncAWSDatasource) NewDatasource

func (*AsyncAWSDatasource) QueryData

type AsyncDB

type AsyncDB interface {
	// DB generic methods
	driver.Conn
	Ping(ctx context.Context) error

	// Async flow
	StartQuery(ctx context.Context, query string, args ...interface{}) (string, error)
	GetQueryID(ctx context.Context, query string, args ...interface{}) (bool, string, error)
	QueryStatus(ctx context.Context, queryID string) (QueryStatus, error)
	CancelQuery(ctx context.Context, queryID string) error
	GetRows(ctx context.Context, queryID string) (driver.Rows, error)
}

AsyncDB represents an async SQL connection

type AsyncDriver

type AsyncDriver interface {
	sqlds.Driver
	GetAsyncDB(settings backend.DataSourceInstanceSettings, queryArgs json.RawMessage) (AsyncDB, error)
}

AsyncDriver extends the driver interface to also connect to async SQL datasources

type AsyncQuery

type AsyncQuery struct {
	sqlds.Query
	QueryID string    `json:"queryID,omitempty"`
	Meta    QueryMeta `json:"meta,omitempty"`
}

func GetQuery

func GetQuery(query backend.DataQuery) (*AsyncQuery, error)

GetQuery returns a Query object given a backend.DataQuery using json.Unmarshal

type AuthSettings

type AuthSettings struct {
	AllowedAuthProviders []string
	AssumeRoleEnabled    bool
	SessionDuration      *time.Duration
}

AuthSettings defines whether certain auth types and provider can be used or not

func ReadAuthSettingsFromEnvironmentVariables

func ReadAuthSettingsFromEnvironmentVariables() *AuthSettings

type AuthType

type AuthType int
const (
	AuthTypeDefault AuthType = iota
	AuthTypeSharedCreds
	AuthTypeKeys
	AuthTypeEC2IAMRole
	AuthTypeGrafargAssumeRole //cloud only
)

func ToAuthType

func ToAuthType(authType string) (AuthType, error)

func (*AuthType) MarshalJSON

func (at *AuthType) MarshalJSON() ([]byte, error)

MarshalJSON marshals the enum as a quoted json string

func (AuthType) String

func (at AuthType) String() string

func (*AuthType) UnmarshalJSON

func (at *AuthType) UnmarshalJSON(b []byte) error

UnmarshalJSON unmashals a quoted json string to the enum value

type QueryMeta

type QueryMeta struct {
	QueryFlow string `json:"queryFlow,omitempty"`
}

type QueryStatus

type QueryStatus uint32

QueryStatus represents the status of an async query

const (
	QueryUnknown QueryStatus = iota
	QuerySubmitted
	QueryRunning
	QueryFinished
	QueryCanceled
	QueryFailed
)

func (QueryStatus) Finished

func (qs QueryStatus) Finished() bool

func (QueryStatus) String

func (qs QueryStatus) String() string

type SessionCache

type SessionCache struct {
	// contains filtered or unexported fields
}

SessionCache cache sessions for a while

func NewSessionCache

func NewSessionCache() *SessionCache

NewSessionCache creates a new session cache using the default settings loaded from environment variables

func (*SessionCache) GetSession

func (sc *SessionCache) GetSession(c SessionConfig) (*session.Session, error)

GetSession returns a session from the config and possible region overrides -- implements AmazonSessionProvider

type SessionConfig

type SessionConfig struct {
	Settings      AWSDatasourceSettings
	HTTPClient    *http.Client
	UserAgentName *string
}

Jump to

Keyboard shortcuts

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