commands

package
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Jun 26, 2023 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	IndirectWriteErrorReason = "Attempting to write directly to an indirect only relationship"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ConnectedObjectsCommand

type ConnectedObjectsCommand struct {
	Datastore storage.OpenFGADatastore

	ResolveNodeLimit uint32

	// Limit limits the results yielded by the ConnectedObjects API.
	Limit uint32
}

func (*ConnectedObjectsCommand) StreamedConnectedObjects

func (c *ConnectedObjectsCommand) StreamedConnectedObjects(
	ctx context.Context,
	req *ConnectedObjectsRequest,
	resultChan chan<- ListObjectsResult,
) error

StreamedConnectedObjects yields all the objects of the provided objectType that the given user has a specific relation with. The results will be limited by the request limit. If a 0 limit is provided then all objects of the provided objectType will be returned.

type ConnectedObjectsRequest

type ConnectedObjectsRequest struct {
	StoreID          string
	Typesystem       *typesystem.TypeSystem
	ObjectType       string
	Relation         string
	User             isUserRef
	ContextualTuples []*openfgapb.TupleKey
}

type CreateStoreCommand

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

func NewCreateStoreCommand

func NewCreateStoreCommand(
	storesBackend storage.StoresBackend,
	logger logger.Logger,
) *CreateStoreCommand

func (*CreateStoreCommand) Execute

type DeleteStoreCommand

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

func NewDeleteStoreCommand

func NewDeleteStoreCommand(
	storesBackend storage.StoresBackend,
	logger logger.Logger,
) *DeleteStoreCommand

func (*DeleteStoreCommand) Execute

type ExpandQuery

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

ExpandQuery resolves a target TupleKey into a UsersetTree by expanding type definitions.

func NewExpandQuery

func NewExpandQuery(datastore storage.OpenFGADatastore, logger logger.Logger) *ExpandQuery

NewExpandQuery creates a new ExpandQuery using the supplied backends for retrieving data.

func (*ExpandQuery) Execute

type GetStoreQuery

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

func NewGetStoreQuery

func NewGetStoreQuery(storesBackend storage.StoresBackend, logger logger.Logger) *GetStoreQuery

func (*GetStoreQuery) Execute

type ListObjectsQuery

type ListObjectsQuery struct {
	Datastore             storage.OpenFGADatastore
	Logger                logger.Logger
	ListObjectsDeadline   time.Duration
	ListObjectsMaxResults uint32
	ResolveNodeLimit      uint32
}

func (*ListObjectsQuery) Execute

Execute the ListObjectsQuery, returning a list of object IDs up to a maximum of q.ListObjectsMaxResults or until q.ListObjectsDeadline is hit, whichever happens first.

func (*ListObjectsQuery) ExecuteStreamed

ExecuteStreamed executes the ListObjectsQuery, returning a stream of object IDs. It ignores the value of q.ListObjectsMaxResults and returns all available results until q.ListObjectsDeadline is hit

type ListObjectsResult added in v1.1.1

type ListObjectsResult struct {
	ObjectID string
	Err      error
}

type ListStoresQuery

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

func NewListStoresQuery

func NewListStoresQuery(storesBackend storage.StoresBackend, logger logger.Logger, encoder encoder.Encoder) *ListStoresQuery

func (*ListStoresQuery) Execute

type ReadAssertionsQuery

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

func NewReadAssertionsQuery

func NewReadAssertionsQuery(backend storage.AssertionsBackend, logger logger.Logger) *ReadAssertionsQuery

func (*ReadAssertionsQuery) Execute

func (q *ReadAssertionsQuery) Execute(ctx context.Context, store, authorizationModelID string) (*openfgapb.ReadAssertionsResponse, error)

type ReadAuthorizationModelQuery

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

ReadAuthorizationModelQuery retrieves a single type definition from a storage backend.

type ReadAuthorizationModelsQuery

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

type ReadChangesQuery

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

func NewReadChangesQuery

func NewReadChangesQuery(backend storage.ChangelogBackend, logger logger.Logger, encoder encoder.Encoder, horizonOffset int) *ReadChangesQuery

NewReadChangesQuery creates a ReadChangesQuery with specified `ChangelogBackend` and `typeDefinitionReadBackend` to use for storage

func (*ReadChangesQuery) Execute

Execute the ReadChangesQuery, returning paginated `openfga.TupleChange`(s) and a possibly non-empty continuation token.

type ReadQuery

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

A ReadQuery can be used to read one or many tuplesets Each tupleset specifies keys of a set of relation tuples. The set can include a single tuple key, or all tuples with a given object ID or userset in a type, optionally constrained by a relation name.

func NewReadQuery

func NewReadQuery(datastore storage.OpenFGADatastore, logger logger.Logger, encoder encoder.Encoder) *ReadQuery

NewReadQuery creates a ReadQuery using the provided OpenFGA datastore implementation.

func (*ReadQuery) Execute

Execute the ReadQuery, returning paginated `openfga.Tuple`(s) that match the tuple. Return all tuples if the tuple is nil or empty.

type UserRef

type UserRef struct {

	// Types that are assignable to Ref
	//  *UserRef_Object
	//  *UserRef_TypedWildcard
	//  *UserRef_ObjectRelation
	Ref isUserRef
}

type UserRefObject

type UserRefObject struct {
	Object *openfgapb.Object
}

func (*UserRefObject) GetObjectType

func (u *UserRefObject) GetObjectType() string

func (*UserRefObject) String added in v0.3.5

func (u *UserRefObject) String() string

type UserRefObjectRelation

type UserRefObjectRelation struct {
	ObjectRelation *openfgapb.ObjectRelation
}

func (*UserRefObjectRelation) GetObjectType

func (u *UserRefObjectRelation) GetObjectType() string

func (*UserRefObjectRelation) String added in v0.3.5

func (u *UserRefObjectRelation) String() string

type UserRefTypedWildcard

type UserRefTypedWildcard struct {
	Type string
}

func (*UserRefTypedWildcard) GetObjectType

func (u *UserRefTypedWildcard) GetObjectType() string

func (*UserRefTypedWildcard) String added in v0.3.5

func (u *UserRefTypedWildcard) String() string

type WriteAssertionsCommand

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

func NewWriteAssertionsCommand

func NewWriteAssertionsCommand(
	datastore storage.OpenFGADatastore,
	logger logger.Logger,
) *WriteAssertionsCommand

type WriteAuthorizationModelCommand

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

WriteAuthorizationModelCommand performs updates of the store authorization model.

func (*WriteAuthorizationModelCommand) Execute

Execute the command using the supplied request.

type WriteCommand

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

WriteCommand is used to Write and Delete tuples. Instances may be safely shared by multiple goroutines.

func NewWriteCommand

func NewWriteCommand(datastore storage.OpenFGADatastore, logger logger.Logger) *WriteCommand

NewWriteCommand creates a WriteCommand with specified storage.TupleBackend to use for storage.

func (*WriteCommand) Execute

Execute deletes and writes the specified tuples. Deletes are applied first, then writes.

Jump to

Keyboard shortcuts

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