validations

package
v0.42.0 Latest Latest
Warning

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

Go to latest
Published: Jul 26, 2022 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package validations enriches YAML structures by attaching user-defined constraints (that is, validationRun rules) onto individual yamlmeta.Node's.

Validations on Data Values

While "@data/values" can technically be annotated with "@assert/validate" annotations, it is expected that authors will use "@schema/validationRun" in "@data/values-schema" documents instead.

Index

Constants

View Source
const (
	AnnotationAssertValidate template.AnnotationName = "assert/validate"

	KwargWhen         string = "when"
	KwargWhenNullSkip string = "when_null_skip"
	KwargMinLength    string = "min_len"
	KwargMaxLength    string = "max_len"
	KwargMin          string = "min"
	KwargMax          string = "max"
	KwargNotNull      string = "not_null"
	KwargOneNotNull   string = "one_not_null"
	KwargOneOf        string = "one_of"
)

Declare @assert/... annotation and keyword argument names

Variables

This section is empty.

Functions

func Add

func Add(node yamlmeta.Node, validations []NodeValidation)

Add appends validations to node's validations metadata, later retrieved via Get().

func ProcessAssertValidateAnns

func ProcessAssertValidateAnns(rootNode yamlmeta.Node) error

ProcessAssertValidateAnns checks Assert annotations on data values and stores them on a Node as Validations. Returns an error if any Assert annotations are malformed.

func Set

func Set(node yamlmeta.Node, meta []NodeValidation)

Set attaches validations to node's metadata, later retrieved via Get().

Types

type Check added in v0.42.0

type Check struct {
	Violations []error
}

Check holds the resulting violations from executing Validations on a node.

func Run

func Run(node yamlmeta.Node, threadName string) Check

Run takes a root Node, and threadName, and validates each Node in the tree.

When a Node's value is invalid, the errors are collected and returned in a Check. Otherwise, returns empty Check and nil error.

func (Check) Error added in v0.42.0

func (c Check) Error() string

Error generates the error message composed of the total set of Check.Violations.

func (*Check) HasViolations added in v0.42.0

func (c *Check) HasViolations() bool

HasViolations indicates whether this Check contains any violations.

type NodeValidation

type NodeValidation struct {
	// contains filtered or unexported fields
}

NodeValidation represents a validationRun attached to a Node via an annotation.

func Get

func Get(node yamlmeta.Node) []NodeValidation

Get retrieves validations from node metadata, set previously via Set().

func NewValidationFromAnn added in v0.42.0

func NewValidationFromAnn(annotation template.NodeAnnotation) (*NodeValidation, error)

NewValidationFromAnn creates a NodeValidation from the values provided in a validationRun-style annotation.

func (*NodeValidation) DefaultNullSkipTrue

func (v *NodeValidation) DefaultNullSkipTrue()

DefaultNullSkipTrue sets the kwarg when_null_skip to true if not set explicitly.

func (NodeValidation) Validate

func (v NodeValidation) Validate(node yamlmeta.Node, thread *starlark.Thread) []error

Validate runs the assertions in the rules with the node's value as arguments IF the ValidationKwargs conditional options pass.

Returns an error if the assertion returns False (not-None), or assert.fail()s. Otherwise, returns nil.

Jump to

Keyboard shortcuts

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