Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type PgConnectionString ¶
type PgConnectionString struct {
// contains filtered or unexported fields
}
func NewPgConnectionString ¶
func (*PgConnectionString) Database ¶
func (pgcs *PgConnectionString) Database() string
func (*PgConnectionString) Hostname ¶
func (pgcs *PgConnectionString) Hostname() string
func (*PgConnectionString) Password ¶
func (pgcs *PgConnectionString) Password() string
func (*PgConnectionString) Port ¶
func (pgcs *PgConnectionString) Port() int
func (*PgConnectionString) SSLMode ¶
func (pgcs *PgConnectionString) SSLMode() string
func (*PgConnectionString) Username ¶
func (pgcs *PgConnectionString) Username() string
type PgConnector ¶
type PgConnector interface {
// ConnectionString provides the PgConnectionString of the current connection
ConnectionString() PgConnectionString
// IsConnected returns the current connection state,
// true if the connection is established, false if not
IsConnected() bool
// TestConnection tries to establish a connection
// and communicates with the Postgres instance if possible.
// If the connection cannot be established, or the server does not communicate
// as expected, an error is returned
TestConnection() error
}
PgConnector provides functionality to check the current connection to a Postgres instance
type PgDatabaseAPI ¶
type PgDatabaseAPI interface {
// IsDatabaseExisting returns true if a database
// with the given name exists on the connected instance and false if not.
IsDatabaseExisting(databaseName string) (bool, error)
// CreateDatabase creates a new database on the connected instance
CreateDatabase(databaseName string) error
// DeleteDatabase drops the database with the given name on the connected instance
DeleteDatabase(databaseName string) error
// GetDatabaseOwner returns the owner of the database with the given name on the connected instance
GetDatabaseOwner(databaseName string) (string, error)
// UpdateDatabaseOwner changes the owner of the database with the given name to the role with the given name
UpdateDatabaseOwner(databaseName string, roleName string) error
// ResetDatabaseOwner changes the owner of the database with the given name to the role with which the client is connected
ResetDatabaseOwner(databaseName string) error
// UpdateDatabasePrivileges changes the given privileges on the given database for the given role
UpdateDatabasePrivileges(databaseName string, roleName string, privileges []string) error
// IsDatabaseExtensionPresent checks if the given extension is created in the database
IsDatabaseExtensionPresent(databaseName string, extension string) (bool, error)
// CreateDatabaseExtension creates the given extension in the database
CreateDatabaseExtension(databaseName string, extension string) error
}
PgDatabaseAPI provides functionality to check and manipulate databases, database ownership and privileges on databases
type PgInstanceAPI ¶
type PgInstanceAPI interface {
PgConnector
PgRoleAPI
PgDatabaseAPI
PgSchemaAPI
}
PgInstanceAPI represents the full functionality of the API to a postgres instance of a cluster The implementation for this interface can be created by NewPgInstanceAPI Instead of using this interface directly a client should implement its own interfaces or use one of the provided interfaces like PgConnector, PgRoleAPI, PgDatabaseAPI or PgSchemaAPI
func NewPgInstanceAPI ¶
func NewPgInstanceAPI(ctx context.Context, name string, connectionString *PgConnectionString) (PgInstanceAPI, error)
NewPgInstanceAPI creates an implementation for the PgInstanceAPI interface
type PgRoleAPI ¶
type PgRoleAPI interface {
// IsRoleExisting returns true if a role
// with the given name exists on the connected instance and false if not.
IsRoleExisting(roleName string) (bool, error)
// CreateRole creates the given role on the connected instance
CreateRole(name string) error
// DeleteRole drops the given role from the connected instance
DeleteRole(name string) error
// UpdateUserPassword changes the password for the given role
UpdateUserPassword(name string, password string) error
}
PgRoleAPI provides functionality to check and manipulate login roles (role with login)
type PgSchemaAPI ¶
type PgSchemaAPI interface {
// IsSchemaInDatabase returns true if a schema
// with the given name exists in the given database and false if not.
IsSchemaInDatabase(databaseName string, schemaName string) (bool, error)
// CreateSchema creates a new schema with the given name in the given database
CreateSchema(databaseName string, schemaName string) error
// DeleteSchema drops the given schema from the given database
DeleteSchema(databaseName string, schemaName string) error
// UpdateSchemaPrivileges updates the privileges for the given schema
UpdateSchemaPrivileges(databaseName string, schemaName string, roleName string, privileges []string) error
// UpdatePrivilegesOnAllObjects updates the privileges according to the given parameters
UpdatePrivilegesOnAllObjects(databaseName string, schemaName string, roleName string, typeName string, privileges []string) error
// UpdateDefaultPrivileges updates the default privileges in the given schema
// for the given role on the given type to the given privileges
UpdateDefaultPrivileges(databaseName string, schemaName string, roleName string, typeName string, privileges []string) error
// DeleteAllPrivilegesOnSchema removes all privileges on the given schema for the given role
DeleteAllPrivilegesOnSchema(databaseName string, schemaName string, role string) error
// IsSchemaUsable checks if the current user has the use privilege on the given schema
IsSchemaUsable(databaseName string, schemaName string) (bool, error)
// MakeSchemaUseable grants the use privilege on the given schema to the current user
MakeSchemaUseable(databaseName string, schemaName string) error
// GetSchemaOwner returns the owner of the database with the given name on the connected instance
GetSchemaOwner(databaseName string, schemaName string) (string, error)
}
PgSchemaAPI provides functionality to check and manipulate schemas and privileges on schemas
type SqlExecutionError ¶ added in v0.0.2
type SqlExecutionError struct {
// contains filtered or unexported fields
}
func (*SqlExecutionError) Error ¶ added in v0.0.2
func (e *SqlExecutionError) Error() string
func (*SqlExecutionError) Unwrap ¶ added in v0.0.2
func (e *SqlExecutionError) Unwrap() error