Added
- Config Validation CLI:
--validateflag for pre-flight config checks with
structured error reporting (#71) - Graceful Shutdown: In-flight reconciliation tracking with clean provider
teardown (#69) - Structured Logging:
slog-based logging with JSON/text format and file
rotation support (#67) dnsweaver.hostnamesLabel: Comma-separated hostname declarations for
Docker containers (#96)- Dual-Stack DNS Guide: Deployment documentation for IPv4/IPv6 environments
- Source/Watcher Metrics: Prometheus instrumentation for source discovery and
watcher activity (#97)
Changed
- Pi-hole Config:
MODErenamed toACCESS_MODE;DNSWEAVER_SOURCE(singular)
deprecated in favor ofDNSWEAVER_SOURCES(plural) (#93) instance_idRestructured: Moved to top-level config field (#93)
Fixed
- Orphan Cleanup: Hostname-provider mapping tracked correctly during provider
switches (#51) - Startup Race: Events during initial reconciliation no longer lost (#55)
- Health Recovery: Health checker registered for recovered providers (#127)
- Pi-hole Default:
ACCESS_MODEdefaults toapiwhen not specified (#98)
Security
- Pre-v1.0 Security Audit: Comprehensive hardening including HTTP response
body limits, shell metacharacter validation, SSH credential handling, and input
sanitization (#36) - Code Review: Dead code removal, error handling improvements, naming
consistency (#94)
Testing
- Shared Test Harness: Mock infrastructure and helper utilities for provider
testing (#111) - Reconciler Edge Cases: Failure, behavior, and observability tests (#77)
- RFC 2136 Integration Tests: Full CRUD lifecycle testing (#130)
- Standardized Test Templates: Reusable integration testing frameworks (#136)
- Integration Tested: Verified against Technitium DNS and Cloudflare in
multi-provider E2E scenarios
Documentation
- Architecture Overview: System design and component interaction docs (#35)
- Multi-Instance Guide: Running multiple dnsweaver instances (#35)
- SSH Remote Management: dnsmasq provider SSH docs and secrets guide (#99)
- Test Case Matrix: Release checklist and test coverage mapping (#109)
- Provider Documentation: Accuracy corrections across all providers
Docker Images
docker pull ghcr.io/maxfield-allison/dnsweaver:v1.0.0
docker pull docker.io/maxamill/dnsweaver:v1.0.0