summaryrefslogtreecommitdiff
path: root/DomainReportBuilder.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 /DomainReportBuilder.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 'DomainReportBuilder.swift')
-rw-r--r--DomainReportBuilder.swift28
1 files changed, 28 insertions, 0 deletions
diff --git a/DomainReportBuilder.swift b/DomainReportBuilder.swift
index 7c5a7c0..765ad4f 100644
--- a/DomainReportBuilder.swift
+++ b/DomainReportBuilder.swift
@@ -3,8 +3,22 @@ import Foundation
struct DomainReport: Codable {
let domain: String
let timestamp: Date
+ let appVersion: String
+ let resolverDisplayName: String
+ let resolverURLString: String
+ let dataSources: [String]
let resultSource: LookupResultSource
+ let sectionProvenance: [LookupSectionKind: SectionProvenance]
+ let errorDetails: [LookupSectionKind: InspectionFailure]
+ let isPartialSnapshot: Bool
+ let validationIssues: [String]
+ let auditNote: String?
let availability: DomainAvailabilityStatus
+ let availabilityConfidence: ConfidenceLevel?
+ let ownershipConfidence: ConfidenceLevel?
+ let subdomainConfidence: ConfidenceLevel?
+ let emailConfidence: ConfidenceLevel?
+ let geolocationConfidence: ConfidenceLevel?
let ownership: DomainOwnership?
let dns: DNSResultSummary
let web: WebResultSummary
@@ -71,8 +85,22 @@ struct DomainReportBuilder {
return DomainReport(
domain: snapshot.domain,
timestamp: snapshot.timestamp,
+ appVersion: snapshot.appVersion,
+ resolverDisplayName: snapshot.resolverDisplayName,
+ resolverURLString: snapshot.resolverURLString,
+ dataSources: snapshot.dataSources,
resultSource: snapshot.resultSource,
+ sectionProvenance: snapshot.provenanceBySection,
+ errorDetails: snapshot.errorDetails,
+ isPartialSnapshot: snapshot.isPartialSnapshot,
+ validationIssues: snapshot.validationIssues,
+ auditNote: snapshot.note,
availability: snapshot.availabilityResult?.status ?? .unknown,
+ availabilityConfidence: snapshot.availabilityConfidence,
+ ownershipConfidence: snapshot.ownershipConfidence,
+ subdomainConfidence: snapshot.subdomainConfidence,
+ emailConfidence: snapshot.emailSecurityConfidence,
+ geolocationConfidence: snapshot.geolocationConfidence,
ownership: snapshot.ownership,
dns: DNSResultSummary(
resolverDisplayName: snapshot.resolverDisplayName,