Skip to content

Releases: StackExchange/dnscontrol

v3.21.0

02 Nov 13:05
975463e
Compare
Choose a tag to compare

This release contains no major features or new providers. However it cleans up a number of bugs, standardizes a ton of documentation issues, and has been updated to use newer dependencies and APIs. There are small improvements to the check and get-zones subcommands. The integration tests have been optimized: they now run significantly faster for most providers.

Highlights

  • In an effort to better support CI/CD pipelines, dnscontrol check now reports problems to stdout, not stderr. These same problems are still reported to stderr by dnscontrol preview and dnscontrol push.
  • dnscontrol get-zones deals with CNAMEs at the apex better by including a comment warning that manual editing may be required.
  • Shout out to @cafferata for combing through the documentation to find and fix many errors and inconsistencies. The documentation now includes a table of contents for the DSL language features and works much better on mobile platforms.
  • The documentation now includes examples of doing DNS updates via a CI/CD pipeline a.k.a. the GitOps pattern.
  • The JavaScript interpreter (otto) has been upgraded from the 2021-10-24 release to the 2022-10-25 release. This has many stability improvements and no compatibility issues (we hope!)
  • DESEC's authentication is improved. DIGITALOCEAN's CAA implementation supports semicolons. DNSIMPLE, EXOSCALE, and VULTR now support their newer APIs.

Breaking changes

  • The above-mentioned change to dnscontrol check may break some pipelines. Please verify after upgrading. More likely these pipelines are redirecting stderr to stdout which is no longer needed.

Changelog

Major features:

Provider-specific changes:

Other changes and improvements:

v3.20.0

26 Aug 16:02
8bb63be
Compare
Choose a tag to compare

Changelog

This release changes the output format to be more brief and fixes a number of small bugs.

New format: The format of preview and push is now more brief and works better for CI/CD systems. The old output is available by specifying the --verbose flag. You probably only want to use the old format when debugging authentication issues or during initial setup when it is useful to help understand how DNSControl works.

Breaking changes:

  • n/a

Major features:

Provider-specific changes:

Other changes and improvements:

Depreciation warnings

  • Call for new volunteer maintainers for NAMEDOTCOM, and SOFTLAYER. 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.
  • ACME/Let's Encrypt support is frozen and will be removed after December 31, 2022. The get-certs command (renews certs via Let's Encrypt) has no maintainer. There are other projects that do a better job. If you don't use this feature, please do not start. If you do use this feature, please plan on migrating to something else. See discussion in issues/1400
  • Provider OCTODNS is frozen and will be removed after Nov 1, 2022. It was written as a joke and nobody laughed. It's time to remove the code and move on.
  • get-zones syntax changes in v3.16 Starting in v3.16, the command line arguments for dnscontrol get-zones changes. For backwards compatibility change provider to -. See documentation for details.

v3.19.0

15 Aug 18:44
cfc82c8
Compare
Choose a tag to compare

Changelog

This is a clean-up release. Tons of bugs fixed, refactored code and chores. No new features.

Release process: Docker and ARM users rejoice! We now have a fully automated release process. We've added ARM64 and Docker images. It uses goreleaser and CircleCI. Everything is automated except the creation of these release notes. Thanks to @cdhunt and @cafferata for their work on this!

Performance: The "auditrecord" system is now faster and the code is easier to read.

More cleanups: Many, many, many dependencies have been updated. "golint" now reports no errors or warnings. "staticcheck" only reports 3 minor issues.

Also...

  • Cloudflare: Incorrect creds? The error message now tells you where to look.
  • Azure: You're now on the new SDK.
  • MSDNS and CSCGLOBAL are now 2x faster because we were downloading DNS records twice. Ooops!
  • INWX: Welcome new maintainer patschi! Thanks for stepping up!

Deprecations: As announced earlier this year, "convertzone" and ActiveDirectory_PS have been removed; we've marked OctoDNS to be removed later this year. All of these have replacements that are significantly better.

