Repository navigation
Greetings DNS fans!
Release highlights!
Three BIG changes!
- NEW PROVIDER: DNSControl now supports Misaka.io DNS (MISAKA)! Thanks and welcome to @ZeroClover who joins the project as its maintainer. We look forward to great things!
- New record type: CSYNC. Supported by NETNOD and BIND. Thanks to recent refactoring, it should be easier than ever for other providers to add support.
- New D() syntax! Still experimental and may change. Check out https://docs.dnscontrol.org/getting-started/converting-dnsconfig
(this will become the documented default in the next release; the old syntax will still work)
In developer news:
- OpenSSF Scorecard: This automatic audit is helping us make DNSControl more secure. Thanks to @chicks for taking this on!
- Refactoring: There's been a major overhaul in how providers register themselves. You shouldn't notice any changes, but it is now easier to write a provider. We've also removed a lot of old legacy code as a result.
- Integration tests now automatically run if a provider supports all the record types involved. No more requires(CanUseSRV)!
Thanks to all contributors involved in this release! This is a community project and we couldn't do it without all of your contributions!
Sincerely,
--Tom Limoncelli
Experimental: Try the new D() syntax!
Select credential entries directly with REGISTRAR() and SERVICE() in dnsconfig.js. The legacy syntax remains supported; this revision replaces the experimental PROVIDER()/DNS_SERVICE() syntax from v5.3.0. See the examples in the conversion guide. Please test it and share feedback! (There may be 1-2 changes before this becomes the documented, default, way to do things.)
Monthly video call!
Everyone is invited to the Monthly DNSControl Community Video Conference Call on the 2nd Tuesday of each month. Join whether you are a new user with questions or an experienced developer that wants to discuss DNSControl internals... or anything in between! Meeting details on
GitHub Discussions.
Changelog
Provider-specific changes:
- b4d26af: feat(p/MISAKA): add Misaka.io DNS provider (#4994) (@ZeroClover)
- c74b089: feat(p/NETNOD): new record type: CSYNC (RFC 7477) (#4988) (@TomOnTime)
- 0418d8f: fix(p/CLOUDNS): recognize WR redirect records (#4992) (@sean0407)
- 17a2a6e: fix(p/HUAWEICLOUD): allow CNAME co-exists with GeoDNS (#4987) (@SukkaW)
New features:
- c3581a5: feat(preview): show which fields changed in MODIFY messages (#4990) (@TomOnTime)
Documentation:
- 19b5e48: docs: fix invalid JavaScript examples (#4984) (@TomOnTime)
CI/CD:
- 3c9d672: build(deps): bump actions/upload-artifact from 7.0.1 to 7.0.2 (#5005) (@dependabot[bot])
- 1258cd9: ci: add OpenSSF Scorecard analysis (#4993) (@chicks-net)
- b80bc9a: ci: follow least-privilege for GITHUB_TOKEN permissions in workflows (#5001) (@chicks-net)
Refactoring:
- b78fbf9: refactor: Migrate "reasons" from Features to SupportedTypes (#4995) (@TomOnTime)
- 142e622: refactor: align provider registrations with Definition field order (#4998) (@TomOnTime)
- 48e0df9: refactor: convert complex integration fixtures to tr (#5004) (@TomOnTime)
- 16ea977: refactor: remove Definition.Features (#4997) (@TomOnTime)
- 29ae68c: refactor: remove final Can* legacy code (#5002) (@TomOnTime)
- a26f7e8: refactor: remove legacy Can* record-type capability bridge (#5000) (@TomOnTime)
- f67ea7f: refactor: remove legacy record-type validation now that all providers use SupportedTypes (#4989) (@TomOnTime)
- 8bde04a: refactor: replace built-in Features annotations with named fields (#4996) (@TomOnTime)
- b7e74b8: refactor: tlim_int_refactor (#5003) (@TomOnTime)
- bd60c6d: refactor: use capability defaults where possible (#4999) (@TomOnTime)
Deprecation warnings
Warning
- REV() will switch from RFC2317 to RFC4183 sometime after v5.0 is released. This is a breaking change. Warnings are output if your configuration is affected. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- NAMEDOTCOM, OPENSRS and SOFTLAYER need maintainers! These providers have no maintainer. Maintainers respond to PRs and fix bugs in a timely manner, and try to stay on top of protocol changes.
Install
macOS and Linux
Install with Homebrew (recommended)
brew trust --formula dnscontrol/tap/dnscontrol
brew install DNSControl/tap/dnscontrolUsing with Docker
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol previewAnywhere else
Alternatively, you can install the latest binary (or the apt/rpm/deb/archlinux package) from this page.
Or, if you have Go installed, you can install the latest version of DNSControl with the following command:
go install github.com/DNSControl/dnscontrol/v4@mainUpdate
Update to the latest version depends on how you choose to install dnscontrol on your machine.
Update with Homebrew
brew upgrade DNSControl/tap/dnscontrolAlternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.