Documentation
¶
Overview ¶
Package db offers client struct and functions to interact with database connection. It provides encrypting, decrypting, and a way to reset the database.
Index ¶
Constants ¶
const (
// InformerObjectCacheDBPath is where SQLite's object database file will be stored relative to process running steve
InformerObjectCacheDBPath = "informer_object_cache.db"
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Client ¶
type Client interface { WithTransaction(ctx context.Context, forWriting bool, f WithTransactionFunction) error Prepare(stmt string) *sql.Stmt QueryForRows(ctx context.Context, stmt transaction.Stmt, params ...any) (*sql.Rows, error) ReadObjects(rows Rows, typ reflect.Type, shouldDecrypt bool) ([]any, error) ReadStrings(rows Rows) ([]string, error) ReadInt(rows Rows) (int, error) Upsert(tx transaction.Client, stmt *sql.Stmt, key string, obj any, shouldEncrypt bool) error CloseStmt(closable Closable) error NewConnection() error }
Client defines a database client that provides encrypting, decrypting, and database resetting
type Closable ¶
type Closable interface {
Close() error
}
Closable Closes an underlying connection and returns an error on failure.
type Connection ¶
type Connection interface { BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error) Exec(query string, args ...any) (sql.Result, error) Prepare(query string) (*sql.Stmt, error) Close() error }
Connection represents a connection pool.
type Decryptor ¶
type Decryptor interface { // Decrypt accepts a chunk of encrypted data, the nonce used to encrypt it and the ID of the used key (as it rotates). It returns the decrypted data or an error. Decrypt([]byte, []byte, uint32) ([]byte, error) }
Decryptor decrypts data previously encrypted by Encryptor.
type Encryptor ¶
type Encryptor interface { // Encrypt encrypts the specified data, returning: the encrypted data, the nonce used to encrypt the data, and an ID identifying the key that was used (as it rotates). On failure error is returned instead. Encrypt([]byte) ([]byte, []byte, uint32, error) }
Encryptor encrypts data with a key which is rotated to avoid wear-out.
type QueryError ¶
QueryError encapsulates an error while executing a query
func (*QueryError) Error ¶
func (e *QueryError) Error() string
Error returns a string representation of this QueryError
type Rows ¶
Rows represents sql rows. It exposes method to navigate the rows, read their outputs, and close them.
type WithTransactionFunction ¶ added in v0.5.7
type WithTransactionFunction func(tx transaction.Client) error
WithTransactionFunction is a function that uses a transaction
Directories
¶
Path | Synopsis |
---|---|
Package transaction provides mockable interfaces of sql package struct types.
|
Package transaction provides mockable interfaces of sql package struct types. |