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 *v1.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 []*core.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 *core.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 []*v1.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 ParsedSchema ¶
type ParsedSchema struct { // Schema is the schema found. Schema string // SourcePosition is the position of the schema in the file. SourcePosition spiceerrors.SourcePosition // CompiledSchema is the compiled schema. CompiledSchema *compiler.CompiledSchema }
ParsedSchema is the parsed schema in a validationfile.
func (*ParsedSchema) UnmarshalYAML ¶
func (ps *ParsedSchema) 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 *core.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() ([]*core.ObjectAndRelation, *spiceerrors.ErrorWithSource)
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.ErrorWithSource)
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.