4. Release notes

This documentation corresponds to Akira version 1.99.19.20260822082854.5b474bebb3.

4.1. Akira 1.99.19

4.1.1. Manager-driven Loop DNS configuration

This release adds support for managing Loop DNS configuration through Akira. A named(8) nameserver can now start in a manager-driven mode, connect to Akira, and receive its operational configuration from Akira.

The manager is configured using the named-manager.conf(5) configuration file. When this file is present, named(8) uses Akira as the source of managed configuration. When it is absent, named(8) continues to use the normal named.conf(5) configuration file and does not attempt to contact Akira.

The managed startup path is designed to be resilient. Cached managed configuration can be used as a startup fallback, connection attempts are retried, and retry log messages now include clearer text and the next retry delay. Secure manager connections are performed, including token-based authentication, secure WebSocket transport, version checking, and optional CA configuration.

Akira can now perform reconfiguration of a connected named(8) server.

4.1.2. Nameserver connectivity and lifecycle handling

Akira now tracks live manager connections for nameserver objects and exposes that state in the REST API and the web interface. The UI's nameserver list includes a Connected column, and the nameserver object page shows the same state in the object details.

The manager endpoint has been named /ws-manager to distinguish it from the browser notification WebSocket endpoint that is named /ws-web.

4.1.3. Web interface improvements

The web interface has several user-visible refinements in this release. Object lists and object pages refresh after a browser notification WebSocket reconnects, so data is refreshed after any events that may have been missed while the connection was down.

Dashboard and related-object count badges now visually distinguish non-zero counts from zero counts. Status rendering has been improved for dark mode, and a page footer has been added.

Object editing has also been improved. Create, edit, and clone forms avoid more loading flicker, preserve unfinished values where appropriate, reset values after successful submission, and handle modal backdrop dismissal more cleanly. Email addresses and URLs are rendered as links in object lists.

4.1.4. Other features and improvements

This release includes new reusable modules for secure control sessions, HTTP/WebSocket communication, TLS support, and time-series data files. Several of these pieces were moved into shared libraries so they can be reused by other daemons in future releases.

The release also adds package signing helpers, refreshes frontend dependencies, syncs the schema, removes obsolete UI helper code, and expands automated test coverage around the new manager-driven configuration path and the web interface.

4.1.5. Changes

  • Added Akira-managed Loop DNS configuration, including manager bootstrap configuration, authenticated and secure manager connections, managed configuration persistence and application, fallback startup behavior, reconnect handling, version checks, reconfiguration requests, manager endpoint separation, and connection-state reporting. [RT2257, RT2258, RT2259, RT2260, RT2261, RT2262, RT2263, RT2264, RT2265, RT2266, RT2267, RT2268, RT2269, RT2270, RT2271, RT2272, RT2273, RT2274, RT2275, RT2276, RT2277, RT2279, RT2280, RT2281, RT2282, RT2283, RT2284, RT2285, RT2289, RT2291, RT2292, RT2293, RT2294, RT2295, RT2296, RT2297]

  • Added and refined Akira object schema support, including DNS nameservers, DNS hostname fields, Base64 secret fields, nameserver secrets, secret rendering, generated secret defaults, secret copy support, masked secret forms, contact/reference label fixes, and linked email and URL values. [RT2219, RT2220, RT2223, RT2224, RT2227, RT2228, RT2229, RT2230, RT2236, RT2237, RT2239, RT2241, RT2242, RT2245]

  • Improved the web interface with smoother loading behavior, better form reset and draft handling, modal behavior fixes, a smaller button style, a page footer, dark-mode status rendering fixes, refreshed data after notification reconnects, and count badges styled by value. [RT2221, RT2222, RT2231, RT2232, RT2233, RT2235, RT2238, RT2240, RT2243, RT2298, RT2299, RT2300]

  • Added library modules for control sessions, HTTP parsing and client support, WebSocket framing and upgrades, TLS client support, time-series data files, and shared manager connection support for future reuse by other daemons. [RT2246, RT2250, RT2251, RT2252, RT2253, RT2254, RT2255, RT2256, RT2297]

  • Cleaned up internal naming, tests, and maintenance items, including renamed manager configuration helpers, renamed tests, simpler include paths, frontend dependency updates, JavaScript test fixes, removal of obsolete UI helper code, and package signing helpers. [RT2216, RT2218, RT2225, RT2234, RT2244, RT2247, RT2248, RT2286, RT2287, RT2288, RT2290]

4.2. Akira 1.99.18

Akira 1.99.18 includes substantial improvements to the web interface, object management workflows, real-time updates, performance, and reliability.

4.2.1. Object management and navigation

Object pages have been expanded with dedicated views for individual objects, including breadcrumbs, related-object information, reference links, and actions for adding, editing, cloning, deleting, and refreshing objects. Object references and many-to-many relationships can now be viewed and edited more naturally.

