From f045a5d339a796f40a9e958436ebc6f5314bdab8 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Thu, 23 Apr 2026 22:15:20 -0500 Subject: feat(v3.4.0): add backup, restore, and data portability MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • introduce versioned DomainDig backup format • add full backup export/import with merge and replace modes • implement data validation and conflict handling • add partial exports for tracked domains, workflows, and history • add Data Portability settings section • support Files/iCloud Drive import and export • harden migrations for evolving local models • extend CLI with backup export and validation --- DomainDig/FeatureAccessService.swift | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'DomainDig/FeatureAccessService.swift') diff --git a/DomainDig/FeatureAccessService.swift b/DomainDig/FeatureAccessService.swift index 535ba7c..9fae3bd 100644 --- a/DomainDig/FeatureAccessService.swift +++ b/DomainDig/FeatureAccessService.swift @@ -25,6 +25,8 @@ enum FeatureCapability: String, CaseIterable, Identifiable { case limitedTracking case workflows case batchOperations + case automatedMonitoring + case localAlerts case advancedExports case ownershipHistory case dnsHistory @@ -45,6 +47,10 @@ enum FeatureCapability: String, CaseIterable, Identifiable { return "Workflows" case .batchOperations: return "Batch operations" + case .automatedMonitoring: + return "Background monitoring" + case .localAlerts: + return "Local alerts" case .advancedExports: return "Advanced exports" case .ownershipHistory: @@ -94,7 +100,16 @@ enum FeatureAccessService { case .pro: return FeatureEntitlements( tier: .pro, - capabilities: [.singleLookup, .basicHistory, .limitedTracking, .workflows, .batchOperations, .advancedExports], + capabilities: [ + .singleLookup, + .basicHistory, + .limitedTracking, + .workflows, + .batchOperations, + .automatedMonitoring, + .localAlerts, + .advancedExports + ], trackedDomainLimit: effectivelyUnlimitedTrackedDomains, workflowLimit: nil, batchSizeLimit: nil @@ -140,7 +155,7 @@ enum FeatureAccessService { static func upgradeMessage(for capability: FeatureCapability) -> String { switch capability { - case .workflows, .batchOperations, .advancedExports: + case .workflows, .batchOperations, .automatedMonitoring, .localAlerts, .advancedExports: return "Available in Pro" case .ownershipHistory, .dnsHistory, .extendedSubdomains, .domainPricing: return "Available in Data+" -- cgit v1.2.3