Commit Graph

  • e8b40062da build: re-vendor canonical files from prompts dd4027b (closes #257) next clawbot 2026-10-06 04:29:48 +02:00
  • d1060315b7 watcher, config: no Record Change or Inconsistency for listed names (closes #255) clawbot 2026-10-06 03:01:46 +02:00
  • 6822996134 resolver: a nameserver with a failed record type is not nodata (closes #253) clawbot 2026-10-02 13:16:42 +02:00
  • 67b67b8475 resolver, watcher: a domain's nameservers are only its own delegation (closes #222) clawbot 2026-10-02 12:38:45 +02:00
  • 9bd1a71d8f resolver: the refused-query test asks several operators, one query each (closes #251) clawbot 2026-10-02 12:00:48 +02:00
  • 6332b48379 watcher: a name removed from the targets leaves the state (closes #223) clawbot 2026-10-02 11:17:59 +02:00
  • 9b9e26d6b2 resolver, watcher: a record type whose query fails keeps its previous records (closes #231) clawbot 2026-10-02 10:51:23 +02:00
  • 9b524e9d63 watcher: Port Change notifications list domains apart from hostnames (closes #248) clawbot 2026-10-02 10:42:07 +02:00
  • b43402a631 dashboard and status API list a port's domains apart from its hostnames (closes #245) clawbot 2026-10-02 10:31:07 +02:00
  • 008ec5d13a resolver: ask a referral's nameservers that come without addresses (closes #221) clawbot 2026-10-02 10:12:08 +02:00
  • e46db71821 dashboard, status API and notifications tell apex domains from hostnames (closes #224) clawbot 2026-10-02 10:08:32 +02:00
  • 1218df9467 dashboard: list record types in the README's order (closes #226) clawbot 2026-10-02 09:55:07 +02:00
  • 250f3dd687 dashboard and status API show why a check failed (closes #225) clawbot 2026-10-02 09:14:28 +02:00
  • c07976a73a resolver: store a name's CNAME once per nameserver (closes #220) clawbot 2026-10-02 09:09:51 +02:00
  • b047c3c64c watcher: a lookup cut short by shutdown is not logged as an error (closes #229) clawbot 2026-10-02 08:56:52 +02:00
  • f99de191c0 watcher: change messages name only the record types that differ (closes #219) clawbot 2026-10-02 08:46:56 +02:00
  • 5db5048754 watcher: startup notification no longer says every endpoint works (closes #230) clawbot 2026-10-02 08:42:35 +02:00
  • 26c9c74d8e notify: a failed Mattermost delivery's error names Mattermost (closes #227) clawbot 2026-10-02 08:40:19 +02:00
  • ceb24c5004 log: write durations as text, not nanoseconds (closes #228) clawbot 2026-10-02 08:37:47 +02:00
  • ee4cadbd05 watcher: follow a watched name's CNAME for port and TLS checks (closes #203) clawbot 2026-10-02 08:26:27 +02:00
  • a18803ff28 resolver tests: retry an answer missing the record type read (closes #218) clawbot 2026-10-02 07:52:44 +02:00
  • 3182fc99a6 docker: a plain docker build . stamps the git version (closes #210) clawbot 2026-10-02 06:27:47 +02:00
  • 889e17459b resolver: never resend a refused query asking for recursion (closes #206) clawbot 2026-10-02 06:10:54 +02:00
  • a67fd20e4f ci: a push cancels its branch's older run, checkout keeps no token (closes #216) clawbot 2026-10-02 06:07:53 +02:00
  • dba932c9e3 watcher tests: far fewer live queries, longer live attempts (closes #214) clawbot 2026-10-02 06:04:31 +02:00
  • 82836b41fd resolver: try servers in a random order on each resolution (closes #138) clawbot 2026-10-02 03:26:06 +02:00
  • af81f2ac76 README: correct claims the code does not bear out (closes #108) clawbot 2026-10-02 03:14:26 +02:00
  • 56c4395a39 config: watch a target listed twice only once (closes #207) clawbot 2026-10-02 02:56:11 +02:00
  • c9510a986c watcher: warn of an expiring certificate on every TLS check (closes #204) clawbot 2026-10-02 01:58:28 +02:00
  • 1f1640d4cd resolver: take a domain's NS set from its delegation (closes #200) clawbot 2026-10-02 01:48:54 +02:00
  • 11ce1b249b docs: add the README sections policy requires (closes #173) clawbot 2026-10-02 01:25:13 +02:00
  • d09822562d resolver: pass over a server that answers SERVFAIL or refers no closer (closes #197) clawbot 2026-10-02 01:17:37 +02:00
  • 97c8138c85 watcher: keep port state when no nameserver of a name answered (closes #193) clawbot 2026-10-02 00:44:49 +02:00
  • d2f154b2cf resolver: error from ResolveIPAddresses when no nameserver answered (closes #190) clawbot 2026-10-02 00:28:53 +02:00
  • 4c2932d6d6 fmt: format and check Markdown with prettier in a container (closes #119) clawbot 2026-10-02 00:19:30 +02:00
  • b5814b2451 fmt: check goimports in fmt-check, run it at its pinned commit (#119) clawbot 2026-10-01 23:51:22 +02:00
  • 797c936c48 resolver: query a hostname at its own zone's servers (closes #189) clawbot 2026-10-01 23:34:35 +02:00
  • c247f6bcf5 watcher: notify nameserver address changes (closes #105) clawbot 2026-10-01 23:23:26 +02:00
  • f6567df2d0 watcher: save state when it stops and wait for that save (closes #114) clawbot 2026-10-01 23:14:17 +02:00
  • c0ea9b96f2 server: report HTTP handler panics to Sentry (closes #107) clawbot 2026-10-01 23:09:39 +02:00
  • fe01cdda1e watcher: save and notify nothing for a cut-short port or TLS check (closes #185) clawbot 2026-10-01 22:49:45 +02:00
  • a8f9a64600 middleware: take the client address from the right of X-Forwarded-For (closes #181) clawbot 2026-10-01 22:35:17 +02:00
  • 8f11ef0038 watcher: notify NS query failure and recovery (closes #104) clawbot 2026-10-01 22:23:33 +02:00
  • fcd4f7e2c2 config: stop startup on an invalid DNS or TLS interval (closes #177) clawbot 2026-10-01 22:19:04 +02:00
  • ed0f56f144 metrics: rate limit /metrics per client address before Basic Auth (closes #101) clawbot 2026-10-01 22:09:14 +02:00
  • bea9a3b2f2 docker: report the real version in the image (closes #109) clawbot 2026-10-01 22:01:43 +02:00
  • e93c2664b8 notify: release held deliveries so shutdown tests fail, not hang (closes #176) clawbot 2026-10-01 21:58:58 +02:00
  • bde047f2a3 script/install-precommit: work where .git is a file (closes #129) clawbot 2026-10-01 21:45:57 +02:00
  • 6070356676 docs: bring TODO.md up to date (closes #146) clawbot 2026-10-01 21:32:49 +02:00
  • 3390d7065e docker: set up the data directory in an entrypoint (closes #166) clawbot 2026-10-01 21:15:02 +02:00
  • f7cc6b42e0 server: limit wildcard CORS to the public routes (closes #100) clawbot 2026-10-01 21:05:43 +02:00
  • db94c903df tests: move the test-only constructors into export_test.go (closes #111) clawbot 2026-10-01 21:03:03 +02:00
  • 5493e28480 notify: make the shutdown tests fail with the right message (closes #116) clawbot 2026-10-01 20:42:21 +02:00
  • 651429137f tests: rename internal/livedns to livednstest and deny it outside tests (closes #164) clawbot 2026-10-01 19:52:48 +02:00
  • 93c1fe15e3 golangci: re-vendor the org config with gomodguard_v2 (closes #123) clawbot 2026-09-29 10:27:07 +02:00
  • 6dd6043534 tests: remove the DNS stand-ins from the watcher and resolver tests (closes #159) clawbot 2026-09-29 08:44:07 +02:00
  • a93389e1a0 watcher: send the inconsistency alert once per disagreement (closes #158) clawbot 2026-09-29 02:29:53 +02:00
  • 95b017eb3e resolver: lower-case DNS names in record values (closes #157) clawbot 2026-09-29 00:30:29 +02:00
  • 1ab0b9f61d script: force lint and test to run in cibuild and docker (closes #115) clawbot 2026-09-28 23:13:38 +02:00
  • 19f282c8b3 server: assert timeouts on the served http.Server, not just the constructor (closes #120) clawbot 2026-09-28 22:01:36 +02:00
  • 148e47d9c0 docker: run as non-root, add health check, document upaas (closes #147) clawbot 2026-09-28 20:13:37 +02:00
  • 8aaa103956 middleware: add security response headers (closes #98) clawbot 2026-09-22 00:52:48 +02:00
  • c2a07ce690 test: add tests for globals, healthcheck and logger (closes #110) clawbot 2026-09-21 10:05:38 +02:00
  • b425692bfd feat: add security response headers middleware (closes #98) fix/98-security-headers clawbot 2026-08-09 01:47:47 +00:00
  • b351a2350c gomod: drop stale golang.org/x/sync indirect line (closes #132) clawbot 2026-09-21 09:44:49 +02:00
  • 1ffe303a6e Merge main into next, resolving TODO.md (closes #145) clawbot 2026-09-21 07:22:17 +00:00
  • fc43f893a5 server: set all four http.Server socket timeouts (#118) clawbot 2026-09-09 15:17:43 +02:00
  • e77e206fc4 next (#136) main prod clawbotandsneak 2026-09-09 14:57:55 +02:00
  • ae06f7e3a1 notify: drain in-flight deliveries at shutdown (closes #106) clawbot 2026-09-09 14:26:53 +02:00
  • b8662b8a9c docs: correct stale script headers and record the config-verify cost (closes #137) sneak 2026-08-10 14:09:20 +00:00
  • 168281ad60 docs: add MIT LICENSE and state the licence in the README (closes #102) sneak 2026-08-10 14:04:31 +00:00
  • 6f6bf3a65b test: disable Go's test cache so every run queries live DNS (closes #139) sneak 2026-08-10 13:48:15 +00:00
  • 87bce43f8d test: rework live-DNS quorum unit — tolerate silence, never a wrong answer sneak 2026-08-10 13:33:26 +00:00
  • 9cb2c2b7e0 test: make live DNS tests robust instead of gated (closes #93) sneak 2026-08-10 13:09:17 +00:00
  • cc86473410 build: run all linting in Docker via Dockerfile.lint (closes #134) sneak 2026-08-10 12:37:47 +00:00
  • db933f32a6 build: always install pinned lint tools in script/bootstrap (closes #117) fix/117-bootstrap-pin sneak 2026-08-09 14:54:18 +00:00
  • 520ce79709 build: isolate golangci-lint cache and lock per checkout (closes #121) fix/121-lint-cache-isolation sneak 2026-08-09 14:35:42 +00:00
  • ff66ecc0c9 ci: re-run make check on every cibuild instead of serving it from the layer cache (closes #115) fix/115-cibuild-cache sneak 2026-08-09 06:04:15 +00:00
  • 9347a2838b build: update golangci-lint to v2.12.2 with org-standard v2 config (#96) clawbotandsneak 2026-08-07 23:15:47 +02:00
  • f79cd98107 docs: document the no-DNS-mocking policy in README (closes #94) (#95) clawbotandsneak 2026-08-07 22:31:48 +02:00
  • b72c436fda scripts-to-rule-them-all (#92) sneak 2026-07-07 02:14:32 +02:00
  • 4463c56490 TODO (#91) sneak 2026-07-06 21:20:44 +02:00
  • 23f115053b feat: add retry with exponential backoff for notification delivery (#87) clawbotandclawbot 2026-03-22 07:14:59 +01:00
  • f788037bfb config: use /var/lib/dnswatcher as default data directory (#89) clawbotanduser 2026-03-20 06:56:09 +01:00
  • b64db3e10f feat: enhance /api/v1/status endpoint with full monitoring data (#86) clawbotandclawbot 2026-03-10 12:20:11 +01:00
  • 65180ad661 feat: add DNSWATCHER_SEND_TEST_NOTIFICATION env var (#85) clawbotanduser 2026-03-04 21:41:55 +01:00
  • 1076543c23 feat: add unauthenticated web dashboard showing monitoring state and recent alerts (#83) 2026-03-04 13:03:38 +01:00
  • 1843d09eb3 test(notify): add comprehensive tests for notification delivery (#79) 2026-03-04 11:26:31 +01:00
  • c5bf16055e test(state): add comprehensive test coverage for internal/state package (#80) clawbotandclawbot 2026-03-04 11:26:05 +01:00
  • d6130e5892 test(config): add comprehensive tests for config loading path (#81) clawbotanduser 2026-03-04 11:23:24 +01:00
  • 0a74971ade docs: fix README inaccuracies found during QA audit (#74) 2026-03-02 08:40:42 +01:00
  • e882e7d237 feat: fail fast when no monitoring targets configured (#75) clawbotandclawbot 2026-03-02 01:26:55 +01:00
  • 713a2b7332 config: fail fast when DNSWATCHER_TARGETS is empty fix/empty-targets-validation user 2026-03-01 16:22:27 -08:00
  • 83643f84ab feat: implement GET /api/v1/domains and /api/v1/hostnames endpoints fix/67-readme-api-endpoints clawbot 2026-03-01 16:07:07 -08:00
  • 6ebc4ffa04 fix: use context.Background() for watcher goroutine lifetime (#63) 2026-03-02 00:39:08 +01:00
  • b20e75459f fix: track multiple hostnames per IP:port in port state (#65) clawbotandclawbot 2026-03-02 00:32:27 +01:00
  • ee14bd01ae fix: enforce DNS-first ordering for port and TLS checks (#64) clawbotanduser 2026-03-02 00:10:49 +01:00
  • 2835c2dc43 REPO_POLICIES compliance audit (#40) 2026-03-01 21:11:49 +01:00
  • 299a36660f fix: 700ms query timeout, proper iterative resolution (closes #24) (#28) clawbotandclawbot 2026-03-01 21:10:38 +01:00
  • 4dede6af9d update README: reference REPO_POLICIES.md, add License/Author sections, document new Makefile targets fix/issue-39-repo-policies clawbot 2026-03-01 07:56:09 -08:00