From cc69cbd7e589ec4b065ce74d8c5e7714a040cfc5 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Sun, 26 Apr 2026 00:22:01 -0500 Subject: DomainDig v4.2.0: Add a local-only HTTP API layer for DomainDig Expose DomainDig as a programmable local domain intelligence engine over localhost with explicit user opt-in and token-based authentication. Highlights: - add a localhost-only API server with safe start/stop lifecycle - require a local token for every request and store it in Keychain - add read endpoints for portfolio, domains, history, events, and monitoring - add inspection endpoints that reuse the existing inspection engine - add monitoring enable/disable control endpoints - add structured JSON response envelopes with API versioning - add lightweight capped request logging with clear/reset support - add a Settings UI for Local API enablement, token management, status, and logs - start the server on launch only when enabled - include Local API secrets in local data reset cleanup This is the first programmability release for DomainDig and establishes the foundation for Shortcuts, scripts, and other local automation workflows. --- DomainDig/DataResetService.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'DomainDig/DataResetService.swift') diff --git a/DomainDig/DataResetService.swift b/DomainDig/DataResetService.swift index e993eba..d4c5bfe 100644 --- a/DomainDig/DataResetService.swift +++ b/DomainDig/DataResetService.swift @@ -15,7 +15,7 @@ enum DataResetService { static func wipeAllLocalData(viewModel: DomainViewModel) async throws { let secretReferences = await MainActor.run { - IntegrationService.shared.localSecretReferences() + IntegrationService.shared.localSecretReferences() + LocalAPIService.shared.localSecretReferences() } try await Task.detached(priority: .userInitiated) { @@ -28,6 +28,7 @@ enum DataResetService { await MainActor.run { IntegrationService.shared.resetAfterLocalWipe() + LocalAPIService.shared.resetAfterLocalWipe() CloudSyncService.shared.resetLocalStateAfterWipe() PurchaseService.shared.resetCachedStateAfterLocalWipe() _ = DomainMonitoringScheduler.shared.syncSchedule() -- cgit v1.2.3