Object lists have been substantially improved. Lists now support server-side pagination, configurable rows per page, sorting, persistent URL state, row selection, and bulk deletion. Selection is retained while navigating through list pages, and table controls have been refined for smaller screens and empty result sets. Long table values are truncated where appropriate, and empty values are displayed more clearly.

Deleting an object from its detail view now returns to the corresponding object list. Delete operations also provide clearer feedback when an object cannot be removed because it is referenced elsewhere.

4.2.2. Dashboard improvements

The Dashboard now supports manual refresh and automatically refreshes object counts when data changes elsewhere in Akira. Refresh activity is indicated within the Refresh button without unnecessarily hiding or redrawing existing information.

4.2.3. Real-time updates

Akira now maintains a WebSocket connection between the browser and server for real-time application events.

Object lists and individual object views can subscribe to relevant changes and refresh themselves when those objects are modified. Dashboard counts likewise update when any object's collection changes. Subscriptions are restored automatically after a WebSocket reconnect.

Notifications are rate-limited and coalesced to prevent bursts of database activity from causing excessive browser refreshes.

Akira also uses the WebSocket connection to detect application-version changes and can notify users when the web application should be reloaded.

4.2.4. Forms and object data

Object comments now support Markdown formatting.

Schema-driven forms have gained support for non-editable fields, configurable field visibility, email and URL fields, improved Boolean controls, and more consistent monospace presentation for values such as slugs, DNS names, and UUIDs.

Select controls can handle larger result sets, and reference data can be reloaded while an edit dialog is open.

String and text fields now enforce configured maximum lengths, and several validation and error-reporting cases have been improved.

4.2.5. User interface improvements

The interface has received extensive visual and usability refinements, including:

  • Improved responsive navigation and wide menus.

  • Better dark-mode compatibility.

  • More consistent page layouts, alerts, buttons, tables, and card spacing.

  • Reduced visual flicker during Dashboard and object-view updates.

  • Loading indicators integrated into Refresh controls.

  • More stable action layouts while object data is loading.

  • Improved login-page layout and messaging.

  • Tooltips and clearer labels on a number of controls.

  • Improved modal behavior when opening large selection lists.

  • Better handling of overflowing table content.

4.2.6. Performance and efficiency

Object-list retrieval now uses server-side pagination, reducing the amount of data transferred and processed for large collections.

Database handling has been optimized for bulk deletions while retaining partial-success behavior: objects that can be deleted are removed even when other selected objects cannot be.

Persistent databases now use SQLite write-ahead logging with full synchronization, improving transaction performance while retaining strong durability guarantees.

DNS-name sorting now uses indexed sort keys to improve ordering performance for larger datasets.

Unused browser-side JavaScript has also been removed, reducing the size of the JavaScript delivered to the browser.

4.2.7. Realms and runtime configuration

Akira now supports realms, allowing object data and configuration to be separated into distinct administrative environments.

Runtime configuration handling has also been improved, including more reliable application configuration loading and protection against stale cached copies of the main application page.

4.2.8. Reliability and compatibility

This release contains numerous fixes for authentication errors, reference-cycle reporting, deletion errors, application reload behavior, table state, object loading, toast notifications, WebSocket protocol handling, and schema generation.

The generated backend schema is now compatible with C90 toolchains, and compatibility with Enterprise Linux 9-era Python environments has also been improved.

Dependency packages have been updated throughout the 1.99.18 development cycle.

