Changelog
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[Unreleased]
[2.1.7] - 2026-10-07 @ 04:36
- Added a reference to my KB article on setting up GoDaddy’s PAT.
[2.1.6] - 2026-10-07 @ 03:56
- Added front end matter to the DB Schema and Coding Guidelines page.
[2.1.4] - 2026-10-07 @ 03:40
- Minor website edits.
[2.1.2] - 2026-10-07 @ 02:46
Added
- Architecture page with a nice diagram.
Changed
- Complete website contents review and updates.
Removed
- Remove automatic import of legacy JSON hostname lists during installation and upgrades. Manage hostnames through the Web UI.
[2.1.1] - 2026-10-06 @ 04:54
- MyCount update.
[2.1.0] - 2026-10-06 @ 04:44
Added
- Add the “Rebuild Jekyll Site” GitHub Actions workflow for manual site rebuilds
and automatic deployment on pushes to
main.
[2.0.1] - 2026-10-05 @ 18:48
- Add CMDB scanner metadata: subtype
Dynamic DNS Service, supplierNadim-Daniel, and codenameInsight. - Updated
scripts/new-release.sh.
[2.0.0] - 2026-10-04 @ 23:54
Fixed
- Make installed BMDynIP releases discoverable by CMDB through readable version constants, updated on upgrade and removed on uninstall.
- Refresh only changed status text every five seconds, preserving table rows, keyboard focus, and unfinished hostname input without flicker.
[1.7.0] - 2026-10-04 @ 23:38
Added
- Check registered hostnames through DNS on page load and each refresh, showing Current, Mismatch, Not found, or Lookup failed in the status column.
Changed
- Dispatch ordered GoDaddy DNS commands without waiting for completion or parsing their output. Save and display the submitted address immediately.
[1.6.3] - 2026-10-04 @ 23:22
Fixed
- Invoke
gddywith root’s configured authentication instead of overriding it with the legacy BMDynIP PAT. Installation and upgrades no longer require or copy that PAT. - Remove the PAT-replacement advice from authentication failure messages.
[1.6.1] - 2026-10-04 @ 23:12
Fixed
- Show the sanitized DNS failure reason in status messages, including GoDaddy authentication rejection and instructions to refresh the configured PAT.
[1.6.0] - 2026-10-04 @ 23:05
Added
- Show hostname addition and runner process steps in the Web UI status messages, including discovery, DNS updates, completion, and failures with module names as sources.
[1.5.0] - 2026-10-04 @ 22:41
Added
- Start the runner immediately after adding a hostname in the Web UI, with clear feedback if the name is saved but the runner cannot launch.
[1.4.1] - 2026-10-04 @ 22:16
Fixed
- Refresh installed GoDaddy credentials from
$HOME/.godaddy-cliduring installation and upgrades; normal runtime continues to use/etc/bmdynip/auto.env.
[1.4.0] - 2026-10-04 @ 22:02
Added
- Import existing JSON hostnames into MariaDB once during installation or upgrade, preserving later Web UI changes and the original configuration file.
- Connect the Web UI to persistent hostname management, live system status, and database-backed DNS change history, with automatic status refresh.
- Provision the local MariaDB database and account, save protected database credentials, and apply the schema during installation and upgrades.
- Retain existing database credentials and records when reapplying the schema.
Fixed
- Wait for database-backed Web UI readiness during installation, upgrades, and restarts; report unavailable credentials, schema, or database instead of success.
- Update running and uninstall guidance for database-backed hostname management, live status, and retained database records.
[1.3.0] - 2026-10-04 @ 20:37
Added
- Expose the runner cron schedule in the Web UI with an enabled checkbox, cron expression, and Update button; default to every five minutes.
Fixed
- Preserve custom and disabled runner schedules during installation and upgrades.
[1.2.2] - 2026-10-04 @ 20:18
Fixed
- Declare PyMySQL in
requirements.txtand bundle it in both executable archives during installation and upgrades.
[1.2.1] - 2026-10-04 @ 20:09
Fixed
- Stop the Web UI before deploying an upgrade and start it afterward.
- Allow the Web UI time to become active before failing its readiness check.
[1.2.0] - 2026-10-04 @ 20:02
Added
- Add
scripts/upgrade.shto redeploy BMDynIP and restart the Web UI while preserving configuration, saved state, and credentials.
[1.1.0] - 2026-10-04 @ 19:58
Added
- Add the MariaDB schema for the CWM WAN connection model, per-record change requests, and managed DNS records.
Fixed
- Show the Web UI listening address in status output instead of the localhost readiness URL.
[1.0.3] - 2026-10-04 @ 15:05
Fixed
- Start the Web UI on port 49700 during installation and enable it at boot.
- Restart the Web UI on upgrades and print its status and port after HTTP responds.
Added
- Add
scripts/restart.shto restart the Web UI and report its status and port.
[1.0.2] - 2026-10-04 @ 10:28
Fixed
- Create the protected GoDaddy credential file during first installation using
root’s
/root/.godaddy-cliPAT,GDDY_PAT, or hidden PAT entry, and preserve existing credentials on reinstall. - Use the saved production PAT for DNS updates even when
GDDY_PAT_PRODis set.
[1.0.1] - 2026-10-04 @ 10:17
Added
- Add a web UI preview on port 49700 with logo-matched colors, system status, sample A-record management, and activity messages. Preview changes reset on reload.
Summary
Rename the project to BMDynIP (Bear & Moose), updating branding, GitHub and website references, application names, and installation paths consistently.
Changed
- Rename the Python package to
bmdynipand the constants class toDBMDynIP. - Use
bmdynipfor the executable, configuration filename, cron job, and syslog tag. - Update installation and credential paths to
/opt/prod/bmdynipand/etc/bmdynip/auto.env. - Update documentation, tests, logo filename, and the site address to
bmdynip.osoyalce.com. - Identify BM as Bear & Moose and link to
osoyalce.comfrom the documentation index. - Adopt BMGeoIP’s development guidance, adapted to BMDynIP’s updater, installation, and verification workflows.
[1.0.0] - 2026-09-26 @ 14:42
Added
- Document root’s GoDaddy PAT setup, the distinction from dan’s OAuth login, authentication checks, and token rotation in a dedicated guide.
[0.2.0] - 2026-09-26 @ 14:20
Summary
Add the cron-driven public IPv4 updater for configurable hostnames, with root installation and uninstall scripts that preserve configuration and data.
Added
- Configure one domain and a hostname list, empty by default; no application hostnames are hardcoded.
- Add public-IP discovery, DNS record entities, and the update activity with GoDaddy CLI and saved-state interfaces.
- Add root installation under
/opt/prod/bmdynipand a cron job every five minutes. - Read the root-owned GoDaddy PAT from
/etc/bmdynip/auto.envwith mode0600. - Preserve saved state on DNS failure, skip overlapping runs, and refresh records when configuration changes.
- Document installation, configuration, logging, and uninstall behavior.
- Include production credential setup and installation verification commands in the user guides.
- Add the GoDaddy CLI path as
DBMDynIP.GODADDY_CLI. - Add the ipify and ifconfig.me URLs as
DBMDynIP.PUBLIC_IP_URLS. - Define the five-minute cron schedule as
DBMDynIP.CRON_SCHEDULE.
Changed
- Move configuration and running instructions into separate guides, linked from installation and the documentation index.
- Move uninstall instructions into their own guide.
[0.1.0] - 2026-09-26 @ 13:35
Summary
Added
- Add isolated release-script checks covering publication to a local Git remote and validation failures.
- Copy
scripts/new-release.shfrom R3el. - Add the project
VERSIONconstant, initially0.0.1. - Document the constants naming convention in the coding guidelines.
Changed
- Validate release and stored versions as Semantic Versions, rejecting duplicate version declarations and numeric prerelease identifiers with leading zeroes.
- Follow Ax3l’s constants convention with
DBMDynIP.VERSIONinDBMDynIP.py. - Adapt the release script to read and update the BMDynIP version constant.
- Use Jekyll-generated documentation links and remove links to missing pages inherited from R3el.