Documentation ¶
Index ¶
- func NewInvalidSubjectTypeError(update *core.RelationTuple, relationType *core.AllowedRelation, ...) error
- func ValidateOneRelationship(namespaceMap map[string]*typesystem.TypeSystem, ...) error
- func ValidateRelationshipUpdates(ctx context.Context, reader datastore.Reader, ...) error
- func ValidateRelationshipsForCreateOrTouch(ctx context.Context, reader datastore.Reader, rels []*core.RelationTuple) error
- type ErrCannotWriteToPermission
- type ErrCaveatNotFound
- type ErrInvalidSubjectType
- type ValidationRelationshipRule
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewInvalidSubjectTypeError ¶
func NewInvalidSubjectTypeError( update *core.RelationTuple, relationType *core.AllowedRelation, typeSystem *typesystem.TypeSystem, ) error
NewInvalidSubjectTypeError constructs a new error for attempting to write an invalid subject type.
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 (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 )