4.2.9. Changes

  • Added dedicated object views with breadcrumbs, related-object information, reference links, and Add, Edit, Clone, Delete, and Refresh actions. [RT2070, RT2071, RT2073, RT2077, RT2092, RT2094, RT2098, RT2107, RT2181, RT2204, RT2206, RT2207]

  • Added server-side pagination, sorting, configurable page sizes, persistent list state, row selection, and bulk deletion to object lists. [RT2146, RT2147, RT2148, RT2149, RT2150, RT2151, RT2155, RT2156, RT2157, RT2158, RT2161, RT2162, RT2166, RT2172, RT2184, RT2186]

  • Added Markdown rendering for object comments. [RT2179]

  • Added editable many-to-many references and improved display and navigation of related objects. [RT2075, RT2076, RT2078, RT2113, RT2144]

  • Added WebSocket-based real-time updates for object lists, individual objects, Dashboard counts, and application-version changes. [RT2116, RT2117, RT2121, RT2128, RT2191, RT2194, RT2196]

  • Added automatic restoration of WebSocket subscriptions after reconnects and rate limiting of update notifications. [RT2195, RT2194]

  • Added realms for separating administrative environments. [RT2086]

  • Added email and URL schema fields, non-editable fields, field visibility controls, maximum string lengths, and improved Boolean, slug, DNS-name, and UUID presentation. [RT2049, RT2050, RT2052, RT2124, RT2125, RT2130, RT2133, RT2134, RT2154, RT2176, RT2197]

  • Added Dashboard, object-list, and object-view Refresh controls with integrated progress indicators and reduced visual flicker during refresh operations. [RT2097, RT2198, RT2200, RT2202, RT2203, RT2204, RR2205, RT2207, RT2211]

  • Improved responsive navigation, dark-mode styling, and numerous table, form, dialog, alert, login, and page-layout details. [RT2083, RT2085, RT2104, RT2105, RT2138, RT2140, RT2141, RT2164, RT2170, RT2174, RT2175, RT2178, RT2180, RT2188, RT2199, RT2212]

  • Improved object-list performance with server-side pagination and indexed DNS-name sorting. [RT2184, RT2192]

  • Improved database write performance with write-ahead logging and batched bulk-deletion transactions while preserving partial-success deletion behavior. [RT2208, RT2209]

  • Improved error reporting for authentication, invalid references, reference cycles, deletion of referenced objects, and bulk-delete feedback. [RT2041, RT2044, RT2045, RT2163]

  • Improved handling of application reloads, runtime configuration, and stale cached application pages. [RT2080, RT2081, RT2126, RT2127, RT2128, RT2142]

  • Reduced browser JavaScript size by removing unused JavaScript. [RT2210]

  • Added and expanded automated UI, API, persistence, WebSocket, schema, cloning, and compatibility testing. [RT2058, RT2060, RT2061, RT2063, RT2064, RT2132, RT2135, RT2136, RT2137, RT2139, RT2165, RT2169, RT2182, RT2213]

  • Improved generated-schema portability and compatibility with C90 toolchains and Enterprise Linux 9-era Python environments. [RT2065, RT2167]

  • Updated browser-side dependency packages during the development cycle. [RT2057, RT2108, RT2214]

4.3. Akira 1.99.17

The following are release notes for Akira 1.99.17:

  • RT2037: Fix syntax error in akira.conf(5) manpage

  • RT2036: Add initial object editor implementation

  • RT2034: Update error pages

  • RT2033: Revert large screen font size changes

  • RT2031: Fix login page stylesheet for large screens

  • RT2030: Make the header fixed at the top

  • RT2029: Update stylesheets to work better on large screens

  • RT2024: Add more colors to Bootstrap variables

  • RT2022: Update stylesheets to work on 3840x2160 screen resolutions

  • RT2004: Use d-flex in Bootstrap UI

  • RT2020: Add .clang-format

  • RT2003: Add Raspberry Pi installation note

  • RT1994: Fix Debian archive keyring URL

  • RT1991: Silence Sass deprecation warnings due to Bootstrap

4.4. Akira 1.99.16

The following are release notes for Akira 1.99.16:

  • RT1985: Move to akira.org

  • RT1977: Add build.sh

  • RT1975: Fix warning about non-existent generated document when making manpages

  • RT1973: Make various changes to the PDF formatting

  • RT1974: Update software licenses

4.5. Akira 1.99.15

The following are release notes for Akira 1.99.15:

  • RT1958: Upgrade NPM dependency packages

  • RT1951: Add Debian installation instructions to the user manuals

  • RT1945: Rename Border to Akira

  • RT1948: Add more Bootstrap theme colors

  • RT1935: Cleanup border logging shutdown code

  • RT1934: Convert printfs in Border into logging messages

  • RT1931: Add Ubuntu Resolute Raccoon to supported platforms

  • RT1929: Fix Debian packaging errors

4.6. Border 1.99.14

The following are release notes for Border 1.99.14:

  • RT1923: Upgrade NPM dependency packages

  • RT1918: Fix section title syntax error

4.7. Border 1.99.13

The following are release notes for Border 1.99.13:

  • RT1911: Upgrade NPM dependency packages

  • RT1914: Update code that decrypts Border assets

4.8. Border 1.99.12

The following are release notes for Border 1.99.12:

  • RT1891: Fix first release date from 1.99 branch

  • RT1879: Upgrade NPM dependency packages

  • RT1875: Add missing cocci files to dist

  • RT1870: Fix configure.ac warnings

  • RT1869: Update main copyrights to 2026

4.9. Border 1.99.11

The following are release notes for Border 1.99.11:

  • RT1857: Upgrade NPM dependency packages

  • RT1837: Upgrade NPM dependency packages

  • RT1842: Add libxcrypt to dependencies

  • RT1840: Fix release notes text

4.10. Border 1.99.10

The following are release notes for Border 1.99.10:

  • RT1819: Fix Debian package homepage URLs

4.11. Border 1.99.9

