provenance

package
v0.0.21 Latest Latest
Warning

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

Go to latest
Published: Oct 20, 2025 License: AGPL-3.0 Imports: 5 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        []sources.ID // Sources that had conflicting values
	Values         []any        // The conflicting values
	Resolution     string       // How the conflict was resolved
	SelectedSource sources.ID   // 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        sources.ID // Source that provided the value
	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 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   sources.ResourceType
	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 sources.ResourceType, resourceID string, field string, history Provenance)

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

	// FindByResource retrieves all provenance for a resource
	FindByResource(resourceType sources.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