validation

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Jun 8, 2026 License: MIT Imports: 11 Imported by: 0

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

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.

Jump to

Keyboard shortcuts

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