Documentation
¶
Index ¶
- type JSONSchemaValidator
- func (v *JSONSchemaValidator) GetCompiledSchema(entity string) *builders.ObjectSchema
- func (v *JSONSchemaValidator) GetSchema(entity string) (map[string]interface{}, error)
- func (v *JSONSchemaValidator) HasSchema(entity string) bool
- func (v *JSONSchemaValidator) LoadAllSchemas() error
- func (v *JSONSchemaValidator) LoadSchema(entity string, schemaData map[string]interface{}) error
- func (v *JSONSchemaValidator) LoadSchemaFromFile(entity string) error
- func (v *JSONSchemaValidator) LoadedEntities() []string
- func (v *JSONSchemaValidator) SaveSchema(entity string, schemaData map[string]interface{}) error
- func (v *JSONSchemaValidator) Validate(entity string, data map[string]interface{}) (bool, []string)
- type NoOpValidator
- func (n *NoOpValidator) GetSchema(entity string) (map[string]interface{}, error)
- func (n *NoOpValidator) HasSchema(entity string) bool
- func (n *NoOpValidator) LoadSchema(entity string, schemaData map[string]interface{}) error
- func (n *NoOpValidator) SaveSchema(entity string, schemaData map[string]interface{}) error
- func (n *NoOpValidator) Validate(entity string, data map[string]interface{}) (bool, []string)
- type Validator
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type JSONSchemaValidator ¶
type JSONSchemaValidator struct {
// contains filtered or unexported fields
}
JSONSchemaValidator implements JSON schema validation using queryfy.
Schemas are stored in two forms: the raw JSON Schema map (returned by GetSchema, consumed by the adapted tables layer) and a compiled queryfy ObjectSchema (used for validation). Compilation happens once at load time via jsonschema.FromJSON.
Validation runs in Loose mode by default: type coercion is applied (e.g., integer values pass for number fields) and additional properties are allowed unless the schema explicitly sets additionalProperties:false.
func NewJSONSchemaValidator ¶
func NewJSONSchemaValidator(schemaDir string) *JSONSchemaValidator
NewJSONSchemaValidator creates a new JSON schema validator
func (*JSONSchemaValidator) GetCompiledSchema ¶
func (v *JSONSchemaValidator) GetCompiledSchema(entity string) *builders.ObjectSchema
GetCompiledSchema retrieves the compiled queryfy schema for an entity. Returns nil if no schema is loaded.
func (*JSONSchemaValidator) GetSchema ¶
func (v *JSONSchemaValidator) GetSchema(entity string) (map[string]interface{}, error)
GetSchema retrieves the raw JSON Schema for an entity. This is used by the adapted tables layer and the schema API endpoint.
func (*JSONSchemaValidator) HasSchema ¶
func (v *JSONSchemaValidator) HasSchema(entity string) bool
HasSchema checks if a schema exists for an entity
func (*JSONSchemaValidator) LoadAllSchemas ¶
func (v *JSONSchemaValidator) LoadAllSchemas() error
LoadAllSchemas loads all schemas from the schema directory
func (*JSONSchemaValidator) LoadSchema ¶
func (v *JSONSchemaValidator) LoadSchema(entity string, schemaData map[string]interface{}) error
LoadSchema loads a schema for an entity. The raw map is stored for GetSchema; a compiled queryfy schema is built for validation.
func (*JSONSchemaValidator) LoadSchemaFromFile ¶
func (v *JSONSchemaValidator) LoadSchemaFromFile(entity string) error
LoadSchemaFromFile loads a schema from a file
func (*JSONSchemaValidator) LoadedEntities ¶
func (v *JSONSchemaValidator) LoadedEntities() []string
LoadedEntities returns the names of all entities that have a loaded schema.
func (*JSONSchemaValidator) SaveSchema ¶
func (v *JSONSchemaValidator) SaveSchema(entity string, schemaData map[string]interface{}) error
SaveSchema saves a schema to a file
func (*JSONSchemaValidator) Validate ¶
func (v *JSONSchemaValidator) Validate(entity string, data map[string]interface{}) (bool, []string)
Validate validates data against a schema using queryfy in Loose mode.
Returns (true, nil) if validation passes or no schema exists. Returns (false, errors) with human-readable error strings on failure.
type NoOpValidator ¶
type NoOpValidator struct{}
NoOpValidator is a validator that always passes
func NewNoOpValidator ¶
func NewNoOpValidator() *NoOpValidator
NewNoOpValidator creates a no-op validator
func (*NoOpValidator) GetSchema ¶
func (n *NoOpValidator) GetSchema(entity string) (map[string]interface{}, error)
GetSchema always returns error
func (*NoOpValidator) HasSchema ¶
func (n *NoOpValidator) HasSchema(entity string) bool
HasSchema always returns false
func (*NoOpValidator) LoadSchema ¶
func (n *NoOpValidator) LoadSchema(entity string, schemaData map[string]interface{}) error
LoadSchema is a no-op
func (*NoOpValidator) SaveSchema ¶
func (n *NoOpValidator) SaveSchema(entity string, schemaData map[string]interface{}) error
SaveSchema is a no-op
type Validator ¶
type Validator interface {
Validate(entity string, data map[string]interface{}) (bool, []string)
LoadSchema(entity string, schemaData map[string]interface{}) error
SaveSchema(entity string, schemaData map[string]interface{}) error
HasSchema(entity string) bool
GetSchema(entity string) (map[string]interface{}, error)
}
Validator interface defines validation operations