awsds

package
v0.21.0 Latest Latest
Warning

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

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

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 GrafanaAssumeRoleExternalIdKeyName = "AWS_AUTH_EXTERNAL_ID"

GrafanaAssumeRoleExternalIdKeyName is the string literal for the grafana assume role external id environment variable key name

View Source
const ProfileName = "assume_role_credentials"

the profile containing credentials for GrafanaAssueRole 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 added in v0.8.0

func GetUserAgentString(name string) string

GetUserAgentString returns an agent that can be parsed in server logs

func ShouldCacheQuery added in v0.16.0

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 added in v0.11.1

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

func NewAsyncAWSDatasource added in v0.11.1

func NewAsyncAWSDatasource(driver AsyncDriver) *AsyncAWSDatasource

func (*AsyncAWSDatasource) NewDatasource added in v0.11.1

func (*AsyncAWSDatasource) QueryData added in v0.11.1

type AsyncDB added in v0.11.1

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 added in v0.11.1

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 added in v0.11.1

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

func GetQuery added in v0.11.1

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

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

type AuthSettings added in v0.2.0

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 added in v0.3.0

func ReadAuthSettingsFromEnvironmentVariables() *AuthSettings

type AuthType

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

func ToAuthType added in v0.3.0

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 added in v0.11.1

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

type QueryStatus added in v0.11.1

type QueryStatus uint32

QueryStatus represents the status of an async query

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

func (QueryStatus) Finished added in v0.11.1

func (qs QueryStatus) Finished() bool

func (QueryStatus) String added in v0.11.1

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 added in v0.9.0

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