# Stork 2.2.0 Release Notes, June 11 2025 Welcome to Stork 2.2.0, the second stable release. The changes and features introduced in this version are: 1. **DNS zone viewer**: Stork is now able to retrieve the list of DNS zones from all detected BIND 9 servers, and display the unified list. This includes details about the zone (zone type, serial number, associated server or servers) and other information [#54, #1542, #1716, #1717]. The resource records (RRs) of each non-built-in zone can be retrieved using AXFR and displayed [#1712, #1713, #1714]. It is now easy to filter out built-in zones [#1747]. A zone is now removed once all BIND 9 applications connected with it are removed [#1733]. A DNS dashboard with a list of servers and additional information was added. Both DNS and DHCP dashboards are collapsible [#340]. The zone list compares serial numbers between servers and marks any discrepancies [#1768]. Updated wording for several columns and labels better reflects the fact that a single zone can appear in multiple views [#1780, #1775, #1774]. Issues with long zone fetches were addressed. We tested fetching a list of 2 million zones on a server and it completed in a bit over a minute, although the BIND 9 server was not handling any traffic. This is the first time we're making the zone viewer available to a wider audience. We'd love to get feedback, especially with regards to its usability, proposed improvements, and performance with real deployments [#1784]. The progress of partially complete fetches is now displayed visually; this is useful for deployments with a large number of zones [#1743]. Filtering by ANY zone type was removed [#1778]. The zone manager now cleans up stale zones properly [#1769]. 2. **Host reservation migration to a database**: Kea allows storage of host reservations in a configuration file or in a database; the former is usually preferred in smaller deployments. As the network grows, administrators may want to adopt a database solution. Starting with this release, Stork is now able to migrate hosts from a file to a database backend [#800]. A race condition was fixed in the hosts migrator [#1826]. This is the first time data migration from the Kea configuration to a database backend is supported by Stork. In the future, we may implement other data migration features. We would appreciate any feedback regarding the migration feature's usability and experience in real deployments. 3. **Read-only group**: A new read-only group was added to the previously available `admin` and `super-admin` groups. Many changes were introduced throughout the code to support additional groups in the future. Read-only group members cannot make any changes; they are only able to observe the state of the system [#157, #691, #1011]. 4. **New Kea classification**: Stork is now able to handle new client classification parameters (`evaluate-additional-classes`, `client-classes`) added in the Kea 2.7.4 release [#1653]. 5. **Security**: Users belonging to the `admin` group are no longer able to authenticate or delete machines; this privilege requires `super-admin` group membership [#1010, #1793]. The authentication service component has been improved [#1790]. 6. **UI improvements**: The edit and delete buttons for subnets, shared networks, hosts, and global parameters are now more visible [#1501]. The user experience for filtering tables has been improved. Buttons toggling filtering panels are now better visible and accessible on the left side of the panel. The screen blinks less when entering filtering parameters, and number inputs no longer accept a numeric zero filter value [#1593, #1596, #1597, #1608]. During the read-only role implementation, another inconvenience was fixed: when the user session does not exist, the UI no longer displays multiple errors [#1772]. There is now a dedicated 404 (not found) page [#1816]. The download link now leads to the download page, instead of directly to the tarball [#1705]. The BIND 9 app view page was improved; some labels were renamed and others are now clickable [#1777]. With the addition of the DNS menu, the top menu was adjusted to look better on limited resolution displays [#1773]. With the recent addition of more parameters in the Kea configuration, the raw configuration viewer was adjusted to display more entries. As a result, the whole configuration is presented on a single page [#1704]. 7. **Statistics**: The exporter now adds the shared network name as a label in the metrics exported to Prometheus, which can be used to generate more descriptive charts in Grafana [#1723]. The address and delegated prefix pool statistics are now fetched from Kea. The UI displays utilization bars for the pools [#1363]. The pool statistics are now exported to Prometheus [#1153]. 8. **Bug fixes**: The "update password" error pop-up message now disappears properly [#1599]. We fixed the formatting of error events emitted when Kea returns an HTTP error code in response to control commands [#1625]. Subnets are no longer preserved in the database after a related machine is deleted [#929]. A problem was fixed when upgrading the database schema under certain conditions [#1796]. 9. **Build improvements**: Dependencies were updated [#1827]. The release checklist was updated after a recent maintenance release [#1732]. The Stork backend now builds properly on Alpine running on ARM architecture [#1549]. The demo now features Kea 2.7.7 [#1792]. The demo traffic simulator's dependencies were updated [#1779]. 10. **Testing**: A test related to statistics was updated [#1846]. Several system test regressions were fixed [#1829]. The system_test pipeline is now run automatically on stable branches [#1731]. The dependency check and CodeQL are now run on stable branches [#1722]. The test counter is now displayed during the test execution [#1696]. 11. **Documentation**: Search capability in the ARM has been improved; it no longer ignores hyphen and quote characters [#1736]. We clarified compatibility with Kea Config Backend (CB): CB is not directly supported by Stork, although Stork is able to display configuration entities that Kea retrieved from CB [#1813]. The LDAP documentation is improved, with extra details about how to configure Stork with Windows Active Directory [#1761]. We removed unused parameters from the CLI documentation [#1763]. The Stork ARM was updated to reflect recent changes (starting with Kea 2.7.7) in the Kea hooks licensing. Nearly all Kea hooks are now open source [#1754]. Please see this link for known issues: https://gitlab.isc.org/isc-projects/stork/-/wikis/Known-issues. ## Incompatible Changes There are no backward incompatible changes in this release. ## Release Model Stork has stable (even minor version, e.g. 2.0.1) and development (odd minor version, e.g. 2.1.2) releases; development releases are issued bi-monthly with some exceptions. New stable releases are expected roughly every six months. For ISC's detailed software support policy, see https://kb.isc.org/docs/aa-00896#stork. We recommend using stable versions in production if possible. We encourage users to test development releases and report back their findings on the stork-users mailing list (available at https://lists.isc.org/mailman/listinfo/stork-users) or open GitLab issues. ISC professional support customers may also report issues via our support portal. This text references issue numbers. For more details, visit the Stork GitLab page at https://gitlab.isc.org/isc-projects/stork/issues. ## License Stork is released under the Mozilla Public License, version 2.0. https://www.mozilla.org/en-US/MPL/2.0 ## Download The easiest way to install the software is to use native deb or RPM packages. They can be downloaded from: https://cloudsmith.io/~isc/repos/stork/ The Stork source and PGP signature for this release may be downloaded from: https://downloads.isc.org/isc/stork The signature was generated with the ISC code-signing key, which is available at: https://www.isc.org/pgpkey ISC provides documentation in the Stork Administrator Reference Manual (ARM). It is available on ReadTheDocs.io at https://stork.readthedocs.io/en/latest/, and in source form in [the doc/ directory](https://gitlab.isc.org/isc-projects/stork/-/tree/master/doc). We ask users of this software to please let us know how it worked for you and what operating system you tested on. Feel free to share your feedback on the stork-users mailing list (https://lists.isc.org/mailman/listinfo/stork-users). We would also like to hear whether the documentation is adequate and accurate. Please open tickets in the Stork GitLab project for bugs, documentation omissions and errors, and enhancement requests. We want to hear from you even if everything worked. ## Support Professional support for Stork is available from ISC. We encourage all professional users to consider this option; Stork and Kea maintenance is funded with support subscriptions. For more information on ISC's Kea and Stork software support, see https://www.isc.org/support/. Free best-effort support is provided by our user community via a mailing list. Information on all public email lists is available at https://www.isc.org/mailinglists/. If you have any comments or questions about working with Stork, please share them to the stork-users list (https://lists.isc.org/mailman/listinfo/stork-users). Bugs and feature requests may be submitted via GitLab at https://gitlab.isc.org/isc-projects/stork/issues. ## Changes The following summarizes changes and important upgrades since the previous Stork stable release versioned 2.2.0. * 529 [doc] bscott Clarify compatability with the Kea CB (Configuration Backend). (Gitlab #1813) * 528 [doc] bscott, slawek Improve, update, and fix documentation for the LDAP hook. (Gitlab #1761) * 527 [ui] marcin Better expose buttons for editing and deleting subnets, shared networks, hosts and global parameters. (Gitlab #1501) * 526 [sec] slawek Fixed the security vulnerabilities reported by the security checkers and Github Dependabot. (Gitlab #1827) * 525 [func] piotrek Table filtering user experience was improved. Buttons toggling filtering panels are now better visible and accessible on the left side of the panel. Reduced screen blinking when typing in the filtering inputs. Number inputs no longer accept a numeric zero filter value. (Gitlab #1593, #1596, #1597, #1608) * 524 [bug] marcin Fixed formatting of error events emitted when Kea returns an HTTP error code in response to the control commands. (Gitlab #1625) * 523 [func] slawek Added a new label with a shared network name to the metrics exported to Prometheus. (Gitlab #1723) * 522 [func] slawek The address and delegated prefix pool statistics are now fetched from Kea. The UI displays utilization bars for the pools. (Gitlab #1363) * 521 [func] slawek Added a dedicated Not Found page. It is displayed when any UI component does not handle a requested URL address. (Gitlab #1816) * 520 [func] marcin Delete associated entities (i.e., zones, subnets, shared networks, host reservations) with the deleted machine. (Gitlab #1733) * 519 [func] marcin Extended the zone viewer to display the zone resource records for a selected DNS server and view in the dialog. (Gitlab #1713, #1714) * 518 [func] marcin Stork server supports setting evaluate-additional-classes and Kea client-classes parameters for Kea 2.7.4 and later. (Gitlab #1653) * 517 [func] slawek The Stork agent's Prometheus endpoint exports new metrics related to lease assignments in address and prefix pools. (Gitlab #1153) * 516 [func] piotrek Added a new "read-only" user group. Users assigned to this group have only read rights to the Stork data and REST API endpoints. Some UI components (e.g., buttons or forms) are disabled for read-only users. (Gitlab #157) * 515 [func] slawek The Stork server can now migrate host reservations from Kea JSON configuration to the Kea hosts database. (Gitlab #800) * 514 [func] piotrek Added DNS dashboard. The new dashboard is displayed below the DHCP dashboard. Users can control the dashboard's displayed/hidden state with the toggle buttons. (Gitlab #340) * 513 [func] tomek, piotrek Zone Viewer UI was improved. Two new columns were added to the Zone list table: Serial and Zone Type. If Stork detects a serial mismatch across different servers or views, a red notification will be displayed to draw the user's attention. (Gitlab #1768) * 512 [func] piotrek Zone viewer UI was improved. Some table column names were renamed to be more precise about the table contents. Filtering by ANY zone class was removed. (Gitlab #1774, #1778, #1780) * 511 [build] slawek Updated Kea version to 2.7.8 in demo and system tests. (Gitlab #1792) * 510 [func] marcin Eliminated issues with fetching large number of zones caused by concurrent access to the BIND 9 statistics channel. (Gitlab #1784) * 509 [func] piotrek Improved Zone viewer UI to display a partial list of zones already fetched during the ongoing zone fetch task running in the background. (Gitlab #1743) * 508 [func] piotrek BIND9 App view UI was improved. Some labels were renamed to be more precise about the displayed content. Clicking on Count of Configured Zones will lead to Zone viewer displaying BIND9 App zones. (Gitlab #1775, #1777) * 507 [func] piotrek Stork responsive UI was improved. The top menu navbar will collapse earlier when the screen becomes too narrow to display all the menu contents. (Gitlab #1773) * 506 [func] slawek Increased the number of visible rows per page in the JSON viewer to fit all top-level Kea configuration options on a single page. (Gitlab #1704) * 505 [bug] marcin Fixed a bug whereby zones removed from the DNS servers remained stale in the Stork server database. (Gitlab #1769) Stork 2.1.2 released on 2025-04-02. * 504 [build] slawek Updated dependencies including the Go 1.24.1, Angular 18 and several JavaScript, Python, Ruby and Go packages. (Gitlab #1758) * 503 [bug] slawek Fixed displaying a DHCP option value with an escaped comma. (Gitlab #1617) * 502 [func] slawek The hex identifiers with non-printable bytes can now be displayed in text form. (Gitlab #1682) * 501 [func] slawek Added server settings to specify the Grafana Dashboard IDs. (Gitlab #1720) * 500 [doc] slawek Updated Stork installation instructions in the ARM to direct users to the Cloudsmith documentation for setting up the repository. (Gitlab #1719) * 499 [func] marcin, piotrek Stork server now supports DNS zones filtering using new controls in the zone viewer. (Gitlab #1716, #1717) * 498 [func] marcin, piotrek Implemented fetching the DNS zones from Stork agents to Stork server. Implemented new view in Stork UI which retrieves and displays all fetched DNS zones. (Gitlab #1669, #1711) * 497 [func] marcin BIND9 tab now shows the query hit ratio for each view. (Gitlab #1675) * 496 [build] marcin Added a PowerDNS docker container to the demo environment. (Gitlab #1710) * 495 [build] tomek Updated docker files to use older syntax for port exporting. This improves compatibility with older Docker versions. (Gitlab #1748) * 494 [doc] slawek Rephrased a config review checker report to recommend using 'reservations-out-of-pool' option instead of the deprecated 'out-of-pool' option. (Gitlab #1668) * 493 [build] slawek Upgraded the Kea to version 2.7.6 in the demo. (Gitlab #1686) * 492 [ui] bscott Added a search/filter to the "Subnet" drop-down-list in the "host" form used for DHCP Reservations. (Gitlab #1725) Stork 2.1.1 released on 2025-02-05. * 491 [bug] slawek Fixed a bug in the "install:*" commands that caused the overriding of attributes of the system directories on specific operating systems. (Gitlab #1614) * 490 [func] marcin Implemented a DNS "zone inventory" in the Stork agent. It adds the capability for the Stork agent to gather a list of views and zones from BIND 9 on startup. This list is stored in the agent's memory but is not yet available to the Stork server. This change provides no new user-visible capabilities to the Stork agent, but lays the foundation for the zone viewer feature. (Gitlab #1647) * 489 [doc] slawek, bscott Added an LDAP hook documentation. (Gitlab #1652) * 488 [doc] sgoldlust Editorial and grammatical corrections in UI components. (Gitlab #1673) * 487 [build] slawek Updated dependencies including the Go 1.23.5, and several JavaScript, Python, Ruby and Go packages. (Gitlab #1676) * 486 [func] piotrek Reworked filtering in Machines list view. Filters are now unified with other Stork views that display tables and allow data filtering. It is possible to search for machines globally by keyword regardless of the authorization state. (Gitlab #1533) * 485 [func] slawek The authentication methods provided by hooks are presented before the internal method on the login page. (Gitlab #1648) * 484 [bug] slawek Fixed adding a host reservation with a hex identifier delimited by a dash. (Gitlab #1670) * 483 [func] slawek Stork agent now retrieves the Basic Auth credentials from the Kea CA configuration file. It is no longer supported to provide the JSON file with a login and password to the Kea REST API. The agent selects credentials with a "stork" user name or prefix. If no user is found, it uses the first credentials entry. (Gitlab #1624) * 482 [func] slawek Added an input to alter the subnet name. (Gitlab #1641) * 481 [bug] marcin Enabled timeouts for HTTP client connecting to Kea. It should help to gracefully handle communication issues between Stork agents and Kea servers. (Gitlab #1467) * 480 [func] piotrek The feature which informs about used Kea, BIND 9, and Stork versions was improved to download the metadata about current software releases from an online source. The user may disable this feature in settings so the built-in offline JSON file can be used as a metadata source instead. (Gitlab #1636) * 479 [func] piotrek Anchors to Kea hooks documentation were improved to be automatically generated. This way the anchors will be always up-to-date with new Kea hooks. (Gitlab #1588) * 478 [build] tomek The native packages now have better descriptions. (Gitlab #1618) Stork 2.1.0 released on 2024-12-11. * 477 [bug] slawek Fixed a bug in the LDAP hook that made connecting to the server over the LDAPS (TLS) protocol impossible. Thanks to Cameron Ditchfield for proposing a fix. (Gitlab #1488) * 476 [func] slawek The subnet's user context is now displayed on the subnet page. The "subnet-name" property value of the context is also shown on the subnet list. (Gitlab #459) * 475 [func] piotrek The "Software versions" view was updated with a list of small changes, such as corrected help tooltip text, adjusted notification message severity for development releases, and improved badge notification displayed in the top menu. (Gitlab #1571) * 474 [build] slawek The demo now loads the LDAP hook and starts the OpenLDAP server. (Gitlab #1554) * 473 [bug] tomek The Stork agent can now detect the default RNDC key of BIND 9. The parser code can now handle algorithm definitions both quoted and unquoted. (Gitlab #1590) Thank you again to everyone who assisted us in making this release possible. We look forward to receiving your feedback.