Documentation
¶
Overview ¶
Package sqlite contains an implementation of the storage interface that works with SQLite.
Index ¶
- func HandleSQLError(err error, args ...interface{}) error
- func PrepareDSN(uri string) (string, error)
- type Datastore
- func (s *Datastore) Close()
- func (s *Datastore) CreateStore(ctx context.Context, store *openfgav1.Store) (*openfgav1.Store, error)
- func (s *Datastore) DeleteStore(ctx context.Context, id string) error
- func (s *Datastore) FindLatestAuthorizationModel(ctx context.Context, store string) (*openfgav1.AuthorizationModel, error)
- func (s *Datastore) GetStore(ctx context.Context, id string) (*openfgav1.Store, error)
- func (s *Datastore) IsReady(ctx context.Context) (storage.ReadinessStatus, error)
- func (s *Datastore) ListStores(ctx context.Context, options storage.ListStoresOptions) ([]*openfgav1.Store, []byte, error)
- func (s *Datastore) MaxTuplesPerWrite() int
- func (s *Datastore) MaxTypesPerAuthorizationModel() int
- func (s *Datastore) Read(ctx context.Context, store string, tupleKey *openfgav1.TupleKey, ...) (storage.TupleIterator, error)
- func (s *Datastore) ReadAssertions(ctx context.Context, store, modelID string) ([]*openfgav1.Assertion, error)
- func (s *Datastore) ReadAuthorizationModel(ctx context.Context, store string, modelID string) (*openfgav1.AuthorizationModel, error)
- func (s *Datastore) ReadAuthorizationModels(ctx context.Context, store string, ...) ([]*openfgav1.AuthorizationModel, []byte, error)
- func (s *Datastore) ReadChanges(ctx context.Context, store string, filter storage.ReadChangesFilter, ...) ([]*openfgav1.TupleChange, []byte, error)
- func (s *Datastore) ReadPage(ctx context.Context, store string, tupleKey *openfgav1.TupleKey, ...) ([]*openfgav1.Tuple, []byte, error)
- func (s *Datastore) ReadStartingWithUser(ctx context.Context, store string, filter storage.ReadStartingWithUserFilter, ...) (storage.TupleIterator, error)
- func (s *Datastore) ReadUserTuple(ctx context.Context, store string, tupleKey *openfgav1.TupleKey, ...) (*openfgav1.Tuple, error)
- func (s *Datastore) ReadUsersetTuples(ctx context.Context, store string, filter storage.ReadUsersetTuplesFilter, ...) (storage.TupleIterator, error)
- func (s *Datastore) Write(ctx context.Context, store string, deletes storage.Deletes, ...) error
- func (s *Datastore) WriteAssertions(ctx context.Context, store, modelID string, assertions []*openfgav1.Assertion) error
- func (s *Datastore) WriteAuthorizationModel(ctx context.Context, store string, model *openfgav1.AuthorizationModel) error
- type SQLTupleIterator
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HandleSQLError ¶ added in v1.6.2
HandleSQLError processes an SQL error and converts it into a more specific error type based on the nature of the SQL error.
func PrepareDSN ¶
Prepare a raw DSN from config for use with SQLite, specifying defaults for journal mode and busy timeout.
Types ¶
type Datastore ¶ added in v1.6.2
type Datastore struct {
// contains filtered or unexported fields
}
Datastore provides a SQLite based implementation of storage.OpenFGADatastore.
func (*Datastore) Close ¶ added in v1.6.2
func (s *Datastore) Close()
Close see storage.OpenFGADatastore.Close.
func (*Datastore) CreateStore ¶ added in v1.6.2
func (s *Datastore) CreateStore(ctx context.Context, store *openfgav1.Store) (*openfgav1.Store, error)
CreateStore adds a new store to storage.
func (*Datastore) DeleteStore ¶ added in v1.6.2
DeleteStore removes a store from storage.
func (*Datastore) FindLatestAuthorizationModel ¶ added in v1.6.2
func (s *Datastore) FindLatestAuthorizationModel(ctx context.Context, store string) (*openfgav1.AuthorizationModel, error)
FindLatestAuthorizationModel see storage.AuthorizationModelReadBackend.FindLatestAuthorizationModel.
func (*Datastore) GetStore ¶ added in v1.6.2
GetStore retrieves the details of a specific store using its storeID.
func (*Datastore) IsReady ¶ added in v1.6.2
IsReady see sqlcommon.IsReady.
func (*Datastore) ListStores ¶ added in v1.6.2
func (s *Datastore) ListStores(ctx context.Context, options storage.ListStoresOptions) ([]*openfgav1.Store, []byte, error)
ListStores provides a paginated list of all stores present in the storage.
func (*Datastore) MaxTuplesPerWrite ¶ added in v1.6.2
MaxTuplesPerWrite see storage.RelationshipTupleWriter.MaxTuplesPerWrite.
func (*Datastore) MaxTypesPerAuthorizationModel ¶ added in v1.6.2
MaxTypesPerAuthorizationModel see storage.TypeDefinitionWriteBackend.MaxTypesPerAuthorizationModel.
func (*Datastore) Read ¶ added in v1.6.2
func (s *Datastore) Read( ctx context.Context, store string, tupleKey *openfgav1.TupleKey, _ storage.ReadOptions, ) (storage.TupleIterator, error)
Read see storage.RelationshipTupleReader.Read.
func (*Datastore) ReadAssertions ¶ added in v1.6.2
func (s *Datastore) ReadAssertions(ctx context.Context, store, modelID string) ([]*openfgav1.Assertion, error)
ReadAssertions see storage.AssertionsBackend.ReadAssertions.
func (*Datastore) ReadAuthorizationModel ¶ added in v1.6.2
func (s *Datastore) ReadAuthorizationModel(ctx context.Context, store string, modelID string) (*openfgav1.AuthorizationModel, error)
ReadAuthorizationModel see storage.AuthorizationModelReadBackend.ReadAuthorizationModel.
func (*Datastore) ReadAuthorizationModels ¶ added in v1.6.2
func (s *Datastore) ReadAuthorizationModels( ctx context.Context, store string, options storage.ReadAuthorizationModelsOptions, ) ([]*openfgav1.AuthorizationModel, []byte, error)
ReadAuthorizationModels see storage.AuthorizationModelReadBackend.ReadAuthorizationModels.
func (*Datastore) ReadChanges ¶ added in v1.6.2
func (s *Datastore) ReadChanges( ctx context.Context, store string, filter storage.ReadChangesFilter, options storage.ReadChangesOptions, ) ([]*openfgav1.TupleChange, []byte, error)
ReadChanges see storage.ChangelogBackend.ReadChanges.
func (*Datastore) ReadPage ¶ added in v1.6.2
func (s *Datastore) ReadPage( ctx context.Context, store string, tupleKey *openfgav1.TupleKey, options storage.ReadPageOptions, ) ([]*openfgav1.Tuple, []byte, error)
ReadPage see storage.RelationshipTupleReader.ReadPage.
func (*Datastore) ReadStartingWithUser ¶ added in v1.6.2
func (s *Datastore) ReadStartingWithUser( ctx context.Context, store string, filter storage.ReadStartingWithUserFilter, _ storage.ReadStartingWithUserOptions, ) (storage.TupleIterator, error)
ReadStartingWithUser see storage.RelationshipTupleReader.ReadStartingWithUser.
func (*Datastore) ReadUserTuple ¶ added in v1.6.2
func (s *Datastore) ReadUserTuple(ctx context.Context, store string, tupleKey *openfgav1.TupleKey, _ storage.ReadUserTupleOptions) (*openfgav1.Tuple, error)
ReadUserTuple see storage.RelationshipTupleReader.ReadUserTuple.
func (*Datastore) ReadUsersetTuples ¶ added in v1.6.2
func (s *Datastore) ReadUsersetTuples( ctx context.Context, store string, filter storage.ReadUsersetTuplesFilter, _ storage.ReadUsersetTuplesOptions, ) (storage.TupleIterator, error)
ReadUsersetTuples see storage.RelationshipTupleReader.ReadUsersetTuples.
func (*Datastore) Write ¶ added in v1.6.2
func (s *Datastore) Write( ctx context.Context, store string, deletes storage.Deletes, writes storage.Writes, ) error
Write see storage.RelationshipTupleWriter.Write.
func (*Datastore) WriteAssertions ¶ added in v1.6.2
func (s *Datastore) WriteAssertions(ctx context.Context, store, modelID string, assertions []*openfgav1.Assertion) error
WriteAssertions see storage.AssertionsBackend.WriteAssertions.
func (*Datastore) WriteAuthorizationModel ¶ added in v1.6.2
func (s *Datastore) WriteAuthorizationModel(ctx context.Context, store string, model *openfgav1.AuthorizationModel) error
WriteAuthorizationModel see storage.TypeDefinitionWriteBackend.WriteAuthorizationModel.
type SQLTupleIterator ¶
type SQLTupleIterator struct {
// contains filtered or unexported fields
}
SQLTupleIterator is a struct that implements the storage.TupleIterator interface for iterating over tuples fetched from a SQL database.
func NewSQLTupleIterator ¶
func NewSQLTupleIterator(rows *sql.Rows) *SQLTupleIterator
NewSQLTupleIterator returns a SQL tuple iterator.
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.