• v0.4.0-rc.2 73d97ecc0a

    Jarl v0.4.0-rc.2 Pre-release

    adam released this 2026-10-11 16:51:29 +01:00 | 90 commits to main since this release

    Added

    • Disabled zones: a zone can be disabled instead of deleted. named stops
      loading it (its zone statement is left out of named.conf), while Jarl
      keeps it with its records, options and history, still editable;
      enabling it serves it as it is then. Disabling says what clients get
      instead (recursion, or REFUSED). Signed zones can't be disabled. Web
      UI: Disable/Enable on the zone page, a badge in the zone list. CLI:
      jarl zone disable|enable. API: PATCH /zones/{zone} with
      {"disabled": true}. Database schema 7.
    • Blocking (docs/blocking.md): named answers "doesn't exist" for ads,
      trackers and malware, using BIND's response policy zones.
      • Blocklists in Adblock, hosts or plain-domain format, downloaded by jarld
        and checked daily (blocking.refresh). A list is downloaded only when
        the server says it changed, checked with named-checkzone, and reloaded
        only when its content differs; a failed update keeps the previous
        version and shows on the dashboard.
      • Your own block and allow rules, for a domain and the names below it or
        the exact name. Rules take precedence over every list, and the most
        specific rule wins.
      • Lists and rules apply to chosen views, or to every view that offers
        recursion. They are configuration: staged, reviewed and reverted like
        any change.
      • Checking a name says whether it is blocked and by which rule or list
        entry, with an Allow button in the web UI.
      • Web UI: a Blocking page, with well-known lists to pick and named's
        memory per list. CLI: jarl blocklist and jarl block. API:
        /blocking/lists, /blocking/rules, /blocking/check.
      • Pausing: jarl block pause [DURATION] or the Blocking page lets every
        name through for a while (at most a day); blocking resumes by itself.
        The lists stay loaded, so it takes effect at once.
      • Statistics: blocked queries over time (a line on the queries chart)
        and their share, blocked per list, the most blocked names and the
        clients with the most blocked queries (jarl stats top blocked,
        top blocked-clients). Blocked answers no longer count as names that
        don't exist.
      • The view choice in the web UI's forms is a compact dropdown, however
        many views there are.
      • A blocking permission; database schema 6.

    Changed

    • Web UI options (server, top-level, view and zone): values with blocks,
      such as logging, are shown and edited laid out as in named.conf, over
      several lines with indentation. The editor grows with its content, Tab
      indents and Enter keeps the indentation (Esc, then Tab, moves on). With
      a draft open, the tables show the draft's values, so a staged edit stays
      visible after Save.
    • The pending-changes banner has an Apply now button: it applies your
      draft without going to the Changes page, and stays on the page you're
      on. If the changes are refused, a dialog says why and links to Changes.
    • Blocking page: blocklists and rules have an Edit button (name, URL,
      views, comment; a rule's action and scope). The list button that
      downloads now is called Refresh, like jarl blocklist refresh.
    • Records table: disabled records are hatched and have a "disabled" badge
      next to their name, instead of only a muted colour and a badge in the
      comment column.

    Fixed

    • Statistics: after a reconfig that added, removed or recreated views
      (creating the first view, for instance), a minute could count everything
      since named started: millions of queries in an hour. A per-view counter
      (cache, upstream times, validation) going down was taken for a restart
      of named. Now only a new boot time means a restart, and a counter that
      goes down counts 0 for that minute.
    • Blocking page, checking a name: when your own block rule is for that very
      name, it offers to remove the rule instead of an allow rule, which was
      refused as a second rule for the same name. It also names the rule that
      matched rather than the policy zone entry.
    • docs/validation.md lacked the disabled_conflict warning added in 0.3.0.
    Downloads