Stream the delegation check's queries too
release / release (push) Successful in 1m42s

Every DNS query the name server checks send is now reported from
exchangeHostPort as a dig command line with a short answer (addresses,
referral, DS, NXDOMAIN) and its round-trip time; the serials check's SOA
queries keep their own events with the server's result. The delegation
check streams with ?stream=1 like /serials, and the Name servers tab
shows its queries as they happen, keeps its result and follows a running
check when you come back.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
adamandClaude Opus 5.5 committed 2026-10-09 16:00:39 +00:00
1 parent 1d6c28ba69
commit bb6b4ab64d
6 files changed
+334 -128

No files matched your search

+11 -9
View File
@@ -220,15 +220,17 @@ when called ([operations.md](operations.md#checking-name-servers-and-the-delegat
`error` (with `error`). `source` is `NS record`, `also-notify` or
`primaries`; `port` is set for a non-default port.
`/serials?stream=1` answers with newline-delimited JSON
(`application/x-ndjson`) while it works, which is how the web UI shows the
check's progress. Each query is an event when it is sent and another when
it is answered: `{"kind": "start", "id": 2, "query": "dig @192.0.2.1
example.org. SOA +norec"}`, then `{"kind": "end", "id": 2, "result":
{...}}`. The result is a `servers` entry, or `addresses` or `error` for a
name server's address lookup. ID 0 is `rndc zonestatus`, which asks this
server's named. The last line is `{"kind": "done", "response": {...}}`,
the response above.
`/serials?stream=1` and `/delegation?stream=1` answer with
newline-delimited JSON (`application/x-ndjson`) while they work, which is
how the web UI shows a check's progress. Each DNS query is an event when it
is sent and another when it is answered: `{"kind": "start", "id": 2,
"query": "dig @192.0.2.1 example.org. SOA +norec"}`, then `{"kind": "end",
"id": 2, "answer": "serial 2026100900", "rtt_ms": 12}`. `answer` sums the
answer up (addresses, `referral to …`, `NXDOMAIN`, `no such record`);
`error` replaces it when there was none. The serials check's SOA queries
end with `result`, the `servers` entry, instead. ID 0 is `rndc zonestatus`,
which asks this server's named. The last line is `{"kind": "done",
"response": {...}}`, the endpoint's usual response.
`/delegation` returns `parent`, `resolver`, `delegated`, `parent_ns`,
`jarl_ns`, `parent_servers` (each parent server's `status`: `delegated`,