tuple

package
v1.5.3 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2024 License: Apache-2.0 Imports: 5 Imported by: 2

Documentation

Overview

Package tuple contains code to manipulate tuples and errors related to tuples.

Index

Constants

View Source
const Wildcard = "*"

Variables

This section is empty.

Functions

func BuildObject

func BuildObject(objectType, objectID string) string

func ConvertAssertionTupleKeyToTupleKey added in v1.3.10

func ConvertAssertionTupleKeyToTupleKey(tk *openfgav1.AssertionTupleKey) *openfgav1.TupleKey

func ConvertCheckRequestTupleKeyToTupleKey added in v1.3.8

func ConvertCheckRequestTupleKeyToTupleKey(tk *openfgav1.CheckRequestTupleKey) *openfgav1.TupleKey

func ConvertReadRequestTupleKeyToTupleKey added in v1.3.8

func ConvertReadRequestTupleKeyToTupleKey(tk *openfgav1.ReadRequestTupleKey) *openfgav1.TupleKey

func GetObjectRelationAsString added in v0.3.5

func GetObjectRelationAsString(objectRelation *openfgav1.ObjectRelation) string

GetObjectRelationAsString returns a string like "object#relation". If there is no relation it returns "object"

func GetRelation

func GetRelation(objectRelation string) string

GetRelation returns the 'relation' portion of an object relation string (e.g. `object#relation`), which may be empty if the input is malformed (or does not contain a relation).

func GetType

func GetType(objectID string) string

GetType returns the type from a supplied Object identifier or an empty string if the object id does not contain a type.

func IsObjectRelation

func IsObjectRelation(userset string) bool

IsObjectRelation returns true if the given string specifies a valid object and relation.

func IsTypedWildcard added in v0.3.0

func IsTypedWildcard(s string) bool

IsTypedWildcard returns true if the string 's' is a typed wildcard. A typed wildcard has the form 'type:*'.

func IsValidObject

func IsValidObject(s string) bool

IsValidObject determines if a string s is a valid object. A valid object contains exactly one `:` and no `#` or spaces.

func IsValidRelation

func IsValidRelation(s string) bool

IsValidRelation determines if a string s is a valid relation. This means it does not contain any `:`, `#`, or spaces.

func IsValidUser

func IsValidUser(user string) bool

IsValidUser determines if a string is a valid user. A valid user contains at most one `:`, at most one `#` and no spaces.

func IsWildcard added in v0.3.0

func IsWildcard(s string) bool

IsWildcard returns true if the string 's' could be interpreted as a typed or untyped wildcard (e.g. '*' or 'type:*')

func NewAssertionTupleKey added in v1.3.10

func NewAssertionTupleKey(object, relation, user string) *openfgav1.AssertionTupleKey

func NewCheckRequestTupleKey added in v1.3.8

func NewCheckRequestTupleKey(object, relation, user string) *openfgav1.CheckRequestTupleKey

func NewExpandRequestTupleKey added in v1.3.8

func NewExpandRequestTupleKey(object, relation string) *openfgav1.ExpandRequestTupleKey

func NewRelationshipCondition added in v1.3.8

func NewRelationshipCondition(name string, context *structpb.Struct) *openfgav1.RelationshipCondition

func NewTupleKey

func NewTupleKey(object, relation, user string) *openfgav1.TupleKey

func NewTupleKeyWithCondition added in v1.3.8

func NewTupleKeyWithCondition(
	object, relation, user, conditionName string,
	context *structpb.Struct,
) *openfgav1.TupleKey

func ObjectKey added in v0.2.1

func ObjectKey(obj *openfgav1.Object) string

ObjectKey returns the canonical key for the provided Object. The ObjectKey of an object is the string 'objectType:objectId'.

func SplitObject

func SplitObject(object string) (string, string)

SplitObject splits an object into an objectType and an objectID. If no type is present, it returns the empty string and the original object.

func SplitObjectRelation

func SplitObjectRelation(objectRelation string) (string, string)

SplitObjectRelation splits an object relation string into an object ID and relation name. If no relation is present, it returns the original string and an empty relation.

func ToObjectRelationString

func ToObjectRelationString(object, relation string) string

ToObjectRelationString formats an object/relation pair as an object#relation string. This is the inverse of SplitObjectRelation.

func TupleKeyToString

func TupleKeyToString(tk TupleWithoutCondition) string

TupleKeyToString converts a tuple key into its string representation. It assumes the tupleKey is valid (i.e. no forbidden characters)

func TupleKeyToTupleKeyWithoutCondition added in v1.3.8

func TupleKeyToTupleKeyWithoutCondition(tk *openfgav1.TupleKey) *openfgav1.TupleKeyWithoutCondition

func TupleKeyWithConditionToString added in v1.3.8

func TupleKeyWithConditionToString(tk TupleWithCondition) string

TupleKeyWithConditionToString converts a tuple key with condition into its string representation. It assumes the tupleKey is valid (i.e. no forbidden characters)

func TupleKeyWithoutConditionToTupleKey added in v1.3.8

func TupleKeyWithoutConditionToTupleKey(tk *openfgav1.TupleKeyWithoutCondition) *openfgav1.TupleKey

func TupleKeysWithoutConditionToTupleKeys added in v1.3.8

func TupleKeysWithoutConditionToTupleKeys(tks ...*openfgav1.TupleKeyWithoutCondition) []*openfgav1.TupleKey

func TypedPublicWildcard added in v1.5.2

func TypedPublicWildcard(objectType string) string

TypedPublicWildcard returns the string tuple representation for a given object type (ex: "user:*")

Types

type InvalidConditionalTupleError added in v1.3.8

type InvalidConditionalTupleError struct {
	Cause    error
	TupleKey TupleWithCondition
}

InvalidConditionalTupleError is returned if the tuple's condition is invalid

func (*InvalidConditionalTupleError) Error added in v1.3.8

func (*InvalidConditionalTupleError) Is added in v1.3.8

func (i *InvalidConditionalTupleError) Is(target error) bool

type InvalidTupleError

type InvalidTupleError struct {
	Cause    error
	TupleKey TupleWithoutCondition
}

InvalidTupleError is returned if the tuple is invalid

func (*InvalidTupleError) Error

func (i *InvalidTupleError) Error() string

func (*InvalidTupleError) Is added in v0.3.0

func (i *InvalidTupleError) Is(target error) bool

type RelationNotFoundError

type RelationNotFoundError struct {
	TupleKey *openfgav1.TupleKey
	Relation string
	TypeName string
}

func (*RelationNotFoundError) Error

func (i *RelationNotFoundError) Error() string

func (*RelationNotFoundError) Is added in v0.3.0

func (i *RelationNotFoundError) Is(target error) bool

type TupleWithCondition added in v1.3.8

type TupleWithCondition interface {
	TupleWithoutCondition
	GetCondition() *openfgav1.RelationshipCondition
}

type TupleWithoutCondition added in v1.3.8

type TupleWithoutCondition interface {
	GetUser() string
	GetObject() string
	GetRelation() string
	String() string
}

type TypeNotFoundError

type TypeNotFoundError struct {
	TypeName string
}

func (*TypeNotFoundError) Error

func (i *TypeNotFoundError) Error() string

func (*TypeNotFoundError) Is added in v0.3.0

func (i *TypeNotFoundError) Is(target error) bool

type UserType

type UserType string
const (
	User    UserType = "user"
	UserSet UserType = "userset"
)

func GetUserTypeFromUser

func GetUserTypeFromUser(user string) UserType

GetUserTypeFromUser returns the type of user (userset or user).

Jump to

Keyboard shortcuts

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