Documentation
¶
Overview ¶
Package config handles reading and writing the agent-sql configuration file. Config lives at $XDG_CONFIG_HOME/agent-sql/config.json (default ~/.config/agent-sql/).
Index ¶
- func ClearCache()
- func ConfigDir() string
- func GetConnections() map[string]Connection
- func GetDefaultAlias() string
- func GetSetting(key string) any
- func RemoveConnection(alias string) error
- func ResetSettings() error
- func SetConfigDir(dir string)
- func SetDefault(alias string) error
- func StoreConnection(alias string, conn Connection) error
- func UpdateSetting(key string, value any) error
- func Write(cfg *Config) error
- type Config
- type Connection
- type ConnectionNotFoundError
- type DefaultsSettings
- type QuerySettings
- type Settings
- type TruncationSettings
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConfigDir ¶
func ConfigDir() string
ConfigDir returns the config directory, creating it if needed.
func GetConnections ¶
func GetConnections() map[string]Connection
GetConnections returns all connections.
func GetDefaultAlias ¶
func GetDefaultAlias() string
GetDefaultAlias returns the default connection alias, or empty string.
func GetSetting ¶
GetSetting reads a dotted config key (e.g. "query.timeout").
func RemoveConnection ¶
RemoveConnection removes a connection by alias.
func SetConfigDir ¶
func SetConfigDir(dir string)
SetConfigDir overrides the config directory (for testing).
func StoreConnection ¶
func StoreConnection(alias string, conn Connection) error
StoreConnection saves a connection. First connection becomes the default.
func UpdateSetting ¶
UpdateSetting writes a dotted config key.
Types ¶
type Config ¶
type Config struct {
DefaultConnection string `json:"default_connection,omitempty"`
Connections map[string]Connection `json:"connections"`
Settings Settings `json:"settings"`
}
Config is the top-level configuration structure.
type Connection ¶
type Connection struct {
Driver string `json:"driver"`
Host string `json:"host,omitempty"`
Port int `json:"port,omitempty"`
Database string `json:"database,omitempty"`
Path string `json:"path,omitempty"`
URL string `json:"url,omitempty"`
Credential string `json:"credential,omitempty"`
Account string `json:"account,omitempty"`
Warehouse string `json:"warehouse,omitempty"`
Role string `json:"role,omitempty"`
Schema string `json:"schema,omitempty"`
}
Connection represents a saved database connection.
func GetConnection ¶
func GetConnection(alias string) *Connection
GetConnection returns a connection by alias, or nil if not found.
type ConnectionNotFoundError ¶
ConnectionNotFoundError is returned when a connection alias doesn't exist.
func (*ConnectionNotFoundError) Error ¶
func (e *ConnectionNotFoundError) Error() string
type DefaultsSettings ¶
type DefaultsSettings struct {
Limit *int `json:"limit,omitempty"`
Format string `json:"format,omitempty"`
}
DefaultsSettings holds default output settings.
type QuerySettings ¶
type QuerySettings struct {
Timeout *int `json:"timeout,omitempty"`
MaxRows *int `json:"maxRows,omitempty"`
}
QuerySettings holds query execution settings.
type Settings ¶
type Settings struct {
Defaults *DefaultsSettings `json:"defaults,omitempty"`
Query *QuerySettings `json:"query,omitempty"`
Truncation *TruncationSettings `json:"truncation,omitempty"`
}
Settings holds persistent configuration settings.
type TruncationSettings ¶
type TruncationSettings struct {
MaxLength *int `json:"maxLength,omitempty"`
}
TruncationSettings holds string truncation settings.