- New NotifyJobRunner base class (extends netbox.jobs.JobRunner) holds
the plugin SETTINGS and the helpers shared by both NOTIFY jobs:
load_tsig_key(), send_notify() and get_soa_serial() (promoted from
the former module-level _-prefixed functions).
- SendClientNotify and SendNSNotify extend the base and access the
helpers via self. Behavior, job names and kwargs are unchanged.
- The nameserver-only helpers moved into SendNSNotify as
notify_ns_enabled() (classmethod, reads cls.SETTINGS) and
resolve_zone_nameserver_ips() (instance method).
- No changes to any callers: schedule_client_notify(),
schedule_ns_notify() and the catalog zone NOTIFY scheduling keep
their names and call sites.
- New setting 'catalog_zone_name' (default: 'catz') to change the name of
the per-view catalog zone. Full DNS names (multiple labels) are
supported; names are handled as dns.name.Name objects, making the
comparison case-insensitive and tolerant of trailing dots.
- New setting 'catalog_zone_name_includes_view' (default: False). When
enabled, the catalog zone name is prefixed with the view name:
'<view>.<catalog_zone_name>'.
- The transfer endpoint now serves exactly the one configured catalog
zone name per view instead of accepting both 'catz' and
'<view>.catz'.
- The catalog zone NOTIFY now targets only the configured name instead
of notifying for both variants. Scheduling moved to
catalog_zone_manager, which owns all catalog zone naming.
modified: netbox_dns_bridge/models.py
deleted: netbox_dns_bridge/migrations/0003_catalogzone_and_per_zone_identifier.py
new file: netbox_dns_bridge/migrations/0003_full_netbox_models.py
This assumes the migration starts at v1.5.8.
Adjust model access and function calls to match new models:
modified: netbox_dns_bridge/signals/netbox_dns_zones.py
modified: netbox_dns_bridge/management/commands/dns_transfer_endpoint/catalog_zone_manager.py
modified: netbox_dns_bridge/management/commands/dns_transfer_endpoint/request_handler.py
Update UI elements and permission interactions:
modified: netbox_dns_bridge/filtersets.py
modified: netbox_dns_bridge/forms.py
modified: netbox_dns_bridge/jobs/notify.py
modified: netbox_dns_bridge/navigation.py
modified: netbox_dns_bridge/tables.py
deleted: netbox_dns_bridge/templates/netbox_dns_bridge/catalog_zone_members.html
new file: netbox_dns_bridge/templates/netbox_dns_bridge/catalogzone.html
new file: netbox_dns_bridge/templates/netbox_dns_bridge/catalogzonemember.html
deleted: netbox_dns_bridge/templates/netbox_dns_bridge/notify_overview.html
new file: netbox_dns_bridge/templates/netbox_dns_bridge/seentransferclient.html
modified: netbox_dns_bridge/urls.py
modified: netbox_dns_bridge/views.py
to DB driven to permit user modification:
modified: netbox_dns_bridge/models.py
Add 4 cols for values.
modified: netbox_dns_bridge/migrations/0003_catalogzone_and_per_zone_identifier.py
Adjust migration. This expects that the last migration the user has is 0002 (<=v1.5.8)
modified: netbox_dns_bridge/jobs/notify.py
modified: netbox_dns_bridge/management/commands/dns_transfer_endpoint/catalog_zone_manager.py
Update to use new db values for SOA creation.
Change UI to permit editing for SOA values and disable member identifier editing.
modified: netbox_dns_bridge/forms.py
modified: netbox_dns_bridge/navigation.py
new file: netbox_dns_bridge/templates/netbox_dns_bridge/catalog_zone_edit.html
new file: netbox_dns_bridge/templates/netbox_dns_bridge/catalog_zone_list.html
new file: netbox_dns_bridge/templates/netbox_dns_bridge/catalog_zone_members.html
deleted: netbox_dns_bridge/templates/netbox_dns_bridge/catz_overview.html
modified: netbox_dns_bridge/tables.py
modified: netbox_dns_bridge/urls.py
modified: netbox_dns_bridge/views.py
modified: netbox_dns_bridge/filtersets.py
GUI components are entirely AI generated. Plumbing also with AI assist but code verified.