# Stork 1.19.0 Release Notes, October 2, 2024

Welcome to Stork 1.19.0, another development release. The changes
introduced in this version are:

1. **Global options management**: Stork is now able to manage (list,
add, edit, and delete) global DHCP options in the Kea configuration
[#1447]. The DHCP option form used on many pages now accepts option
codes [#1461]. 

2. **Global parameters management**: Stork is now able to manage (list,
add, edit, and delete) selected global parameters in the Kea
configuration [#1366].

3. **Responsive UI**: Stork server now offers a responsive interface,
which is reasonably useful on small form-factor displays such as tablets
and smartphones [#104,#502,#1433]. We fixed many issues related to
filtering. The filtering code is now common between shared networks,
subnets, hosts, leases, apps, and machines [#880, #1415, #1464, #1468,
#1469].

4. **UI improvements**: The RPS (responses per second) statistic on the
dashboard was updated; it is now presented as a fractional number, which
offers better precision. Also, the tooltip describing the RPS was
clarified [#1510]. The process of creating a new subnet and adding it
immediately to a shared network was made more intuitive [#1438]. We
added missing documentation links for some Kea hooks [#1466]. The
authentication method selector is now displayed correctly as a dropdown
[#1471]. An address pool bar for long IPv6 addresses is now placed
inside a scrollable container [#1473]. The appearance of error messages
was visually improved in log viewers [#1194]. The memory usage figure
was made readable for small memory usage values [#662].

5. **BIND 9 improvements**: The BIND 9 wildcard address is now handled
properly [#1495]. We fixed a rare bug that caused a Stork server to
crash when the Stork agent was able to detect the BIND 9 process, but it
couldn't fetch its configuration due to insufficient rights [#1492]. The
BIND 9 containers used in the Stork demo were updated, following the
migration of the official BIND 9 images to Alpine [#1494]. 

6. **New checker**: A new checker was implemented that verifies the
presence of the open source Kea Lease Commands hook; if it is not found,
the checker notifies the user and encourages that the hook be loaded
[#1456].

7. **Bug fixes**: A problem was fixed with the stork-agent crashing
after running for a long time on FreeBSD and OpenBSD. The underlying
BSD-specific fix was needed in gopsutil, an external library used; one
of ISC's engineers developed a patch that eventually led to an updated
gopsutil release. This Stork release uses the fixed gopsutil version
[#1486]. Missing Grafana links are now visible on the dashboard [#1489].
We fixed a problem with not showing IPv6 statistics due to a bug in
Stork [#1493].

8. **Test improvements**: Unstable unit tests in the shared networks
table were fixed [#1500]. Richgo was replaced by the tparse library, as
richgo is no longer actively maintained. Both libraries are used for
coloring the test output [#1398]. A couple of job dependencies were
removed, making our CI build system simpler [#1465]. We added a system
test for disabling machine registration [#1400]. It is now possible to
run system tests on Apple M3 hardware. While the macOS remains
officially not supported, some of our developers use it [#1498]. We
increased the expiration time for system test artifacts [#1463]. We
fixed unstable TestSubnetPrefixInPrometheusMetrics [#943].

9. **Build improvements**: The build system now specifies the exact
golang version to use [#1485]. We updated dependencies including the Go
1.23.1, Angular 17.3.12, and several JavaScript, Python, and Ruby
packages [#1512]. Stork can now be built with a backend profiler and a
performance monitor. This capability is mostly useful for Stork
developers to investigate bottlenecks and get deeper insight into
Stork's internal operations under load. This tool will be essential for
better scaling and improved performance in the future [#1278]. OpenRC
scripts were added in Alpine packages [#1457]. Many dependencies were
updated [#1512]. We fixed a problem with stork-agent package
installation failing on RedHat due to differences in the naming of the
`kea` group [#1506]. We fixed a problem of variables not being
substituted in LDAP hook package descriptions [#1470].

10. **Documentation**: We updated Coding Guidelines with some
recommendations after the UI refactoring effort [#1480]. We fixed the
link for Alpine packages for the Cloudsmith repository in the
documentation [#1462].

Please see this link for known issues:
https://gitlab.isc.org/isc-projects/stork/-/wikis/Known-issues.

## Incompatible Changes

There are no incompatible changes in this release.

## Release Model

Stork has bi-monthly development releases.

We encourage users to test the development releases and report back
their findings on the stork-users mailing list, available at
https://lists.isc.org/mailman/listinfo/stork-users, or report bugs at
https://gitlab.isc.org/isc-projects/stork/-/issues/.

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

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 release, version 1.17.0.


* 455 [func] marcin

    RPS statistics displayed with two fractional digits precision.
    (Gitlab #1510)

* 454 [build] andrei

    Stork now installs OpenRC service files on Alpine systems.
    (Gitlab #1457)

* 453 [build] slawek

    Updated dependencies including the Go 1.23.1, Angular 17.3.12,
    and several JavaScript, Python and Ruby packages.
    (Gitlab #1512)

* 452 [bug] slawek

    Fixed a problem with recognising the wildcard IP address in the inet
    clause in the BIND9 configuration, preventing the Stork agent from
    establishing a connection to the named daemon.
    (Gitlab #1495)

* 451 [func] slawek

    Extended a form for editing global Kea configuration with support
    for altering the global DHCP options.
    (Gitlab #1447)

* 450 [bug] slawek

    Fixed the Kea and BIND 9 group names assigned to the user
    installed with the Stork agent package.
    (Gitlab #1506)

* 449 [bug] slawek

    Fixed a rare bug that caused a Stork server to crash when the Stork
    agent was able to detect the BIND 9 process, but it couldn't fetch
    its configuration due to insufficient rights.
    (Gitlab #1492)

* 448 [bug] marcin

    Restore missing links to the subnets in Grafana.
    (Gitlab #1489)

* 447 [bug] marcin

    Corrected command name for fetching DHCPv6 statistics. The wrong
    command was sent previously causing a failure to fetch this
    statistics.
    (Gitlab #1493)

* 446 [func] marcin

    Handle the case in Stork statistics presentation when the number
    of declined leases is lower than the number of assigned leases.
    In this case, Stork now estimates the number of leases with
    uncertain availability, and the number of free leases. These
    statistics are presented on the pie charts. It also eliminates
    negative lease statistics that were sometimes presented when the
    statistics returned by Kea were wrong.
    (Gitlab #1481)

* 445 [build] tomek

    Fixed a problem with BIND9 containers used in the demo. Some time
    around Aug 2024, the official BIND9 images switched from Debian
    to Alpine.
    (Gitlab #1494)

* 444 [func] marcin

    Implemented a form for editing selected global Kea configuration
    parameters.
    (Gitlab #1366)

* 443 [func] slawek

    Added a Kea checker to verify the Kea Lease Commands Hooks Library
    is loaded in the Kea DHCP daemon.
    (Gitlab #1456)

* 442 [doc] slawek

    Fixed a link in the docs to the script setting up the CloudSmith
    repository on Alpine operating systems.
    (Gitlab #1462)

* 441 [bug] slawek

    Fixed the built-in description of the hook packages. The environment
    variables were not substituted.
    (Gitlab #1470)

* 440 [func] piotrek

    Shared networks list view was refactored to be fully responsive.
    Filtering was reworked. Separate filters are now available
    in the shared networks table header.
    (Gitlab #1464)

* 439 [func] marcin

    Server assignments panel moved to the beginning of the
    subnet and shared network form. It promotes the natural
    flow of editing the subnets and shared networks because
    the assignments selection impacts the later parts of the
    forms.
    (Gitlab #1438)

* 438 [func] piotrek

    Stork UI was adjusted to be fully responsive. Now, it is
    usable on portable devices, e.g., smartphones and tablets.
    (Gitlab #1433)

Thank you again to everyone who assisted us in making this release
possible.

We look forward to receiving your feedback.