Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Assertion ¶
type Assertion struct {
// RelationshipWithContextString is the string form of the assertion, including optional context.
// Forms:
// `document:firstdoc#view@user:tom`
// `document:seconddoc#view@user:sarah with {"some":"contexthere"}`
RelationshipWithContextString string
// Relationship is the parsed relationship on which the assertion is being
// run.
Relationship tuple.Relationship
// CaveatContext is the caveat context for the assertion, if any.
CaveatContext map[string]any
// SourcePosition is the position of the assertion in the file.
SourcePosition spiceerrors.SourcePosition
}
Assertion is a parsed assertion.
type Assertions ¶
type Assertions struct {
// AssertTrue is the set of relationships to assert true.
AssertTrue []Assertion `yaml:"assertTrue"`
// AssertCaveated is the set of relationships to assert that are caveated.
AssertCaveated []Assertion `yaml:"assertCaveated"`
// AssertFalse is the set of relationships to assert false.
AssertFalse []Assertion `yaml:"assertFalse"`
// SourcePosition is the position of the assertions in the file.
SourcePosition spiceerrors.SourcePosition
}
Assertions represents assertions defined in the validation file.
func ParseAssertionsBlock ¶
func ParseAssertionsBlock(contents []byte) (*Assertions, error)
ParseAssertionsBlock parses the given contents as an assertions block.
func (*Assertions) UnmarshalYAML ¶
func (a *Assertions) UnmarshalYAML(node *yamlv3.Node) error
UnmarshalYAML is a custom unmarshaller.
type ExpectedSubject ¶
type ExpectedSubject struct {
// ValidationString holds a validation string containing a Subject and one or
// more Relations to the parent Object.
// Example: `[tenant/user:someuser#...] is <tenant/document:example#viewer>`
ValidationString ValidationString
// Subject is the subject expected. May be nil if not defined in the line.
SubjectWithExceptions *SubjectWithExceptions
// Resources are the resources under which the subject is found.
Resources []tuple.ObjectAndRelation
// SourcePosition is the position of the expected subject in the file.
SourcePosition spiceerrors.SourcePosition
}
ExpectedSubject is a subject expected for the ObjectAndRelation.
func (*ExpectedSubject) UnmarshalYAML ¶
func (es *ExpectedSubject) UnmarshalYAML(node *yamlv3.Node) error
UnmarshalYAML is a custom unmarshaller.
type ObjectRelation ¶
type ObjectRelation struct {
// ObjectRelationString is the string form of the object relation.
ObjectRelationString string
// ObjectAndRelation is the parsed object and relation.
ObjectAndRelation tuple.ObjectAndRelation
// SourcePosition is the position of the expected relations in the file.
SourcePosition spiceerrors.SourcePosition
}
ObjectRelation represents an ONR defined as a string in the key for the ValidationMap.
func (*ObjectRelation) UnmarshalYAML ¶
func (ors *ObjectRelation) UnmarshalYAML(node *yamlv3.Node) error
UnmarshalYAML is a custom unmarshaller.
type ParsedExpectedRelations ¶
type ParsedExpectedRelations struct {
// ValidationMap is the parsed expected relations validation map.
ValidationMap ValidationMap
// SourcePosition is the position of the expected relations in the file.
SourcePosition spiceerrors.SourcePosition
}
ParsedExpectedRelations represents the expected relations defined in the validation file.
func ParseExpectedRelationsBlock ¶
func ParseExpectedRelationsBlock(contents []byte) (*ParsedExpectedRelations, error)
ParseExpectedRelationsBlock parses the given contents as an expected relations block.
func (*ParsedExpectedRelations) UnmarshalYAML ¶
func (per *ParsedExpectedRelations) UnmarshalYAML(node *yamlv3.Node) error
UnmarshalYAML is a custom unmarshaller.
type ParsedRelationships ¶
type ParsedRelationships struct {
// RelationshipsString is the found string of newline-separated relationships.
RelationshipsString string
// SourcePosition is the position of the schema in the file.
SourcePosition spiceerrors.SourcePosition
// Relationships are the fully parsed relationships.
Relationships []tuple.Relationship
}
ParsedRelationships is the parsed relationships in a validationfile.
func (*ParsedRelationships) UnmarshalYAML ¶
func (pr *ParsedRelationships) UnmarshalYAML(node *yamlv3.Node) error
UnmarshalYAML is a custom unmarshaller.
type SchemaWithPosition ¶ added in v1.43.0
type SchemaWithPosition struct {
// Schema is the schema found.
Schema string
// SourcePosition is the position of the schema in the file.
SourcePosition spiceerrors.SourcePosition
}
SchemaWithPosition is the schema string together with the position of the schema within the validation file.
func (*SchemaWithPosition) UnmarshalYAML ¶ added in v1.43.0
func (ps *SchemaWithPosition) UnmarshalYAML(node *yamlv3.Node) error
UnmarshalYAML is a custom unmarshaller.
type SubjectAndCaveat ¶ added in v1.16.0
type SubjectAndCaveat struct {
// Subject is the subject found.
Subject tuple.ObjectAndRelation
// IsCaveated indicates whether the subject is caveated.
IsCaveated bool
}
SubjectAndCaveat returns a subject and whether it is caveated.
type SubjectWithExceptions ¶
type SubjectWithExceptions struct {
// Subject is the subject found.
Subject SubjectAndCaveat
// Exceptions are those subjects removed from the subject, if it is a wildcard.
Exceptions []SubjectAndCaveat
}
SubjectWithExceptions returns the subject found in a validation string, along with any exceptions.
type ValidationMap ¶
type ValidationMap map[ObjectRelation][]ExpectedSubject
ValidationMap is a map from an Object Relation (as a Relationship) to the validation strings containing the Subjects for that Object Relation.
type ValidationString ¶
type ValidationString string
ValidationString holds a validation string containing a Subject and one or more Relations to the parent Object. Example: `[tenant/user:someuser#...] is <tenant/document:example#viewer>`
func (ValidationString) ONRS ¶
func (vs ValidationString) ONRS() ([]tuple.ObjectAndRelation, *spiceerrors.WithSourceError)
ONRS returns the subject ONRs in the ValidationString, if any.
func (ValidationString) ONRStrings ¶
func (vs ValidationString) ONRStrings() []string
ONRStrings returns the ONRs contained in the ValidationString, if any.
func (ValidationString) Subject ¶
func (vs ValidationString) Subject() (*SubjectWithExceptions, *spiceerrors.WithSourceError)
Subject returns the subject contained in the ValidationString, if any. If none, returns nil.
func (ValidationString) SubjectString ¶
func (vs ValidationString) SubjectString() (string, bool)
SubjectString returns the subject contained in the ValidationString, if any.