v4.13.0
Hello DNS fans!
This release introduces one new provider and many small fixes and improvements.
- NEW PROVIDER: Sakura Cloud (SAKURACLOUD) (thanks to @ttkzw!)
- NEW FEATURE: The HASH() function can generate hash strings. (thanks to @fuero!)
- Improvements to providers: AUTODNS now supports PTR records, GANDI_V5 supports their new authentication system, HUAWEICLOUD has better DNSSEC support, NS1 documents that NS1_URLFWD is going away, ORACLE now abides by rate- limits automatically, PORKBUN now supports URL forwarding, and POWERDNS has added some reliability improvements.
Some big changes are coming:
- #3108 the "change count" is moving out of the individual provider code, into the main code. This will make the "# corrections" count more accurate.
- #3082 investigates making it easier to add new DNS types (A, MX, etc).
Learning Go? Interested in a starter project? Please email tlimoncelli at stackoverflow dot com.
- 23 providers still use
diff.NewCompat()
instead of the newdiff2.By*
functions. There's nothing wrong with that, but upgrade will make the code cleaner, more simple, and might make the "preview" output cleaner. - I have a few other refactoring ideas that will clean up the code. Interested? Let me know!
Thanks to everyone for their contributions! This is a community effort and it wouldn't be a success without all your help!
Changelog
Major features:
- 864d452: NEW PROVIDER: Sakura Cloud (SAKURACLOUD) (#3086) (@ttkzw)
- 94a0cfc: New Feature: HASH() adds hashing functions to dnsconfig.js language (#3085) (@fuero)
Provider-specific changes:
- f2be1a6: AUTODNS: Enable CanUsePTR (#3098) (@christianbur)
- 8899f45: CLOUDFLAREAPI: Upgrade to cloudflare-go v0.102.0 (#3081) (@tlimoncelli)
- 663be6e: GANDI: Adopt new Gandi v5 auth changes (#2726) (@llange)
- e8eca6a: HUAWEICLOUD: Document DNSSEC capability and improve docs, reliability (#3084) (@huihuimoe)
- 1a3d6a3: NS1: add warning for deprecated record (#3078) (@costasd)
- 1738c6e: NS1: update ns1-go to 2.12.0 (#3074) (@costasd)
- 0de789f: ORACLE: Abide by 429-style rate limits, fix Nameserver update bug (#3090) (@fabienmazieres)
- a3b194f: Oracle: Use SDK v65 and default retry policy (#3094) (@fabienmazieres)
- e86c666: PORKBUN: Remove unused function (#3072) (@tlimoncelli)
- 04f34cf: PORKBUN: support URL Forward (#3064) (@imlonghao)
- 8bb5df9: POWERDNS: Use canonical domain in calls to PowerDNS (#3080) (@kytta)
- 3b904d2: SAKURACLOUD: Add SAKURACLOUD to automated tests (#3095) (@ttkzw)
Documentation:
CI/CD:
- 411a1ed: Build(deps): Bump actions/upload-artifact from 4.3.4 to 4.3.5 (#3067) (@dependabot[bot])
- 5a20c66: Build(deps): Bump actions/upload-artifact from 4.3.5 to 4.3.6 (#3077) (@dependabot[bot])
- dedf398: Build(deps): Bump alpine from 3.20.1 to 3.20.2 (#3063) (@dependabot[bot])
- 24b5c4b: CICD: Removed CodeQL workflow (#3073) (@cafferata)
Dependencies:
- dd2030e: CHORE: update deps (#3097) (@tlimoncelli)
- 62112d1: update deps (#3068) (@tlimoncelli)
- 74826d3: update deps; go generate (#3106) (@tlimoncelli)
Other changes and improvements:
- 69533fc: BUNNY_DNS: run goimports on convert.go (#3071) (@tlimoncelli)
- 3102ec4: CHORE: gitignore should include *.ACTUAL (#3069) (@tlimoncelli)
- fe7370b: CHORE: go generate (#3079) (@tlimoncelli)
- e03c5cb: Gitter - Drop communication channel (#3066) (@cafferata)
- 2944ede: TESTING: Fix reversed got/want output in compareconfig_test.go (#3070) (@tlimoncelli)
Deprecation warnings
Warning
- REV() will switch from RFC2317 to RFC4183 in v5.0. This is a breaking change. Warnings are output if your configuration is affected. No date has been announced for v5.0. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- MSDNS maintainer needed! Without a new volunteer, this DNS provider will lose support after April 2025. See #2878
- NAMEDOTCOM 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.
- get-certs/ACME support is frozen and will be removed without notice between now and July 2025. It has been unsupported since December 2022. If you don't use this feature, do not start. If you do use this feature, migrate ASAP. See discussion in issues/1400
Install
macOS and Linux
Install with Homebrew (recommended)
brew install dnscontrol
Using with Docker
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/stackexchange/dnscontrol preview
Anywhere 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/StackExchange/dnscontrol/v4@main
Update
Update to the latest version depends on how you choose to install dnscontrol
on your machine.
Update with Homebrew
brew upgrade dnscontrol
Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.