The following are release notes for Border 1.99.9:

  • RT1813: Upgrade NPM dependency packages

  • RT1812: Add Debian and Ubuntu to supported platforms

  • RT1801: Fix warning about possible thread name buffer overflow (pthread_setname_np())

  • RT1799: Upgrade NPM dependency packages

  • RT1791: Upgrade NPM dependency packages

  • RT1755: Add Debian packaging

  • RT1747: Upgrade NPM dependency packages

  • RT1746: Fix user creation in RPM spec file for new RPM versions

  • RT1743: Disable parallel make in docs directories when using Sphinx

  • RT1740: Update list of supported platforms

4.12. Border 1.99.8

The following are release notes for Border 1.99.8:

  • RT1674: Reset button in forms clear any previous alerts now.

  • RT1679: NPM dependency packages have been upgraded.

  • RT1671: libevent and libzip deps are limited to just the border RPM package now.

  • RT1681: Installation instructions are now included in the Border User Manual; they were previously missing from the dist.

  • RT1682: Form resets are handled more consistently now similar to submit.

  • RT1683: Some JavaScript was moved out of the JSX HTML.

  • RT1692: NPM dependency packages have been upgraded.

  • RT1706: NPM dependency packages have been upgraded.

4.13. Border 1.99.7

This is the first release of Border. Border has been a part of a source code tree with other dependency components such as Loop and Lease for some time now. It was not packaged for release previously.

The following are release notes for Border 1.99.7:

  • RT1428: Border is now packaged.

  • RT1642: A header was added to Border web licenses.

  • RT1664: Border now supports the listen-on statement in border.conf(5).

  • RT1665: The border process now runs as a daemon.

  • RT1667: The border process now drops privileges when run as root user using capabilities under Linux. It also supports being run in a chroot directory.

  • RT1666: The border process now creates PID files in its runstate directory.

  • RT1668: The border process is now run as the border user when started from the systemd border.service.

  • RT1673: Copyright year was updated in various web source files.

To install Border, please see the chapter titled Installation.

4.14. Version numbering scheme

Akira version numbers have the grammar <MAJOR>.<MINOR>.<PATCH>.<COMMIT-TIMESTAMP>.<COMMIT-HASH>. The MAJOR and MINOR version numbers together represent a source code branch of Akira (see Version branches).

  • The MAJOR version number is incremented when configuration options, API, and behavior of features change compared to the existing version. Switching to a new MAJOR version may require modifying existing config files to make them compatible with the new version.

  • The MINOR version number is incremented when new configuration options, API, and features are introduced that are compatible with existing configuration options. Switching to a new MINOR version will not require modifying existing config files to make them compatible with the new version.

  • The PATCH version number is incremented when only bugs have been fixed in a new version. Switching to a new PATCH version will not require modifying existing config files to make them compatible with the new version.

  • The COMMIT-TIMESTAMP field is auto-generated and contains the UTC timestamp of the source code commit from which the Akira release was made. The timestamp value is formatted as YYYYMMDDHHMMSS, as the output of:

    date +%Y%m%d%H%M%S
    
  • The COMMIT-HASH field is auto-generated and contains the abbreviated commit hash of the source code commit from which the Akira release was made. The hash value is formatted as the output of:

    git log -n1 --reverse --pretty=%h
    

For example,

  • If you're upgrading from version 1.2.1 to version 1.4.0, Akira's config files should not require any changes. You may also check for new features that have become available in the 1.4 branch.

  • If you're upgrading from version 1.2.1 to version 2.0.0, it is possible that some of the contents of your existing config files may need changes. You may also check for new features that have become available in the 2.0 branch.

  • If you're upgrading from version 1.2.1 to version 1.2.4, Akira's config files should not require any changes. The newer version only contains bugfixes.

Note

During a major version's release series, features and/or programs scheduled for removal in the next major release may be marked as deprecated. They will however still be supported until the end-of-life of that major release.

4.14.1. Stable and development versions

Even-numbered minor versions indicate stable branch releases, whereas odd-numbered minor versions indicate development banch releases. For example,

  • 1.2.0 is a stable branch release,

  • 1.3.0 is a development branch release,

  • 1.99.0 is a development branch release,

  • 2.0.3 is a stable branch release, and

  • 2.1.1 is a development branch release.

Warning

Development branch releases should not be used in production as their features and interfaces may change. Development branch releases may not work properly, may have unexpected behaviors, may crash, etc.

4.15. Version branches

The following is information on current Akira branches.

Branch

Type

First release date

End-of-life date

1.99

Development

2024-12-10

To be announced

2.0

Stable

To be announced

To be announced

Development branches have no planned end-of-life. Typically, development on such branches is stopped when a new MINOR+1 or MAJOR+1 stable branch is created off it.