Repository navigation
CDNLite v1.4.0
CDNLite 1.4.0 Release Notes
Highlights
CDNLite 1.4.0 expands the platform’s DNS, reporting, and operational diagnostics capabilities. This release focuses on making CDNLite more useful for real self-hosted CDN operations: richer DNS publishing through PowerDNS, raw GeoDNS records, new dashboard reporting APIs, improved edge-pool routing behavior, stronger PowerDNS health checks, and more complete end-to-end validation.
Added
Raw GeoDNS A/AAAA Records
CDNLite now supports raw GeoDNS records for DNS-only A and AAAA records. Operators can configure a required default answer plus optional country and continent answers without writing Lua manually.
Raw GeoDNS routes are stored in the new dns_record_geo_routes table and published as PowerDNS LUA records. Generated Lua evaluates country routes first, then continent routes, then falls back to the default answer.
Dashboard Reporting API
A new reporting service adds authenticated endpoints under /api/v1/reports/* for:
- Executive summary and warning signals
- Traffic time series and top lists
- Cache reporting
- Edge health and traffic
- Security event reporting
- Reliability reporting
- Operations and job reporting
The dashboard overview now uses these reporting endpoints for CDN operations visibility.
Reporting Indexes
A new reporting migration adds time-range indexes for reporting-heavy tables, including usage rollups, audit logs, SSL jobs, cache purge requests, and SSL expiry lookups.
PowerDNS SOA Management
CDNLite now manages platform SOA authority defaults for PowerDNS zones. The PowerDNS doctor and dry-run commands report SOA validity and show repairs that would be applied.
PowerDNS Doctor Improvements
The cdn:powerdns:doctor command has been reintroduced and improved with stronger error handling and more detailed reporting for DNS zone and SOA diagnostics.
Edge DNS Pool Rendering
Edge DNS publishing has been refactored around a shared edge-pool renderer. Proxied apex records now publish directly as A/AAAA records when static anycast is configured, or as PowerDNS LUA records when dynamic edge-pool routing is used.
Changed
Proxied Apex DNS Publishing
Proxied apex records no longer rely on ALIAS or CNAME records. CDNLite now renders proxied apex records through the same canonical edge-pool logic used by the shared CDN proxy host.
DNS Reconciliation Behavior
DNS reconciliation and force-sync behavior were hardened. The e2e scripts now better handle queued DNS sync requests, retries, stale record deletion, and validation after unproxied record removal.
Raw GeoDNS and Proxy Mode Are Mutually Exclusive
Raw GeoDNS records cannot be proxied. Attempts to save a record with both proxy mode and raw GeoDNS routes are rejected with proxy_and_geodns_are_mutually_exclusive.
Dashboard DNS UX
The domain DNS UI has been updated to manage raw GeoDNS answers and better reflect the revised DNS routing model.
Metrics and Reporting Data
Edge metrics now carry client country details where available. Reporting groups unresolved country data as DEFAULT rather than fabricating geographic values.
Fixed
- Improved PowerDNS doctor command execution and error reporting.
- Improved DNS e2e failure recording and failure report output.
- Improved validation around queued DNS sync and force-sync behavior.
- Updated DNS acceptance tests for apex Lua record handling and edge health transitions.
- Expanded PowerDNS client contract tests.
- Updated DNS reconciler, routing model, edge health, settings, reports, and overview service tests.
Documentation
Documentation was updated for:
- Raw GeoDNS records
- PowerDNS and DNSGeo behavior
- Dashboard reporting
- API reference and OpenAPI schema
- Architecture notes
- Setup and deployment guidance
- DNS stress testing and usage guides
Database Migrations
This release adds:
000016_reporting_indexes.sql000017_raw_geodns_routes.sql
Run database migrations before using the new reporting and raw GeoDNS features.
Upgrade Notes
-
Apply the new migrations.
-
Rebuild/restart the stack so the core, dashboard, edge, and PowerDNS-related services use the new code.
-
Review PowerDNS authority settings:
CDNLITE_DNS_PRIMARY_NSCDNLITE_DNS_HOSTMASTERCDNLITE_DNS_SOA_REFRESHCDNLITE_DNS_SOA_RETRYCDNLITE_DNS_SOA_EXPIRECDNLITE_DNS_SOA_MINIMUMCDNLITE_DNS_SOA_TTL
-
Run:
docker compose exec core php artisan cdn:powerdns:doctor docker compose exec core php artisan cdn:powerdns:dry-run docker compose exec core php artisan cdn:powerdns:force-sync
-
Validate DNS behavior with the updated e2e checks before production rollout.
Notable Internal Changes
- Added
ReportService - Added
PowerDnsSoaService - Added
EdgeDnsPoolRenderer - Added
RawGeoDnsRecordBuilder - Added dashboard reports API client
- Added reporting and raw GeoDNS migrations
- Expanded DNS, PowerDNS, edge health, reporting, settings, and overview test coverage
Full Changelog: v1.3.0...v1.4.0