Commit graph

282 commits

Author SHA1 Message Date
Tom Limoncelli
de308c0952
Lint: Fix ST1005: error strings should not be capitalized (#834) 2020-08-30 19:52:37 -04:00
Sven Luijten
ca136992f8
CLOUDFLARE: Set TTL to 1 for Cloudflare page rules (#828) 2020-08-27 16:45:58 -04:00
Tom Limoncelli
d6dd13820f
gofmt (#826) 2020-08-26 13:45:02 -04:00
Robert Blenkinsopp
74dd34443a
NEW PROVIDER: HEDNS: Hurricane Electric DNS (dns.he.net) (#822)
* Add initial dns.he.net provider support

* Update to new IncrementalDiff interface

* Fix ListZones output for `all` query on `get-zones`

* Refactor authentication code for 2FA with better error checking

* Fix integration test and refactor zone record retrieval

* Add option to use `.hedns-session` file to store sessions between runs

* Add comment on `session-file-path`

* Add integration test for TXT records longer than 255 characters

* Add additional checks for expected responses, and better 2FA error checking

* Minor documentation changes

* Revert "Add integration test for TXT records longer than 255 characters"

This reverts commit 657272db

* Add note on provider fragility due to parsing the web-interface

* Resolve go lint issues

* Clarify security warnings in documentation
2020-08-26 13:38:28 -04:00
Sven Peter
443c187dda
Cleanup: INWX fix golint issues (#825) 2020-08-26 13:06:13 -04:00
Mike Cochrane
59747a96f0
Cleanup: Bubble errors up from diff instead of panic (#799) (#817) 2020-08-20 15:49:00 -04:00
Kevin Zander
79357bb667
Add TTL to BIND SoaInfo struct (#820)
Co-authored-by: Kevin Zander <Kevin.Zander@sony.com>
2020-08-20 15:44:15 -04:00
Sump Runlet
266f0b8f33
AZURE: Fixed bug related to having >100 Zones (#816)
Resolves #792
2020-08-18 15:13:08 -04:00
Sven Peter
f88c60a8f3
New provider: INWX (#808)
* adds initial support for INWX

* adds all features to the INWX provider

* allows domain for tests in creds.json for INWX

* runs go generate to update docs for INWX

* fixes formatting with gofmt

* changes goinwx to github.com/nrdcg/goinwx v0.8.0

* simplifies inwx sandbox check

* changes inwx unknown key error to a warning

* adds models.PostProcessRecords for inwx records

* replaces strings.TrimRight with [:-1] to remove final dot for inwx

* adds a comment about the domain creds.json key for the inwx provider

* removes warning for invalid creds.json keys in the inwx provider

* adds TOTP calculation support for inwx

* adds comments to inwxProvider

* improves INWX error messages

* adds additional documentation about the TOTP support for INWX

* adds inwx documentation

* bumps goinwx to 0.8.1 to fix the inwx API
2020-08-17 08:45:44 -04:00
herver
98418cf48b
desec: Supports PTR records out of the box (#801) 2020-08-04 09:44:20 -04:00
Jan-Philipp Benecke
4211cf1dc0
Fixing PowerDNS domain creation (#786) 2020-07-30 11:09:21 -04:00
Sump Runlet
42f7568074
Fix for incomplete results from Azure DNS in fetchRecordSets (#791) 2020-07-28 13:35:56 -04:00
Blake Bourque
ea328263c7
Route53 uses a custom record type for SPF (#787)
Much like OVH Route53 when queried returns SPF records as their own
type. This small change transcribes the SPF type to TXT

See: https://github.com/StackExchange/dnscontrol/issues/446
See: 644ba70e87/providers/ovh/ovhProvider.go (L169-L172)
2020-07-17 13:02:42 -04:00
Max Ratmeyer
644ba70e87
Fixed MX records on NS1 (#783) 2020-07-14 08:33:21 -04:00
Max Ratmeyer
f12cd58d1f
NS1: Revert enabling TXTMulti (#782)
Co-authored-by: Max Ratmeyer <maxratmeyer@Maxs-MacBook-Pro.local>
2020-07-10 07:08:03 -04:00
Tom Limoncelli
2c9301387a aRemove debug statement 2020-07-09 19:34:35 -04:00
Max Ratmeyer
f7d39b578a
NS1: Added support for ALIAS, PTR, and TXTMuli (#776) 2020-07-06 20:29:25 -04:00
Tom Limoncelli
541bb805da
linting (#777) 2020-07-06 20:18:24 -04:00
Tom Limoncelli
367a14ab44
Sort updates (cosmetic) (#772)
* Sort updates (cosmetic)

* comments

* More comments
2020-07-01 05:55:20 -04:00
Matthew Huxtable
ff8ce26cee
Provider support for DS records as children only (#765)
This functionality is required by the GCLOUD provider, which supports
recordsets of type DS but only for child records of the zone, to enable
further delegation. It does not support them at the apex of the zone (@)
because Google Cloud DNS is not itself a registrar which needs to model
this information.

A related change (14ff68b151, #760) was
previously introduced to enable DS support in Google, which broke
integration tests with this provider.

To cleanly support this, we introduce a new provider capability
CanUseDSForChildren and appropriate integration tests. Further, it is no
longer possible to verify a provider has the proper capabilities for a
zone simply by existence of particular records; we adapt the capability
checks to enable inspection of the individual recordsets where this is
required.

Closes #762
2020-06-18 17:24:13 -04:00
Tom Limoncelli
676d98fc4a
Linting (#767)
What could possibly go wrong?
2020-06-18 09:37:57 -04:00
Tom Limoncelli
12e9d2bdd5
Update dependencies (#763)
* gcloud natively supports records of type DS

* doc fix: CanUseDs -> CanUseDS capitalisation fix

* Update github.com/stretchr/testify golang.org/x/tools google.golang.org/api gopkg.in/yaml.v3

Co-authored-by: Matthew Huxtable <matthew.huxtable@sparx.co.uk>
2020-06-09 14:00:20 -04:00
Tom Limoncelli
4e2dbd879d
Revert "Add support to GCLOUD provider for DS records (#760)" (#761)
This reverts commit 14ff68b151.
2020-06-09 13:31:09 -04:00
Matthew Huxtable
14ff68b151
Add support to GCLOUD provider for DS records (#760)
* gcloud natively supports records of type DS
* doc fix: CanUseDs -> CanUseDS capitalisation fix
2020-06-09 12:12:04 -04:00
Robert Koch
f91696803c Updated integration tests 2020-05-30 11:06:13 -04:00
Robert Koch
9652ef11a7 rebased and regenerated 2020-05-30 11:06:13 -04:00
Robert Koch
2e8589e4ce Added DS for cloudflare provider with tests 2020-05-30 11:06:13 -04:00
Tom Limoncelli
87a5c4b339
New RTYPE: DS records now supported! (#753)
Thanks to @haraldkoch for starting this, @McNetic for picking it up.

* Added DS record type

* Added DS for cloudflare provider with tests

* Removed DS validation, fixed parse test

* Added generated files

* Added dnsimple ds record

* Regenerated documentation matrix

* rebased and regenerated

* Updated integration tests

* Rebase and regenerate

* Enable DS record type for provider desec

* Added DS record type

* Added DS for cloudflare provider with tests

* Removed DS validation, fixed parse test

* Added generated files

* Added dnsimple ds record

* Regenerated documentation matrix

* rebased and regenerated

* Updated integration tests

* Rebase and regenerate

* Enable DS record type for provider desec

* Rebase and fixes

Co-authored-by: Robert Koch <robert@kochie.io>
Co-authored-by: Nicolai Ehemann <nicolai.ehemann@enerko-informatik.de>
2020-05-30 10:40:21 -04:00
Jan-Philipp Benecke
ffd4e46dda
New DNS provider PowerDNS (#748)
* Added PowerDNS as dns provider

* Remove unnecessary comments

* Some tests

* Implemented feedback
2020-05-30 09:54:07 -04:00
Amelia Aronsohn
b2b0ed4154
Update DNSimple Provider to api client 0.62 (#739)
* Update DNSimple-go to 0.61

This adds support for contexts, exports all return values, Adds ZoneRecordAttributes to fix support for blank record names.

* Add UserAgent to client

* Update Integration test for DNSimple

We now support Empty TXT, however we do not support Null MX yet.

* Bump to dnsimple-go 0.62 & use dnsimple.String()
2020-05-13 16:37:49 -04:00
Grégoire Henry
8dd66ec605
New provider: AXFR+DDNS (#259) (#729)
* NEW PROVIDER: AXFR+DDNS (#259)

* AXFRDDNS: split GetZoneRecords in two functions

* AXFRDDNS: improve code documentation

* AXFRDDNS: line-wrap documentation

* AXFRDDNS: add simple `named.conf` as example

* AXFRDDNS: improve error messages

* AXFRDDNS: improve doc.

* AXFRDDNS: update `OWNERS`

* Linting and other cosmetic changes

* AXFRDDNS: fix grammar

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2020-05-08 10:55:51 -04:00
Bernhard Fröhlich
ec27d2c76a
Fix octodns: constant 4294967295 overflows int (Issue #736) (#738) 2020-05-07 18:42:54 -04:00
D3luxee
207f050911
NEW PROVIDER: deSEC (#725)
* Add initial deSEC support

* Handle the api rate limiting

* Fix deleteRR and do some code cleanup

* improve rate limiting and record deletion

* Add documentation for deSEC provider

* README.md update list of supported DNS providers

* deSEC supports SSHFP records

* dynamic minimum_ttl and hint for DNSSec on domain creation

* merge all changes into one single bulk api request

* Fix: actually set the TTL to min_ttl if necessary

* use a constant for apiBase URL

* Fix code comments

* Use PUT instead of PATCH for upsertRR method

* use ' instead of " for java script examples
2020-04-28 14:40:58 -04:00
Tom Limoncelli
5416c16fa1
Fixes #726 (#727) 2020-04-27 08:49:49 -04:00
Kordian Bruck
02e6a49bb8
NEW PROVIDER: NETCUP (DNS) (#718)
* Add support for netcup DNS api.
* Add documentation page.
* Update reference to new version path.
* Add OWNERS entry for netcup.
* Add credentials for integration test. Netcup does not support PTRs. Fix parsing/formating of SRV records.
* Skip integration tests that are not supported.
* Use single quotes in JS code.
2020-04-17 13:58:44 -04:00
Tom Limoncelli
24b7d0641e Update github.com/StackExchange/dnscontrol/v2 2020-04-14 16:49:03 -04:00
Tom Limoncelli
d14f00ce06
go get -u github.com/tiramiseb/go-gandi (#711) 2020-03-27 12:09:56 -04:00
Tom Limoncelli
45f36ffd12
Fix #491 for BIND, HEXONET, LINODE, NAMECHEAP, NS1, OPENSRS, SOFTLAYER, VULTR (#710)
* BIND: issues/491

* HEXONET: Fixe #491

* LINODE: Fix #491

* NAMECHEAP: Fix #491

* NS1: Fix #491

* OPENSRS: Fix #491

* SOFTLAYER: Fix #491

* VULTR: Fix #491
2020-03-26 09:59:59 -04:00
PJ Eby
a3ef53574c
Support RFC 7505 "null MX" (#702) (#703)
* Fix #702: Spurious null MX changes on CloudFlare

* Test roundtripping null MX on Cloudflare

* Use an if instead of TrimSuffix

* Add other providers that support RFC 7505

* Suppress test for non-compliant providers
2020-03-25 09:53:28 -04:00
Tom Limoncelli
1b5935d1af
Release 3.0.0 Candidate (#699)
Final changes before V3.0.0 release

* Remove old Gandi.  Fixes #575
* Many cleanups
* go mod tidy && go mod vendor

* integration_test.go: Output subtest name

* Cleanups

* integration_test.go: Description should include sub-test name
* Add a whitespace test to js/parse_tests/017-txt.js

* Cloudflare strips whitespace from end of TXT

* Fixes https://github.com/StackExchange/dnscontrol/issues/700

* Whitespace at end of TXT records

Name.com strips the whitespace from the end of a TXT record. There's
nothing we can do other than file a bug.

* Fixes https://github.com/StackExchange/dnscontrol/issues/701
2020-03-22 13:38:37 -04:00
Tom Limoncelli
14e48b9b07
linting (#693)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2020-03-10 16:53:17 -04:00
Tom Limoncelli
24484f1e0c
move providers/diff to pkg/diff like we should have 2 years ago (#692)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2020-03-10 16:35:43 -04:00
Tom Limoncelli
67e78f7e15
refactor into groups (#684)
* Refactor tests into "groups", each with its own filter (not/only/requires) to select which providers are appropriate.
* Test driver code is now a lot more simple and clear.
* Add support for not(), only(), and requires() as a way to select/reject providers for a test.
* Add docs explaining how to add tests
* Logging messages are much cleaner now, especially when tests are skipped.
* -start and -end now refer to test groups, not individual tests.  Log messages list the group numbers clearly.
* Add stringer for Capabilities
* Change the order of the tests so that simple tests are first
* Removed knownFailures from providers.json
* fmtjson providers.json

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2020-03-10 10:13:20 -04:00
Tom Limoncelli
8d9ca83996
GANDI_V5: Recognize that CanUseTXTMulti is valid (#680) 2020-03-05 16:23:04 -05:00
Tom Limoncelli
394b6e605f
ClouDNS: Get zone records implemented (#681)
* ClouDNS: #628 get-zones implemented

* ClouDNS: #491 convert to models.ToNameservers
2020-03-05 16:21:42 -05:00
Brice Figureau
947cc043df
(#491) convert the OVH provider to models.ToNameservers (#679)
As requested in #491, as OVH doesn't return dot-suffixed NS, we can
use `models.ToNameservers` in this provider.
2020-03-03 16:42:47 -05:00
Vatsalya Goel
884118f6dd
AZURE_DNS: Add support for Alias: AZURE_ALIAS() (#675)
* Add support for Alias in Azure

* Actioned comments and added parse tests

* GetTargetDebug

* Go formatting
2020-03-02 11:25:42 -05:00
Tom Limoncelli
3f68215841
GetNameservers is inconsistent across providers (#655)
* Warn if GetNameservers returns FQDN+dot strings
* Simplify logic that covers for the inconsistency
* Fix azuredns, gcloud, bind, route53
* Clean up cloudflare, digitalocean, dnsimple, gandi_v5, namedotcom
2020-03-01 10:33:24 -05:00
Phil Pennock
ecac8f1c10
DNSIMPLE: support NAPTR (#671)
Fix the model to strip quotes from all the string parts; BIND
integration tests still pass.  DNSIMPLE integration tests pass.
2020-03-01 09:36:55 -05:00
Phil Pennock
95dcce8b6f
GANDI_V5: Fix/support ALIAS, SSHFP, TLSA (#673) 2020-03-01 09:36:12 -05:00