* Added basic structure for domain name shop
* Finished proof of concept for domainnameshop
* Fixed handeling of IDNA for CNAME records
* Updated documentation notes
* Added docs
* Ran linter and vet
* Removed proxy config used for debugging
* Ran go generate
* Fixed issue with TTLs being restricted to a multiple of 60
* Ran tests, vet and linting and fixed flaws
* Fixed typo in docs
* Improved code based on feedback
* Fixed issues with TXT records not working properly
* Refactored according to new file layout proposed
* Updated documentation matrix
* Suggestions and corrections
* Corrected according to suggestions
Co-authored-by: Simen Bai <git@simenbai.no>
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
* Fix typo and add sandbox information
* Use SetTargetTXT in GetZoneRecords
This fixes the behavior documented in #1622
Also apply cleanup to GetZoneRecords
* Remove SetTargetTXT, does not work in all tests
* Set The most correct TXT handling
* Well, There's your problem
* Add an audit and test for unpaired quotes
* Add some commentary
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
DNSimple does not support spaces in the records at this time. I have opened an internal ticket on the issue.
Fixes test breakage caused in #1377
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
Fallback to using Application Default Credentials if no
private_key is available in the creds.json-file.
This allows usage with various short lived credentials, for example
GCE-instances, gcloud auth application-default login, OIDC Workload
Identity etc
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
As of 2022-06-23, the Hetzner DNS API is still responding with a 422
when a CAA record contains a quoted value with spaces.
```
format: number of fields does not match record type, expecting 3
```
Their support acknowledged my bug report a few weeks back and suggested
the removal of spaces to get past the limitation.
Spaces in CAA records are not common. Let's just skip the test and put
a notice in the docs.
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
* Move the registrar features to a separate file
* Prepare the testing framework
* Roughed out functions
* Fix up structs
* WIP!
* First tests pass
* wip!
* Flesh out remaining rTypes, get nameservers, etc
* Fix TXT records
* Clean up code
* More cleanups. Fix CAA/SRV
* Linting
* Cleanups/linting
* Fix CAA [more] and more cleanups
* CSC does not like very long txt records
* Use timer only when interactive
* Disable CAA for now
* Update docs
* Remove debug printf
* add go-isatty
* cleanups
* 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>
* 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
* 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.
* 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>
* Initial support for easyname as registrar
* DRY
Moving a bunch of the HTTP stuff into a single function for cleanliness and ease of future maintianence.
* Seperate API and Provider logic
* Updating error messages and sorting found nameservers
* Adding provider info to OWNERS and README
This also moves a few of the not-actually-DNS Providers to their own section.
* Update README.md
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
There is no API call I've found that requires it, only the accountID. Also, we now set the cfClient.AccountID similar to b55278140f (h/t @fdcastel) and no longer store duplicate information in the cfClient and api objects.
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
* Add PrivateKey authentication for TransIP
* Remove space before comma
* Re-enable CodeQL for Javascript (#1209)
* Create codeql-config.yml
* Update codeql-analysis.yml
Add config to exclude certain files
* deSEC implement pagination (#1208)
* deSEC: Implement pagination for domain list #1177
* deSEC: add debug logging for pagination
* deSEC: simplify get/post methods by allowing url / api endpoints as target
* deSEC: implement pagination for getRecords function
* deSEC: fix linter warnings
* deSEC: replace domainIndexInitalized variable with checking if the domainIndex == nil
* deSEC: add mutex for domainIndex
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
Co-authored-by: Vincent Hagen <vinnie@script4web.nl>
Co-authored-by: Jauder Ho <jauderho@users.noreply.github.com>
Co-authored-by: Georg <georg@neuland.tech>