* Implement AutoDNS provider to manage existing zones
* Moved AuditRecords() in to separate file to ease automatic updating
* S1011 - Use a single append to concatenate two slices
* Set list of available record types as returned by the system
* Fixed style, clarify code and add some extra comments
* Documented simple configuration and usage example of AutoDNS
* Convert MX and SRV record properly from string to actual structs and back
* Add support for integration tests of AutoDNS
* Return error message from update request instead of invoking panic()
* Skip AUTODNS in test for RFC 7505 (null MX)
* Update providers/autodns/autoDnsProvider.go
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
* ns1: enable autoDNSSEC capability
NS1's API has support for enabling or disabling DNSSEC on zones under
DNSSEC-enabled accounts.
This commit enables support for detecting a zone's DNSSEC state and,
given the autoDNSSEC setting, pushing the right domain corrections
to our corrections stack.
Fixes #1444
* ns1: better comments
* ns1: Handle a forgotten error
* ns1: style: spacing between functions
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
These entries are autoconfigured by NS1 when a zone is enabled for DNSSEC and can't be
modified via the API, producing a 405 API error on modification attempts.
While unmodifiable, these records are returned by the API, so we have to ignore them.
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
* Add support for default nameservers
Uses provider metadata with default_ns key.
Fixes #1401.
* Fix formatting
* Add documentation on custom nameservers
* Rework hosting.de documentation
Separate usage with hosting.de and usage with compatible providers.
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
* Replace Jekyll highlight tags with fenced code blocks
Replace Jekyll highlight tags with fenced code blocks.
Canonicalize javascript to js.
Correct highlighting languages.
Add highlighting to code blocks.
Remove leading $ from bash blocks.
Remove empty lines at start and end of code blocks.
Stripped trailing whitespace.
* Fix language of code highlighting
* ns1: add support for TLSA and NAPTR
Enable support for TLSA and NAPTR commands in NS1.
* ns1: use strconv.Itoa instead of sprintf
... with an intermediate casting from uint16 to int, which,
given it's an one-way conversion, it's safe enough.
* NS1: fix a couple linting issues
* ns1: fix multivalue CAA handling
Introducing better multivalue support for the CAA entry broke CAA support
for ns1, failing the relevant test.
Improve the code touching CAA in either side, so that it can handle
multivalue, quoted, CAA entries.
* ns1: use native CAA record parser for CAA
instead of using PopulateFromString.
* ns1: remove panics
Remove panics and bubble-up errors.
* ns1: in case of errors, return nil data
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
* Fix #1338 do not error if domain is not registered
OVH now allows to create zone without registering a domain. The ovh provider
was getting the NS from the registrar and not the zone, which doesn't work
in a scenario where only the zone exists at ovh.
This changeset makes the ovh provider fetch the NS from the registrar and if
there's none from the zone.
* OVH now supports all dual providers scenario
This change updates the OVH provider documentation accordingly.
Fixes broken integration tests and spamming output about chaning NS records TTL from fixed one (86400) to dnscontrol default one (300).
This issue was introduced in #1167.
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
* Switch to aws-sdk-go-v2
AWS has released v2 of their SDK for Go.
See: https://aws.github.io/aws-sdk-go-v2/
One big advantage of this is no longer needing to export the
`AWS_SDK_LOAD_CONFIG=1` env var when using named profiles.
* Update integration test README
* Reenable pager601 and pager1201 integration tests for AWS Route53
* Implement intelligent batching for Route53 record changes
The AWS Route53 API for batch record changes limits the request size to
the smaller of:
- 1000 records.
- 32000 characters total for record values.
Also UPSERTs count as double (a DELETE and then a CREATE).
This commit changes how the record ChangeBatches are created to
respect these limits.
* Remove old comments
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>