Big improvements for Gandi users, new providers (ClouDNS,
📚 Internet.bs), many code and documentation improvements including a
🚚 move to Go Modules.
💥 BREAKING CHANGE: GANDI_V5 is a significant improvement over the GANDI
🚚 and GANDI-LIVEDNS providers, both of which will be removed in 3.0.
Please migrate now.
Let's Encrypt now tries all renewals even if an earlier one fails.
- 🆕 NEW PROVIDER: GANDI_V5 (deprecates GANDI) (#572)
- 🆕 NEW PROVIDER: Internet.bs (#590)
- 🆕 NEW PROVIDER: ClouDNS (#578)
- ➕ Add _mta-sts to labels allowed to have an underscore (#617)
- LETS_ENCRYPT: Try all cert renewals before returning error (#611)
- LETS_ENCRYPT: DNS01 challenge no longer skips preCheckDNS (#591)
- AZURE: Alias records no longer break DNSControl (#616)
- ⚡️ AZURE: Fixes a situation where, wrong domain was gets updated (#615)
- 👍 DIGITALOCEAN: CAA is supported with some caveats (#592)
- 👍 NAMECHEAP: Add CAA support (#533)
📄 Docs and internal changes:
- 📄 DOCS: Updated release engineering process
- 📄 DOCS: Better explain NAMESERVER() vs NS() (#608)
- 📄 DOCS: Clarify bug triage process (#606)
- 📄 DOCS: Improve Lets Encrypt docs (#594)
- ⚡️ Updated module: upgrade urfave/cli to v2 (#614)
- ⚡️ Updated module: upgrade github.com/mjibson/esc (#515)
- ✅ Integration test: Add test for TXT with null string (#597)
- 👕 Many code cleanups, linting, vetting (#605)
- 🆕 New Provider: Azure DNS (#547)
- Switched from
govendorto go modules for dependencies (#587)
- ⬆️ Upgraded to Go 1.13 (#550)
- 👍 Gandi: Support for multi-TXT records (#545)
- 🖨 Gandi: Print actual changes to be pushed (#546)
- 👍 Vultr: Added support for SSHFP records (#531)
- CloudFlare: Add ability to manage UniversalSSL (#496)
- 👍 CloudFlare: Support API tokens (#555)
- Route 53: Add AWS_PROFILE functionality (#567)
Thanks to all contributors!
🚀 Its been a while since the last release! This release rolls up a number of big changes: IGNORE() now supports wildcards/globs, require() can be used to load JSON. New provider: Exoscale. New rTypes: SSHFP and NAPTR. The duplicate record check now happens in preview, not just in push. A new flag makes it easier to use dnscontrol in a CI/CD pipeline. Plus a lot, lot, more!
- 🆕 NEW PROVIDER: Exoscale (#390)
- ➕ Add SSHFP DNS record support. (#439)
- ➕ Add NAPTR support. (#461)
- ➕ Add --expect-no-changes flag to preview (#449)
- 👍 IGNORE() now supports glob pattern/wildcards (#463)
- 👍 require() now supports loading JSON too (#474)
- 👍 SPF_BUILDER() now supports setting the TTL (#476)
- CAA_BUILDER() makes it easier to add CAA records (#478)
- Check for duplicate records much earlier (#467)
- ➕ Add SIP/JABBER labels to underscore exception list (#453)
- require() now handles paths as relative (like nodeJS) (#443)
- 👍 ACTIVEDIRECTORY: Full support for managing NS records. (#450)
- 📄 NAMEDOTCOM: Improve error docs
- 👍 CLOUDFLARE: Added TLSA and SSHFP support (#484)
- CLOUDFLARE: Added options to set the target account for new domains (#430)
- ⚡️ CLOUDFLARE: Fix CF trying to update non-changeable TTL (#489)
- 🛠 CLOUDFLARE: SPF records should be converted to TXT Fixes #446 (#480)
- ROUTE53/GCLOUD: Add Delegation/nameserver Sets (#448)
- DIGITALOCEAN: Fix #479: Filter SOA records from Digitalocean (#485)
- 🛠 OVH: Fixed registrar ns correction (#486)
- 🛠 OVH: Fixed DKIM when having longer keys (#487) (#488)
- ⚡️ OVH: Update to use newer client library (#445)
- 👍 OVH: Certify SSHFP support (#482)
- 👍 OVH: Certify that CAA support (#477)
- 📚 OVH: Documentation: Fix OVH API First Steps link (#416)
🆕 New features:
- Warn (but don't fail) if creds.json file does not exist (#425)
- 📚 Documentation: Added brew installation method to README (#426)
- 🛠 BUGFIX: Fix SRV record handling when target is shortname (#422)
- 🔒 SECURITY: Many improvements related to LetsEncrypt (#406) (#411)
- 📦 Verbose debug logging via the ConsolePrinter and printer package. (#404)
- 💅 Codestyle: Fix formatting on parse_test JSON (#427)
- OVH: Fix caching issue (#412) (#417)
- 👍 GCLOUD: Support TXTMulti (#415)
- BIND: Warn if output directory does not exist. (#424)
- NAMEDOTCOM: Documented some error messages.
- GANDI-LIVE: Document "no such zone" error.
- ⚡️ DNSIMPLE: Update DNSimple-go to v0.20.0 and fix provider (#414)
- DNSIMPLE: Fix DNSimple SRV and MX records (#413)
- 📚 Let's Encrypt Certificate Generation! #327 Documentation
- ♻️ Refactoring of most fields in the internal representation of domains. Most code now accesses fields on records through getters and setters, which should help us maintain better consistency throughout the system. #337
- 🆕 New Provider HEXONET #373
- 🛠 Fix panic on CNAME #347
- 🛠 Fix corner case when deleting r53_alias records #394
- ➕ Added token to NewStaticCredentials #401
- 🛠 Fix bug in Route 53 ALIAS record #336
- 👌 Improve spfcache.json instructions #375
- Clarify the when to implement certain interfaces #376
- 📚 update documentation for Gandi to mention the LiveDNS provider #385
- Review Maintainers of contributed providers #400
- AWS Token options documented #403
- ➕ Add Gandi registrar to example #335
- 📄 Document SRV, CF*REDIRECT, and note where docs are needed. #346
Misc / Bugs:
- 🗄 convertzone produces deprecated NAMESERVER entries #363
- 🛠 Fix #339 prevent the ovh provider to panic on SPF and DKIM record types #340
- 🛠 Fix #341 do not erase all records labels #342
- 👍 Better validate NAMESERVER format. #350
- ⚡️ Update AD integration failures #353
- 🛠 fix names for internal transformed records #358
- 👍 Include support for exists element in SPF. #356
- ↪ Work around extra whitespace in spf records #361
- sort returned nameservers #369
- ➕ Add support for MX priorities of "" (0) #374
- 🏗 Include PTR types in SPF Builder #378
- Create directories with execute permissions so they can be opened #395
- Correctly group R53_ALIAS records during IncrementalDiff. #399
- ➕ Add NAMESERVER_TTL and associated documentation. #398
- ⚡️ update go version to 1.10 #409
Thanks to all contributors:
🚀 What an exciting release!
- Gand v5i : Added support for the v5 API (also called "LIVEDNS")
- OpenSRS: You can now use OpenSRS as a registrar!
- 👍 OctoDNS Support! DNSControl now generates OctoDNS configuration files, which means you can use OctoDNS to talk to providers that DNSControl doesn't support. Users of OctoDNS will also appreciate that
convertzonecan read your OctoDNS zone configs and output a first draft of your
♻️ Major refactoring! The RecordConfig struct has been reworked and that required code changes all over the place. Every provider was touched. Thanks to all the contributors for testing our changes (and fixing the bugs that were introduced by the refactoring). The benefit is that providers are now easier to write, cleaner to write, with less possibility for bugs. In the future support for new providers and DNS record types should be easier.
- 👉 Make IGNORE work with all providers (#313)
- 🆕 NEW REGISTRAR: OpenSRS (#275)
- 🆕 NEW PROVIDER: OctoDNS (#309)
- 🆕 NEW PROVIDER: GANDI-LIVEDNS (API v5) (#320)
🐛 Bugs fixed:
- Rewrite IGNORE to use GetLabel (#331) (Fix #312)
- 🛠 Fix CAA Support: helpers.js CAA_CRITICAL flag=128 (#318) (#319)
- DNSIMPLE: Fix DNSimple crashes on Alias: (#322)
- GCLOUD: create-zones breaks if domain starts with digit
- LINODE: Fix Linode provider (#333)
- ROUTE53: R53 crashes if traffic flow policy records exist (#330)
- ROUTE53: Fix R53_ALIAS not being registered as custom type (#310) (#311)
- ♻️ Refactor RecordConfig: Add getters/setters (#314)
- ⚡️ Update vendored packages (#326)
- Switch from fmt.Error* to errors.Error* (#317)
- 👍 Better .gitignore of integration test stuff. (#316)
- ♻️ Refactor: Prelink providers to domains (#305)
- ♻️ DNSIMPLE: dnssimple URL broke during refactor (#325)
- GCLOUD: Differentiate two modules name dns (#328)
- ROUTE53: Deleting wildcards doesn't work 19ca760
- 🛠 Plus a few documentation and minor bugfixes
👍 So many new features! New record types! Better DKIM support! Better AWS support!
- 👌 Support for the ability to IGNORE() a label if some other system is updating it (all providers)
- 👌 Support for very long DKIM strings. You no longer have to split them yourself.
- 👌 Support for the new CAA record type (GANDI, CLOUDFLARE)
- 👌 Support for TXT records with multiple strings (BIND, ROUTE53, NAMEDOTCOM)
- 👌 Support for AWS ROUTE53 "ALIAS" records.
- ➕ Add the ability to send notifications to chat rooms when updates are done.
- 📚 A lot of code cleanups and documentation fixes.
🛠 Detailed list of features and bug fixes:
- ➕ Add support for the IGNORE(label) directive (#183)
- Simple notification framework (#297)
- ➕ Add syntax for very long DKIM strings (#295)
- ➕ Add general support for TXT records with multiple strings (#293)
- 👍 BIND: Add support for TXT records with multiple strings (#289)
- ⚡️ BIND: Fix bug where SOA serial numbers were not updating
- 👍 CLOUDFLARE: Support CAA rtype (#285)
- 📄 DIGITALOCEAN: Improve example in docs (#281)
- 👍 GANDI: Add support for CAA rtype (#288)
- 👍 NAMEDOTCOM: Add support for TXT records with multiple strings (#299)
- ⬆️ NAMEDOTCOM: Upgrade to v4 api (#298)
- 👍 ROUTE53: Add support for TXT records with multiple strings (#292)
- 👍 ROUTE53: Support Route53's ALIAS record type (#239) (#301)
- ROUTE53: Document error messages from various credential issues. (#291)
📚 Internal cleanups and documentation improvements:
- 👌 Improve docs on how to add an DNS record type.
- 📚 Many other small documentation improvements
- 👕 "go vet" and "go lint" the entire system.
- ⚙ run helpers.js through Prettier
- 📄 docs: Improve comments related to capabilities. (#287)
- ⚡️ Update github.com/prasmussen/gandi-api to prepare for LiveDNS support. (#302)
🚀 Another big release! Two new providers (Linode, OVH), Gandi now supports registration functions, and my favorite new feature: the SPF optimizer!
🆕 New features:
- ⚡️ SPF Optimizer! dnscontrol's compiler now has an optimizer. Our first optimization is to improve your SPF records. See https://stackexchange.github.io/dnscontrol/spf-optimizer for info. Thanks to @captncraig for contributing this.
The language has changed slightly:
- Defining a domain twice is now considered an error.
- Labels that are FQDNs is now an error. (this is a common typo)
- Downcase DNS names (#253). DNSControl is opinionated and we've added a new optinion: All DNS labels and targets should be lowercase. Uppercase (language permitting) is now downcased silently.
- 🆕 New provider: Linode (#268)
- 🆕 New Provider: OVH DNS Provider (#143) (#175)
- 👍 GANDI: Registrar support (#274)
- NAMECHEAP: Rate limiting now only throttles when needed
- 👍 NS1: Add SRV record support (#277)
- NS1: TXT records are broken if they contain spaces (#270)
- ⚡️ ROUTE53: Update aws libraries and remove "waiter" code.
🛠 Plus many code cleanups and fixes:
- ⬆️ Upgrade to newest miekg/dns library
- 📇 Rename source files that don't match the name/nameProvider.go standard. (#261)
- 👌 Improved Namecheap documentation (#221) (#232)
- 👌 Improved documentation: Document that creds.json can include env variables, improve Namecheap docs, improve explanation of how to write a new provider, release engineering docs, and a massive overhaul to the website docs by Patrick G
Thanks to everyone for their contributions!
📚 Everything else is mostly a few bug fixes, and some much needed documentation cleanup from @geek1011.
🔀 Pull Requests Merged:
- 🆕 New Provider! #202
- 🆕 New Provider! #219
- 🛠 Website fixes (Part 1) #223
- 👌 Improved consistency of provider documentation #222
- 🛠 Fixed Cloudflare docs (#221) #224
- 🛠 Fixed Active Directory docs (#221) #225
- 👌 Improve Gandi documentation (#221) #229
- 👌 Improve Google Cloud DNS docs (#221) #230
- 👌 Improve NS1 documentation (#221) #233
- 👌 Improved BIND docs (#221) #226
- 👌 Improve softlayer documentation (#221) #235
- 👌 Improved Name.com documentation (#221) #231
- 👌 Improve DNSimple documentation (#221) #228
- 👌 Improved DigitalOcean documentation (#221) #227
- ⚡️ update README to include NS1 as a provider #240
Thanks to all contributors:
So many new features!
🚀 The biggest change in this release is the new command line flag parser. The good news is that is the subcommands and flags are much more consistent and better documented. It is also much easier to add new subcommands and flags. The bad news (BREAKING CHANGE) is that some of the old command/flag names have changed, which might break bash scripts, documented procedures, etc.. WARNING: Carefully test this release with any shell scripts (especially if you use a CI system to push DNS changes) as you upgrade from v1.5 to v2.2.
📚 The SPF flattening feature is very exciting but needs more documentation.
- 🆕 New command line flags framework (#177)
- 📄 Completely new docs homepage (#213)
- ➕ Add SPF flattening feature. (#126)
- ➕ Add TLSA record support (#165) (#203)
- 🆕 NEW PROVIDER! SoftLayer (#59)
- 🆕 NEW PROVIDER! Ns1 (#63)
- 👍 BIND: AAAA sort better (consistent and prettier)
- 👍 GANDI: Now supports SRV records (#192)
- GANDI: Now works large zones and >100 domains
Other notable changes:
- 🛠 Fix GCLOUD integration test (#214)
- ⚡️ Update vendored dependencies (#208)
- 👌 Improve docker support (fix ca-certs (#211), switch to alpine (#207))
- Pretty helpers.js (#205)
- Create a dynamic provider features matrix (#201)
- 🚀 Document the release engineering process (#189)
- 📚 And a lot of documentation fixes and updates.