sqlcommon

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2023 License: Apache-2.0 Imports: 18 Imported by: 1

Documentation

Overview

Package sqlcommon contains utility functions shared among all SQL data stores.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HandleSQLError

func HandleSQLError(err error, args ...interface{}) error

func IsReady added in v1.3.4

func IsReady(ctx context.Context, db *sql.DB) (storage.ReadinessStatus, error)

IsReady returns true if the connection to the datastore is successful

func ReadAuthorizationModel added in v1.3.3

func ReadAuthorizationModel(
	ctx context.Context,
	dbInfo *DBInfo,
	store, modelID string,
) (*openfgav1.AuthorizationModel, error)

func Write

func Write(
	ctx context.Context,
	dbInfo *DBInfo,
	store string,
	deletes storage.Deletes,
	writes storage.Writes,
	now time.Time,
) error

Write provides the common method for writing to database across sql storage

func WriteAuthorizationModel added in v1.3.3

func WriteAuthorizationModel(
	ctx context.Context,
	dbInfo *DBInfo,
	store string,
	model *openfgav1.AuthorizationModel,
) error

Types

type Config

type Config struct {
	Username               string
	Password               string
	Logger                 logger.Logger
	MaxTuplesPerWriteField int
	MaxTypesPerModelField  int

	MaxOpenConns    int
	MaxIdleConns    int
	ConnMaxIdleTime time.Duration
	ConnMaxLifetime time.Duration

	ExportMetrics bool
}

func NewConfig

func NewConfig(opts ...DatastoreOption) *Config

type ContToken

type ContToken struct {
	Ulid       string `json:"ulid"`
	ObjectType string `json:"ObjectType"`
}

func NewContToken

func NewContToken(ulid, objectType string) *ContToken

func UnmarshallContToken

func UnmarshallContToken(from string) (*ContToken, error)

type DBInfo

type DBInfo struct {
	// contains filtered or unexported fields
}

DBInfo encapsulates DB information for use in common method

func NewDBInfo

func NewDBInfo(db *sql.DB, stbl sq.StatementBuilderType, sqlTime interface{}) *DBInfo

NewDBInfo constructs a DBInfo objet

type DatastoreOption

type DatastoreOption func(*Config)

func WithConnMaxIdleTime

func WithConnMaxIdleTime(d time.Duration) DatastoreOption

func WithConnMaxLifetime

func WithConnMaxLifetime(d time.Duration) DatastoreOption

func WithLogger

func WithLogger(l logger.Logger) DatastoreOption

func WithMaxIdleConns

func WithMaxIdleConns(c int) DatastoreOption

func WithMaxOpenConns

func WithMaxOpenConns(c int) DatastoreOption

func WithMaxTuplesPerWrite

func WithMaxTuplesPerWrite(maxTuples int) DatastoreOption

func WithMaxTypesPerAuthorizationModel

func WithMaxTypesPerAuthorizationModel(maxTypes int) DatastoreOption

func WithMetrics added in v1.3.5

func WithMetrics() DatastoreOption

func WithPassword added in v1.1.0

func WithPassword(password string) DatastoreOption

func WithUsername added in v1.1.0

func WithUsername(username string) DatastoreOption

type SQLTupleIterator

type SQLTupleIterator struct {
	// contains filtered or unexported fields
}

func NewSQLTupleIterator

func NewSQLTupleIterator(rows *sql.Rows) *SQLTupleIterator

NewSQLTupleIterator returns a SQL tuple iterator

func (*SQLTupleIterator) Next

func (*SQLTupleIterator) Stop

func (t *SQLTupleIterator) Stop()

func (*SQLTupleIterator) ToArray

func (t *SQLTupleIterator) ToArray(
	opts storage.PaginationOptions,
) ([]*openfgav1.Tuple, []byte, error)

ToArray converts the tupleIterator to an []*openfgav1.Tuple and a possibly empty continuation token. If the continuation token exists it is the ulid of the last element of the returned array.

Jump to

Keyboard shortcuts

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