new file: netbox_dns_bridge/jobs/__init__.py renamed: netbox_dns_bridge/signals/notify_handler.py -> netbox_dns_bridge/jobs/notify.py modified: netbox_dns_bridge/management/commands/dns_transfer_endpoint/catalog_zone_manager.py modified: netbox_dns_bridge/signals/netbox_dns_zones.py Restructuring modified: netbox_dns_bridge/tests/conftest.py renamed: netbox_dns_bridge/tests/test_notify_handler.py -> netbox_dns_bridge/tests/test_notify.py modified: netbox_dns_bridge/tests/test_signals.py AI updated tests, not manually verified.
47 lines
3.2 KiB
Markdown
47 lines
3.2 KiB
Markdown
## Unreleased
|
|
- Move `notify_handler` from `signals/` to `jobs/` and rename to `notify`.
|
|
- Rename `SendClientDNSNotify` to `SendClientNotify`. It now sends a single NOTIFY
|
|
for the zone only; catalog zone entries (`catz`, `{view}.catz`) have been removed.
|
|
- Catalog zone NOTIFY is now scheduled by `increment_soa_serial` via
|
|
`schedule_catalog_zone_notify`, which enqueues `SendClientNotify` for `catz` and
|
|
`{view}.catz` — no separate job class needed.
|
|
- Extract a shared `_send_notify` helper used by both `SendClientNotify` and
|
|
`SendNSNotify` for message building and the send loop.
|
|
- Move all NOTIFY scheduling gates (`notify_clients`, `notify_ns_all_zones`, custom
|
|
field) into the scheduling functions. The signal handler calls the scheduling
|
|
functions unconditionally; each function decides whether to enqueue based on its
|
|
own settings gate.
|
|
- Replace the global `IntegerKeyValueSetting` model (single `catalog-zone-soa-serial`
|
|
value shared by all catalog zones) with a new `CatalogZone` model that has a 1:1
|
|
foreign key to `netbox_dns.models.View` and its own `soa_serial` field. Each view's
|
|
catalog zone now tracks and increments its SOA serial independently. Existing serials
|
|
are preserved during migration by copying the old global value into every view's new
|
|
`CatalogZone` row.
|
|
- Change the `CatalogZoneMemberIdentifier.name` uniqueness from globally unique to
|
|
unique per catalog zone (`UniqueConstraint(name, catalog_zone)`). A `catalog_zone`
|
|
foreign key has been added to the identifier model to enforce this.
|
|
- Remove the `dns-settings` management command, which was a generic get/set/list
|
|
interface over `IntegerKeyValueSetting` (now removed).
|
|
- Defer the catalog zone SOA serial increment on zone deletion to `transaction.on_commit`, matching
|
|
the create/modify path. Previously the increment ran immediately at `post_delete` time, so a
|
|
rollback of the delete transaction would have left the catalog serial bumped anyway.
|
|
- Add the option to send a NOTIFY directly to a zone's own nameservers when its SOA serial number
|
|
changes. Enable it per zone via a boolean custom field named by `notify_ns_custom_field_name`,
|
|
globally for all zones via `notify_ns_all_zones` (default `False`), or both. Nameserver addresses
|
|
are resolved from NetBox DNS A/AAAA records within the zone's view and the NOTIFY is signed with
|
|
the per-view TSIG key. A companion `notify_ns_port` setting (default 53) controls the destination
|
|
port.
|
|
|
|
## 1.0.7 - 2026-03-02
|
|
README Change - Moving private keys to global scope since Bind 9.20 view scoped keys have become unreliable and sometimes wouldnt match.
|
|
|
|
## 1.0.8 - 2026-03-12
|
|
- Change License to MIT to match the netbox-plugin-dns License. This project rests on the netbox-plugin-dns so a matching
|
|
license makes more sense.
|
|
- Renaming Project from Netbox Plugin Bind Provisioner to Netbox DNS Bridge as new code will be contributed that allows
|
|
data to flow in both directions (Dynamic Updates), not just out of Netbox DNS.
|
|
|
|
## 1.5.0 - 2026-04-08
|
|
- Change to versioning scheme - Now matches the major and minor version number to the one of netbox-plugin-dns. Only the minor sub version
|
|
will be used to track incremental changes to this plugin.
|