-
Jarl v0.4.1-rc.1 Pre-release
released this
2026-10-11 23:53:31 +01:00 | 74 commits to main since this releaseUpgrading from 0.4
- Once you use address ranges, the database can't go back to 0.4: its
parser doesn't know them. Remove the ranges first if you need to
downgrade.
Fixed
- A changeset with a staged record delete could not be applied after that
record was deleted elsewhere (e.g. with the CLI), and it was hard to see
which operation to remove: the error only said "record 832 does not
exist". A staged delete of a record that is already gone now counts as
done (with a warning), and the other operations that no longer apply
(an edit or disable of a deleted record, a change to an object changed
since) are named with their number and summary. The Changes page marks
that operation and offers to remove it right in the error.
Added
jarl changeset show,diff,apply,discardandremovetake the
changeset from-CorJARL_CHANGESETwhen no ID is given
(jarl changeset apply). A changeset fromJARL_CHANGESETis now
checked before it is used, for staging too: it must exist, be open and
be yours, so a stale export (an applied changeset, or an ID that later
turned into someone else's web UI draft) can't silently take your
changes; the error says what to do. Commands say on stderr which
changeset fromJARL_CHANGESETthey use, andapply/discardremind
you tounset JARL_CHANGESET.-Cand ID arguments are used as given.- Address ranges such as
10.0.10.101-10.0.10.199or
2001:db8::100-2001:db8::1ff(also!negated, and with spaces around
the dash) wherever an address match list is used: ACLs, views'
match-clients and match-destinations, options such as allow-query, and
blocking's client groups (docs/concepts.md). Jarl
keeps the range as written and writes the fewest prefixes that cover
exactly that range to named.conf, with the range as a comment. The web
UI shows what a range becomes while you type it (GET /catalog/ranges). Mistakes are refused when entered: an end that isn't
a full address, the start after the end, IPv4 mixed with IPv6, a range
in an option that takes no address match list (forwarders). A range
covered by an earlier element is reported as never matching, a range of
every address counts as "any" for the open resolver and open transfer
checks, and an IPv6 range in the IPv4-mapped space gets a warning. ACL
names can no longer look like a range. - Prometheus metrics at
/metrics(docs/metrics.md),
set up in the newmetrics:section of jarl.yaml (off by default).
metrics.allowlists the addresses that may scrape (loopback by
default),metrics.tokenlets anyone who sends it as a bearer token
scrape, andmetrics.listenadds addresses that serve only/metrics
(for a Prometheus server elsewhere). Root and jarld's own user can also
scrape on the local socket.- Health, always: named up, recursive and TCP clients against their
limits, adopted, open changesets, last apply, validation problems by
severity, drifted files, object counts, the last backup (and failure,
and whether it is stale), blocking paused, each blocklist's entries,
last check and change and whether it fails, the DNSSEC phase of every
signed zone, and when API tokens expire. - With query statistics on: named's counters (queries, result codes,
record types, UDP/TCP, authoritative/recursive, rate limiting, upstream
round-trip times, DNSSEC validation, cache hits) and Jarl's (logged
responses per view and zone, blocked queries per blocklist), as
counters since jarld started, plus named's memory, CPU, threads, cache
and sockets, and the collector's health. - Example queries and alert rules, checked with promtool.
- Health, always: named up, recursive and TCP clients against their
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Once you use address ranges, the database can't go back to 0.4: its