datavalidator

package
v0.16.26 Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AffectedRecord

type AffectedRecord struct {
	CollectionID string
	FilePath     string
	RecordKey    string // empty if entire file changed (list/map format)
	ChangeKind   ingitdb.ChangeKind
}

AffectedRecord identifies which record was touched by a file change.

type ChangeSetResolver

type ChangeSetResolver interface {
	Resolve(dbPath string, def *ingitdb.Definition, changedFiles []ingitdb.ChangedFile) ([]AffectedRecord, error)
}

ChangeSetResolver maps changed files → (collectionID, recordKey) pairs. Handles all three RecordType layouts.

type DataValidator

type DataValidator interface {
	Validate(ctx context.Context, dbPath string, def *ingitdb.Definition) (*ingitdb.ValidationResult, error)
}

DataValidator runs a full validation pass over all records.

type ForeignKeyIndex

type ForeignKeyIndex interface {
	Contains(collectionID, key string) bool
}

ForeignKeyIndex is a pre-built read-only lookup for FK validation. Built once before validation begins; shared read-only across goroutines.

type IncrementalValidator

type IncrementalValidator interface {
	ValidateChanges(
		ctx context.Context,
		dbPath string,
		def *ingitdb.Definition,
		fromCommit, toCommit string,
	) (*ingitdb.ValidationResult, error)
}

IncrementalValidator validates only records changed between two git refs.

type RecordValidator

type RecordValidator interface {
	ValidateRecord(
		col *ingitdb.CollectionDef,
		entry ingitdb.RecordEntry,
		result *ingitdb.ValidationResult,
	) int
}

RecordValidator validates one record against its collection schema. Goroutine-safe. Appends findings to result; returns count of errors appended.

Jump to

Keyboard shortcuts

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