summaryrefslogtreecommitdiff
path: root/LookupSnapshot.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-04-22 09:47:24 -0500
committerChristian Cleberg <[email protected]>2026-04-22 09:47:24 -0500
commit7b41195620eadd54d25fa98dcd36735cba906ba3 (patch)
tree929a791a4c2fd3278f98c17c0ae5476940a01312 /LookupSnapshot.swift
parent36ea668d7fc9070770973b0bc329f4319bf43cab (diff)
downloaddomain-dig-7b41195620eadd54d25fa98dcd36735cba906ba3.tar.gz
domain-dig-7b41195620eadd54d25fa98dcd36735cba906ba3.tar.bz2
domain-dig-7b41195620eadd54d25fa98dcd36735cba906ba3.zip
feat(v2.7.0): add provenance, confidence, and reproducibility metadata
* add result provenance across major sections * introduce confidence levels for ambiguous outputs * distinguish observed facts from inferred summaries * expand snapshot metadata for reproducibility * improve error classification and partial snapshot handling * include provenance and confidence in export * add local notes for tracked domains and history
Diffstat (limited to 'LookupSnapshot.swift')
-rw-r--r--LookupSnapshot.swift26
1 files changed, 25 insertions, 1 deletions
diff --git a/LookupSnapshot.swift b/LookupSnapshot.swift
index dd1e5f4..f51f546 100644
--- a/LookupSnapshot.swift
+++ b/LookupSnapshot.swift
@@ -5,8 +5,20 @@ struct LookupSnapshot {
let domain: String
let timestamp: Date
let trackedDomainID: UUID?
+ let note: String?
+ let appVersion: String
let resolverDisplayName: String
let resolverURLString: String
+ let dataSources: [String]
+ let provenanceBySection: [LookupSectionKind: SectionProvenance]
+ let availabilityConfidence: ConfidenceLevel?
+ let ownershipConfidence: ConfidenceLevel?
+ let subdomainConfidence: ConfidenceLevel?
+ let emailSecurityConfidence: ConfidenceLevel?
+ let geolocationConfidence: ConfidenceLevel?
+ let errorDetails: [LookupSectionKind: InspectionFailure]
+ let isPartialSnapshot: Bool
+ let validationIssues: [String]
let totalLookupDurationMs: Int?
let dnsSections: [DNSSection]
let dnsError: String?
@@ -55,8 +67,20 @@ extension HistoryEntry {
domain: domain,
timestamp: timestamp,
trackedDomainID: trackedDomainID,
+ note: note,
+ appVersion: appVersion,
resolverDisplayName: resolverDisplayName,
resolverURLString: resolverURLString,
+ dataSources: dataSources,
+ provenanceBySection: provenanceBySection,
+ availabilityConfidence: availabilityConfidence,
+ ownershipConfidence: ownershipConfidence,
+ subdomainConfidence: subdomainConfidence,
+ emailSecurityConfidence: emailSecurityConfidence,
+ geolocationConfidence: geolocationConfidence,
+ errorDetails: errorDetails,
+ isPartialSnapshot: isPartialSnapshot,
+ validationIssues: validationIssues,
totalLookupDurationMs: totalLookupDurationMs,
dnsSections: dnsSections,
dnsError: nil,
@@ -89,7 +113,7 @@ extension HistoryEntry {
portScanResults: portScanResults,
portScanError: portScanError,
changeSummary: changeSummary,
- resultSource: .snapshot,
+ resultSource: resultSource,
cachedSections: [],
statusMessage: nil
)