Commit Graph

  • 6ff6f00ee4 main into prod (#303) prod sneak 2026-10-22 19:14:49 +02:00
  • 226f0a7bd5 next (#305) main sneak 2026-10-22 18:53:30 +02:00
  • 70fbf55832 Merge branch 'main' into next next sneak 2026-10-22 18:53:17 +02:00
  • 774f7caff6 healthcheck: answer 503 when no root server gave a usable reply in the last round of DNS checks (closes #302) v1.0.0-rc4 clawbot 2026-10-18 17:24:49 +02:00
  • c842efdb81 next (#152) sneak 2026-10-16 14:01:19 +02:00
  • b23cf43abf resolver: a reply marked recursion available from a root server's address stops the lookup (closes #300) clawbot 2026-10-16 12:26:52 +02:00
  • adc8131191 resolver: a query cut short by the caller's context records no reason (closes #298) v1.0.0-rc3 clawbot 2026-10-15 19:48:08 +02:00
  • 06ae357165 resolver: drop the unused timeout multiplier and the comment claiming it (closes #296) clawbot 2026-10-15 18:31:07 +02:00
  • f6b7aefcbf docs: TESTING.md constraints match the resolver and the test-time policy (closes #289) clawbot 2026-10-15 18:01:51 +02:00
  • db3b09c5d8 handlers: a directory under /s/ answers 404, not a listing (closes #286) clawbot 2026-10-15 17:01:52 +02:00
  • caa3aa3c12 notify: a reply other than 2xx is a failed delivery (closes #287) clawbot 2026-10-15 16:14:20 +02:00
  • dee69c4780 resolver: a nameserver is asked at each of its addresses in turn (closes #285) clawbot 2026-10-15 15:48:15 +02:00
  • 5e2c456e85 notify: the log names a notification endpoint, not its webhook URL (closes #288) clawbot 2026-10-15 14:48:17 +02:00
  • b79726acc6 watcher: a hostname whose zone's nameservers all stop answering gets NS Failure (closes #284) v1.0.0-rc2 clawbot 2026-10-14 00:27:29 +02:00
  • aaccabad50 watcher: an IPv6 address is written in brackets before its port (closes #270) v1.0.0-rc1 clawbot 2026-10-13 22:27:34 +02:00
  • 6b580a5a0f docs: TODO.md names only open issues as next steps (closes #281) clawbot 2026-10-13 22:00:04 +02:00
  • cb89e4f8cf watcher: a port check that finds 443 closed removes its certificate entries (closes #265) clawbot 2026-10-13 21:27:34 +02:00
  • 9e6871817a state: a state file without a section loads it empty (closes #267) clawbot 2026-10-13 20:27:27 +02:00
  • 3592302615 watcher: a stop during the first scan sends no startup notification (closes #271) clawbot 2026-10-13 20:00:00 +02:00
  • 79761c29e1 watcher: a removed nameserver is an NS Change, not an NS Failure (closes #262) clawbot 2026-10-13 19:27:36 +02:00
  • b9686c6d7b config: a metrics username without a password stops startup (closes #268) clawbot 2026-10-13 19:10:58 +02:00
  • 5617c92fb3 state: Save syncs the state file before renaming it into place (closes #264) clawbot 2026-10-13 18:27:31 +02:00
  • 2ae6110414 server: a port that cannot be bound stops startup (closes #266) clawbot 2026-10-13 18:00:00 +02:00
  • 39e7bc9067 config: a bad number or true/false setting stops startup (closes #269) clawbot 2026-10-13 15:27:32 +02:00
  • 02cb1ec580 state: GetSnapshot copies the state's maps (closes #261) clawbot 2026-10-13 13:44:31 +02:00
  • e8b40062da build: re-vendor canonical files from prompts dd4027b (closes #257) 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) 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