Documentation ¶
Index ¶
- Constants
- type BundleReader
- type BundleWriter
- type DataReader
- func (r *DataReader) HeadSnapshot(ctx context.Context, tenantID string) (token.SnapToken, error)
- func (r *DataReader) QueryAttributes(ctx context.Context, tenantID string, filter *base.AttributeFilter, ...) (it *database.AttributeIterator, err error)
- func (r *DataReader) QueryRelationships(ctx context.Context, tenantID string, filter *base.TupleFilter, snap string) (it *database.TupleIterator, err error)
- func (r *DataReader) QuerySingleAttribute(ctx context.Context, tenantID string, filter *base.AttributeFilter, ...) (attribute *base.Attribute, err error)
- func (r *DataReader) QueryUniqueEntities(ctx context.Context, tenantID, name, snap string, ...) (ids []string, ct database.EncodedContinuousToken, err error)
- func (r *DataReader) QueryUniqueSubjectReferences(ctx context.Context, tenantID string, subjectReference *base.RelationReference, ...) (ids []string, ct database.EncodedContinuousToken, err error)
- func (r *DataReader) ReadAttributes(ctx context.Context, tenantID string, filter *base.AttributeFilter, ...) (collection *database.AttributeCollection, ct database.EncodedContinuousToken, ...)
- func (r *DataReader) ReadRelationships(ctx context.Context, tenantID string, filter *base.TupleFilter, snap string, ...) (collection *database.TupleCollection, ct database.EncodedContinuousToken, ...)
- type DataWriter
- func (w *DataWriter) Delete(ctx context.Context, tenantID string, tupleFilter *base.TupleFilter, ...) (token.EncodedSnapToken, error)
- func (w *DataWriter) RunBundle(ctx context.Context, tenantID string, arguments map[string]string, ...) (token.EncodedSnapToken, error)
- func (w *DataWriter) Write(ctx context.Context, tenantID string, ...) (token token.EncodedSnapToken, err error)
- type SchemaReader
- func (r *SchemaReader) HeadVersion(ctx context.Context, tenantID string) (version string, err error)
- func (r *SchemaReader) ListSchemas(ctx context.Context, tenantID string, pagination database.Pagination) (schemas []*base.SchemaList, ct database.EncodedContinuousToken, err error)
- func (r *SchemaReader) ReadEntityDefinition(ctx context.Context, tenantID, name, version string) (definition *base.EntityDefinition, v string, err error)
- func (r *SchemaReader) ReadRuleDefinition(ctx context.Context, tenantID, name, version string) (definition *base.RuleDefinition, v string, err error)
- func (r *SchemaReader) ReadSchema(ctx context.Context, tenantID, version string) (sch *base.SchemaDefinition, err error)
- func (r *SchemaReader) ReadSchemaString(ctx context.Context, tenantID, version string) (definitions []string, err error)
- type SchemaWriter
- type TenantReader
- type TenantWriter
- type Watch
Constants ¶
const ( RelationTuplesTable = "relation_tuples" AttributesTable = "attributes" SchemaDefinitionTable = "schema_definitions" TransactionsTable = "transactions" TenantsTable = "tenants" BundlesTable = "bundles" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BundleReader ¶ added in v0.6.0
type BundleReader struct {
// contains filtered or unexported fields
}
func NewBundleReader ¶ added in v0.6.0
func NewBundleReader(database *db.Postgres) *BundleReader
func (*BundleReader) Read ¶ added in v0.6.0
func (b *BundleReader) Read(ctx context.Context, tenantID, name string) (bundle *base.DataBundle, err error)
type BundleWriter ¶ added in v0.6.0
type BundleWriter struct {
// contains filtered or unexported fields
}
func NewBundleWriter ¶ added in v0.6.0
func NewBundleWriter(database *db.Postgres) *BundleWriter
type DataReader ¶ added in v0.5.0
type DataReader struct {
// contains filtered or unexported fields
}
DataReader is a struct which holds a reference to the database, transaction options and a logger. It is responsible for reading data from the database.
func NewDataReader ¶ added in v0.5.0
func NewDataReader(database *db.Postgres) *DataReader
NewDataReader is a constructor function for DataReader. It initializes a new DataReader with a given database, a logger, and sets transaction options to be read-only with Repeatable Read isolation level.
func (*DataReader) HeadSnapshot ¶ added in v0.5.0
HeadSnapshot retrieves the latest snapshot token associated with the tenant.
func (*DataReader) QueryAttributes ¶ added in v0.5.0
func (r *DataReader) QueryAttributes(ctx context.Context, tenantID string, filter *base.AttributeFilter, snap string) (it *database.AttributeIterator, err error)
QueryAttributes reads multiple attributes from the storage based on the given filter.
func (*DataReader) QueryRelationships ¶ added in v0.5.0
func (r *DataReader) QueryRelationships(ctx context.Context, tenantID string, filter *base.TupleFilter, snap string) (it *database.TupleIterator, err error)
QueryRelationships reads relation tuples from the storage based on the given filter.
func (*DataReader) QuerySingleAttribute ¶ added in v0.5.0
func (r *DataReader) QuerySingleAttribute(ctx context.Context, tenantID string, filter *base.AttributeFilter, snap string) (attribute *base.Attribute, err error)
QuerySingleAttribute retrieves a single attribute from the storage based on the given filter.
func (*DataReader) QueryUniqueEntities ¶ added in v0.5.0
func (r *DataReader) QueryUniqueEntities(ctx context.Context, tenantID, name, snap string, pagination database.Pagination) (ids []string, ct database.EncodedContinuousToken, err error)
QueryUniqueEntities reads unique entities from the storage based on the given filter and pagination.
func (*DataReader) QueryUniqueSubjectReferences ¶ added in v0.5.0
func (r *DataReader) QueryUniqueSubjectReferences(ctx context.Context, tenantID string, subjectReference *base.RelationReference, snap string, pagination database.Pagination) (ids []string, ct database.EncodedContinuousToken, err error)
QueryUniqueSubjectReferences reads unique subject references from the storage based on the given filter and pagination.
func (*DataReader) ReadAttributes ¶ added in v0.5.0
func (r *DataReader) ReadAttributes(ctx context.Context, tenantID string, filter *base.AttributeFilter, snap string, pagination database.Pagination) (collection *database.AttributeCollection, ct database.EncodedContinuousToken, err error)
ReadAttributes reads multiple attributes from the storage based on the given filter and pagination.
func (*DataReader) ReadRelationships ¶ added in v0.5.0
func (r *DataReader) ReadRelationships(ctx context.Context, tenantID string, filter *base.TupleFilter, snap string, pagination database.Pagination) (collection *database.TupleCollection, ct database.EncodedContinuousToken, err error)
ReadRelationships reads relation tuples from the storage based on the given filter and pagination.
type DataWriter ¶ added in v0.5.0
type DataWriter struct {
// contains filtered or unexported fields
}
DataWriter - Structure for Data Writer
func NewDataWriter ¶ added in v0.5.0
func NewDataWriter(database *db.Postgres) *DataWriter
func (*DataWriter) Delete ¶ added in v0.5.0
func (w *DataWriter) Delete( ctx context.Context, tenantID string, tupleFilter *base.TupleFilter, attributeFilter *base.AttributeFilter, ) (token.EncodedSnapToken, error)
Delete method removes data from the database based on the provided tuple and attribute filters. It returns an EncodedSnapToken upon successful deletion or an error if the deletion fails.
func (*DataWriter) RunBundle ¶ added in v0.6.0
func (w *DataWriter) RunBundle( ctx context.Context, tenantID string, arguments map[string]string, b *base.DataBundle, ) (token.EncodedSnapToken, error)
RunBundle executes a bundle of operations in the context of a given tenant. It returns an EncodedSnapToken upon successful completion or an error if the operation fails.
func (*DataWriter) Write ¶ added in v0.5.0
func (w *DataWriter) Write( ctx context.Context, tenantID string, tupleCollection *database.TupleCollection, attributeCollection *database.AttributeCollection, ) (token token.EncodedSnapToken, err error)
Write method writes a collection of tuples and attributes to the database for a specific tenant. It returns an EncodedSnapToken upon successful write or an error if the write fails.
type SchemaReader ¶
type SchemaReader struct {
// contains filtered or unexported fields
}
SchemaReader - Structure for SchemaReader
func NewSchemaReader ¶
func NewSchemaReader(database *db.Postgres) *SchemaReader
NewSchemaReader - Creates a new SchemaReader
func (*SchemaReader) HeadVersion ¶
func (r *SchemaReader) HeadVersion(ctx context.Context, tenantID string) (version string, err error)
HeadVersion - Finds the latest version of the schema.
func (*SchemaReader) ListSchemas ¶ added in v0.7.5
func (r *SchemaReader) ListSchemas(ctx context.Context, tenantID string, pagination database.Pagination) (schemas []*base.SchemaList, ct database.EncodedContinuousToken, err error)
ListSchemas - List all Schemas
func (*SchemaReader) ReadEntityDefinition ¶ added in v0.5.0
func (r *SchemaReader) ReadEntityDefinition(ctx context.Context, tenantID, name, version string) (definition *base.EntityDefinition, v string, err error)
ReadEntityDefinition - Reads entity config from the repository.
func (*SchemaReader) ReadRuleDefinition ¶ added in v0.5.0
func (r *SchemaReader) ReadRuleDefinition(ctx context.Context, tenantID, name, version string) (definition *base.RuleDefinition, v string, err error)
ReadRuleDefinition - Reads rule config from the repository.
func (*SchemaReader) ReadSchema ¶
func (r *SchemaReader) ReadSchema(ctx context.Context, tenantID, version string) (sch *base.SchemaDefinition, err error)
ReadSchema returns the schema definition for a specific tenant and version as a structured object.
func (*SchemaReader) ReadSchemaString ¶ added in v0.7.9
func (r *SchemaReader) ReadSchemaString(ctx context.Context, tenantID, version string) (definitions []string, err error)
ReadSchemaString returns the schema definition for a specific tenant and version as a string.
type SchemaWriter ¶
type SchemaWriter struct {
// contains filtered or unexported fields
}
SchemaWriter - Structure for SchemaWriter
func NewSchemaWriter ¶
func NewSchemaWriter(database *db.Postgres) *SchemaWriter
NewSchemaWriter creates a new SchemaWriter
func (*SchemaWriter) WriteSchema ¶
func (w *SchemaWriter) WriteSchema(ctx context.Context, schemas []storage.SchemaDefinition) (err error)
WriteSchema writes a schema to the database
type TenantReader ¶
type TenantReader struct {
// contains filtered or unexported fields
}
func NewTenantReader ¶
func NewTenantReader(database *db.Postgres) *TenantReader
NewTenantReader - Creates a new TenantReader
func (*TenantReader) ListTenants ¶
func (r *TenantReader) ListTenants(ctx context.Context, pagination database.Pagination) (tenants []*base.Tenant, ct database.EncodedContinuousToken, err error)
ListTenants - Lists all Tenants
type TenantWriter ¶
type TenantWriter struct {
// contains filtered or unexported fields
}
TenantWriter - Structure for Tenant Writer
func NewTenantWriter ¶
func NewTenantWriter(database *db.Postgres) *TenantWriter
NewTenantWriter - Creates a new TenantWriter
func (*TenantWriter) CreateTenant ¶
func (w *TenantWriter) CreateTenant(ctx context.Context, id, name string) (result *base.Tenant, err error)
CreateTenant - Creates a new Tenant
func (*TenantWriter) DeleteTenant ¶
func (w *TenantWriter) DeleteTenant(ctx context.Context, tenantID string) (result *base.Tenant, err error)
DeleteTenant - Deletes a Tenant
type Watch ¶ added in v0.4.4
type Watch struct {
// contains filtered or unexported fields
}
Watch is an implementation of the storage.Watch interface, which is used
func NewWatcher ¶ added in v0.4.4
NewWatcher returns a new instance of the Watch.