Documentation
¶
Overview ¶
Package provenance provides field-level tracking of data sources and modifications.
Index ¶
- func ModelResourceID(providerID, modelID string) string
- func ParseModelResourceID(resourceID string) (providerID, modelID string, ok bool)
- type AuditResult
- type ConflictInfo
- type Entry
- type Field
- type File
- type Map
- type Rejection
- type Report
- type ResourceProvenance
- type Tracker
- func (p *Tracker) Clear()
- func (p *Tracker) FindByField(resourceType catalogmeta.ResourceType, resourceID string, field string) []Entry
- func (p *Tracker) FindByResource(resourceType catalogmeta.ResourceType, resourceID string) map[string][]Entry
- func (p *Tracker) Map() Map
- func (p *Tracker) Track(resourceType catalogmeta.ResourceType, resourceID string, field string, ...)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ModelResourceID ¶ added in v0.2.0
ModelResourceID returns the durable provider-scoped identity used for model provenance. Provider and model identifiers are opaque and escaped independently so slashes, colons, and percent signs cannot make two identities collide with one another or with the provenance key format.
func ParseModelResourceID ¶ added in v0.2.0
ParseModelResourceID decodes an identity produced by ModelResourceID.
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 ConflictInfo ¶
type ConflictInfo struct {
Sources []catalogmeta.SourceID // Sources that had conflicting values
Values []any // The conflicting values
Resolution string // How the conflict was resolved
SelectedSource catalogmeta.SourceID // Which source was selected
}
ConflictInfo describes a conflict that was resolved.
type Entry ¶ added in v0.2.0
type Entry struct {
Source catalogmeta.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
ObservationID string // Stable identity of the winning source observation
ObservedAt time.Time // When the winning source was observed
Revision catalogmeta.ObservationRevision // Exact revision of the winning observation
EvidenceChecksum string // Digest binding the winning normalized evidence
Rejections []Rejection // Higher-authority observations rejected before selection
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
}
Entry records the origin and history of one field value.
func (Entry) MarshalJSON ¶ added in v0.2.0
MarshalJSON makes interface-valued evidence independent of the concrete Go type used to construct it. This is required for immutable catalog payloads: after a payload is decoded, Value and PreviousValue contain generic JSON maps rather than the original source structs, but re-encoding must reproduce the exact generation bytes.
type Field ¶
type Field struct {
Current Entry // Current value and its source
History []Entry // Historical values
Conflicts []ConflictInfo // Any conflicts that were resolved
}
Field contains provenance history for a single field.
type File ¶ added in v0.2.0
type File struct {
Provenance Map `yaml:"provenance"`
}
File represents provenance stored on disk.
type Rejection ¶ added in v0.1.0
type Rejection struct {
Source catalogmeta.SourceID // Source whose field observation was rejected
Reason string // Stable human-readable validation or applicability reason
}
Rejection records why a higher-authority field observation did not win.
type Report ¶
type Report struct {
Resources map[string]ResourceProvenance // key is "resourceType:resourceID"
}
Report generates a human-readable provenance report.
func GenerateReport ¶
GenerateReport creates a provenance report from a Map.
type ResourceProvenance ¶
type ResourceProvenance struct {
Type catalogmeta.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 struct {
// contains filtered or unexported fields
}
Tracker records and queries field-level provenance.
func NewTracker ¶
NewTracker creates a new provenance tracker.
func (*Tracker) FindByField ¶
func (p *Tracker) FindByField(resourceType catalogmeta.ResourceType, resourceID string, field string) []Entry
FindByField retrieves provenance for a specific field.
func (*Tracker) FindByResource ¶
func (p *Tracker) FindByResource(resourceType catalogmeta.ResourceType, resourceID string) map[string][]Entry
FindByResource retrieves all provenance for a resource.
func (*Tracker) Track ¶
func (p *Tracker) Track(resourceType catalogmeta.ResourceType, resourceID string, field string, history Entry)
Track records provenance for a field.