Here's the details:

Major features:

  • n/a

Provider-specific changes:

Other changes and improvements:

Release v3.18.1

10 Aug 17:55
Compare
Choose a tag to compare

This minor release fixes bugs in the NS1 and CSCGLOBAL providers. It also bumps the container to use Alpine 3.16.2 and fixes a compilation error.

NOTE: Please ignore references to release v3.18.2. That was a typo.

Breaking changes:

  • n/a

Major features:

  • n/a

Provider-specific changes:

  • NS1: workaround an issue with ns1 API (#1671)
  • CSCGLOBAL: Improve performance by waiting less (#1669)

Other changes and improvements:

  • CHORE: Bump alpine from 3.16.1 to 3.16.2 (#1670)
  • CSCGLOBAL: Fix compilation error

Depreciation warnings

  • Call for new volunteer maintainers for INWX, NAMEDOTCOM, and SOFTLAYER. These providers have no maintainer. Maintainers respond to PRs and fix bugs in a timely manner, and try to stay on top of API changes.
  • ACME/Let's Encrypt support is frozen and will be removed after December 31, 2022. The get-certs command (renews certs via Let's Encrypt) has no maintainer. There are other projects that do a better job. If you don't use this feature, please do not start. If you do use this feature, please plan on migrating to something else. See discussion in #1400
  • convertzone is frozen and will be removed after June 30, 2022. The convertzone stand-alone program is replaced by the get-zone subcommand of DNSControl. It does everything convertzone did and more.
  • Provider ACTIVEDIRECTORY_PS is frozen and will be removed after June 30, 2022. It is replaced by MSDNS which is 100% feature compatible and works better. (We believe nobody uses it.)
  • get-zones syntax changes in v3.16 Starting in v3.16, the command line arguments for dnscontrol get-zones changes. For backwards compatibility change provider to -. See documentation for details.

Release v3.18.0

08 Aug 20:49
Compare
Choose a tag to compare

This release includes 1 new provider, some features work better, and there are many, many bug fixes.

Thanks to Simen Bai for contributing a provider for Domainnameshop! Thanks to Amelia Aronsohn for stepping up to be the new owner of DNSIMPLE, who has already made numerous improvements!

Many providers have improved TXT record handling thanks to some new tests that surfaced some bugs. GCLOUD users can now use ADC for authentication. The code that populates a new zone in HETZNER and ROUTE53 now works better. The get-zones command generates code that needs less hand-editing (but still is "a good first draft", not perfect). The JS version of the SPF flatterer has been recompiled with the latest gopherjs.

Breaking changes:

  • n/a

Major features:

  • NEW PROVIDER: Domainnameshop provider (#1625) (Simen Bai)

Provider-specific changes:

  • CSCGLOBAL: Support TXT records that are long or include double-quotes (#1631)
  • DIGITALOCEAN: Bump github.com/digitalocean/godo from 1.80.0 to 1.81.0 (#1560)
  • DNSIMPLE: Fix TXT Handling (#1624)
  • DNSIMPLE: do not support unpaired double quotes in TXT (#1610)
  • DNSIMPLE: do not support spaces in CAA records. (#1606)
  • DNSIMPLE: Update dnsimple module to 0.71.1 (#1607)
  • DNSIMPLE: do not support DS records (#1608)
  • DNSIMPLE: Change code owner/maintainer (#1609)
  • EXOSCALE: CHORE: Update Exoscale dependency (#1626)
  • GANDI_V5: Improve error handling (#1639)
  • GCLOUD: Enable ADC for Gcloud provider (#1583)
  • HEXONET: CHORE: upgrade dependency go-sdk to v3.5.4 (#1580)
  • HETZNER: do not support spaces in CAA records (#1577)
  • HETZNER: Bug: Populate zone in provider may fail (#1642)
  • MSDNS: Add missing newline to PS warning (#1614)
  • NAMEDOTCOM: Better estimate TXT length restrictions (#1627)
  • POWERDNS: Cleanup and fix parsing of TXT records (#1569)
  • POWERDNS: MAINT: Restructuring of the PowerDNS DSP based on the layout of CSCGlobal (#1549)
  • ROUTE53: Bug: Populate zone in provider may fail (#1642)

Other changes and improvements:

  • AuditRecords should report the provider name (#1628)
  • get-zones "js" format should generate pretty DSP variable (#1630)
  • Upgrade many dependencies (#1648) (#1591) (#1561) (#1552)
  • CHORE: Upgrade jquery 2.1.4 to 3.6.0 (#1637)
  • CHORE: flattener: Recompile with latest gopherjs (#1635)
  • CHORE: Run go fmt after build, so deps are there (#1557)
  • CHORE: Move IGNORE* tests to the end (#1623)
  • DOCS: Add tips about TXT records (#1622)
  • DOCS: Use HTTPS for git endpoint for cloning (#1572)
  • DOCS: Add creds.json.tpl file to documentation (#1554)
  • MAINT: Update TXT docs, suggest not using TxtNoLen255 (#1548)
  • MAINT: Configure Dependabot to update Docker image (#1553)

Depreciation warnings

  • Call for new volunteer maintainers for NAMEDOTCOM, and SOFTLAYER. 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.
  • ACME/Let's Encrypt support is frozen and will be removed after December 31, 2022. The get-certs command (renews certs via Let's Encrypt) has no maintainer. There are other projects that do a better job. If you don't use this feature, please do not start. If you do use this feature, please plan on migrating to something else. See discussion in #1400
  • convertzone is frozen and will be removed after June 30, 2022. The convertzone stand-alone program is replaced by the get-zone subcommand of DNSControl. It does everything convertzone did and more.
  • Provider ACTIVEDIRECTORY_PS is frozen and will be removed after June 30, 2022. It is replaced by MSDNS which is 100% feature compatible and works better. (We believe nobody uses it.)
  • get-zones syntax changes in v3.16 Starting in v3.16, the command line arguments for dnscontrol get-zones changes. For backwards compatibility change provider to -. See documentation for details.

Release v3.17.0

19 Jun 13:51
Compare
Choose a tag to compare

This release includes many new features and bug fixes:

Some highlights:

  • An elusive bug in CLOUDFLAREAPI was fixed (#1543) related to TXT records and quoting. The SPF Optimizer may have installed additional quotes in your TXT records years ago. This went unnoticed because CloudFlare stripped these quotes silently. DNSControl will fix your TXT records on the next run.

  • --creds !command now accepts an entire command line, not just the filename of a script. This works on both Unix-like and Windows (PowerShell) systems, thus a command like dnscontrol preview --creds "!op inject -i creds.json.tpl" will work on both. See https://stackexchange.github.io/dnscontrol/creds-json.html

  • CSCGLOBAL now has experimental support as a DNS Service Provider (DSP). Previously it was only a Registrar. Sadly the API locks any zone for 5-7 minutes after any changes, which could cause timeouts in CI/CD pipelines.

  • Docker users rejoice! The Dockerfile has been greatly improved.

  • Welcome Riyadh Al Nur (@riyadhalnur) as the new maintainer of the Google DNS (GCLOUD) provider! Thanks for stepping up!

Thanks to all the volunteers for their contributions: Jan-Philipp Benecke, F.D.Castel, Riyadh Al Nur, Chris, Nicolas Lorin. (apologies if I missed anyone)

Breaking changes:

  • n/a

Major features:

  • NEW PROVIDER: CSCGLOBAL as DNS Service Provider (#1516) (experimental)
  • FEATURE: --creds can refer to a command line to execute in addition to a file or script (#1521)
  • MAINT: New Dockerfile (fix #1459) (#1537)
  • GCLOUD: Welcome riyadhalnur as the new owner for GCLOUD (#1525)

Provider-specific changes:

  • CLOUDFLAREAPI: Fix TXT quoting bug (#1538) (#1543)
  • GANDI: DOCS: Document sharing_id errors (#1542)
  • CSCGLOBAL: Enable CAA records (#1536)
  • VULTR: Enable long TXT (#1518)

Other changes and improvements:

  • MAINT: Unify provider outputs to pkg/printer (#1546)
  • MAINT: Enforcing formatted code (#1544)
  • MAINT: Put some target-related warnings behind a flag (#1541)
  • CLOUDFLAREAPI: FIX: Preventing segfault when Cloudflare API limit is reached (#1530)
  • NEW FEATURE: Add deprecation notice to create-domains command (#1529)
  • CHORE: update provider maintainer message (#1526)
  • MAINT: docker: Add CA certificates to Docker image (#1523)
  • MAINT: Bump github.com/tdewolff/minify/v2 from 2.11.5 to 2.11.7 (#1520)
  • SOFTLAYER: Bump github.com/softlayer/softlayer-go from 1.0.4 to 1.0.5 (#1519)

Depreciation warnings

  • Call for new volunteer maintainers for NAMEDOTCOM, and SOFTLAYER. 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.
  • ACME/Let's Encrypt support is frozen and will be removed after December 31, 2022. The get-certs command (renews certs via Let's Encrypt) has no maintainer. There are other projects that do a better job. If you don't use this feature, please do not start. If you do use this feature, please plan on migrating to something else. See discussion in #1400
  • convertzone is frozen and will be removed after June 30, 2022. The convertzone stand-alone program is replaced by the get-zone subcommand of DNSControl. It does everything convertzone did and more.
  • Provider ACTIVEDIRECTORY_PS is frozen and will be removed after June 30, 2022. It is replaced by MSDNS which is 100% feature compatible and works better. (We believe nobody uses it.)
  • get-zones syntax changes in v3.16 Starting in v3.16, the command line arguments for dnscontrol get- zones changes. For backwards compatibility change provider to -. See documentation for details.

Release v3.16.2

31 May 15:28
Compare
Choose a tag to compare

This release fixes another bug (#1507 (comment)) in the dnscontrol check subcommand related to the #1457 proposal. Thanks to @riku22 for reporting the bug!

Breaking changes:

  • none

Major features:

  • none

Provider-specific changes:

  • none

Other changes and improvements:

Depreciation warnings

  • Call for new volunteer maintainers for GCLOUD, NAMEDOTCOM, and SOFTLAYER. 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.
  • ACME/Let's Encrypt support is frozen and will be removed after December 31, 2022. The get-certs command (renews certs via Let's Encrypt) has no maintainer. There are other projects that do a better job. If you don't use this feature, please do not start. If you do use this feature, please plan on migrating to something else. See discussion in #1400
  • convertzone is frozen and will be removed after June 30, 2022. The convertzone stand-alone program is replaced by the get-zone subcommand of DNSControl. It does everything convertzone did and more.
  • Provider ACTIVEDIRECTORY_PS is frozen and will be removed after June 30, 2022. It is replaced by MSDNS which is 100% feature compatible and works better. (We believe nobody uses it.)
  • get-zones syntax changes in v3.16 Starting in v3.16, the command line arguments for dnscontrol get-zones changes. For backwards compatibility change provider to -. See documentation for details.

Release v3.16.1

27 May 17:00
Compare
Choose a tag to compare

This release fixes one minor bug in the dnscontrol check subcommand related to the #1457 proposal. Also many dependencies are upgraded.

Breaking changes:

  • none

Major features:

  • none

Provider-specific changes:

  • none

Other changes and improvements:

  • Fix #1507: Skip AuditRecords when running dnscontrol check (#1508)

Depreciation warnings

  • Call for new volunteer maintainers for GCLOUD, NAMEDOTCOM, and SOFTLAYER. 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.
  • ACME/Let's Encrypt support is frozen and will be removed after December 31, 2022. The get-certs command (renews certs via Let's Encrypt) has no maintainer. There are other projects that do a better job. If you don't use this feature, please do not start. If you do use this feature, please plan on migrating to something else. See discussion in #1400
  • convertzone is frozen and will be removed after June 30, 2022. The convertzone stand-alone program is replaced by the get-zone subcommand of DNSControl. It does everything convertzone did and more.
  • Provider ACTIVEDIRECTORY_PS is frozen and will be removed after June 30, 2022. It is replaced by MSDNS which is 100% feature compatible and works better. (We believe nobody uses it.)
  • get-zones syntax changes in v3.16 Starting in v3.16, the command line arguments for dnscontrol get-zones changes. For backwards compatibility change provider to -. See documentation for details.

Release v3.16.0

20 May 19:53
Compare
Choose a tag to compare

This release includes one new provider ("AutoDNS"), warns about mismatched TTLs, fixes bugs and adds many improvements. Most importantly this release begins the transition to storing "provider type" info in creds.json instead of dnsconfig.js.

The Request for Comments: Include the provider type in creds.json, remove it from dnsconfig.js proposal was implemented in this release. This moves the provider name (the uppercase string like CLOUDFLAREAPI, GANDI_V5, ROUTE53) from dnsconfig.js into the creds.json file. This corrects a long-standing design mistake, simplifies configuration files and command-line tools usage. With this release both the old and new syntax are supported. If the old syntax is detected, helpful conversion advice is output on stderr. There are no plans to remove the old syntax, but it will happen eventually.

Because the warnings are output on stderr, it should not affect scripts or CI/CD pipelines. However, do be on the lookout for unexpected problems.

We also thank @tresni for stepping up and volunteering to maintain CLOUDFLAREAPI and ROUTE53!

Breaking changes:

  • none intended (See above)

Major features:

  • NEW PROVIDER: AutoDNS (#1336) (Thanks, @arnoschoon!)
  • NEW FEATURE: Emit warning in case of label having multiple TTLs (#1489)
  • NEW FEATURE: Provider TYPE is moving from dnsconfig.js to creds.json (#1500) (#1499)
  • BUG FIX: creds.json should not be executable under Windows (#1456)
  • Welcome maintainers for CLOUDFLAREAPI, ROUTE53

Provider-specific changes:

  • AUTODNS: Fix autodns documentation example javascript. (#1470)
  • CLOUDFLARE: Add support for PTR records (#1496)
  • CLOUDNS: Fix creation of intra-zone NS records (see #1263) (#1469)
  • DNSIMPLE: bug-fix, allow non-apex NS records (#1468)
  • DOH: Clarify DOH does not reference whois data (#1413)
  • GANDI_V5: Fix DS test / Eliminate SHA1 use in DS_Child tests (#1502)
  • HEXONET: Fix error format string (#1462)
  • HEXONET: Adapt to new OTE endpoint (#1463)
  • LINODE: Add support for CAA records and implement get-zones (#1454)
  • LINODE: Skip CAA flag test (#1455)
  • NETCUP: Autosplit long TXT records (#1481)
  • NS1: enable autoDNSSEC capability (#1450)

Other changes and improvements:

  • Refactor: Rewrite GetDNSConfig (#1466)
  • Refactor: Rename providers/config to pkg/credsfile (#1494)
  • Refactor: Move creds.json processing out of InitializeProviders (#1495)
  • Cleanup: Eliminate models.StringsToNameservers() (#1486)
  • Cleanup: Make skip_fqdn_check error message easier to understand and fix (#1477)
  • DOCS: Update maintainers for Route53 and Cloudflare (#1501)
  • TESTING: pkg/js/parse_tests: fix a broken test (#1498)
  • DOCS: fix a forgotten "VOLUNTEER NEEDED" (#1488)
  • Cleanup: Guard against nil (#1452)
  • MAINT: Minimum go version is now 1.18 (#1464)
  • TESTING: "DUPLICATE E_RECORD" no longer a hard error (#1465)
  • Update dependencies (#1490) (#1478)

Depreciation warnings

  • Call for new volunteer maintainers for GCLOUD, NAMEDOTCOM, and SOFTLAYER. 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.
  • ACME/Let's Encrypt support is frozen and will be removed after December 31, 2022. The get-certs command (renews certs via Let's Encrypt) has no maintainer. There are other projects that do a better job. If you don't use this feature, please do not start. If you do use this feature, please plan on migrating to something else. See discussion in #1400
  • convertzone is frozen and will be removed after June 30, 2022. The convertzone stand-alone program is replaced by the get-zone subcommand of DNSControl. It does everything convertzone did and more.
  • Provider ACTIVEDIRECTORY_PS is frozen and will be removed after June 30, 2022. It is replaced by MSDNS which is 100% feature compatible and works better. (We believe nobody uses it.)
  • get-zones syntax changes in v3.16 Starting in v3.16, the command line arguments for dnscontrol get-zones changes. For backwards compatibility change provider to -. See documentation for details.

Release v3.15.0

07 Mar 18:51
Compare
Choose a tag to compare

This release includes many minor features, bug fixes, and documentation improvements. ClouDNS now manages web redirects, NS1 now supports DS, TLSA, NAPTR, and CAA records, documentation now displays examples better, and POWERDNS now supports DS records. Welcome @costasd as the new maintainer for the NS1 provider! Sadly we've decided to retire the "get-certs" command that renews certs using ACME (Let's Encrypt). See below for details.

Breaking changes:

  • none

Major features:

  • ClouDNS: Add CLOUDNS_WR (Web Redirects) (#1421)

Provider-specific changes:

  • AZURE_DNS: GetZones error should report subscription id (#1415)
  • BIND: Bug: DefaultNS strips last char (#1411)
  • BIND: Fix test that fails on second run (#1434)
  • CLOUDFLARE: Bug: crash when SRV is missing target (#1437)
  • EASYNAME: Source filename should conform to standard (#1422)
  • GCLOUD: Stop using deprecated New() call (#1409)
  • HOSTINGDE: Customizing nameservers for hosting.de provider (#1396)
  • NS1: Enable DS & DSForChildren support (#1446)
  • NS1: add support for TLSA and NAPTR (#1405)
  • NS1: fix multivalue CAA handling (#1404)
  • NS1: ignore DNSKEY & RRSIG entries (#1443)
  • NS1: new maintainer for ns1 (#1403)
  • POWERDNS: Add support for DS records (#1414)
  • ROUTE53: Fix shortname bug for get-zones (#1418)

Other changes and improvements:

  • DOCS: Fix examples in documentation (#1435)
  • DOCS: Replace Jekyll highlight tags with fenced code blocks (#1412)
  • DOCS: Update README with GHA and LE news (#1428)
  • DOCS: fix typo (#1419)
  • MAINT: Make staticcheck more strict and fix new warnings (#1408)
  • MAINT: Sort various lists (#1433)
  • MAINT: Update dependencies GANDIV5, CLOUDFLAREAPI(#1439) (#1438) (#1431) (#1432) (#1429)

Depreciation warning

  • Let's Encrypt support is frozen and will be removed in early 2023. The "get-certs" command (renews certs via Let's Encrypt) has no maintainer. There are other projects that do a better job. If you don't use this feature, please do not start. If you do use this feature, please plan on migrating to something else. See discussion in #1400
  • Provider ACTIVEDIRECTORY_PS is deprecated and will be removed soon. Use MSDNS instead.
  • Call for new volunteer maintainers for CLOUDFLARE_API, GCLOUD, NAMEDOTCOM, ROUTE53, and SOFTLAYER.