Documentation
¶
Overview ¶
Package validation provides additional file validation capabilities beyond the built-in OpenAPI structural validation. It allows applying JSON Schema validation to arbitrary YAML/JSON files via pattern-based matching.
Index ¶
- func InstallEngineAdapter()
- func UninstallEngineAdapter()
- type AdditionalValidator
- func (v *AdditionalValidator) Analyzer() treesitter.Analyzer
- func (v *AdditionalValidator) Configure(rootDir string, groups map[string]ValidationGroup) error
- func (v *AdditionalValidator) MatchesFile(uri string) (*matchedSchema, bool)
- func (v *AdditionalValidator) MatchesFileForSidecar(uri string) ([]SchemaMatch, bool)
- type SchemaMatch
- type SchemaPatternMapping
- type SchemaType
- type ValidationGroup
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func InstallEngineAdapter ¶
func InstallEngineAdapter()
InstallEngineAdapter registers the barrelman validation engine as gossip/jsonschema's validator adapter. Pass nil to restore the built-in gossip interpreter. Safe to call once from telescope's startup code.
func UninstallEngineAdapter ¶
func UninstallEngineAdapter()
UninstallEngineAdapter clears the registered adapter, restoring the built-in gossip jsonschema interpreter. Mainly useful in tests.
Types ¶
type AdditionalValidator ¶
type AdditionalValidator struct {
// contains filtered or unexported fields
}
AdditionalValidator validates files against schemas based on pattern matching.
func NewAdditionalValidator ¶
func NewAdditionalValidator(logger *slog.Logger) *AdditionalValidator
NewAdditionalValidator creates a new validator.
func (*AdditionalValidator) Analyzer ¶
func (v *AdditionalValidator) Analyzer() treesitter.Analyzer
Analyzer returns a treesitter.Analyzer that validates matching files using Go-side JSON Schema validation. This is the fallback when the Bun sidecar is unavailable. Zod schemas are skipped since they require the sidecar.
func (*AdditionalValidator) Configure ¶
func (v *AdditionalValidator) Configure(rootDir string, groups map[string]ValidationGroup) error
Configure sets up validation groups and loads their schemas from disk.
func (*AdditionalValidator) MatchesFile ¶
func (v *AdditionalValidator) MatchesFile(uri string) (*matchedSchema, bool)
MatchesFile returns whether the given file URI matches any additional validation group, and if so, returns the associated schema.
func (*AdditionalValidator) MatchesFileForSidecar ¶
func (v *AdditionalValidator) MatchesFileForSidecar(uri string) ([]SchemaMatch, bool)
MatchesFileForSidecar returns schema match info for routing to the Bun sidecar.
type SchemaMatch ¶
type SchemaMatch struct {
GroupName string
SchemaPath string
SchemaType SchemaType
}
SchemaMatch holds the information needed to route validation to the sidecar.
type SchemaPatternMapping ¶
type SchemaPatternMapping struct {
Schema string `yaml:"schema" json:"schema"`
Patterns []string `yaml:"patterns,omitempty" json:"patterns,omitempty"`
}
SchemaPatternMapping pairs a JSON Schema file with optional pattern overrides.
type SchemaType ¶
type SchemaType string
SchemaType identifies the validation engine for a schema file.
const ( SchemaTypeJSON SchemaType = "json-schema" SchemaTypeZod SchemaType = "zod" )
func DetectSchemaType ¶
func DetectSchemaType(filename string) SchemaType
DetectSchemaType determines the validation engine from a schema filename.
type ValidationGroup ¶
type ValidationGroup struct {
Patterns []string `yaml:"patterns" json:"patterns"`
Schemas []SchemaPatternMapping `yaml:"schemas,omitempty" json:"schemas,omitempty"`
}
ValidationGroup defines a set of file patterns and associated schemas for validating non-OpenAPI files.