database

package
v1.17.0 Latest Latest
Warning

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

Go to latest
Published: Nov 9, 2023 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DB_DUMMY_HOSTNAME     = "hostname"
	DB_DUMMY_PORT         = 1122
	DBUSER_DUMMY_USERNAME = "username"
	DBUSER_DUMMY_PASSWORD = "qwertyu9"
)
View Source
const (
	ACCESS_TYPE_READONLY  = "readOnly"
	ACCESS_TYPE_READWRITE = "readWrite"
	ACCESS_TYPE_MAINUSER  = "main"
)

Variables

This section is empty.

Functions

func CreateDatabase added in v1.13.0

func CreateDatabase(db Database, admin *DatabaseUser) error

CreateDatabase executes queries to create database

func CreateOrUpdateUser added in v1.13.0

func CreateOrUpdateUser(db Database, dbuser *DatabaseUser, admin *DatabaseUser) error

CreateOrUpdateUser executes queries to create or update user

func CreateUser added in v1.13.0

func CreateUser(db Database, dbuser *DatabaseUser, admin *DatabaseUser) error

CreateUser executes queries to a create user

func DeleteDatabase added in v1.13.0

func DeleteDatabase(db Database, admin *DatabaseUser) error

DeleteDatabase executes queries to delete database and user

func DeleteUser added in v1.13.0

func DeleteUser(db Database, dbuser *DatabaseUser, admin *DatabaseUser) error

func UpdateUser added in v1.13.0

func UpdateUser(db Database, dbuser *DatabaseUser, admin *DatabaseUser) error

Types

type AdminCredentials

type AdminCredentials struct {
	Username string `yaml:"user"`
	Password string `yaml:"password"`
}

AdminCredentials contains admin username and password of database server

type Credentials

type Credentials struct {
	Name             string
	Username         string
	Password         string
	TemplatedSecrets map[string]string
}

Credentials contains credentials to connect database

type Database

type Database interface {
	CheckStatus(user *DatabaseUser) error
	GetCredentials(user *DatabaseUser) Credentials
	ParseAdminCredentials(data map[string][]byte) (*DatabaseUser, error)
	GetDatabaseAddress() DatabaseAddress
	QueryAsUser(query string, user *DatabaseUser) (string, error)
	// contains filtered or unexported methods
}

Database is interface for CRUD operate of different types of databases

func New

func New(engine string) Database

New returns database interface according to engine type

type DatabaseAddress

type DatabaseAddress struct {
	Host string
	Port uint16
}

DatabaseAddress contains host and port of a database instance

type DatabaseUser added in v1.13.0

type DatabaseUser struct {
	Username   string `yaml:"user"`
	Password   string `yaml:"password"`
	AccessType string
}

func NewDummyUser added in v1.15.0

func NewDummyUser(access string) *DatabaseUser

type Dummy added in v1.15.0

type Dummy struct {
	Error error
}

Dummy is a database interface implementation for unit testing

func (Dummy) CheckStatus added in v1.15.0

func (Dummy) CheckStatus(user *DatabaseUser) error

CheckStatus implements Database.

func (Dummy) GetCredentials added in v1.15.0

func (Dummy) GetCredentials(user *DatabaseUser) Credentials

GetCredentials implements Database.

func (Dummy) GetDatabaseAddress added in v1.15.0

func (Dummy) GetDatabaseAddress() DatabaseAddress

GetDatabaseAddress implements Database.

func (Dummy) ParseAdminCredentials added in v1.15.0

func (Dummy) ParseAdminCredentials(data map[string][]byte) (*DatabaseUser, error)

ParseAdminCredentials implements Database.

func (Dummy) QueryAsUser added in v1.15.0

func (d Dummy) QueryAsUser(query string, user *DatabaseUser) (string, error)

QueryAsUser implements Database.

type Mysql

type Mysql struct {
	Backend      string
	Host         string
	Port         uint16
	Database     string
	SSLEnabled   bool
	SkipCAVerify bool
}

Mysql is a database interface, abstraced object represents a database on mysql instance can be used to execute query to mysql database

func (Mysql) CheckStatus

func (m Mysql) CheckStatus(user *DatabaseUser) error

CheckStatus checks status of mysql database if the connection to database works

func (Mysql) GetCredentials

func (m Mysql) GetCredentials(user *DatabaseUser) Credentials

GetCredentials returns credentials of the mysql database

func (Mysql) GetDatabaseAddress

func (m Mysql) GetDatabaseAddress() DatabaseAddress

func (Mysql) ParseAdminCredentials

func (m Mysql) ParseAdminCredentials(data map[string][]byte) (*DatabaseUser, error)

ParseAdminCredentials parse admin username and password of mysql database from secret data If "user" key is not defined, take "root" as admin user by default

func (Mysql) QueryAsUser added in v1.15.0

func (m Mysql) QueryAsUser(query string, user *DatabaseUser) (string, error)

type Postgres

type Postgres struct {
	Backend          string
	Host             string
	Port             uint16
	Database         string
	Monitoring       bool
	Extensions       []string
	SSLEnabled       bool
	SkipCAVerify     bool
	DropPublicSchema bool
	Schemas          []string
	Template         string
	// A user that is created with the Database
	//  it's required to set default priveleges
	//  for additional users
	MainUser *DatabaseUser
}

Postgres is a database interface, abstraced object represents a database on postgres instance can be used to execute query to postgres database

func (Postgres) CheckStatus

func (p Postgres) CheckStatus(user *DatabaseUser) error

CheckStatus checks status of postgres database if the connection to database works

func (Postgres) GetCredentials

func (p Postgres) GetCredentials(user *DatabaseUser) Credentials

GetCredentials returns credentials of the postgres database

func (Postgres) GetDatabaseAddress

func (p Postgres) GetDatabaseAddress() DatabaseAddress

func (Postgres) ParseAdminCredentials

func (p Postgres) ParseAdminCredentials(data map[string][]byte) (*DatabaseUser, error)

ParseAdminCredentials parse admin username and password of postgres database from secret data If "user" key is not defined, take "postgres" as admin user by default

func (Postgres) QueryAsUser added in v1.15.0

func (p Postgres) QueryAsUser(query string, user *DatabaseUser) (string, error)

Jump to

Keyboard shortcuts

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