From c4ec6c82461f17e0f5bcca8d69ad049f23ffd350 Mon Sep 17 00:00:00 2001 From: Tom Limoncelli Date: Wed, 10 Jan 2018 17:06:15 -0500 Subject: [PATCH] Add TXTMulti to the feature matrix. * Add TXTMulti to the feature matrix. * Sort the features alphabetically. --- build/generate/featureMatrix.go | 14 +- docs/_includes/matrix.html | 270 +++++++++++++++++--------------- providers/capabilities.go | 12 +- 3 files changed, 160 insertions(+), 136 deletions(-) diff --git a/build/generate/featureMatrix.go b/build/generate/featureMatrix.go index d5db8eb49..7697f5f6b 100644 --- a/build/generate/featureMatrix.go +++ b/build/generate/featureMatrix.go @@ -27,13 +27,14 @@ func generateFeatureMatrix() error { Providers: map[string]FeatureMap{}, Features: []FeatureDef{ {"Official Support", "This means the provider is actively used at Stack Exchange, bugs are more likely to be fixed, and failing integration tests will block a release. See below for details"}, - {"Registrar", "The provider has registrar capabilities to set nameservers for zones"}, {"DNS Provider", "Can manage and serve DNS zones"}, + {"Registrar", "The provider has registrar capabilities to set nameservers for zones"}, {"ALIAS", "Provider supports some kind of ALIAS, ANAME or flattened CNAME record type"}, - {"SRV", "Driver has explicitly implemented SRV record management"}, - {"PTR", "Provider supports adding PTR records for reverse lookup zones"}, {"CAA", "Provider can manage CAA records"}, + {"PTR", "Provider supports adding PTR records for reverse lookup zones"}, + {"SRV", "Driver has explicitly implemented SRV record management"}, {"TLSA", "Provider can manage TLSA records"}, + {"TXTMulti", "Provider can manage TXT records with multiple strings"}, {"dual host", "This provider is recommended for use in 'dual hosting' scenarios. Usually this means the provider allows full control over the apex NS records"}, {"create-domains", "This means the provider can automatically create domains that do not currently exist on your account. The 'dnscontrol create-domains' command will initialize any missing domains"}, @@ -66,13 +67,14 @@ func generateFeatureMatrix() error { } } setDoc("Official Support", providers.DocOfficiallySupported, true) - fm.SetSimple("Registrar", false, func() bool { return providers.RegistrarTypes[p] != nil }) fm.SetSimple("DNS Provider", false, func() bool { return providers.DNSProviderTypes[p] != nil }) + fm.SetSimple("Registrar", false, func() bool { return providers.RegistrarTypes[p] != nil }) setCap("ALIAS", providers.CanUseAlias) - setCap("SRV", providers.CanUseSRV) - setCap("PTR", providers.CanUsePTR) setCap("CAA", providers.CanUseCAA) + setCap("PTR", providers.CanUsePTR) + setCap("SRV", providers.CanUseSRV) setCap("TLSA", providers.CanUseTLSA) + setCap("TXTMulti", providers.CanUseTXTMulti) setDoc("dual host", providers.DocDualHost, false) setDoc("create-domains", providers.DocCreateDomains, true) diff --git a/docs/_includes/matrix.html b/docs/_includes/matrix.html index c295659e0..984239443 100644 --- a/docs/_includes/matrix.html +++ b/docs/_includes/matrix.html @@ -72,54 +72,6 @@ - - Registrar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DNS Provider @@ -168,6 +120,54 @@ + + Registrar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ALIAS @@ -202,6 +202,82 @@ + + CAA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PTR + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SRV @@ -248,82 +324,6 @@ - - PTR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CAA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TLSA @@ -352,6 +352,28 @@ + + TXTMulti + + + + + + + + + + + + + + + + + + + + dual host diff --git a/providers/capabilities.go b/providers/capabilities.go index 16829ebd2..c7e337d5d 100644 --- a/providers/capabilities.go +++ b/providers/capabilities.go @@ -13,21 +13,21 @@ const ( // CanUseAlias indicates the provider support ALIAS records (or flattened CNAMES). Up to the provider to translate them to the appropriate record type. CanUseAlias Capability = iota + // CanUseCAA indicates the provider can handle CAA records + CanUseCAA + // CanUsePTR indicates the provider can handle PTR records CanUsePTR // CanUseSRV indicates the provider can handle SRV records CanUseSRV - // CanUseTXTMulti indicates the provider can handle TXT records with multiple strings - CanUseTXTMulti - - // CanUseCAA indicates the provider can handle CAA records - CanUseCAA - // CanUseTLSA indicates the provider can handle TLSA records CanUseTLSA + // CanUseTXTMulti indicates the provider can handle TXT records with multiple strings + CanUseTXTMulti + // CantUseNOPURGE indicates NO_PURGE is broken for this provider. To make it // work would require complex emulation of an incremental update mechanism, // so it is easier to simply mark this feature as not working for this