Commit graph

302 commits

Author SHA1 Message Date
Michael Russell
237c573c2a
Make it possible to disable the raw SPF optimizer debug record (#795)
Open to other configuration opens for how best to make this optional. Or
potentially making this an opt in configuration item which would be a
breaking change.

The main reason that someone would want to disable this is if their raw
SPF record goes over the 255 characters. This is potentially another
place that could get some multi string support. But as it is only used
for debugging purposes it seems like there should be a way to outright
disable it too.
2020-07-31 10:40:22 -04:00
Tom Limoncelli
530bf10bfa
NEW: spf flattener can make first record extra short (#781)
* NEW: spf flattener can make first record extra short

* fixup!
2020-07-09 12:52:49 -04:00
Tom Limoncelli
0a36cb7fcc Fix formatting bug. 2020-06-27 15:18:37 -04:00
Ben
44bd4206e8
fix get-zones code block indentation (#769) 2020-06-19 11:33:35 -04:00
Ben
84fd4ae33e
get-zone documentation and help fixes (#766) 2020-06-18 09:37:09 -04:00
Ben
5e441a4a98
get-certs.md: correct flag names (#758)
* get-certs.md: correct flag names

* Update get-certs.md

added all flags per current `--help` output; rearranged ordering to match `--help`; removed the deprecated `--verbose`
2020-06-03 11:50:07 -04:00
Tom Limoncelli
5723f021fd Remove/update obsolete files 2020-05-30 11:08:30 -04:00
Nicolai Ehemann
4713bbad7d Rebase and regenerate 2020-05-30 11:06:13 -04:00
Robert Koch
9652ef11a7 rebased and regenerated 2020-05-30 11:06:13 -04:00
Robert Koch
367a53d34f Regenerated documentation matrix 2020-05-30 11:06:13 -04:00
Robert Koch
762aaf0ce1 Added generated files 2020-05-30 11:06:13 -04:00
Tom Limoncelli
c0354a585d DS: More cleanups 2020-05-30 11:06:12 -04:00
Tom Limoncelli
a89ab89ab6
Fix the merge mess I made with the DS merge (#754)
* DS: More cleanups

* Added DS for cloudflare provider with tests

* Merge

* Added generated files

* Regenerated documentation matrix

* rebased and regenerated

* Updated integration tests

* Rebase and regenerate

* More cleanups

Co-authored-by: Robert Koch <robert@kochie.io>
Co-authored-by: Nicolai Ehemann <nicolai.ehemann@enerko-informatik.de>
2020-05-30 11:05:54 -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
Jan-Philipp Benecke
d3a90f0a2d
Added slack notifications (#749)
* Added slack notification

* Added slack notification to doc.

* Send notifications as single message & updated doc. example

* Remove not needed variable
2020-05-29 09:26:48 -04:00
Tom Limoncelli
524f346943
Document IP() is IPv4 only (#744)
Fixes https://github.com/StackExchange/dnscontrol/issues/737
2020-05-22 10:22:24 -04:00
Tom Limoncelli
6348b1d995
get-zones should comment out NAMESERVER() (#743)
* get-zones should comment out NAMESERVER()

* Edits
2020-05-22 10:20:10 -04:00
Tom Limoncelli
d52c98782c Adjust docs 2020-05-22 09:06:32 -04:00
Tom Limoncelli
d8a153c01f
Clarify dev docs (#734)
* Clarify dev docs

* fixup!
2020-05-08 10:56:58 -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
D3luxee
3989be8a3b
Add deSEC to OWNERS, provider-list.md and writing-providers.md (#733) 2020-05-03 11:43:54 -04:00
Tom Limoncelli
3326ba8221 Add tips for new provider writers 2020-05-02 10:48:41 -04:00
Tom Limoncelli
dfdfa46b28 go generate 2020-05-01 08:56:23 -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
22b9afee3b
get-zones: generate R53_ALIAS right (#721)
* get-zones: generate R53_ALIAS right
* R53_ALIAS.md: Examples should use ' not "
* Handle TTLs
2020-04-20 11:48:34 -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
c7151d66d0 release-engineering.md: update 2020-03-22 15:41:21 -04:00
Tom Limoncelli
b1e0fe95d5 release-engineering.md: Update based on v3.0.0 RE 2020-03-22 15:36:35 -04:00
Tom Limoncelli
dea898dd41 go generate 2020-03-22 15:20:22 -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
Ben
5db21dcdec
CLOUDFLARE: Correct redirect function documentation (#696)
* expand on how Page Rules are handled

* Correct Cloudflare redirect function documentation

* add warning per discussion on #696
2020-03-16 11:25:20 -04:00
Tom Limoncelli
01b6669dfa
Documentation: Clarify require() name and usage (#690)
* Clarify require() doc

* fixup!

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2020-03-12 12:41:00 -04:00
Tom Limoncelli
e6390c67d7 fix dos/unix line ending 2020-03-10 11:46:09 -04:00
Tom Limoncelli
4edf360854
get-zones output should work as input into preview (#688)
* Add tests for get-zones
* fix CAA, SSHFP, TLSA and other bugs
* New format for get-zones: "djs" which is js but uses "disco commas"
* Print diffs using github.com/andreyvit/diff

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2020-03-10 11:32:47 -04:00
Tom Limoncelli
58569c1253
Rename get-zones formats as pretty/dsl/tsv to zone/js/tsv (#687)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2020-03-09 11:42:48 -04: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
a3f103e97f go generate 2020-03-01 10:37:28 -05:00
Phil Pennock
95dcce8b6f
GANDI_V5: Fix/support ALIAS, SSHFP, TLSA (#673) 2020-03-01 09:36:12 -05:00
Tom Limoncelli
a7e0ec258d
Add check-creds subcommand (#665) 2020-02-29 09:07:05 -05:00
Patrick Gaskin
6c316993ec
VULTR: Implemented get-zones (#628) (#670) 2020-02-29 09:04:00 -05:00
Tom Limoncelli
b7b0b20798
Fix broken tests (#672) 2020-02-29 09:01:51 -05:00
Tom Limoncelli
938abd7b76 Fix headings in docs/get-zones.md 2020-02-27 16:29:16 -05:00
Tom Limoncelli
7789b4dbdc
get-zones: Implement --ttl flag for pretty and dsl (#654) 2020-02-25 07:23:40 -05:00
Tom Limoncelli
8b8f193afb
Update privider-list.md (#653)
* AZUREDNS is now an officially supported provider
* Update missing providers (https://github.com/StackExchange/dnscontrol/issues/632)

Fixes https://github.com/StackExchange/dnscontrol/issues/632
2020-02-25 07:23:04 -05:00
Phil Pennock
4fed6534c7
Tests: ensure provider capabilities are checked (#650)
* Tests: ensure provider capabilities are checked

Adds test: `TestCapabilitiesAreFiltered`

We have a number of records and pseudo-records which in theory can only
be used with a given provider if that provider indicates support.  In
practice, we've been missing the checks for that support and have been
passing the records down anyway.  The advice comment in the
providers/capabilities.go file to edit `checkProviderCapabilities()` has
not been reliably followed.

We need an internal self-consistency test.  The constants are not
directly exported or enumerable based solely on the package interfaces
at run-time, but with source access for a test suite, we can use the
`go/ast` and related interfaces to examine the code, extract all the
constants from a given package, figure out which ones we want to be
handled, and then insist that they're handled.

Before my recent work, we only checked:

    ALIAS PTR SRV CAA TLSA

After this commit, we check:

    ALIAS AUTODNSSEC CAA NAPTR PTR R53_ALIAS SSHFP SRV TLSA

I've added `AUTODNSSEC` as a new feature; `SSHFP` and `PTR` were caught
in other recent commits from me; implementing this test caused me to
have to add `NAPTR` and `R53_ALIAS`.  I whitelist `CanUseTXTMulti` as a
special-case.

This should prevent regressions.  We will probably want to post publicly
to warn people that if they're using SSHFP/PTR/NAPTR/R53_ALIAS then they
should check the feature matrix and if they don't see their provider
listed, to report is as "hey that actually works" so we can update the
provider flags.  Bonus: our feature matrix will suddenly be more
accurate.

* Add comments/docs for capabilities authors

* fixup!

* fixup!
2020-02-25 07:22:32 -05:00
Tom Limoncelli
772ca4e7dd
Linting (#647)
* linting
* Fix adding-new-rtypes.md to include validation
* BIND: improve docs wrt SOA records, get-zones
2020-02-23 14:47:14 -05:00
Tom Limoncelli
9812ecd9ff
BIND: Improve SOA serial number handling (#651)
* github.com/miekg/dns
* Greatly simplify the logic for handling serial numbers. Related code was all over the place. Now it is abstracted into one testable method makeSoa. This simplifies code in many other places.
* Update docs/_providers/bind.md: Edit old text. Add SOA description.
* SOA records are now treated like any other record internally. You still can't specify them in dnsconfig.js, but that's by design.
* The URL for issue 491 was wrong in many places
* BIND: Clarify GENERATE_ZONEFILE message
2020-02-23 13:58:49 -05:00
Phil Pennock
3c41a39252
BIND: Implement AutoDNSSEC (#648)
There's a philosophy issue here around what is the Bind output meant to
do.  Since AFAIK we're not integrating into Bind's catalog zones or the
like, we're just targeting the zonefiles, we're not in a position to do
_anything_ relating to registrar options such as setting up DS glue.

So at one level, enabling AutoDNSSEC for Bind is a lie. But without
this, folks can't target a Bind zone as a secondary provider for their
domain, to get debug dumps of the zone output, because the checks for
"Can" block it.  So I think this commit achieves a happy compromise: we
write a comment into the Bind zonefile, indicating that DNSSEC was
requested.

Actually: we add support for arbitrary zone comments to be written into
a zonefile via a slightly ugly "can be `nil`" parameter.  We then write
in a generation timestamp comment, and if AutoDNSSEC was requested we
then write that in too.
2020-02-22 13:27:24 -05:00