awsds

package
v0.31.6 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2024 License: Apache-2.0 Imports: 33 Imported by: 34

Documentation

Index

Constants

View Source
const (
	// AllowedAuthProvidersEnvVarKeyName is the string literal for the aws allowed auth providers environment variable key name
	AllowedAuthProvidersEnvVarKeyName = "AWS_AUTH_AllowedAuthProviders"

	// AssumeRoleEnabledEnvVarKeyName is the string literal for the aws assume role enabled environment variable key name
	AssumeRoleEnabledEnvVarKeyName = "AWS_AUTH_AssumeRoleEnabled"

	// SessionDurationEnvVarKeyName is the string literal for the session duration variable key name
	SessionDurationEnvVarKeyName = "AWS_AUTH_SESSION_DURATION"

	// GrafanaAssumeRoleExternalIdKeyName is the string literal for the grafana assume role external id environment variable key name
	GrafanaAssumeRoleExternalIdKeyName = "AWS_AUTH_EXTERNAL_ID"

	// ListMetricsPageLimitKeyName is the string literal for the cloudwatch list metrics page limit key name
	ListMetricsPageLimitKeyName = "AWS_CW_LIST_METRICS_PAGE_LIMIT"

	// SigV4AuthEnabledEnvVarKeyName is the string literal for the sigv4 auth enabled environment variable key name
	SigV4AuthEnabledEnvVarKeyName = "AWS_SIGV4_AUTH_ENABLED"

	// SigV4VerboseLoggingEnvVarKeyName is the string literal for the sigv4 verbose logging environment variable key name
	SigV4VerboseLoggingEnvVarKeyName = "AWS_SIGV4_VERBOSE_LOGGING"
)
View Source
const (
	// CredentialsPath is the path to the shared credentials file in the instance for the aws/aws-sdk
	// if empty string, the path is ~/.aws/credentials
	CredentialsPath = ""

	// ProfileName is the profile containing credentials for GrafanaAssumeRole auth type in the shared credentials file
	ProfileName = "assume_role_credentials"
)

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) CheckHealth added in v0.24.0

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(ctx context.Context, 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
	ExternalID           string
	ListMetricsPageLimit int

	// necessary for a work around until https://github.com/grafana/grafana/issues/39089 is implemented
	SecureSocksDSProxyEnabled bool
}

AuthSettings stores the AWS settings from Grafana

func ReadAuthSettings added in v0.22.0

func ReadAuthSettings(ctx context.Context) *AuthSettings

ReadAuthSettings gets the Grafana auth settings from the context if its available, the environment variables if not Note: This function is mainly for backwards compatibility with older versions of Grafana; generally ReadAuthSettingsFromContext should be used instead

func ReadAuthSettingsFromContext added in v0.22.0

func ReadAuthSettingsFromContext(ctx context.Context) (*AuthSettings, bool)

ReadAuthSettingsFromContext tries to get the auth settings from the GrafanaConfig in ctx, and returns true if it finds a config

func ReadAuthSettingsFromEnvironmentVariables added in v0.3.0

func ReadAuthSettingsFromEnvironmentVariables() *AuthSettings

ReadAuthSettingsFromEnvironmentVariables gets the Grafana auth settings from the environment variables Deprecated: Use ReadAuthSettingsFromContext instead

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

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

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) CredentialsProviderV2 added in v0.31.6

func (sc *SessionCache) CredentialsProviderV2(ctx context.Context, cfg GetSessionConfig) (awsV2.CredentialsProvider, error)

CredentialsProviderV2 provides a CredentialsProvider suitable for use with aws-sdk-go-v2, to be used while migrating datasources. Experimental: this works but is not thoroughly tested yet

func (*SessionCache) GetSession deprecated

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

Deprecated: use GetSessionWithAuthSettings instead

func (*SessionCache) GetSessionWithAuthSettings added in v0.27.0

func (sc *SessionCache) GetSessionWithAuthSettings(c GetSessionConfig, as AuthSettings) (*session.Session, error)

AuthSettings can be grabed from the datasource instance's context with ReadAuthSettingsFromContext

type SessionConfig added in v0.9.0

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

type SessionCredentialsProvider added in v0.31.6

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

func (*SessionCredentialsProvider) Retrieve added in v0.31.6

type SigV4Settings added in v0.25.0

type SigV4Settings struct {
	Enabled        bool
	VerboseLogging bool
}

SigV4Settings stores the settings for SigV4 authentication

func ReadSigV4Settings added in v0.25.0

func ReadSigV4Settings(ctx context.Context) *SigV4Settings

ReadSigV4Settings gets the SigV4 settings from the context if its available

Jump to

Keyboard shortcuts

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