summaryrefslogtreecommitdiff
path: root/DomainDig/FeatureAccessService.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-04-23 22:15:20 -0500
committerChristian Cleberg <[email protected]>2026-04-23 22:15:20 -0500
commitf045a5d339a796f40a9e958436ebc6f5314bdab8 (patch)
treec1d122f3ed7a9110dfcd001c86a56ed67980dfcc /DomainDig/FeatureAccessService.swift
parent6c23daaaba2a954220ece2afa7193dbdcad55c22 (diff)
downloaddomain-dig-f045a5d339a796f40a9e958436ebc6f5314bdab8.tar.gz
domain-dig-f045a5d339a796f40a9e958436ebc6f5314bdab8.tar.bz2
domain-dig-f045a5d339a796f40a9e958436ebc6f5314bdab8.zip
feat(v3.4.0): add backup, restore, and data portability
• 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
Diffstat (limited to 'DomainDig/FeatureAccessService.swift')
-rw-r--r--DomainDig/FeatureAccessService.swift19
1 files changed, 17 insertions, 2 deletions
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+"