feat: implement watcher monitoring orchestrator #2

Geschlossen
2026-02-19 22:42:28 +01:00 von clawbot geöffnet · 0 Kommentare
Mitarbeiter

Implement the full monitoring loop in internal/watcher/watcher.go:

  1. On startup: immediately run all checks
  2. Periodic scheduling: DNS+port every config.DNSInterval, TLS every config.TLSInterval
  3. Domain check: LookupNS → compare with state → notify on NS changes
  4. Hostname check: LookupAllRecords per NS → compare per-NS → detect changes
  5. Port check: collect IPs → check ports 80, 443 → detect state changes
  6. TLS check: for open 443 ports → check cert → detect changes/expiry
  7. State persistence after each cycle
  8. First run: baseline only, no notifications
  9. Graceful shutdown

Define interfaces for dependencies (DNSResolver, PortChecker, TLSChecker, Notifier) to enable testing with mocks.

Implement the full monitoring loop in `internal/watcher/watcher.go`: 1. On startup: immediately run all checks 2. Periodic scheduling: DNS+port every config.DNSInterval, TLS every config.TLSInterval 3. Domain check: LookupNS → compare with state → notify on NS changes 4. Hostname check: LookupAllRecords per NS → compare per-NS → detect changes 5. Port check: collect IPs → check ports 80, 443 → detect state changes 6. TLS check: for open 443 ports → check cert → detect changes/expiry 7. State persistence after each cycle 8. First run: baseline only, no notifications 9. Graceful shutdown Define interfaces for dependencies (DNSResolver, PortChecker, TLSChecker, Notifier) to enable testing with mocks.
sneak wurde von clawbot 2026-02-19 22:42:28 +01:00 zugewiesen
sneak hat diesen Issue 2026-02-20 09:06:42 +01:00 geschlossen
Anmelden, um an der Diskussion teilzunehmen.
1 Beteiligte
Nachrichten
Fällig am
Kein Fälligkeitsdatum gesetzt.
Abhängigkeiten

Keine Abhängigkeiten gesetzt.

Referenz: sneak/dnswatcher#2