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 // It's given in two parts because the root is used as the suffix for the tempfile, and then we'll add a ".db" after it. // In non-test mode, we can append the ".db" extension right here. InformerObjectCacheDBPathRoot = "informer_object_cache" InformerObjectCacheDBPath = InformerObjectCacheDBPathRoot + ".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(isTemp bool) (string, 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. |