relationships

package
v1.28.0 Latest Latest
Warning

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

Go to latest
Published: Nov 27, 2023 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ValidateOneRelationship added in v1.22.0

func ValidateOneRelationship(
	namespaceMap map[string]*typesystem.TypeSystem,
	caveatMap map[string]*core.CaveatDefinition,
	rel *core.RelationTuple,
	rule ValidationRelationshipRule,
) error

ValidateOneRelationship validates a single relationship for CREATE/TOUCH or DELETE.

func ValidateRelationshipUpdates

func ValidateRelationshipUpdates(
	ctx context.Context,
	reader datastore.Reader,
	updates []*core.RelationTupleUpdate,
) error

ValidateRelationshipUpdates performs validation on the given relationship updates, ensuring that they can be applied against the datastore.

func ValidateRelationshipsForCreateOrTouch added in v1.23.0

func ValidateRelationshipsForCreateOrTouch(
	ctx context.Context,
	reader datastore.Reader,
	rels []*core.RelationTuple,
) error

ValidateRelationshipsForCreateOrTouch performs validation on the given relationships to be written, ensuring that they can be applied against the datastore.

NOTE: This method *cannot* be used for relationships that will be deleted.

Types

type ErrCannotWriteToPermission

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

ErrCannotWriteToPermission indicates that a write was attempted on a permission.

func NewCannotWriteToPermissionError

func NewCannotWriteToPermissionError(update *core.RelationTuple) ErrCannotWriteToPermission

NewCannotWriteToPermissionError constructs a new error for attempting to write to a permission.

func (ErrCannotWriteToPermission) GRPCStatus

func (err ErrCannotWriteToPermission) GRPCStatus() *status.Status

GRPCStatus implements retrieving the gRPC status for the error.

type ErrCaveatNotFound

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

ErrCaveatNotFound indicates that a caveat referenced in a relationship update was not found.

func NewCaveatNotFoundError

func NewCaveatNotFoundError(update *core.RelationTuple) ErrCaveatNotFound

NewCaveatNotFoundError constructs a new caveat not found error.

func (ErrCaveatNotFound) GRPCStatus

func (err ErrCaveatNotFound) GRPCStatus() *status.Status

GRPCStatus implements retrieving the gRPC status for the error.

type ErrInvalidSubjectType

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

ErrInvalidSubjectType indicates that a write was attempted with a subject type which is not allowed on relation.

func NewInvalidSubjectTypeError

func NewInvalidSubjectTypeError(update *core.RelationTuple, relationType *core.AllowedRelation) ErrInvalidSubjectType

NewInvalidSubjectTypeError constructs a new error for attempting to write an invalid subject type.

func (ErrInvalidSubjectType) GRPCStatus

func (err ErrInvalidSubjectType) GRPCStatus() *status.Status

GRPCStatus implements retrieving the gRPC status for the error.

type ValidationRelationshipRule added in v1.23.0

type ValidationRelationshipRule int

ValidationRelationshipRule is the rule to use for the validation.

const (
	// ValidateRelationshipForCreateOrTouch indicates that the validation should occur for a CREATE or TOUCH operation.
	ValidateRelationshipForCreateOrTouch ValidationRelationshipRule = 0

	// ValidateRelationshipForDeletion indicates that the validation should occur for a DELETE operation.
	ValidateRelationshipForDeletion ValidationRelationshipRule = 1
)

Jump to

Keyboard shortcuts

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