reverseexpand

package
v1.3.9 Latest Latest
Warning

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

Go to latest
Published: Dec 6, 2023 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

Package reverseexpand contains the code that handles the ReverseExpand API

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConditionalResultStatus

type ConditionalResultStatus int
const (
	RequiresFurtherEvalStatus ConditionalResultStatus = iota
	NoFurtherEvalStatus
)

type IsUserRef

type IsUserRef interface {
	GetObjectType() string
	String() string
	// contains filtered or unexported methods
}

type ResolutionMetadata

type ResolutionMetadata struct {
	QueryCount *uint32
}

func NewResolutionMetadata

func NewResolutionMetadata() *ResolutionMetadata

type ReverseExpandQuery

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

func (*ReverseExpandQuery) Execute

func (c *ReverseExpandQuery) Execute(
	ctx context.Context,
	req *ReverseExpandRequest,
	resultChan chan<- *ReverseExpandResult,
	resolutionMetadata *ResolutionMetadata,
)

Execute yields all the objects of the provided objectType that the given user has, possibly, a specific relation with and sends those objects to resultChan. It MUST guarantee no duplicate objects sent.

If an error is encountered before resolving all objects: the provided channel will NOT be closed and - if the error is context cancellation or deadline: Execute may send the error through the channel - otherwise: Execute will send the error through the channel If no errors, Execute will yield all of the objects on the provided channel and then close the channel to signal that it is done.

type ReverseExpandQueryOption

type ReverseExpandQueryOption func(d *ReverseExpandQuery)

func WithResolveNodeBreadthLimit

func WithResolveNodeBreadthLimit(limit uint32) ReverseExpandQueryOption

func WithResolveNodeLimit

func WithResolveNodeLimit(limit uint32) ReverseExpandQueryOption

type ReverseExpandRequest

type ReverseExpandRequest struct {
	StoreID          string
	ObjectType       string
	Relation         string
	User             IsUserRef
	ContextualTuples []*openfgav1.TupleKey
	Context          *structpb.Struct
	// contains filtered or unexported fields
}

type ReverseExpandResult

type ReverseExpandResult struct {
	Err          error
	Object       string
	ResultStatus ConditionalResultStatus
}

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 *openfgav1.Object
}

func (*UserRefObject) GetObjectType

func (u *UserRefObject) GetObjectType() string

func (*UserRefObject) String

func (u *UserRefObject) String() string

type UserRefObjectRelation

type UserRefObjectRelation struct {
	ObjectRelation *openfgav1.ObjectRelation
	Condition      *openfgav1.RelationshipCondition
}

func (*UserRefObjectRelation) GetObjectType

func (u *UserRefObjectRelation) GetObjectType() string

func (*UserRefObjectRelation) String

func (u *UserRefObjectRelation) String() string

type UserRefTypedWildcard

type UserRefTypedWildcard struct {
	Type string
}

func (*UserRefTypedWildcard) GetObjectType

func (u *UserRefTypedWildcard) GetObjectType() string

func (*UserRefTypedWildcard) String

func (u *UserRefTypedWildcard) String() string

Jump to

Keyboard shortcuts

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