Documentation
¶
Overview ¶
Package migration parses and validates forward-only declarative migration paths.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ParseAndValidate ¶
func ParseAndValidate(source []byte) (Path, []ValidationError)
ParseAndValidate decodes one strict YAML migration document and reports all detected structural and semantic violations.
Types ¶
type Operation ¶
type Operation struct {
Kind string `yaml:"operation" json:"operation"`
IssueType string `yaml:"issueType,omitempty" json:"issueType,omitempty"`
Field string `yaml:"field,omitempty" json:"field,omitempty"`
State string `yaml:"state,omitempty" json:"state,omitempty"`
From any `yaml:"from,omitempty" json:"from,omitempty"`
To any `yaml:"to,omitempty" json:"to,omitempty"`
Value any `yaml:"value,omitempty" json:"value,omitempty"`
Mappings map[string]any `yaml:"mappings,omitempty" json:"mappings,omitempty"`
Required *bool `yaml:"required,omitempty" json:"required,omitempty"`
Terminal *bool `yaml:"terminal,omitempty" json:"terminal,omitempty"`
Reason string `yaml:"reason,omitempty" json:"reason,omitempty"`
// contains filtered or unexported fields
}
Operation is one item from Pitcrew's bounded migration vocabulary.
type Path ¶
type Path struct {
APIVersion string `yaml:"apiVersion" json:"apiVersion"`
Contract string `yaml:"contract" json:"contract"`
From int `yaml:"from" json:"from"`
To int `yaml:"to" json:"to"`
Operations []Operation `yaml:"operations" json:"operations"`
}
Path describes one explicit forward migration between immutable versions of the same contract.
type ValidationError ¶
type ValidationError struct {
Code string `json:"code"`
Path string `json:"path,omitempty"`
Message string `json:"message"`
}
ValidationError describes one migration-path violation.
func ValidateAgainst ¶
func ValidateAgainst(path Path, source, target contract.Contract) []ValidationError
ValidateAgainst verifies that every operation refers to the installed source and target definitions it claims to connect.
func (ValidationError) String ¶
func (e ValidationError) String() string
Click to show internal directories.
Click to hide internal directories.