Commit graph

525 commits

Author SHA1 Message Date
Tom Limoncelli
a81a2e36ce
Note bug #886 (#887)
* Note bug #886
2020-10-07 14:30:10 -04:00
Tom Limoncelli
b275286dae
Add D_EXTEND (#885) (thanks to @ad8-bdl!)
* fix get-zones code block indentation

* extend D_EXTEND to handle subdomains

* fix targets: make absolute incl. subdomain where necessary

* clarify subdomain target test (not IP && not fqdn)

* Add parse_tests for D and D_EXTEND

* _getDomainObject: examine all domains

* human readable form

* consistent test IP addresses

* Improve docs and formatting

* propagate subdomain to canonicalisation

* en-US spelling

* rm extraneous console.log

* ignore subdomain for CF_REDIRECT

* clarify D_EXTEND doc re. CF_REDIRECT

* rm extraneous linebreak

* _getDomainObject: examine all domains

* human readable form

* consistent test IP addresses

* propagate subdomain to canonicalisation

* en-US spelling

* rm extraneous console.log

* ignore subdomain for CF_REDIRECT

* clarify D_EXTEND doc re. CF_REDIRECT

* rm extraneous linebreak

* GANDI_V5: Use github.com/go-gandi/go-gandi, not github.com/tiramiseb/go-gandi (#883)

* DOCUMENTATION: Fix error in CNAME.md (#877)

The current example `CNAME("def", "test.subdomain"), // def.example.com -> test.subdomain.example.com` is invalid (correctly raises a validation error, "ERROR: in CNAME def.example.com: target (test.subdomain) must end with a (.)")

* typos, fmt; example syntax fixes and real output

* formatting; re-add lost comment

* RecordConfig subdomain should be nullable

* providers/cscglobal/api.go: Fix fmt string

* More tests and docs

* go generate

Co-authored-by: Ben L <47653825+ad8-bdl@users.noreply.github.com>
2020-10-07 14:27:33 -04:00
Ben
7d2016a970
DOCUMENTATION: Fix error in CNAME.md (#877)
The current example `CNAME("def", "test.subdomain"), // def.example.com -> test.subdomain.example.com` is invalid (correctly raises a validation error, "ERROR: in CNAME def.example.com: target (test.subdomain) must end with a (.)")
2020-10-02 14:15:35 -04:00
Tom Limoncelli
f082ad36c8
AUTODNSSEC -> AUTODNSSEC_ON (#863)
* AUTODNSSEC -> AUTODNSSEC_ON
* Validate AutoDNSSEC values
* AUTODNSSEC now generates a warning and does nothing.
2020-09-27 16:37:42 -04:00
Tom Limoncelli
194aa09158
Clean up from Tom's git mistakes (#869)
* Better error messages

* go generate
2020-09-21 09:47:02 -04:00
Patrik Kernstock
9ad742fc22
INWX: Support creating domains (#855)
* Support create-domains for INWX

* Use own function to decide which NS to use when sandbox

* Updated docs via go generate

* Move domainIndex into inwxAPI struct

* Changed getDefaultNameservers() IF

* Make Tom happy

* Updated docs via go generate
2020-09-21 09:27:50 -04:00
Tom Limoncelli
ea8068996e
DOCS: Better document nameserver scenarios (#868) 2020-09-21 09:26:24 -04:00
Sven Peter
c44d9a43f5
INWX: add additional documentation about 2FA (#865) 2020-09-20 09:53:58 -04:00
Mike Cochrane
9818eb1fca
New Registrar: CSC Global (#827)
* CSC Global Registrar provider

* better error handling. Coding standards.

* Just return the error
2020-09-07 12:00:21 -04:00
Tom Limoncelli
75fcc4751e
DNSOVERHTTPS: Add DNSOVERHTTPS to docs (#844) 2020-09-04 11:51:21 -04:00
Mike Cochrane
d6f3f401a5
NEW PROVIDER: DOH: Read-only Registrar that validates NS records (#840) 2020-09-04 10:22:41 -04:00
Tom Limoncelli
faac40cbf4
Docs: Add a page about macros and loops (#832) 2020-09-04 10:17:38 -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
Tom Limoncelli
614a1958c4
Cleanup: user geek1011 is now pgaskin (#823) 2020-08-24 17:27:53 -04:00
Tom Limoncelli
44e382e117 Revert "Cleanup: user geek1011 is now pgaskin"
This reverts commit 84f2daea25.
2020-08-24 11:53:03 -04:00
Tom Limoncelli
84f2daea25 Cleanup: user geek1011 is now pgaskin 2020-08-24 11:50:30 -04:00
Patrik Kernstock
576c2bd582
New feature: require_glob() (similar to require() but supports globs) (#804)
* Initial implementation of findFiles/globe/glob

* Fixed path, some small improvements

* filepath.Dir() calls Clean() automatically anyway

* Relative path support (like require()), renamed func

* Check file ext prefix, further comments, var renaming

* Updated static.go after merge

* Added doc for glob()

* Tiny adjustment of description of glob()

* Updated docs for possible pattern

* Reworked glob, added public-facing require_glob()

* Updated docs with examples

* Updated static.go

* go generate
2020-08-19 14:00:40 -04:00
Mike Cochrane
960dc66bd2
New feature: IGNORE_TARGET. Rename INGORE to IGNORE_NAME (#806) 2020-08-18 11:14:34 -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
Mike Cochrane
889ed75668
Notifications: Add support for Microsoft Teams (#812) 2020-08-14 12:23:54 -04:00
Tom Limoncelli
a9f2ab84c8 go generate 2020-08-04 09:53:48 -04:00
Patrik Kernstock
d2d210a5af
New features: DU() and getConfiguredDomains() to assist modifying domains (#800)
* Added DU() and getConfiguredDomains()

* Added docs for both new functions

* Added a space between option and its value

* Renamed "DU" to "D_EXTEND", adjusted docs

* Fixed: Changed old DU() calls to D_EXTEND()
2020-08-04 09:43:02 -04:00
Michael Russell
f21c8fc400
SPF Optimizer: Enable the use of TXTMulti records to support longer SPF records (#794)
* Add multiple string support to SPF optimizer

Notes:

* This implements [RFC 4408][rfc] for the SPF optimizer. Allowing for
more SPF records to fit within the 10 lookups by using multiple strings.
* By default the max size of the TXT remains at 255. Meaning users will
still only get a single 255 length string unless they modify `txtMaxSize`
and opt into this feature.
* The general recommendation when using multiple strings for TXT records
is to keep the size within a single UDP packet. It seems like the
maximum size for this depends on a bunch of factors that are sometimes
outside of your control. A similar tool has a [formula for estimating the
maximum allowed size][formula]. However I felt giving a user
configurable size would fit with the current configuration style that
dnscontrol has. Similar to how dnscontrol recommends only flattening a
record if absolutely needed, I can see this length being increased by
only enough to get you within 10 lookups.

[rfc]: https://tools.ietf.org/html/rfc4408#section-3.1.3
[formula]: https://github.com/oasys/mkspf/blob/master/Overhead.md

* Add a nice comment for the Chunks function
2020-07-31 13:28:13 -04:00
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
Phil Pennock
9b239f41a3
Add AUTODNSSEC, implement for DNSimple (#640)
* Add AUTODNSSEC, implement for DNSimple

There are two models for DNSSEC in DNS management: either dnscontrol
manages all the DNSSEC records and has to be invoked regularly for
re-signing, or the provider manages DNSSEC automatically and dnscontrol
is not involved beyond saying "yeah, do that".

This implements the latter, as a model, and for one provider.

Potentially we could tune/configure options for DNSSEC such as
algorithm, but DNSimple don't expose that API so I haven't implemented
it.

This minimal model should be something which maps into other providers
cleanly.

* Fix missing CanAutoDNSSEC on provider

* Validation fix for master broken

This is broken in master and causing Travis in my branch to fail.  The
validation tool runs with `gofmt -s` to require "simplify", and so
rejects an ignored second bound variable to range iteration.

* Correct wire in the AUTODNSSEC validation step
2020-02-22 07:09:31 -05:00
Tom Limoncelli
3c507d6b77
get-zones: new output format nameonly; remove tsvfqdn (#644)
* Add nameonly; remove tsvfqdn

* document tsv fields
2020-02-21 14:59:47 -05:00
Phil Pennock
d221471e38
dnsimple: bug-fix SSHFP, add multi TXT support (#639)
* dnsimple: bug-fix SSHFP, add multi TXT support

The default logic for encoding SSHFP records was dropping the key and
hash algorithms and just posting the content, the `Can` check didn't
stop attempts to use SSHFP.  So, implement SSHFP support.

DNSimple support multiple DNS strings in a TXT record, by representing
the payload as quoted strings already.  This doesn't appear to be
documented, but it does actually work.

* Update docs support matrix too

* fix go fmt missing upstream

Tests failing on my branch for something broken upstream

* fix typo in error message
2020-02-21 13:23:30 -05:00
Amelia Aronsohn
b45c6b6b6c
DNSimple: Implement GetZones and ListZones (#637)
* Update to latest dnsimple-go

* Implement GetZoneRecords

* Better naming

* Return NS records in GetZoneRecords

* Be clearer with the comment.

As an employee I confirm this is exactly how this works. No guessing needed.

* Respect that Puncycode encoding can blow up

* Implement ListZones and the ZoneLister Interface

* Categorize DNSIMPLE

* Update docs with go generate

* vendor modules

* Don't store intermediary Zone data
2020-02-20 14:52:19 -05:00
Juho Teperi
ca99517ced
Do get zones (#635)
* Implement GetZoneRecords for Digitalocean provider
* Clean fixme comment from digitalocean provider
2020-02-19 13:11:49 -05:00
Vatsalya Goel
f12d4bb8d6
Implement Get Zone for Azure DNS (#631)
* Implement Get Zone for Azure DNS

* Internalize getExistingRecord
2020-02-18 11:35:13 -05:00
Tom Limoncelli
87ad01d194
Add "get-zone" command (#613)
* Add GetZoneRecords to DNSProvider interface
* dnscontrol now uses ufave/cli/v2
* NEW: get-zones.md
* HasRecordTypeName should be a method on models.Records not models.DomainConfig
* Implement BIND's GetZoneRecords
* new WriteZoneFile implemented
* go mod vendor
* Update docs to use get-zone instead of convertzone
* Add CanGetZone capability and update all providers.
* Get all zones for a provider at once (#626)
* implement GetZoneRecords for cloudflare
* munge cloudflare ttls
* Implement GetZoneRecords for cloudflare (#625)

Co-authored-by: Craig Peterson <192540+captncraig@users.noreply.github.com>
2020-02-18 08:59:18 -05:00
Tom Limoncelli
8123b05d43 Clarify versions in RE 2020-02-14 15:01:39 -05:00
Tom Limoncelli
6680e9e2a7 DOCS: Document release note bprocess 2020-02-12 13:51:00 -05:00
Tom Limoncelli
36a05608e0
DOCS: Explain nameservers vs ns (#608) 2020-01-29 13:47:32 -05:00
Tom Limoncelli
75756136cb
RELENG: Doc should list correct version numbers (#607)
* RELENG: Release numbers no longer begin with 0.
2020-01-28 16:59:09 -05:00
Tom Limoncelli
071d9377c2 fixup! 2020-01-28 14:38:53 -05:00
Tom Limoncelli
88abe122cf
Docs: Clarify bug triage process (#606) 2020-01-28 14:36:28 -05:00
Patrick Gaskin
825ba2d081 Switch to Go 1.13 error wrapping (#604)
* Replaced errors.Wrap with fmt.Errorf (#589)

* Find:    errors\.Wrap\(([^,]+),\s+(["`][^"`]*)(["`])\)
  Replace: fmt.Errorf($2: %w$3, $1)

* Replaced errors.Wrapf with fmt.Errorf (#589)

* Find:    errors\.Wrapf\(([^,]+),\s+(["`][^"`]*)(["`])\)
  Replace: fmt.Errorf($2: %w$3, $1)
* Find:    errors\.Wrapf\(([^,]+),\s+(["`][^"`]*)(["`])(,[^)]+)\)
* Replace: fmt.Errorf($2: %w$3$4, $1)

* Replaced errors.Errorf with fmt.Errorf (#589)

* Find:    errors\.Errorf
  Replace: fmt.Errorf

* Cleaned up remaining imports

* Cleanup

* Regenerate provider support matrix

This was broken by #533 ... and it's now the third time this has been missed.
2020-01-28 11:06:56 -05:00
Tom Limoncelli
ae3a730e64
Documentation: Add vendoring details. (#596)
* Add vendoring details.

* Address @geek1011's comments.

* fixup!
2020-01-28 10:44:07 -05:00
Patrick Gaskin
2f83aa9302 Internals: Switch to v2 go.mod, drop GOPATH, and fix Azure Pipelines (#595)
* Switched to v2 go.mod

Also set GO111MODULE=on in build stuff to always use Go modules
even when in GOPATH.

* Ensure go.mod, go.sum, and vendor are up to date

* Attempt to fix Azure pipelines

* Add set -e to properly fail on exit (it didn't seem to be
  propagating properly before).
* Set workingDirectory for GoFmt and GoGen (this might be why it
  fails unlike compile and unitests).

* Another attempt to fix Azure Pipelines

* Use the Go env template for all go-related jobs.

* Completely fixed Azure Pipelines

* Added a display name to GoFmt for consistency.
* Fixed diffs for GoFmt and GoGen.
* Show git status for checks.

* Drop GOPATH for tests

TODO: Do the same for integration tests.

* Drop GOPATH for integration tests

* Show more diffs

* Regenerate provider support matrix

This wasn't done in #590...
2020-01-28 10:42:31 -05:00
Tom Limoncelli
d19eedaa63
DOC: Improve internetbs doc (#603) 2020-01-28 07:44:52 -05:00
Anton Yurchenko
2d88d81392 NEW PROVIDER: Internet.bs (#590)
* Ineternet.bs: first version of provider
* Ineternet.bs: code and documentation cleanup
2020-01-27 08:25:20 -05:00
Patrick Gaskin
c0a68fae4f Regenerate provider support matrix (fixes #592) (#599)
Also see #595.
2020-01-24 17:20:41 -05:00
Juho Teperi
bfa36ebbf8 DIGITALOCEAN: CAA is supported with some caveats (#592)
Change the tests to skip test case with CAA `;` value for Digitalocean,
because that specific feature isn't supported.

Closes #588
2020-01-24 12:21:01 -05:00
Tom Limoncelli
28d650207b
Improve Lets Encrypt docs (#594)
* Mention certbot
* Link to get-certs.md from the main page
* Rename lets-encrypt.md -> get-certs.md
2020-01-23 17:49:43 -05:00
Tom Limoncelli
9857a320a2 Update get-certs docs 2020-01-23 17:42:12 -05:00
Tom Limoncelli
f6ce421fdd
NEW PROVIDER: GANDI_V5 (deprecates GANDI) (#572)
* GANDI_v5: Add Registrar support
* Add GANDI deprecation warning
* vendor github.com/tiramiseb/go-gandi
2020-01-20 14:13:32 -05:00
Tom Limoncelli
2c6878237e go generate 2020-01-20 14:08:09 -05:00
Anton Yurchenko
253cd07154 NEW PROVIDER: ClouDNS (#578)
* ClouDNS: first version of provider
* ClouDNS: documentation
* ClouDNS: code cleanup
* ClouDNS: GetNameservers now uses ClouDNS API to fetch NS servers list
* ClouDNS: CAA support
* ClouDNS: TLSA support
* ClouDNS: tests credentials now use variables instead of hardcoded values
* ClouDNS: SSHFP support
* ClouDNS: export only necessary methods
2020-01-20 14:07:38 -05:00
Will Power
31188c3a70 ROUTE53: Document Minimum access policy learned from #548 (#586) 2020-01-18 13:31:10 -05:00
Vatsalya Goel
df3adef5ec Do some cleanup for AzureDNS code (#551) 2019-12-09 13:51:23 -05:00
Hugo Barros
0f396cd135 ROUTE53: Add AWS_PROFILE functionality (#567)
* Add AWS_PROFILE functionality for Route53 provider

* Document named profiles authentication option for Route53
2019-12-04 10:17:28 -05:00
Patrick Gaskin
70ce16ff23 Fix handling of SRV records with no target (indicated by ".")
According to the RFC, the way to indicate that a SRV has no target is to set the target to ".".  Some providers do not handle this, or the API returns "" instead of ".".  This situation is now tested in the integration tests and all providers (that support this) have been fixed.



* Cloudflare: Fix decoding empty SRV target (fixes #561)

SRV records with empty (".") targets are now returned as false by
the API, which breaks Unmarshaling it into a string.

* Use custom type for Cloudflare SRV target

Rewrote the SRV target decoding to use a custom type for (un)marshaling, as
Cloudflare returns false for null targets, but it requires a single period
for giving it one. The target code has also been made more flexible to future
API changes with additional normalization.

This has been tested with record creation, deletion, and update and works
as of 2019-11-05.

* DigitalOcean: Fix target FQDN for null targets

Without this, dnscontrol thinks an update is needed (.. != .) even
when the SRV target is correct.

* DNSimple: Fix parsing of null SRV target

DNSimple only returns two fields when the target is null.

* NameDotCom: Add note about not supporting null SRV targets, skip test

* DNSimple: Do not append a . unless we have all three parts

Signed-off-by: Amelia Aronsohn <squirrel@wearing.black>

* Regenerated provider matrix
2019-11-14 11:25:20 -05:00
Benoît Knecht
1b9780495d DOCUMENTATION: Fix small typo in Cloudflare (#556)
Remove trailing "rather" at the end of a sentence.
2019-10-23 13:27:04 -04:00
Benoît Knecht
4e6d05b716 CLOUDFLARE: Support API tokens (#555)
Cloudflare API tokens are a new way to authenticate to Cloudflare API.
Unlike the Global API key, tokens can be given specific permissions to
only access parts of the API. See [1] for details.

[1] https://blog.cloudflare.com/api-tokens-general-availability/

This commit introduces a new credential for cloudflare called
`apitoken`, which is mutually exclusive with `apiuser` and `apikey`.

In order for DNSControl to work with this token, it should have the
right to read DNS zones and edit DNS records.

Closes #534
2019-10-23 11:48:00 -04:00
Vatsalya Goel
813a186865 Add Azure DNS (#547)
* Add Azure DNS

* Remove unused code

* Fix failing tests and update build
2019-09-18 21:45:13 -04:00
Patrick Gaskin
cafd4d387a vultr: Added support for SSHFP records (#531) 2019-07-15 12:28:37 -04:00
Tom Limoncelli
be10c5f7c2
Bugfix: redirect: should be redirect= (#507) 2019-06-21 07:48:59 -04:00
Tom Limoncelli
2d9d93653b
SPF Optimizer: Add "redirect:" support (#506)
FYI: The support is very minimal. It only supports redirect if it is the last item in an SPF record. At that point, it is equivalent to include.

* In SFP, treat redirect like a special include.
* Document SPF redirect: limited implementation.
2019-06-19 18:46:56 +01:00
Patrik Kernstock
539820f87a CF: Add ability to manage UniversalSSL (#496)
* Added Cloudflare UniveralSSL control
* Added CF_UNIVERSALSSL_ON/OFF macros
* Updated docs
* Small docs update
* go generate
2019-06-13 07:32:54 -04:00
Tom Limoncelli
8b86eec6bf go generate 2019-05-30 19:52:35 -04:00
Tom Limoncelli
766773afa5 Remove unneeded "0." prefix on version. 2019-05-27 15:56:57 -04:00
Koen Vlaswinkel
5538de6682 IGNORE() now supports glob pattern/wildcards (#463) 2019-05-27 10:14:29 -04:00
Nikolay Kolev
b3e35b56a2 DOC: Apply brand-preferred case (#429)
* Apply brand-preferred case

* Apply case to own branding as well
2019-05-23 09:29:21 -04:00
Oscar Moreno Garza
608dd7af56 NEW: require() now supports loading JSON too (#474) 2019-05-23 09:26:40 -04:00
Patrik Kernstock
f9df8c744a NEW: Added support for specific TTL when using SPF_BUILDER (#476)
* Added support for specific TTL for SPF_BUILDER

* Added updated static.go file

* Use IF instead of reading defaultTTL
2019-05-23 09:25:06 -04:00
Patrik Kernstock
c65ba1c84c General docs improvements (#481)
* docs improvements

* Updated matrix as part of "go generate" (e.g. adds SSHFP row)

* Commiting full matrix file

* Added docs for SSHFP record

* Matrix: Mark OVH as SSHFP-capable in docs (see PR #482)
2019-05-20 22:33:50 -04:00
Patrik Kernstock
a16f689d32 Added CAA_BUILDER (#478)
* Added CAA_BUILDER

* CAA-Builder: simply use "none" to refuse all CAs

* Fixed small error in documentation
2019-05-18 11:10:17 -04:00
Patrik Kernstock
d782bb002b CLOUDFLARE: SPF records should be converted to TXT Fixes #446 (#480) 2019-05-18 11:08:18 -04:00
Tom Limoncelli
5044695ffe DOCS: Fix many spelling errors (#471) 2019-05-11 21:32:52 -04:00
Tom Limoncelli
2f1a8f4359 fixup! 2019-04-17 11:21:27 -04:00
Tom Limoncelli
fa319f4934 fixup! 2019-04-17 11:09:38 -04:00
Tom Limoncelli
67a0e9e248 named.com.md: Improve headings 2019-04-17 09:41:31 -04:00
Tom Limoncelli
963bd32e20
Add SIP/JABBER labels to underscore exception list (#453)
* Improve comments in checkLabel
* Reformat labelUnderscores to make it easier to add to
* Add to exception list for label warnings
* Add underscores in hostnames to the opinions list.
2019-03-04 12:11:25 -05:00
Pierre-Emmanuel Jacquier
511c0bf7de NEW PROVIDER: Exoscale (#390)
* Add exoscale provider

Signed-off-by: Pierre-Emmanuel Jacquier <pierre-emmanuel.jacquier@epitech.eu>

* Fix validation

Signed-off-by: Pierre-Emmanuel Jacquier <pierre-emmanuel.jacquier@epitech.eu>

* Fix DualProvider

Signed-off-by: Pierre-Emmanuel Jacquier <pierre-emmanuel.jacquier@epitech.eu>
2019-02-22 09:10:23 -05:00
Riley Berton
82d4660816 ROUTE53/GCLOUD: Add Delegation/nameserver Sets (#448)
- Support DelegationSet for Route53 (create-domains only)
- Retry Route53 operations which fail for rate limits under large numbers of domains
- Support for name_server_set for GCloud (create-domains only)
- Docs for both
2019-02-19 12:30:39 -05:00
Tom Limoncelli
061ea63322
require() should handle paths as relative (like nodeJS) (#443)
* Integrate @nlowe's documentation and tests
* Use filepath.Clean() instead of filepath.Abs()
* Use a stackless implementation
2019-01-29 10:29:00 -05:00
Alejandro Lazaro
12010ba0cd Documentation: Fix typos and formatting in SPF_BUILDING (#435)
* Fix function name
* Fix indentation
2019-01-02 08:30:06 -05:00
Iuri de Silvio
35f74d9582 Fix spf-optimizer TOC link (#434) 2018-12-29 10:28:41 -05:00
Tom Limoncelli
cec58cea20 Documentation: Clarify releng docs. 2018-12-19 15:09:16 -05:00
Etienne Samson
c5fce0f327 Documentation: Fix OVH API First Steps link (#416) 2018-12-19 15:06:41 -05:00
Bart S
5594904f3d CLOUDFLARE: Added options to set the target account for new domains (#430) 2018-12-19 09:48:27 -05:00
Tom Limoncelli
365b1985b9 NAMEDOTCOM: Improve error docs 2018-12-18 17:45:31 -05:00
Tom Limoncelli
6d93f80abb NAMEDOTCOM: Documented some error messages. 2018-12-18 15:26:26 -05:00
Tom Limoncelli
74fa9ed0c0 GANDI-LIVE: Document "no such zone" error. 2018-12-16 09:05:16 -05:00
Brice Figureau
292ea28208 Populate ovh zones cache as early as possible (#412) (#417)
* Maint: run generate for missing documentation

Apparently current master is missing some generated documentation.

* Populate ovh zones cache as early as possible (#412)

We are caching the OVH zones in GetNameservers.
It turns out it isn’t a good idea, because GetNameServers will not be called
if the user selects no name servers for a given domain by using for example:

```
D(‘my domain’, DnsProvider(ovh, 0)) {
}
```

The subsequent GetDomainCorrections would automatically fail
with an unknown domain error, because the zones cache hasn’t been
filled in.

To solve the issue, the ovh provider now populates the zones cache during
initialisation.
2018-10-16 15:42:54 -04:00
ashleyhull-versent
734170013c ROUTE53: Documentation for AWS Token PR (#403)
* Update route53Provider.go

* includes optional Token

* Appended Token and additional information for
2018-09-05 09:07:28 -04:00
Ed Bardsley
61281d7046 Add NAMESERVER_TTL and associated documentation. (#398) 2018-09-04 10:57:11 -04:00
Kai Schwarz
50c126c2d4 upd: Maintainers of contributed providers (#400) 2018-08-30 11:45:52 -04:00
Kai Schwarz
3e5d223675 new provider module HEXONET (#373) 2018-08-30 08:54:42 -04:00
Vincent Bernat
d9db572e3c doc: update documentation for Gandi to mention the LiveDNS provider (#385)
The `GANDI` provider also seems to be unable to see new domains (the
ones bought through the new interface), but I didn't mention that as
it may be a bug that could be solves at some point.
2018-08-03 08:53:30 -04:00
Craig Peterson
6c60eac7c7
Work around extra whitespace in spf records (#361)
* handle empty spf parts from bad records

* update spf tool
2018-05-03 10:03:38 -04:00
Craig Peterson
7c1f45b002 casing 2018-04-27 10:48:38 -04:00
Craig Peterson
9eab281513 more typos 2018-04-26 15:36:39 -04:00
Jamie Simmonds
5618442830 "Let's Enrypt" to "Let's Encrypt" (#359) 2018-04-26 15:28:58 -04:00
Craig Peterson
2e8c4a758f
Let's Encrypt Certificate Generation (#327)
* Manual rebase of get-certs branch

* fix endpoints, add verbose flag

* more stable pre-check behaviour

* start of docs

* docs for get-certs

* don't require cert for dnscontrol

* fix up directory paths

* small doc tweaks
2018-04-26 13:11:13 -04:00
Tom Limoncelli
139f4fe1ed Docs: Update NAMESERVER() to not mention IPs. 2018-03-22 11:31:53 -04:00
Tom Limoncelli
511d10efc9
Document SRV, CF*REDIRECT, and note where docs are needed. (#346) 2018-03-22 09:30:09 -04:00
Ben Firshman
cd58d26545 Documentation: Add Gandi registrar to example (#335) 2018-03-17 08:43:57 -04:00
Tom Limoncelli
7486ee4ace docs/release-engineering.md: Add local tips 2018-03-16 13:07:42 -04:00
Philipp Hug
dfd015e5cd NEW REGISTRAR: OpenSRS (#275)
* Initial commit for OpenSRS registrar support #272
* sort existing name servers before comparing.
* vendor philhug/opensrs-go
* Update docs for OpenSRS #272
* Cache OpenSRS client to prevent http connection leak
* run go fmt
2018-03-04 23:07:22 -05:00
Tom Limoncelli
54de1ff698
NEW PROVIDER: OctoDNS (#309)
* govendor gopkg.in/yaml.v2
* Ignore YAML and BIND test data litter.  Create README.txt files to force git to create subdirectories.
* Update convertzone to also read OctoDNS files
2018-02-27 17:36:47 -05:00
Tom Limoncelli
1097c96fcc
New Provider: GANDI-LIVEDNS (API v5) (#320)
* Add gandi LiveDNS api provider
* vendor testify and gandi live DNS
* govendor update github.com/prasmussen/gandi-api/{client,live_dns}
* Fix Gandi-livedns TXT unit test
* TravisCI should use go 1.10
2018-02-24 13:40:18 -05:00
Tom Limoncelli
7bd7105c44 release-engineering.md: Parameterize $VERSION 2018-01-22 21:21:33 -05:00
Brice Figureau
7b8d608019 ROUTE53: Support Route53's ALIAS record type (#239) (#301)
* Stable comparison of metadata (#239)

Iterating over a map in Go never produces twice the same ordering.
Thus when comparing two metadata map with more than one key, the
`differ` is always finding differences.

To properly compare records metadata, we need to iterate the maps
in a deterministic way.

Signed-off-by: Brice Figureau <brice@daysofwonder.com>

* Support for Route53 ALIAS record type (#239)

Route53 ALIAS doesn't behave like a regular ALIAS, and is much more
limited as its target can only be some specific AWS resources or
another record in the same zone.

According to #239, this change adds a new directive R53_ALIAS which
implements this specific alias. This record type can only be used
with the Route53 provider.

This directive usage looks like this:
```js
D("example.com", REGISTRAR, DnsProvider("ROUTE53"),
R53_ALIAS("foo1", "A", "bar") // record in same zone
R53_ALIAS("foo2", "A",
  "blahblah.elasticloadbalancing.us-west-1.amazonaws.com",
   R53_ZONE('Z368ELLRRE2KJ0')) // ELB in us-west-1

```

Unfortunately, Route53 requires indicating the hosted zone id
where the target is defined (those are listed in AWS documentation,
see the R53_ALIAS documentation for links).
2018-01-16 05:53:12 -05:00
Brice Figureau
2fc55dfdc4 Add IGNORE(label) which ignores label at the provider (#183) (#300)
* Add support for the IGNORE(name) directive (#183)

IGNORE is like NO_PURGE but for a spefic record instead of the whole
zone. This is very useful for instance if you have a zone where
only some records are managed externally from dnscontrol (for instance
using kubernetes external dns system).

Adding IGNORE("foo") in the zone will make dnscontrol not trying
to manage the "foo" record (and especially not deleting it).
dnscontrol will error out if the "foo" record is both ignored and
managed in dnscontrol.

This can be seen as a generic Cloudflare's ignored label.

Signed-off-by: Brice Figureau <brice@daysofwonder.com>

* Deprecate CloudFlare ignoredLabels in favor of IGNORE (#183)

Since IGNORE implements a generic `ignoredLabels` system, let
the user know CF `ignoredLabels` are deprecated.

Signed-off-by: Brice Figureau <brice@daysofwonder.com>
2018-01-15 15:39:29 -05:00
Tom Limoncelli
79983f3493 docs/adding-new-rtypes.md: add missing step WRT the feature matrix 2018-01-14 12:30:39 -05:00
Craig Peterson
9dbd4a3066
Simple notification framework (#297)
* bonfire notifications working

* make interface to make more extensible

* some docs

* typo

* rename typo
2018-01-11 11:15:19 -05:00
Pat Moroney
91e2cf67ef NAMEDOTCOM: add TXTMulti capability (#299)
* add TXTMulti capability to the namedotcom provider
* run go generate
* escape multi txt records before sending to the API
2018-01-11 07:23:59 -05:00
Tom Limoncelli
c4ec6c8246 Add TXTMulti to the feature matrix.
* Add TXTMulti to the feature matrix.
* Sort the features alphabetically.
2018-01-10 17:06:15 -05:00
Tom Limoncelli
b7c251190f
Vet and Lint the entire system (#296)
* govet and golint corrections
2018-01-09 12:53:16 -05:00
Tom Limoncelli
de88bfe8b7
Add support for TXT records with multiple strings (BIND, ROUTE53) (#293)
* BIND: Support TXT records with multiple strings (#289)
* ROUTE53: Add support for TXT records with multiple strings (#292)
2018-01-04 19:19:35 -05:00
Tom Limoncelli
d051f51a59
ROUTE53: Document error messages from various credential issues. (#291) 2017-12-23 08:03:05 -05:00
Tom Limoncelli
a0f14e5981
GANDI: Add support for CAA rtype (#288)
* GANDI: Add support for CAA rtype
2017-12-22 07:10:29 -05:00
Tom Limoncelli
c520471ab7 doc: Fix path to providers stuff. 2017-12-21 09:33:21 -05:00
Tom Limoncelli
8baf9ee1a4 docs: Add bookmark to comparison chart 2017-12-20 16:29:52 -05:00
Tom Limoncelli
0c607348df docs: Add bookmark to comparison chart 2017-12-20 16:27:11 -05:00
Tom Limoncelli
65c3702335 docs: Add bookmark to comparison chart 2017-12-20 16:06:56 -05:00
Tom Limoncelli
611a597ae0
CLOUDFLARE: Support CAA rtype (#285)
* Add CAA support to cloudflare
2017-12-20 10:25:23 -05:00
Tom Limoncelli
86257b3863 Docs: Correct numbering and add integration test advice. 2017-12-14 06:11:10 -05:00
Louis T. Getterman IV
11f29e1dd7 DIGITALOCEAN: Improve example in docs (#281)
Documentation fix to resolve, "Creating do dns provider: Digitalocean Token must be provided." error.
2017-12-11 10:02:13 -05:00
Tom Limoncelli
3f4cc3c025 unittests.md: Update for new-style flags. 2017-12-11 09:57:46 -05:00
Tom Limoncelli
21e4cb4fc3 go generate && add more RelEng docs. 2017-12-06 17:03:07 -05:00
Tom Limoncelli
efd34e94a8 docs/release-engineering.md: Minor fixes. 2017-12-06 17:01:16 -05:00
Tom Limoncelli
c6e244d8da
Productionize the SPF optimizer (#279)
* Productionize the SPF optimizer
* SPF_BUILDER(): New helper function
* docs/spf-optimizer.md: Document SPF_BUILDER()
2017-12-06 15:50:21 -05:00
Tom Limoncelli
95fb79dfcc Document creds.json can include env variables 2017-12-05 06:18:21 -05:00
Patrick G
203c4ffe85 Improved Namecheap documentation (#221) (#232)
* Improved Namecheap documentation
2017-11-29 23:51:52 -05:00
Daniel Schmitz
f5bfcd0d6e NS1: Add SRV record support (#277)
* NS1 SRV record support
* Updated feature matrix
2017-11-29 07:57:35 -05:00
Philipp Hug
53b72f39a8 GANDI: Registrar support (#274)
* GANDI: add registrar support for changing nameservers. #87

* Update docs with Gandi registrar support #87

* Updated dependencies for Gandi Registrar Support #87
2017-11-27 13:04:24 -05:00
Craig Peterson
ccf28349ce
Update aws libs and remove waiter (#276)
* update r53 library. Remove waiter code

* live update provider request section

* remove debug
2017-11-27 10:22:08 -05:00
Koen Vlaswinkel
9a44e785ac New provider: Linode (#268) 2017-11-14 23:08:06 -05:00
Tom Limoncelli
750ed4340e Provider Request: NameSilo 2017-11-13 09:59:02 -05:00
Brice Figureau
e44dde52e2 New Provider: OVH DNS Provider (#143) (#175)
* OVH DNS Provider (#143)

This adds the OVH Provider along with its documentation.

Unfortunately we can't set this DNS provider to support `CanUsePTR`,
because OVH only supports setting PTR target on the Arpa zone.

* OVH Registrar provider (#143)

This implements OVH as a registrar provider.
Note that NS modifications are done in a "best effort" mode, as the
provider doesn't wait for the modifications to be fully applied
(the operation that can take a long time).

* Allow support for dual providers scenarios

Since OVH released their APIv6, it is now possible to update
zone apex NS records, opening the door to complete dual providers
scenarii.

This change implements apex NS management in an OVH zone.
2017-11-10 11:02:34 -08:00
Tom Limoncelli
fea1d7afff Add OWNERS file and instructions. 2017-11-09 13:38:56 -05:00
Tom Limoncelli
2e61c83511 Docs: Note the request for a INWX provider. 2017-11-09 13:28:37 -05:00
Tom Limoncelli
e7472f76f3 Downcase DNS names (#253)
* Downcase DNS names
* Document opinions
2017-11-07 14:12:17 -08:00
Tom Limoncelli
b614501d56 Add introductory text to Writing Providers 2017-11-07 16:42:11 -05:00
Tom Limoncelli
8d77ca9cc8 release-engineering.md: New releases should be announced in chat (gitter.im) 2017-11-02 16:35:08 -07:00
Tom Limoncelli
79912725d8 Update release-engineering.md 2017-11-02 14:51:52 -07:00
Matt Tunny
f7eb7cd1f6 Docs/Provider - missing double quote =D (#257)
* spelling mistake

fix spelling mistake

* missing double quote

missing double quote =D
2017-11-01 08:45:22 -04:00
Matt Tunny
cad1aa8d16 spelling mistake (#255)
fix spelling mistake
2017-10-31 08:52:04 -04:00
Thordur Bjornsson
03168d4a7a docs: Fix type in gcloud docs (#248) 2017-10-25 09:21:44 -04:00
Patrick G
fad98f73f4 Improve Route53 documentation (#221) (#234)
* Improve Route53 documentation

- Grammar fixes
- Formatting improvements
- Don't encourage using environment vars instead of the credentials file

* Add back sdk config link
2017-10-24 09:44:23 -04:00
Patrick G
98e01e75aa Website fixes (Part 2) (#221) (#236)
* Fix page title spelling

* Fixed some more mistakes

* Spacing fixes

* Fix title in TOC

* Improved TOC
2017-10-24 09:42:30 -04:00
Craig Peterson
60ed1a2e0b Namecheap: switch throttling to only as needed. (#244)
* refactor namecheap to throttle only as needed

* note about srv records

* no it can't

* fmt
2017-10-24 09:41:59 -04:00
rbelnap
1664b64a94 namecheap url doc mention (#245)
* add initial URL support to namecheap provider

* add URL / FRAME records to namecheap provider

* add menion of URL types to namecheap docs
2017-10-23 14:16:16 -04:00
Craig Peterson
e548b8f059 DNSimple: Adding SRV, CAA, and ALIAS suppport (#243)
* dnsimple ALIAS

* caa working

* srv

* gen
2017-10-18 15:51:44 -04:00
Patrick G
23427516c0 Added Vultr provider (#217) (#219)
* Added Vultr provider
* Fixed tests
* Fixed CI build validation
* Add unsupported features
* Added #rtype_variations tags according to stackexchange.github.io/dnscontrol/adding-new-rtypes
* Add title (for compatibility with #223)
* Removed extra rtype_variations
2017-10-12 09:21:36 -04:00
Patrick G
002426ce4d Improved DigitalOcean documentation (#227)
- Grammar fixes
- Formatting improvements
- Changed a completly wrong statement about route53 (should be about DO)
2017-10-11 13:13:31 -04:00
Patrick G
60bc15705f Improve DNSimple documentation (#221) (#228)
- Grammar improvements
- Markdown formatting improvements
2017-10-11 13:13:12 -04:00
Patrick G
208eeaac6f Improved Name.com documentation (#231)
- Improved formatting
- Other fixes
2017-10-11 13:12:41 -04:00
Patrick G
8d0576ac7f Improve softlayer documentation (#235)
- Add note that using the creds.json file is the preferred method of authentication
- Improve formatting
2017-10-11 12:06:04 -04:00
Tom Limoncelli
7d3e3b6279 Add-back note about BIND local scripts 2017-10-11 12:02:40 -04:00
Patrick G
efbf04e231 Improved BIND docs (#221) (#226)
* Improved BIND docs

- Fixed highlighting language
- Improved markdown formatting
- Improved grammar

* Fix according to review
2017-10-11 11:59:29 -04:00
Patrick G
211add3ec3 Improve NS1 documentation (#233)
- Minor fixes
2017-10-11 11:54:32 -04:00
Patrick G
f753c5a700 Improve Google Cloud DNS docs (#230)
- Markdown formatting improvements
- Added note about newlines in private key
2017-10-11 10:10:23 -04:00
Patrick G
326e3a803c Improve Gandi documentation (#229)
- Markdown formatting improvements
- Other fixes
2017-10-11 10:10:01 -04:00
Tom Limoncelli
7f87deb4e5 fixup! 2017-10-11 09:59:45 -04:00
Patrick G
e2ed50a136 Fixed Active Directory docs (#225)
- Grammar fixes
- Formatting fixes
2017-10-11 09:58:23 -04:00
Patrick G
efe302a957 Fixed Cloudflare docs (#224)
- Grammar fixes
- Fixed wrong highlighting type
- Formatted markdown better
- Other various fixes
2017-10-11 09:55:57 -04:00
Tom Limoncelli
8dedfb1017 Minor doc fixes 2017-10-11 08:40:01 -04:00
Patrick G
31bdb65720 Improved consistency of provider documentation (#222)
- Fixed indentation
- Use same naming scheme for all examples
  (i.e. all caps for provider, REG prefix for registrar)
- Use REG_NONE as registrar when provider does not provide it
- Use example.tld for example domain
- Use 1.2.3.1/24 IP range for examples
- A few spelling fixes
2017-10-11 08:33:52 -04:00
Patrick G
a202b8ae53 Website fixes (Part 1) (#223)
* Fixed base template

- Made responsive for small screens
- Added DOCTYPE
- Added meta charset

* Added page titles

* Beautified CSS
2017-10-11 08:33:17 -04:00
Craig Peterson
2cfd67e4fa Namecheap take Provider (#202)
* re-copying namecheap dns provider and testing

* document limits. mx broken because super odd api

* manually path namecheap lib. passing tests.

* generate

* generate

* clarify limit

* conflict

* add dependency

* fully document namecheap capabilities
2017-10-03 11:53:56 -04:00
Tom Limoncelli
56b4578833 release-engineering.md: Small cleanups 2017-10-02 15:10:26 -04:00
Tom Limoncelli
86e955befe release-engineering.md: Add links 2017-10-02 13:53:01 -04:00
Tom Limoncelli
a151b85cd0 Docs: Link to RE page on the front page 2017-10-02 13:49:05 -04:00
Craig Peterson
6df4396d93 promote home page 2017-10-02 13:35:13 -04:00
Craig Peterson
49038cf51c add include 2017-10-02 11:19:40 -04:00
Craig Peterson
324cde5a1d bigger homepage 2017-10-02 11:14:15 -04:00
Tom Limoncelli
eeb3903d5b wip 2017-10-01 14:13:22 -04:00
Tom Limoncelli
38b4045797 wip 2017-09-29 16:04:55 -04:00
Tom Limoncelli
d08d57d403 Revamp the website front page (#213)
* First iteration. Just the front page.
2017-09-29 15:44:13 -04:00
Craig Peterson
823e8bb1a3 Add SPF flattening feature. (#126) 2017-09-29 15:30:36 -04:00
Jamie Lennox
7daa7a6467 Add SoftLayer DNS provider (#59)
Add SoftLayer DNS as a DomainServiceProvider.

The SoftLayer API is a bit of a mess and treats MX and SRV records
differently. This leads to some replication and custom handling issues
to work around.

In this patch I have to change the SRV test case to be _tcp instead of
_protocol because softlayer requires a "known" protocol which AFAICT is
tcp, udp or tls. I think this will be acceptable in most cases.

Signed-off-by: Jamie Lennox <jamielennox@gmail.com>
2017-09-26 13:14:53 -04:00
Craig Peterson
dd39e9a4be generate 2017-09-15 13:53:41 -04:00
Manatsawin Hanmongkolchai
4bffc37d15 Format helpers.js (#205)
* Format helpers.js with prettier

* Adding docs on how to run prettier
2017-09-15 13:12:09 -04:00
eliheady
4aac517d62 Add TLSA record support (#165) (#203) 2017-09-15 09:03:29 -04:00
Craig Peterson
a342aa7e90 add ability to linkify provider matrix 2017-09-14 16:25:39 -04:00
Craig Peterson
3a90435357 Create a dynamic provider features matrix (#201)
* adding simple provider feature matrix generator

* filling out matrix

* clean output

* dead code

* explanatory text

* explanatory text

* typo

* move stuff around

* clean

* editing
2017-09-14 16:13:17 -04:00
Craig Peterson
b0c465c3a9 Ns1 provider (#63)
* add ns1 libs to vendor

* Create shim and wire into tests

* ns1 provider more working.

* vendor correct files

* comment diff functions

* ns1 docs

* making mx work with ns1

* ?

* refactor tests to make capability blocks easier. fix up ns1
2017-09-13 11:49:15 -04:00
Craig Peterson
1d9d2b1a19 Refactor to use better cli command framework (#177)
* starting to refactor commands

* work

* not sure

* all commands working!

* actually add file

* work in delay flag again

* start to refactor out console printing

* i hate line endings

* simple travis test to find direct output

* remove all direct printing from push/preview

* checkin vendor

* don't need this yet

* forgot to commit these

* make version explicit command

* some code review

* Add "check" subcommand.

* move stuff to commands package

* fix

* comment out check for printlns. for now

* alphabet hax

* activedir flags gone. use creds instead

* active dir doc update

* remove bind specific flags. creds instead

* default to zones dir

* fix linux build

* fix test

* cleanup random global* vars

* Clean up PowerShell docs

* rename dump-ir to print-ir. combine with print-js
2017-09-13 10:00:41 -04:00
Koen Rouwhorst
ab0fd55277 Added 'Route 53' to CAA document. (#196) 2017-09-09 09:26:11 -04:00
Craig Peterson
627334803e rebuilding should fix pages 2017-09-07 22:33:42 -04:00
Craig Peterson
c3c52a7bbd wtf? 2017-09-07 22:32:47 -04:00
Craig Peterson
8c7d3997b0 remove site url from index to test 2017-09-07 22:31:01 -04:00
Craig Peterson
4a59a15216 poke to rebuild 2017-09-07 22:21:51 -04:00
Nick Lopez
0138c33a28 Documentation: Update terminology in gcloud.md (#197)
* Google now calls the required role "DNS Administrator" rather than "App Engine Admin" (#197)
2017-09-07 06:46:32 -07:00
Tom Limoncelli
d7845e046c docs/ Remove whitespace at EOL 2017-08-29 13:49:39 -04:00
Tom Limoncelli
52be4cec5b fixup! 2017-08-24 12:04:33 -04:00
Tom Limoncelli
71a976e4df Document the release engineering process (#189)
* Document the release process.
2017-08-24 08:32:51 -07:00
Tom Limoncelli
5cf482e8e8 Clarify "must end with a (.)" error message. 2017-08-18 15:50:55 -04:00
Tom Limoncelli
d15ef9f1a3 Fix highlighting 2017-08-15 13:54:00 -04:00
Tom Limoncelli
ea3e2831a8 Document TXT, NS, NO_PURGE, PURGE, and IMPORT_TRANSFORM (#184)
* Document TXT, NS, NO_PURGE, PURGE, and IMPORT_TRANSFORM
2017-08-15 10:46:31 -07:00
Juho Teperi
ad27cc9b3b Digitalocean provider (#171)
* Implement Digitalocean provider
* Vendor digitalocean lib
* Enable SRV for Digitalocean and fix the tests
* Test cname etc. records pointing to the same domain
2017-08-10 13:31:20 -07:00
Tom Limoncelli
aa0850fbaf provider-list.md: List maintainers 2017-08-07 13:18:09 -04:00
Tom Limoncelli
85bd94ef7c Document that contributors that they'll be asked to maintain their code. 2017-08-07 11:50:54 -04:00
Tom Limoncelli
09122701c3 Clarify official/contributed providers responsibilities 2017-08-07 11:47:53 -04:00
Tom Limoncelli
b89f9c66d1 convertzone should do a better job with NS records. Fixes https://github.com/StackExchange/dnscontrol/issues/162 2017-08-05 11:59:35 -04:00
Tom Limoncelli
988d8d6bf8 Document potential issue with R53 provider. See https://github.com/StackExchange/dnscontrol/pull/155 2017-08-05 11:01:08 -04:00
Tom Limoncelli
2cbabd859b Make it easier to add new Rtypes. (#169)
* NEW: docs/adding-new-rtypes.md
* Mark all "if" and "switch" statements with `#rtype_variations`
* Make consistent use of `default: panic()`
2017-08-04 12:26:29 -07:00