# Stork 2.0.0 Release Notes, November 13 2024

Welcome to Stork 2.0.0, the first stable release. The changes introduced
in this version are:

1. **Version reporting**: Stork is now able to provide detailed reports
on the software versions deployed for Kea, BIND 9, and Stork itself.
This includes warnings and informational messages on whether the
software has newer versions with known security issues fixed, has any
updates available, or has mismatched DHCPv4/DHCPv6 server versions, and
many other situations are also detected. This Stork version uses offline
checking, which means that the Stork release has built-in information
(stored as a JSON file) that contains the release information for all
the evaluated software. Future Stork versions will have the capability
for online verification of the availability of newer versions. This
feature was tested in a synthetic environment; feedback from actual
deployments would be much appreciated [#222, #1558, #1516].

2. **Customizable login screen**: It is now possible to customize the
Stork login screen. This might be useful as a way to add
deployment-specific details, such as offering help if users are unable
to log in, warning about unauthorized access being forbidden, or
providing any other public information [#1431].

3. **Grafana dashboards**: Grafana dashboards for DHCPv4, DHCPv6, and
BIND 9 were updated to recent Grafana 10.3.3 [#1322]. We fixed missing
Grafana links for IPv6 [#774].

4. **Bug fixes**: Earlier Stork versions could consume excessive amounts
of memory and experience slowdowns when dealing with a massive
configuration using thousands of shared networks. This release includes
a fix for the excessive memory consumption. Performance issues when
handling such a large configuration are being investigated; a proper
performance fix will require a larger refactoring [#1552]. This version
offers improved compatibility with older versions. Stork now sets set
`ddns-use-conflict-resolution` and `ddns-conflict-resolution-mode`,
depending on the configured Kea version. Previously a user could set one
of these parameters for the Kea versions that did not support them,
causing configuration errors [#1536]. We fixed a problem with migrating
back to schema 55 [#1553]. Stork no longer repeats its logs about
detecting BIND 9, RNDC key status, or certain persistent detection
errors [#1422, #1384]. We fixed a problem with the LDAP login method not
being selected on the login page [#1540]. The error messages for a
failed configuration update are now more descriptive and include the Kea
error response [#1535]. The High Availability (HA) panel no longer
scrolls when its content is being updated [#1472].

5. **Build improvements**: A release checklist was created. While it's
not visible to users, this checklist allows our release engineers to
ensure all release steps are completed, thus giving users a more
consistent experience across releases [#1521]. We have improved
compatibility with older systems (e.g. RHEL 8) by building deb and RPM
packages with GLIBC 2.31. This also improves compatibility with ARM
systems (Debian and Ubuntu running on aarch64) [#1364, #1538]. The deb
packages now use `useradd` instead of `adduser`, making it easier to
build packages on some deb-based distros [#1537]. The Stork server now
detects the directory with static UI files relative to the
`stork-server` binary when `rest-static-files-dir` is not specified,
eliminating the need to specify this parameter when the Stork server is
installed in a custom directory [#1434].

6. **Security**: After installation, Stork now enforces changing the
admin password. By default, it also prompts new users to change the
initial password. The `super-admin` user is able to force specific users
to change their passwords on the next login [#1385]. The character-set
checks for passwords were relaxed; it is now possible to use a space in
passwords [#1532]. All Stork dependencies were updated [#1559]. We fixed
agent registration using a server token [#1491].

7. **Documentation updates**: The Stork Administrator Reference Manual
(ARM) received a major update. A glossary was added with definitions of
common terms, and a new section with an overview of major features was
added. New sections dedicated to Kea management and security deployment
were added. Usage examples were added to the manual pages [#1365]. The
version-checking feature is now documented [#1556]. We removed obsolete
notes [#1531]. We fixed line breaks before links [#1525]. The
contributing guidelines were updated [#1524].

8. **Demo**: Several aspects of the Stork demo were updated. A crash was
fixed in the traffic simulator [#445].

9. **Testing**: The unit-tests executions no longer fail silently
[#1563]. We expanded the list of systems to run tests on (we added
Alpine 3.17, 3.19, 3.20). The test results are now exported in junit
format, making it easier for our QA team to track test results
automatically [#1503].

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

## Incompatible Changes

None.

## Release Model

Starting with this release, 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 6 months. For ISC's detailed
software support policy, see https://kb.isc.org/docs/aa-00896#stork.

Usage of stable versions is recommended, unless the latest features with
possibly some bug fixes are desired. 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 open Gitlab
issues. ISC paid 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

Starting with release 2.0.0, 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 release versioned 1.19.0.

* 472 [bug] marcin

    Fixed a problem with resetting the database schema to the initial
    version, using the stork-tool db-reset command, when some of the
    database users had no email assigned.
    (Gitlab #1583)


* 471 [perf] slawek

    Solved a problem with consuming abnormally much memory if the Stork
    server monitored multiple Kea servers that simultaneously managed
    thousands of shared networks.
    (Gitlab #1552)

* 470 [func] marcin

    Conditionally set ddns-use-conflict-resolution and
    ddns-conflict-resolution-mode, depending on the configured
    Kea version. Previously a user could set one of these
    parameters for the Kea versions that did not support them,
    causing configuration errors.
    (Gitlab #1536)

* 469 [bug] slawek

    Fixed a migration to downgrade a database version that failed if any
    host reservation was specified both in a configuration file and in a
    database.
    (Gitlab #1553)

* 468 [func] slawek

    Upgraded Grafana and Prometheus versions. Fixed a bug with fetching
    statistics from a single DHCPv6 daemon. Added Grafana links for IPv6
    subnets.
    (Gitlab #1322, #1529)

* 467 [build] slawek

    Build Stork DEB and RPM packages with GLIBC 2.31 to preserve
    compatibility with legacy operating systems.
    (Gitlab #1538)

* 466 [func] piotrek

    Implemented a new feature to inform about used Kea, Bind9
    and Stork versions. There is a new view where all found
    versions are summarized together with information about
    current ISC software releases.
    (Gitlab #222)

* 465 [bug] piotrek

    Fixed a bug where login was not possible using
    the LDAP authentication method.
    (Gitlab #1540)

* 464 [bug] slawek

    Fixed a ping request handling issue in the agent registration flow
    with the server token. It caused an error at the end of the
    registration attempt.
    (Gitlab #1491)

* 463 [func] slawek

    Added a possibility to force users to change a password. The default
    administrator must always change password when logging in for the
    first time.
    (Gitlab #1385)

* 462 [build] marcin

    Changes in DEB packages to use useradd instead of adduser command.
    The former is available by default on deb-based distributions but
    the latter isn't, causing potential issues with installing Stork
    on these systems.
    (Gitlab #1537)

* 461 [func] marcin

    Return errors reported by Kea to a Stork user unsuccessfully
    updating Kea configuration.
    (Gitlab #1535)

* 460 [func] slawek

    Refactored the application detection loop in the Stork agent to
    prevent continuous logging of the same detection errors. Removed the
    log message about successfully finding the BIND 9 configuration.
    Stork agent no longer logs the RNDC key status for BIND 9 statistics
    channel.
    (Gitlab #1422, #1388, #1384)

* 459 [func] marcin

    Stork passwords can contain space characters.
    (Gitlab #1532)

* 458 [func] marcin

    Stork server detects the directory with static UI files relative
    to the stork-server binary when rest-static-files-dir is
    not specified. It eliminates the need to specify this parameter
    when Stork server is installed in a custom directory.
    (Gitlab #1434)

* 457 [build] marcin

    Moved High Availability monitoring panel to the bottom of the
    Kea daemon tab. This change prevents browser scroller's
    position change when the HA status is updated.
    (Gitlab #1472)

* 456 [func] marcin

    Added possibility to set custom welcome message in the Stork
    login page.
    (Gitlab #1431)

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

We look forward to receiving your feedback.