provenance

package
v0.0.23 Latest Latest
Warning

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

Go to latest
Published: Oct 21, 2025 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Overview

Package provenance provides field-level tracking of data sources and modifications.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuditResult

type AuditResult struct {
	Valid       bool
	Issues      []string
	Warnings    []string
	Coverage    float64  // Percentage of fields with provenance
	Conflicts   int      // Number of unresolved conflicts
	MissingData []string // Fields without provenance
}

AuditResult contains audit findings.

type Auditor

type Auditor interface {
	// Audit checks provenance for completeness and consistency
	Audit(provenance Map) *AuditResult

	// ValidateAuthority ensures authority scores are valid
	ValidateAuthority(provenance Map) []string

	// CheckCoverage verifies all required fields have provenance
	CheckCoverage(provenance Map, requiredFields []string) []string
}

Auditor validates provenance tracking.

type ConflictInfo

type ConflictInfo struct {
	Sources        []types.SourceID // Sources that had conflicting values
	Values         []any            // The conflicting values
	Resolution     string           // How the conflict was resolved
	SelectedSource types.SourceID   // Which source was selected
}

ConflictInfo describes a conflict that was resolved.

type Field

type Field struct {
	Current   Provenance     // Current value and its source
	History   []Provenance   // Historical values
	Conflicts []ConflictInfo // Any conflicts that were resolved
}

Field contains provenance history for a single field.

type Map

type Map map[string][]Provenance // key is "resourceType:resourceID:fieldPath"

Map tracks provenance for multiple resources.

type Provenance

type Provenance struct {
	Source        types.SourceID // Source that provided the value (e.g., "providers", "models_dev_git")
	Field         string         // Field path
	Value         any            // The actual value
	Timestamp     time.Time      // When the value was set
	Authority     float64        // Authority score (0.0 to 1.0)
	Confidence    float64        // Confidence in the value (0.0 to 1.0)
	Reason        string         // Reason for selecting this value
	PreviousValue any            // Previous value if updated
}

Provenance tracks the origin and history of a field value.

type ProvenanceFile added in v0.0.23

type ProvenanceFile struct {
	Provenance Map `yaml:"provenance"`
}

ProvenanceFile represents a provenance file stored on disk.

func Load added in v0.0.23

func Load(path string) (*ProvenanceFile, error)

Load reads provenance data from a YAML file. Returns nil, nil if the file doesn't exist (not an error).

type Report

type Report struct {
	Resources map[string]ResourceProvenance // key is "resourceType:resourceID"
}

Report generates a human-readable provenance report.

func GenerateReport

func GenerateReport(provenance Map) *Report

GenerateReport creates a provenance report from a Map.

func (*Report) String

func (r *Report) String() string

String generates a string representation of the provenance report.

type ResourceProvenance

type ResourceProvenance struct {
	Type   types.ResourceType // Resource type (e.g., "model", "provider", "author")
	ID     string
	Fields map[string]Field
}

ResourceProvenance contains provenance for a single resource.

type Tracker

type Tracker interface {
	// Track records provenance for a field
	Track(resourceType types.ResourceType, resourceID string, field string, history Provenance)

	// Find retrieves provenance for a specific field
	FindByField(resourceType types.ResourceType, resourceID string, field string) []Provenance

	// FindByResource retrieves all provenance for a resource
	FindByResource(resourceType types.ResourceType, resourceID string) map[string][]Provenance

	// Map returns the complete provenance map
	Map() Map

	// Clear removes all provenance data
	Clear()
}

Tracker manages provenance tracking during reconciliation.

func NewTracker

func NewTracker(enabled bool) Tracker

NewTracker creates a new provenance tracker.

Jump to

Keyboard shortcuts

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