# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## 1.1.0 - 2026-09-05 ### Added - Added optional post-update BIND journal synchronization through `rndc sync -clean`. - Added `DYNDNS_RNDC_SERVER`, `DYNDNS_RNDC_KEY`, and `DYNDNS_RNDC_SYNC_CLEAN` configuration parameters. - Added validation for the RNDC synchronization switch and required RNDC settings when synchronization is enabled. - Added conditional runtime validation for the `rndc` command when post-update journal synchronization is enabled. - Added `nsupdate` diagnostic output to the dynDNS log and preservation of failed update instructions for troubleshooting. ### Changed - Separated RFC 2136 update settings from BIND RNDC control settings. - Updated dynamic update processing to target the authoritative DNS listener instead of a non-authoritative localhost resolver view. - Changed the post-update workflow to synchronize accepted dynamic updates into the primary zone file and clean BIND journal files when explicitly enabled. - Made RNDC synchronization failures non-fatal after a successful `nsupdate` transaction, while retaining a warning in the dynDNS log. ### Removed - Removed unsafe DNSSEC handling that attempted to delete the zone `DNSKEY` RRset before dynamic updates. - Removed the unnecessary `rndc freeze` and `rndc thaw` workflow after RFC 2136 updates. ## 1.0.0 - 2026-06-20 ### Added - Added a POSIX-compliant dynDNS management script for database-backed hostname lifecycle operations and DNS zone updates. - Added the commands `add-hostname`, `check-hostname`, `remove-hostname`, and `update-zone`. - Added hostname validation as well as subdomain and domain extraction helpers. - Added database helper functions for SQL execution, scalar queries, and SQL string escaping. - Added member provisioning in the database, including related records in `members`, `connections`, and `login_attempts`. - Added salted SHA-512 password hashing for stored member credentials. - Added runtime checks for required commands, directories, files, and environment variables. - Added structured logging, temporary file handling, and cleanup helpers. - Added dynamic DNS zone synchronization by comparing database records with the current zone file. - Added DNS update generation and application through `nsupdate`, including `rndc` freeze and thaw handling. ### Changed - Implemented hostname removal with automatic detection of foreign keys using `ON DELETE CASCADE`. - Added a compatibility fallback for explicit child-table deletion when cascading foreign keys are not available. ### Fixed - Fixed hostname removal compatibility across different database schema states by supporting both cascading and non-cascading delete paths.