summaryrefslogtreecommitdiff
path: root/DomainDig/IntegrationService.swift
Commit message (Collapse)AuthorAgeFilesLines
* fix: make disabled targets and forced queue processing visibleChristian Cleberg2026-07-201-6/+52
| | | | | | | | | | | | | | | | | | | | | Closes #8, closes #9. enqueue(events:) filtered to enabled targets before writing any DeliveryRecord, so events routed to a disabled integration disappeared with nothing in the Delivery Log. Disabled targets now record a .skipped entry with a reason, matching how filter mismatches are already surfaced. sendTest bypassed the isEnabled check entirely, so a test event delivered against a target that silently dropped every real event — exactly the wrong signal when someone is verifying their setup. It now skips with the same reason. processQueueNow only restarted the processing task; it never moved nextAttemptAt, so an item in retry backoff stayed undue and the fresh task went straight back to sleep. Backoff reaches an hour, so the button appeared inert for the one case it exists to handle. It now pulls every queued item forward, and reports when the queue is empty instead of returning silently.
* fix: reject non-HTTPS webhook URLs at save timeChristian Cleberg2026-07-201-1/+18
| | | | | | | | | Validating only at send time meant an http:// URL saved fine and then failed silently on delivery. Validate in upsert so the integration editor surfaces it, and give the failure its own error case rather than reusing the generic invalid-URL message. The send-time guard stays as defense in depth for URLs saved before this.
* fix: harden webhook transport and gate debug loggingChristian Cleberg2026-07-201-1/+1
| | | | | | | | | | Require HTTPS for outbound integration webhooks. Webhook URLs are themselves secrets (Slack in particular), so an http:// endpoint leaked both the URL and the alert payload in cleartext. Disable DomainDebugLog in release builds. Every message used privacy: .public, which opted out of OSLog redaction and wrote looked-up domains to the unified log in shipped builds.
* DomainDig v4.1.0: Add a full local data reset flow in Data ManagementChristian Cleberg2026-04-251-0/+22
| | | | | | | | | | | | | | | | | | | | - add a destructive Delete All Data action with confirmation, progress, success, and failure handling - centralize wipe behavior in DataResetService instead of scattering delete logic in views - clear local persistence, temp/export files, integration secrets, notifications, caches, and in-memory app state - reset sync, purchase, and integration services after wipe so the app returns to a clean first-launch state Polish batch and empty-state UX - present the batch sweep summary after manual bulk searches complete, not only from Watchlist - align the Workflows empty state styling with other empty states by removing the extra background card treatment Bump the project version from 4.0.0 to 4.1.0
* DomainDig v4.0.0 — IntegrationsChristian Cleberg2026-04-251-0/+813
* Outbound webhook delivery * Native Slack webhook integration * SMTP-based email alerts * Per-integration event filtering * Reliable local delivery queue * Delivery logs and retry visibility * Integration management UI * Normalized event severity model * Canonical structured event payloads