Skip to content

Releases: StackExchange/dnscontrol

Release v3.12.0

09 Sep 21:03
Compare
Choose a tag to compare

This release includes many features and improvements including new macros for delegating domains elsewhere, more conformant DMARC_BUILDER, the ability to INCLUDE a domain's records in another domain, and SPF-Flatten on non-apex domains. Route53 users can now specify a R53_ZONE on a domain or record, VULTR users now have better TXT quoting support. And as always, dependencies have been updated.

Breaking changes:

  • none

Major features:

  • NEW MACROS: DOMAIN_ELSEWHERE and DOMAIN_ELSEWHERE_AUTO (#1237)
  • DMARC_BUILDER: specify version, use values when specified (#1236)
  • NEW FEATURE: Add INCLUDE statement to include records from other domains (#1219)
  • SPF Flatten now works on non apex domains (#1220)

Provider-specific changes:

  • ROUTE53: Add R53_ZONE as an domain identifier (#1241)
  • INWX: fix apex domains (#1221) (#1242)
  • VULTR: Fix TXT quoting issue (#1239)

Other changes and improvements:

  • Document how to ignore the NS records of a domain (#1234)
  • Update dependencie
  • Improve release eng doc (#1216)

Release v3.11.0

21 Jul 17:34
Compare
Choose a tag to compare

This release includes a new provider (TRANSIP), improvements to the deSEC provider for users with more than 500 domains, and the get-zones command now works for NAMECHEAP. We've also started using CodeQL for code analysis of JS files and fixed some bugs.

Breaking changes:

  • none

Major features:

  • NEW PROVIDER: TRANSIP (#1196)

Provider-specific changes:

  • DESEC Permit large numbers of domains (implement pagination) (#1208)
  • DESEC: Implements support for long / multistring txt records (#1204)
  • NAMECHEAP: Add get zone functionality (#1207)

Other changes and improvements:

  • Re-enable CodeQL for Javascript (#1209)
  • Bump github.com/aws/aws-sdk-go from 1.38.70 to 1.39.1 (#1203)
  • MAINTENANCE: Less frequently Dependabot runs (#1202)
  • MAINTENANCE: Return error instead of panic when converting RR to RC (#1199)

Release v3.10.1

01 Jul 14:20
Compare
Choose a tag to compare

This release simply fixes the version string (3.10.0 was reporting 3.9.0... ooops!) and updates some dependencies. We also update the release engineering docs to catch this typo from happening again.

  • Version string is incorrect.
  • Update release engineering doc to verify version string.
  • Disable codeql for javascript (#1189)
  • EXOSCALE: update client lib to v0.59.0 (#1183)

Release v3.10.0

29 Jun 13:39
Compare
Choose a tag to compare

This release includes 1 new provider (Akamai Edge DNS), many bug fixes, and reliability improvements including MSDNS stability fixes. Thanks to all the volunteers that submitted code!

Breaking changes:

  • A minor change to SOA records should not cause any breakage but if you use the SOA() function please be on the look-out for problems.

Major features:

  • NEW PROVIDER: AkamaiEdgeDNS (#1174)

Provider-specific changes:

  • AXFRDDNS: Fix advertisement of Get-Zones capability (#1161)
  • CLOUDNS: Provider does not support changing the NAPTR in the API. (#1159)
  • CLOUDNS: Update setup docs (#1158)
  • DESEC: Clarify supported capabilities (#1160)
  • DNSMADEEASY: Correct hard coded system nameserver TTL (#1167)
  • DNSMADEEASY: Show actual URL to use instead of just "sandbox" (#1166)
  • MSDNS: Add NAPTR support (#1165)
  • MSDNS: Improve reliability of zone dump
  • NS1: Implement EnsureDomainExists (#1157)

Other changes and improvements:

  • MAINT: Fix issues reported by CodeQL (#1173)
  • MAINT: Add RPM/DEB license, url, and description (#1170)
  • MAINT: Adopt go 1.16's embed feature (#1162)
  • MAINT: upgrade dependencies
  • DOCS: SOA docs should cite BIND doc

Release v3.9.0

13 May 16:48
Compare
Choose a tag to compare

This release includes many small improvements and a long-awaited change to SOA handling. SOA records can now be inserted using the SOA() function (mostly affects BIND, as most providers auto-generate SOA records). CAA now works for NS1; ALIAS records now work for NS1 and NAMECHEAP. AXFRDDNS now lets you select connection protocol. POWERDNS more correctly handles complex updates. MSDNS now supports PSSession and alternative credentials.

Thanks to all the people that submitted PRs! This is truly a community-driven release!

Breaking changes:

  • SOA record handling: All changes are upward compatible but if you use BIND and manipulate SOA records some extra testing is recommended.

Major features:

  • Direct SOA record management (#1115)

Provider-specific changes:

  • NS1: Enable support for CAA (#1150)
  • NS1: fix ALIAS handling (#1154)
  • POWERDNS: fix order problems of delete corrections & some cleanup (#1153)
  • NAMECHEAP: Enable ALIAS support (#1149)
  • AXFRDDNS: adds update/transfer connection modes support (#1143)
  • MSDNS Fix pssession; Allow alternative credentials (#1140)

Other changes and improvements:

  • DOCS: Fix typo: will will -> will (#1152)
  • DEV: Add integration test for SOA (#1147)
  • DEV: Speed up integration tests (#1138)
  • DEV: Update deps (#1141)

Release v3.8.1

22 Apr 20:59
Compare
Choose a tag to compare

This release includes many bug fixes and one new feature. The new feature is that instead of reading creds.json, that information can be determined by running a program instead. Simply make the file executable (chmod +x credinfo.sh) or precede it with a "!", such as --creds '!/path/to/credinfo.sh'

Breaking changes:

  • On non-Windows systems, the creds.json file should not have the executable bit set.

Major features:

  • IGNORE_NAME: Should work at domain apex (bugfix) (#1118)
  • creds.json info can come from an executable (#1119)

Provider-specific changes:

  • BIND: Improve SOA documentation (#1132)
  • GANDI_V5: Add "get-zones" support (#1117)
  • GANDI_V5: supports DS records already (#1112)
  • HEXONET: introducing semver to HEXONET provider (#1120)
  • OVH: Add "get-zones" support (#1117)
  • ROUTE53: Docs should specify FQDN with dot. (#1130)

Other changes and improvements:

  • TESTING: Improve DS comments (#1134)
  • Maint: DS record tests should use more realistic data (#1127)
  • DOCS: Document how to preview website (#1133)
  • Fix doc error (#1113)

Release v3.8.0

28 Mar 20:10
Compare
Choose a tag to compare

This release is packed with new features and improvements!

  • Two new providers! (DNS Made Easy and hosting.de)
  • A new experimental formatter for "dnsconfig.js" (dnscontrol fmt)
  • An easier way to build DMARC records (DMARC_BUILDER())
  • Sadly, the SOFTLAYER is now unmaintained. We need a volunteer. See #1080

Some internals improvements will help future provider-authors:

  • TXT records has been completely rewritten to enable providers to indicate all their edge cases, such as not permitting long strings, or not permitting double-quotes in strings. This should make long and/or strange TXT records easier to handle in the future. The code is cleaner and more simple. Plus, it is general and supports all DNS records, not just TXT.
  • The "target" field is no longer exported. This completes a change that started many months ago to require Getters and Setters for the RecordConfig.Target field. This makes providers less brittle and prepares us for using Go's future Generics. Thanks to all the provider authors who helped test this new feature.

BREAKING CHANGES:

  • DESEC: Long txt records may break, especially if the string includes double quotes. If you use DeSEC you may want to skip this release. See #996

Thanks to the multitudes for contributing to this release!


Major features:

  • Re-engineer TXT records for simplicity and better compliance (#1063)
  • New Feature: JS formatter and prettifier (#917) FYI: This is an experimental feature. It depends on an external module that may not be supported in the long term.
  • NEW PROVIDER: DNS Made Easy (#1093)
  • NEW PROVIDER: hosting.de (#1041)
  • NEW MACRO: DMARC_BUILDER (#1047)
  • SOFTLAYER: Mark provider as unmaintained (#1080)

Provider-specific changes:

  • HEXONET: AuditRecord should permit TXT with long strings (#1107)
  • CLOUDNS: Improve automated testing (#1103)
  • CLOUDNS: Fetch permitted TTL values from API #1078 (#1102)
  • CLOUDNS. Enable SRV and PTR records (#1101)
  • CLOUDNS: ClouDNS does NOT allow multiple TXT records with same name (#1098)
  • CLOUDNS: Note that TXT records do not permit double-quotes. Fix typo (#1094)
  • POWERDNS: allow alias-records to be parsed (#1096)
  • HEDNS: Fix issue with domain listing on completely empty accounts
  • ROUTE53: Disable failing tests
  • CLOUDFLAREAPI: Extend timeout for CLOUDFLAREAPI
  • HEDNS: Enable automatic integration testing (#1068)
  • HEDNS: Fix CNAME, NS and PTR record handling of trailing . (#1064)
  • POWERDNS: Some minor fixes for ALIAS and TXTMulti and integration testing (#1065)

Other changes and improvements:

  • "Target" RecordConfig should not be exported (#1061)
  • IGNORE_*: Warn about fragility (#1108)
  • DKIM is a no-op now (#1084)
  • Update dependencies (#1110) (#1100)
  • Developer: Github Actions should use cache steps (#1097)
  • Linting (#1087)
  • DOCS: Clarify that create-domains does not purchase them (#1086)
  • Make GCLOUD and GANDI_V5 module names consistent (#1060) (#1059)
  • BUG: D_EXTEND should not apply DEFAULTS{} (#1055)

Release v3.7.0

19 Feb 20:29
Compare
Choose a tag to compare

This release introduces a major new feature: support for split horizons! The beta users give it two thumbs up, but as with any new feature please adopt it with care. Also in this release are new features for NS1, ClouDNS, and some code cleanups and bug fixes.

Split horizon DNS support introduces a new name scheme for domains: "domain!horizon", where "horizon" differentiates between multiple
instances of the same domain. Define D("example.com!inside") and D("example.com!outside"), for example. The two "example.com" domains are unrelated and must be populated individually.

Breaking changes:

  • none

Major features:

  • NEW FEATURE: Support Split Horizon DNS (#1034)

Provider-specific changes:

  • NS1: Support NS1_URLFWD (#1046)
  • CLOUDNS: Implement AUTOSPLIT (#1035)
  • BIND: Specify zone filenames using a printf-like specification (#1034)

Other changes and improvements:

  • BUG: Labels that are FQDN can cause panics (#1040)

Release v3.6.0

30 Jan 14:50
Compare
Choose a tag to compare
Release v3.6.0 Pre-release
Pre-release

This release includes 2 new providers, a new FETCH() command, and much more!

MSDNS is a new provivder for the Microsoft Windows Server DNS Server. It issues PowerShell commands to do its updates. It will eventually replace ACTIVEDIRECTORY_PS, which was becoming difficult to maintain. MSDNS is very new so test with care. Please report bugs ASAP.

ORACLE is our newest provider. Welcome to the DNSControl family!

FETCH() is a new feature that can "curl" a JSON file. Use the --allow-fetch command line flag to enable this potentially risky feature.

Thanks to all the volunteers for their contributions, especially Atma for helping improve the releng automation!

Breaking changes:

  • None

Major features:

  • NEW PROVIDER: MSDNS (#1005)
  • NEW PROVIDER: Oracle Cloud (#1021)
  • New feature: FETCH() permits http gets in dnsconfig.js (#1007)

Provider-specific changes:

  • CLOUDFLAREAPI: Now works with PunyCode/IDNA (#1019)
  • CLOUDFLAREAPI: Support Punycode for CF_REDIRECT/CF_TEMP_REDIRECT (with tests) (#1026)
  • CLOUDNS: Add DS record support (#1018)
  • GCCLOUD: Add TLSA Support (#1015)
  • HEXONET: Update github.com/hexonet/go-sdk (#1029)
  • OCTODNS: Add SPF support for RecordConfig (#1020)
  • OVH: Enable TXTMulti (#1003) (#1008)

Other changes and improvements:

  • RELENG: Automate releng more (#1006)
  • RELENG: Build RPM and DEB packages (#1030)

Release v3.5.0

07 Dec 15:23
Compare
Choose a tag to compare

This release includes so many updates and fixes it is difficult to
summarize them all!

Major features:

  • NEW PROVIDER: HETZNER DNS Console (#904)
  • NEW FEATURE: You can now set variables through flags on the command line (#918) (#913)
  • BREAKING CHANGE: Long TXT records require AUTOSPLIT to be split (#957) and are checked are check/preview time (#947) (See below)
  • ENHANCEMENT: "dnscontrol get-zones" now outputs the "orange cloud" flag for CloudFlare (#952)

BREAKING CHANGE: Previously different providers handled them differently; some gave an error and others split them silently into 255-octet chunks. This created unhappy surprises when switching providers. Now strings longer than 255-octet must be explictly split (manually or by using the AUTOSPLIT flag). See https://stackexchange.github.io/dnscontrol/js#long-and-multiple-strings

NEW AUTOMATED TESTING! Each PR now triggers a suite of automated tests. If you maintain a provider, you can "bring your own secrets" to activate testing in your fork. This should make it easier to contribute to the project! (thanks Max Horstmann, our GitHub Actions wizard!)

Provider-specific changes:

  • AZURE_DNS: Remove artificial delays (#943)
  • CLOUDFLAREAPI: get-zones now outputs "orange cloud" status (#952)
  • CLOUDFLAREAPI: Support TXTMulti and empty TXT targets (#978)
  • DIGITALOCEAN: Abide by rate limits (#934)
  • DIGITALOCEAN: Support TXTMulti with caveats (#949)
  • GCLOUD: Don't panic() on unknown domain name (#944)
  • GCLOUD: Retry on ratelimit (#946) and 502 (#984)
  • HETZNER: Allow TXTMulti (#963)
  • HETZNER: better rate limit handling (#936) (#926)A
  • HETZNER: create and modify multiple records in batches (#925) (#789)
  • HEXONET: Add GHA tests. Update docs. (#942)
  • INWX: Guard against single-quote TXT targets (#971)
  • INWX: enable multi txt support (#981)
  • POWERDNS: Fix documentation: config keys use camel case (#962)
  • ROUTE53: Fix R53_ALIAS creation failure (#938)

Code maintenance:

  • TESTING: Enable Bring-Your-Own-Secrets (#982) (#977)
  • TESTING: js_test.go now generates zonefiles and tests them (#986)
  • BUG: Fix REV and PTR when used together or with D_EXTEND (#979)
  • BUG: Refactored R53_ALIAS code to be more predictably correct, and fix many bugs along the way (#938)
  • BUG: Unknown rtypes should return errors, not a panic (#945)
  • CODE HEALTH: Reduce the use of panic(): Unknown rtypes return errors, not panic (#945)
  • CODE HEALTH: Rename provider handles to *Provider (#914) (#911)
  • CODE HEALTH: deps updates and linting (#905)
  • DOCS: Fix golint and vendoring notes (#948)
  • DOCS: Update install instructions (#951)
  • MAINT: Add a .editorconfig file (#921)
  • MAINT: Fix parse_test numbering (#985)
  • MAINT: Many deps updated (#988)
  • MAINT: gofmt -s all the things! (#983)