Documentation ¶
Index ¶
- Constants
- func CreateMetadataTables(workspaceResources *modconfig.WorkspaceResourceMaps, client *Client) error
- func EnsureDBInstalled()
- func EnsureDbAndStartService(invoker Invoker) error
- func ExecuteQuery(ctx context.Context, queryString string, client *Client) (*queryresult.ResultStreamer, error)
- func IsInstalled() bool
- func PgEscapeName(name string) string
- func PgEscapeString(str string) string
- func RunInteractivePrompt(workspace NamedQueryProvider, client *Client) (*queryresult.ResultStreamer, error)
- func Shutdown(client *Client, invoker Invoker)
- func StartService(invoker Invoker)
- func TrimLogs()
- func UpdateMetadataTables(workspaceResources *modconfig.WorkspaceResourceMaps, client *Client) error
- type Client
- func (c *Client) Close() error
- func (c *Client) ConnectionMap() *steampipeconfig.ConnectionMap
- func (c *Client) ExecuteQuery(ctx context.Context, query string, countStream bool) (res *queryresult.Result, err error)
- func (c *Client) ExecuteSync(ctx context.Context, query string) (*queryresult.SyncQueryResult, error)
- func (c *Client) GetCurrentSearchPath() ([]string, error)
- func (c *Client) RefreshConnections() (bool, error)
- func (c *Client) SchemaMetadata() *schema.Metadata
- func (c *Client) SetClientSearchPath() error
- func (c *Client) SetServiceSearchPath() error
- type InteractiveClient
- type Invoker
- type NamedQueryProvider
- type Passwords
- type RunningDBInstanceInfo
- type StartListenType
- type StartResult
- type StopStatus
Constants ¶
const ( // InvokerService :: Invoker - when invoked by `service start` InvokerService Invoker = "service" // InvokerQuery :: Invoker - when invoked by `query` InvokerQuery = "query" // InvokerCheck :: Invoker - when invoked by `check` InvokerCheck = "check" // InvokerInstaller :: Invoker - when invoked by the `installer` InvokerInstaller = "installer" // InvokerPlugin :: Invoker - when invoked by the `pluginmanager` InvokerPlugin = "plugin" )
const TagColumn = "column"
TagColumn :: tag used to specify the column name and type in the reflection tables
Variables ¶
This section is empty.
Functions ¶
func CreateMetadataTables ¶ added in v0.5.0
func CreateMetadataTables(workspaceResources *modconfig.WorkspaceResourceMaps, client *Client) error
func EnsureDBInstalled ¶
func EnsureDBInstalled()
EnsureDBInstalled makes sure that the embedded pg database is installed and running
func EnsureDbAndStartService ¶ added in v0.5.0
EnsureDbAndStartService :: ensure db is installed and start service if necessary
func ExecuteQuery ¶
func ExecuteQuery(ctx context.Context, queryString string, client *Client) (*queryresult.ResultStreamer, error)
ExecuteQuery :: execute a single query. If shutdownAfterCompletion is true, shutdown the client after completion
func IsInstalled ¶
func IsInstalled() bool
IsInstalled :: checks and reports whether the embedded database is installed and setup
func PgEscapeName ¶
func PgEscapeString ¶
func RunInteractivePrompt ¶ added in v0.4.0
func RunInteractivePrompt(workspace NamedQueryProvider, client *Client) (*queryresult.ResultStreamer, error)
RunInteractivePrompt :: start the interactive query prompt
func Shutdown ¶ added in v0.2.0
Shutdown :: closes the client connection and stops the database instance if the given `invoker` matches
func StartService ¶
func StartService(invoker Invoker)
StartService :: invokes `steampipe service start --database-listen local --refresh=false --invoker query`
func UpdateMetadataTables ¶ added in v0.5.0
func UpdateMetadataTables(workspaceResources *modconfig.WorkspaceResourceMaps, client *Client) error
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client wraps over `sql.DB` and gives an interface to the database
func NewClient ¶ added in v0.4.0
NewClient ensures that the database instance is running and returns a `Client` to interact with it
func (*Client) Close ¶ added in v0.4.0
Close closes the connection to the database and shuts down the backend
func (*Client) ConnectionMap ¶
func (c *Client) ConnectionMap() *steampipeconfig.ConnectionMap
ConnectionMap :: returns the latest connection map
func (*Client) ExecuteQuery ¶ added in v0.5.0
func (c *Client) ExecuteQuery(ctx context.Context, query string, countStream bool) (res *queryresult.Result, err error)
ExecuteQuery executes the provided query against the Database in the given context.Context Bear in mind that whenever ExecuteQuery is called, the returned `queryresult.Result` MUST be fully read - otherwise the transaction is left open, which will block the connection and will prevent subsequent communications with the service
func (*Client) ExecuteSync ¶
func (c *Client) ExecuteSync(ctx context.Context, query string) (*queryresult.SyncQueryResult, error)
ExecuteSync :: execute a query against this client and wait for the result
func (*Client) GetCurrentSearchPath ¶ added in v0.4.0
query the database to get the current search path
func (*Client) RefreshConnections ¶ added in v0.3.5
RefreshConnections :: load required connections from config and update the database schema and search path to reflect the required connections return whether any changes have been made
func (*Client) SchemaMetadata ¶
SchemaMetadata :: returns the latest schema metadata
func (*Client) SetClientSearchPath ¶ added in v0.4.0
SetClientSearchPath :: set the search path for this client if either a search-path or search-path-prefix is set in config, set the search path (otherwise fall back to service search path)
func (*Client) SetServiceSearchPath ¶ added in v0.5.0
SetServiceSearchPath :: set the search path for the db service (by setting it on the steampipe user)
type InteractiveClient ¶
type InteractiveClient struct {
// contains filtered or unexported fields
}
InteractiveClient :: wrapper over *Client and *prompt.Prompt along to facilitate interactive query prompt
func (*InteractiveClient) InteractiveQuery ¶
func (c *InteractiveClient) InteractiveQuery()
InteractiveQuery :: start an interactive prompt and return
type NamedQueryProvider ¶ added in v0.5.0
type NamedQueryProvider interface { GetNamedQueryMap() map[string]*modconfig.Query GetNamedQuery(queryName string) (*modconfig.Query, bool) }
NamedQueryProvider :: interface encapsulating named query searching capability - provided to avoid db needing a reference to workspace
type RunningDBInstanceInfo ¶
type RunningDBInstanceInfo struct { Pid int Port int Listen []string ListenType StartListenType Invoker Invoker Password string User string Database string }
RunningDBInstanceInfo :: contains data about the running process and it's credentials
func GetStatus ¶
func GetStatus() (*RunningDBInstanceInfo, error)
GetStatus :: check that the db instance is running and returns it's details
type StartListenType ¶
type StartListenType string
StartListenType :: pseudoEnum of network binding for postgres
const ( // ListenTypeNetwork :: StartListenType - bind to all known interfaces ListenTypeNetwork StartListenType = "network" // ListenTypeLocal :: StartListenType - bind to localhost only ListenTypeLocal = "local" )
func (StartListenType) IsValid ¶
func (slt StartListenType) IsValid() error
IsValid :: validator for StartListenType known values
type StartResult ¶
type StartResult int
StartResult :: pseudoEnum for outcomes of Start
const ( // ServiceStarted :: StartResult - Service was started ServiceStarted StartResult = iota // ServiceAlreadyRunning :: StartResult - Service was already running ServiceAlreadyRunning // ServiceFailedToStart :: StartResult - Could not start service ServiceFailedToStart )
func StartDB ¶
func StartDB(port int, listen StartListenType, invoker Invoker) (startResult StartResult, err error)
StartDB :: start the database is not already running
type StopStatus ¶
type StopStatus int
StopStatus :: pseudoEnum for service stop result
const ( // ServiceStopped :: StopStatus - service was stopped ServiceStopped StopStatus = iota // ServiceNotRunning :: StopStatus - service was not running ServiceNotRunning // ServiceStopFailed :: StopStatus - service could not be stopped ServiceStopFailed // ServiceStopTimedOut :: StopStatus - service stop attempt timed out ServiceStopTimedOut )
Source Files ¶
- client.go
- client_connections.go
- client_execute.go
- client_search_path.go
- functions.go
- install.go
- interactive_client.go
- interactive_helpers.go
- locations.go
- logs.go
- metadata_tables.go
- named_query_provider.go
- password.go
- postgres.go
- query.go
- rows.go
- running_info.go
- schema.go
- start_database.go
- start_service.go
- status.go
- stop_database.go
- writeCounter.go