Documentation
¶
Overview ¶
Package compiler knows how to build the Go representation of a SpiceDB schema text.
Index ¶
Constants ¶
const Ellipsis = "..."
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseCompilerError ¶ added in v1.5.0
type BaseCompilerError struct {
BaseMessage string
// contains filtered or unexported fields
}
BaseCompilerError defines an error with contains the base message of the issue that occurred.
type CompiledSchema ¶ added in v1.14.0
type CompiledSchema struct {
// ObjectDefinitions holds the object definitions in the schema.
ObjectDefinitions []*core.NamespaceDefinition
// CaveatDefinitions holds the caveat definitions in the schema.
CaveatDefinitions []*core.CaveatDefinition
// OrderedDefinitions holds the object and caveat definitions in the schema, in the
// order in which they were found.
OrderedDefinitions []SchemaDefinition
// contains filtered or unexported fields
}
CompiledSchema is the result of compiling a schema when there are no errors.
func Compile ¶
func Compile(schema InputSchema, prefix ObjectPrefixOption, opts ...Option) (*CompiledSchema, error)
Compile compilers the input schema into a set of namespace definition protos.
func (*CompiledSchema) GetPathToDefinitionOrPartialOrCaveat ¶ added in v1.51.0
func (cs *CompiledSchema) GetPathToDefinitionOrPartialOrCaveat(name string) string
GetPathToDefinitionOrPartialOrCaveat returns the input source for the AST node defining the given name. For definitions compiled from imports, this will be the imported file path (e.g. "users.zed"). For definitions in the root schema, this will be the root source (e.g. "schema"). Returns empty string if not found.
func (*CompiledSchema) PartialNodePosition ¶ added in v1.51.0
func (cs *CompiledSchema) PartialNodePosition(name string) (int, int)
PartialNodePosition returns the start rune position and source of the partial definition with the given name. Returns (-1, -1, "") if not found.
func (CompiledSchema) SourcePositionToRunePosition ¶ added in v1.31.0
func (cs CompiledSchema) SourcePositionToRunePosition(source input.Source, position input.Position) (int, error)
SourcePositionToRunePosition converts a source position to a rune position.
type DSLNode ¶ added in v1.31.0
type DSLNode interface {
GetType() dslshape.NodeType
GetString(predicateName string) (string, error)
GetInt(predicateName string) (int, error)
Lookup(predicateName string) (DSLNode, error)
}
DSLNode is a node in the DSL AST.
type InputSchema ¶
type InputSchema struct {
// Source is the source of the schema being compiled.
// It may be a simple string like "schema" or a full path like "file://something/root.zed"
Source input.Source
// Schema is the contents being compiled.
SchemaString string
}
InputSchema defines the input for a Compile.
type NodeChain ¶ added in v1.31.0
type NodeChain struct {
// contains filtered or unexported fields
}
NodeChain is a chain of nodes in the DSL AST.
func PositionToAstNodeChain ¶ added in v1.31.0
func PositionToAstNodeChain(schema *CompiledSchema, source input.Source, position input.Position) (*NodeChain, error)
PositionToAstNodeChain returns the AST node, and its parents (if any), found at the given position in the source, if any.
func (*NodeChain) FindNodeOfType ¶ added in v1.31.0
FindNodeOfType returns the first node of the given type in the chain, if any.
func (*NodeChain) ForRunePosition ¶ added in v1.31.0
ForRunePosition returns the rune position of the chain.
func (*NodeChain) HasHeadType ¶ added in v1.31.0
HasHeadType returns true if the head node of the chain is of the given type.
type ObjectPrefixOption ¶ added in v1.29.0
type ObjectPrefixOption func(*config)
func AllowUnprefixedObjectType ¶ added in v1.29.0
func AllowUnprefixedObjectType() ObjectPrefixOption
func ObjectTypePrefix ¶ added in v1.29.0
func ObjectTypePrefix(prefix string) ObjectPrefixOption
func RequirePrefixedObjectType ¶ added in v1.29.0
func RequirePrefixedObjectType() ObjectPrefixOption
type Option ¶ added in v1.29.0
type Option func(*config)
func CaveatTypeSet ¶ added in v1.43.0
func CaveatTypeSet(cts *caveattypes.TypeSet) Option
func DisallowExpirationFlag ¶ added in v1.40.0
func DisallowExpirationFlag() Option
func DisallowImportFlag ¶ added in v1.49.2
func DisallowImportFlag() Option
func SkipValidation ¶ added in v1.29.0
func SkipValidation() Option
func SourceFS ¶ added in v1.49.2
Config that supplies the fs.FS for compilation as an alternative to SourceFolder.
func SourceFolder ¶ added in v1.49.2
Config that supplies the root source folder for compilation. Required for relative import syntax to work properly.
type SchemaDefinition ¶ added in v1.14.0
SchemaDefinition represents an object or caveat definition in a schema.
type WithContextError ¶ added in v1.39.0
type WithContextError struct {
BaseCompilerError
SourceRange input.SourceRange
Source input.Source
ErrorSourceCode string
}
WithContextError defines an error which contains contextual information.
func (WithContextError) DetailsMetadata ¶ added in v1.39.0
func (ewc WithContextError) DetailsMetadata() map[string]string
DetailsMetadata returns the metadata for details for this error.
func (WithContextError) Unwrap ¶ added in v1.39.0
func (ewc WithContextError) Unwrap() error