mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-09-05 04:34:32 +08:00
DOCS: generate smaller tables for feature matrix (2nd try) (#3589)
This commit is contained in:
parent
113c1ac13b
commit
87cd4f40e3
4 changed files with 400 additions and 91 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -5,6 +5,7 @@ dnscontrol-Darwin
|
|||
dnscontrol-Linux
|
||||
dnscontrol.exe
|
||||
dnscontrol
|
||||
/build/generate/generate
|
||||
/dnsconfig.js
|
||||
/creds.json
|
||||
ExternalDNS
|
||||
|
@ -25,6 +26,7 @@ stack.sh
|
|||
*.nupkg
|
||||
.DS_Store
|
||||
.vscode
|
||||
*.sw[a-p]
|
||||
.jekyll-cache
|
||||
types-dnscontrol.d.ts
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"sort"
|
||||
"strings"
|
||||
|
@ -11,26 +12,35 @@ import (
|
|||
)
|
||||
|
||||
func generateFeatureMatrix() error {
|
||||
var replacementContent string = ""
|
||||
matrix := matrixData()
|
||||
markdownTable, err := markdownTable(matrix)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
for i := 0; i < len(matrix.FeatureTables); i++ {
|
||||
var tableTitle = matrix.FeatureTablesTitles[i]
|
||||
replacementContent += fmt.Sprintf("\n### %s <!--(table %d/%d)-->\n\n",
|
||||
tableTitle, i+1, len(matrix.FeatureTables))
|
||||
markdownTable, err := markdownTable(matrix, int32(i))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
replacementContent += markdownTable
|
||||
replacementContent += "\n"
|
||||
}
|
||||
|
||||
replaceInlineContent(
|
||||
"documentation/provider/index.md",
|
||||
"<!-- provider-matrix-start -->",
|
||||
"<!-- provider-matrix-end -->",
|
||||
markdownTable,
|
||||
replacementContent,
|
||||
)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func markdownTable(matrix *FeatureMatrix) (string, error) {
|
||||
func markdownTable(matrix *FeatureMatrix, tableNumber int32) (string, error) {
|
||||
var tableHeaders []string
|
||||
tableHeaders = append(tableHeaders, "Provider name")
|
||||
tableHeaders = append(tableHeaders, matrix.Features...)
|
||||
tableHeaders = append(tableHeaders, matrix.FeatureTables[tableNumber]...)
|
||||
|
||||
var tableData [][]string
|
||||
for _, providerName := range allProviderNames() {
|
||||
|
@ -38,10 +48,18 @@ func markdownTable(matrix *FeatureMatrix) (string, error) {
|
|||
|
||||
var tableDataRow []string
|
||||
tableDataRow = append(tableDataRow, "[`"+providerName+"`]("+strings.ToLower(providerName)+".md)")
|
||||
for _, featureName := range matrix.Features {
|
||||
for _, featureName := range matrix.FeatureTables[tableNumber] {
|
||||
tableDataRow = append(tableDataRow, featureEmoji(featureMap, featureName))
|
||||
}
|
||||
tableData = append(tableData, tableDataRow)
|
||||
skipThisRow := true
|
||||
for status := range tableDataRow[1:] {
|
||||
if tableDataRow[status+1] != "❔" {
|
||||
skipThisRow = false
|
||||
}
|
||||
}
|
||||
if !skipThisRow {
|
||||
tableData = append(tableData, tableDataRow)
|
||||
}
|
||||
}
|
||||
|
||||
markdownTable, err := markdown.NewTableFormatterBuilder().
|
||||
|
@ -92,38 +110,58 @@ func matrixData() *FeatureMatrix {
|
|||
DomainModifierDhcid = "[`DHCID`](../language-reference/domain-modifiers/DHCID.md)"
|
||||
DomainModifierDname = "[`DNAME`](../language-reference/domain-modifiers/DNAME.md)"
|
||||
DomainModifierDnskey = "[`DNSKEY`](../language-reference/domain-modifiers/DNSKEY.md)"
|
||||
DualHost = "dual host"
|
||||
DualHost = "[dual host](../dual-host.md)"
|
||||
CreateDomains = "create-domains"
|
||||
GetZones = "get-zones"
|
||||
)
|
||||
|
||||
matrix := &FeatureMatrix{
|
||||
Providers: map[string]FeatureMap{},
|
||||
Features: []string{
|
||||
OfficialSupport,
|
||||
ProviderDNSProvider,
|
||||
ProviderRegistrar,
|
||||
ProviderThreadSafe,
|
||||
DomainModifierAlias,
|
||||
DomainModifierCaa,
|
||||
DomainModifierDnssec,
|
||||
DomainModifierHTTPS,
|
||||
DomainModifierLoc,
|
||||
DomainModifierNaptr,
|
||||
DomainModifierPtr,
|
||||
DomainModifierSoa,
|
||||
DomainModifierSrv,
|
||||
DomainModifierSshfp,
|
||||
DomainModifierSvcb,
|
||||
DomainModifierTlsa,
|
||||
DomainModifierDs,
|
||||
DomainModifierDhcid,
|
||||
DomainModifierDname,
|
||||
DomainModifierDnskey,
|
||||
DualHost,
|
||||
CreateDomains,
|
||||
// NoPurge,
|
||||
GetZones,
|
||||
FeatureTablesTitles: []string{
|
||||
"Provider Type",
|
||||
"Provider API",
|
||||
"DNS extensions",
|
||||
"Service discovery",
|
||||
"Security",
|
||||
"DNSSEC",
|
||||
},
|
||||
FeatureTables: [][]string{
|
||||
[]string{ // provider type
|
||||
OfficialSupport,
|
||||
ProviderDNSProvider,
|
||||
ProviderRegistrar,
|
||||
},
|
||||
[]string{ // provider API
|
||||
ProviderThreadSafe,
|
||||
DualHost,
|
||||
CreateDomains,
|
||||
// NoPurge,
|
||||
GetZones,
|
||||
},
|
||||
[]string{ // DNS extensions
|
||||
DomainModifierAlias,
|
||||
DomainModifierDname,
|
||||
DomainModifierLoc,
|
||||
DomainModifierPtr,
|
||||
DomainModifierSoa,
|
||||
},
|
||||
[]string{ // service discovery
|
||||
DomainModifierDhcid,
|
||||
DomainModifierNaptr,
|
||||
DomainModifierSrv,
|
||||
DomainModifierSvcb,
|
||||
},
|
||||
[]string{ // security
|
||||
DomainModifierCaa,
|
||||
DomainModifierHTTPS,
|
||||
DomainModifierSshfp,
|
||||
DomainModifierTlsa,
|
||||
},
|
||||
[]string{ // dnssec
|
||||
DomainModifierDnssec,
|
||||
DomainModifierDnskey,
|
||||
DomainModifierDs,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -321,8 +359,9 @@ func (featureMap FeatureMap) SetSimple(
|
|||
|
||||
// FeatureMatrix describes features and which providers support it.
|
||||
type FeatureMatrix struct {
|
||||
Features []string
|
||||
Providers map[string]FeatureMap
|
||||
Providers map[string]FeatureMap
|
||||
FeatureTables [][]string
|
||||
FeatureTablesTitles []string
|
||||
}
|
||||
|
||||
func replaceInlineContent(
|
||||
|
|
16
documentation/dual-host.md
Normal file
16
documentation/dual-host.md
Normal file
|
@ -0,0 +1,16 @@
|
|||
# Dual Host
|
||||
|
||||
The dual hosting feature of DNSControl provides
|
||||
for the ability to use multiple DNS providers simultaneously.
|
||||
Consult your provider docs to ensure that **both** of them support this feature.
|
||||
|
||||
✅ - A checkmark means "this has been tested, and the provider works with dual hosting".
|
||||
❔ - The questionmark means "it hasn't been tested, safety unknown"
|
||||
❌ - The red "X" means "this has been tested, and it does _not_ work currently".
|
||||
|
||||
## Source reference
|
||||
|
||||
[The source](https://github.com/StackExchange/dnscontrol/blob/cdbd54016f93140548d846842b0d7575603069c8/providers/capabilities.go#L93)
|
||||
states that this flag
|
||||
|
||||
> provider allows full management of apex NS records, so we can safely dual-host with another provider
|
|
@ -12,61 +12,313 @@ a provider that supports it, we'd love your contribution to ensure it works corr
|
|||
If a feature is definitively not supported for whatever reason, we would also like a PR to clarify why it is not supported, and fill in this entire matrix.
|
||||
|
||||
<!-- provider-matrix-start -->
|
||||
| Provider name | Official Support | DNS Provider | Registrar | [Concurrency Verified](../concurrency-verified.md) | [`ALIAS`](../language-reference/domain-modifiers/ALIAS.md) | [`CAA`](../language-reference/domain-modifiers/CAA.md) | [`AUTODNSSEC`](../language-reference/domain-modifiers/AUTODNSSEC_ON.md) | [`HTTPS`](../language-reference/domain-modifiers/HTTPS.md) | [`LOC`](../language-reference/domain-modifiers/LOC.md) | [`NAPTR`](../language-reference/domain-modifiers/NAPTR.md) | [`PTR`](../language-reference/domain-modifiers/PTR.md) | [`SOA`](../language-reference/domain-modifiers/SOA.md) | [`SRV`](../language-reference/domain-modifiers/SRV.md) | [`SSHFP`](../language-reference/domain-modifiers/SSHFP.md) | [`SVCB`](../language-reference/domain-modifiers/SVCB.md) | [`TLSA`](../language-reference/domain-modifiers/TLSA.md) | [`DS`](../language-reference/domain-modifiers/DS.md) | [`DHCID`](../language-reference/domain-modifiers/DHCID.md) | [`DNAME`](../language-reference/domain-modifiers/DNAME.md) | [`DNSKEY`](../language-reference/domain-modifiers/DNSKEY.md) | dual host | create-domains | get-zones |
|
||||
| ------------- | ---------------- | ------------ | --------- | -------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------------ | ----------------------------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------------ | ---------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ---------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------------------ | --------- | -------------- | --------- |
|
||||
| [`AKAMAIEDGEDNS`](akamaiedgedns.md) | ❌ | ✅ | ❌ | ❔ | ❌ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❔ | ✅ | ❌ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`AUTODNS`](autodns.md) | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ❔ | ✅ | ❌ | ❔ | ❌ | ❌ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`AXFRDDNS`](axfrddns.md) | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [`AZURE_DNS`](azure_dns.md) | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❔ | ❔ | ❌ | ❌ | ✅ | ❔ | ✅ | ❌ | ❔ | ❌ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`AZURE_PRIVATE_DNS`](azure_private_dns.md) | ✅ | ✅ | ❌ | ❔ | ❌ | ❌ | ❔ | ❔ | ❌ | ❌ | ✅ | ❔ | ✅ | ❌ | ❔ | ❌ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`BIND`](bind.md) | ✅ | ✅ | ❌ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`BUNNY_DNS`](bunny_dns.md) | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ✅ | ❔ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ❔ | ❌ | ❌ | ❌ | ❔ | ❔ | ❌ | ✅ | ✅ |
|
||||
| [`CLOUDFLAREAPI`](cloudflareapi.md) | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❔ | ✅ | ❌ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ❔ | ❔ | ❌ | ❌ | ✅ | ✅ |
|
||||
| [`CLOUDNS`](cloudns.md) | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ | ❔ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ✅ | ❔ | ❔ | ✅ | ✅ |
|
||||
| [`CNR`](cnr.md) | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❔ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ❔ | ❌ | ❌ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`CSCGLOBAL`](cscglobal.md) | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ |
|
||||
| [`DESEC`](desec.md) | ❌ | ✅ | ❌ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ❔ | ❔ | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`DIGITALOCEAN`](digitalocean.md) | ❌ | ✅ | ❌ | ✅ | ❔ | ✅ | ❔ | ❔ | ❌ | ❔ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ |
|
||||
| [`DNSIMPLE`](dnsimple.md) | ❌ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ | ❌ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ❌ | ❌ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`DNSMADEEASY`](dnsmadeeasy.md) | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ❔ | ❔ | ❌ | ❔ | ✅ | ❔ | ✅ | ❌ | ❔ | ❌ | ❌ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`DNSOVERHTTPS`](dnsoverhttps.md) | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`DOMAINNAMESHOP`](domainnameshop.md) | ❌ | ✅ | ❌ | ❔ | ❔ | ✅ | ❌ | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ |
|
||||
| [`DYNADOT`](dynadot.md) | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`EASYNAME`](easyname.md) | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`EXOSCALE`](exoscale.md) | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ❔ | ❔ | ❌ | ❔ | ✅ | ❔ | ✅ | ❔ | ❔ | ❌ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ❔ |
|
||||
| [`GANDI_V5`](gandi_v5.md) | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❔ | ❔ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ |
|
||||
| [`GCLOUD`](gcloud.md) | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❔ | ✅ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`GCORE`](gcore.md) | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❔ | ✅ | ❌ | ✅ | ❌ | ❌ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`HEDNS`](hedns.md) | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`HETZNER`](hetzner.md) | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`HEXONET`](hexonet.md) | ❌ | ✅ | ✅ | ❔ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ❔ | ✅ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ❔ |
|
||||
| [`HOSTINGDE`](hostingde.md) | ❌ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`HUAWEICLOUD`](huaweicloud.md) | ❌ | ✅ | ❌ | ❔ | ❌ | ✅ | ❔ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`INTERNETBS`](internetbs.md) | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`INWX`](inwx.md) | ❌ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`LINODE`](linode.md) | ❌ | ✅ | ❌ | ❔ | ❔ | ✅ | ❔ | ❔ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`LOOPIA`](loopia.md) | ❌ | ✅ | ✅ | ❔ | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❔ | ✅ | ❌ | ❔ | ❔ | ❔ | ✅ | ❌ | ✅ |
|
||||
| [`LUADNS`](luadns.md) | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ❔ | ❔ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`MSDNS`](msdns.md) | ✅ | ✅ | ❌ | ❔ | ❌ | ❌ | ❔ | ❔ | ❌ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`MYTHICBEASTS`](mythicbeasts.md) | ❌ | ✅ | ❌ | ❔ | ❌ | ✅ | ❔ | ❔ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ❌ | ✅ |
|
||||
| [`NAMECHEAP`](namecheap.md) | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❔ | ❔ | ❌ | ❔ | ❌ | ❔ | ❌ | ❔ | ❔ | ❌ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`NAMEDOTCOM`](namedotcom.md) | ❌ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❌ | ❔ | ❌ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ✅ | ❌ | ✅ |
|
||||
| [`NETCUP`](netcup.md) | ❌ | ✅ | ❌ | ❔ | ❔ | ✅ | ❔ | ❔ | ❌ | ❔ | ❌ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ❌ |
|
||||
| [`NETLIFY`](netlify.md) | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❔ | ❌ | ❌ | ❌ | ❔ | ✅ | ❌ | ❔ | ❌ | ❌ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`NS1`](ns1.md) | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❔ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`OPENSRS`](opensrs.md) | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`ORACLE`](oracle.md) | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ❔ | ❔ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ❌ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`OVH`](ovh.md) | ❌ | ✅ | ✅ | ❔ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ❌ | ✅ |
|
||||
| [`PACKETFRAME`](packetframe.md) | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ❔ |
|
||||
| [`PORKBUN`](porkbun.md) | ❌ | ✅ | ✅ | ❔ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`POWERDNS`](powerdns.md) | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`REALTIMEREGISTER`](realtimeregister.md) | ❌ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❔ | ✅ | ❌ | ❌ | ❔ | ❔ | ❌ | ✅ | ✅ |
|
||||
| [`ROUTE53`](route53.md) | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❔ | ✅ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`RWTH`](rwth.md) | ❌ | ✅ | ❌ | ❔ | ❌ | ✅ | ❔ | ❔ | ❌ | ❌ | ✅ | ❔ | ✅ | ✅ | ❔ | ❌ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`SAKURACLOUD`](sakuracloud.md) | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
|
||||
| [`SOFTLAYER`](softlayer.md) | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`TRANSIP`](transip.md) | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
|
||||
| [`VULTR`](vultr.md) | ❌ | ✅ | ❌ | ❔ | ❌ | ✅ | ❔ | ❔ | ❌ | ❔ | ❌ | ❔ | ✅ | ✅ | ❔ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ |
|
||||
|
||||
### Provider Type <!--(table 1/6)-->
|
||||
|
||||
| Provider name | Official Support | DNS Provider | Registrar |
|
||||
| ------------- | ---------------- | ------------ | --------- |
|
||||
| [`AKAMAIEDGEDNS`](akamaiedgedns.md) | ❌ | ✅ | ❌ |
|
||||
| [`AUTODNS`](autodns.md) | ❌ | ✅ | ✅ |
|
||||
| [`AXFRDDNS`](axfrddns.md) | ❌ | ✅ | ❌ |
|
||||
| [`AZURE_DNS`](azure_dns.md) | ✅ | ✅ | ❌ |
|
||||
| [`AZURE_PRIVATE_DNS`](azure_private_dns.md) | ✅ | ✅ | ❌ |
|
||||
| [`BIND`](bind.md) | ✅ | ✅ | ❌ |
|
||||
| [`BUNNY_DNS`](bunny_dns.md) | ❌ | ✅ | ❌ |
|
||||
| [`CLOUDFLAREAPI`](cloudflareapi.md) | ✅ | ✅ | ❌ |
|
||||
| [`CLOUDNS`](cloudns.md) | ❌ | ✅ | ❌ |
|
||||
| [`CNR`](cnr.md) | ❌ | ✅ | ✅ |
|
||||
| [`CSCGLOBAL`](cscglobal.md) | ✅ | ✅ | ✅ |
|
||||
| [`DESEC`](desec.md) | ❌ | ✅ | ❌ |
|
||||
| [`DIGITALOCEAN`](digitalocean.md) | ❌ | ✅ | ❌ |
|
||||
| [`DNSIMPLE`](dnsimple.md) | ❌ | ✅ | ✅ |
|
||||
| [`DNSMADEEASY`](dnsmadeeasy.md) | ❌ | ✅ | ❌ |
|
||||
| [`DNSOVERHTTPS`](dnsoverhttps.md) | ❌ | ❌ | ✅ |
|
||||
| [`DOMAINNAMESHOP`](domainnameshop.md) | ❌ | ✅ | ❌ |
|
||||
| [`DYNADOT`](dynadot.md) | ❌ | ❌ | ✅ |
|
||||
| [`EASYNAME`](easyname.md) | ❌ | ❌ | ✅ |
|
||||
| [`EXOSCALE`](exoscale.md) | ❌ | ✅ | ❌ |
|
||||
| [`GANDI_V5`](gandi_v5.md) | ❌ | ✅ | ✅ |
|
||||
| [`GCLOUD`](gcloud.md) | ✅ | ✅ | ❌ |
|
||||
| [`GCORE`](gcore.md) | ❌ | ✅ | ❌ |
|
||||
| [`HEDNS`](hedns.md) | ❌ | ✅ | ❌ |
|
||||
| [`HETZNER`](hetzner.md) | ❌ | ✅ | ❌ |
|
||||
| [`HEXONET`](hexonet.md) | ❌ | ✅ | ✅ |
|
||||
| [`HOSTINGDE`](hostingde.md) | ❌ | ✅ | ✅ |
|
||||
| [`HUAWEICLOUD`](huaweicloud.md) | ❌ | ✅ | ❌ |
|
||||
| [`INTERNETBS`](internetbs.md) | ❌ | ❌ | ✅ |
|
||||
| [`INWX`](inwx.md) | ❌ | ✅ | ✅ |
|
||||
| [`LINODE`](linode.md) | ❌ | ✅ | ❌ |
|
||||
| [`LOOPIA`](loopia.md) | ❌ | ✅ | ✅ |
|
||||
| [`LUADNS`](luadns.md) | ❌ | ✅ | ❌ |
|
||||
| [`MSDNS`](msdns.md) | ✅ | ✅ | ❌ |
|
||||
| [`MYTHICBEASTS`](mythicbeasts.md) | ❌ | ✅ | ❌ |
|
||||
| [`NAMECHEAP`](namecheap.md) | ❌ | ✅ | ✅ |
|
||||
| [`NAMEDOTCOM`](namedotcom.md) | ❌ | ✅ | ✅ |
|
||||
| [`NETCUP`](netcup.md) | ❌ | ✅ | ❌ |
|
||||
| [`NETLIFY`](netlify.md) | ❌ | ✅ | ❌ |
|
||||
| [`NS1`](ns1.md) | ❌ | ✅ | ❌ |
|
||||
| [`OPENSRS`](opensrs.md) | ❌ | ❌ | ✅ |
|
||||
| [`ORACLE`](oracle.md) | ❌ | ✅ | ❌ |
|
||||
| [`OVH`](ovh.md) | ❌ | ✅ | ✅ |
|
||||
| [`PACKETFRAME`](packetframe.md) | ❌ | ✅ | ❌ |
|
||||
| [`PORKBUN`](porkbun.md) | ❌ | ✅ | ✅ |
|
||||
| [`POWERDNS`](powerdns.md) | ❌ | ✅ | ❌ |
|
||||
| [`REALTIMEREGISTER`](realtimeregister.md) | ❌ | ✅ | ✅ |
|
||||
| [`ROUTE53`](route53.md) | ✅ | ✅ | ✅ |
|
||||
| [`RWTH`](rwth.md) | ❌ | ✅ | ❌ |
|
||||
| [`SAKURACLOUD`](sakuracloud.md) | ❌ | ✅ | ❌ |
|
||||
| [`SOFTLAYER`](softlayer.md) | ❌ | ✅ | ❌ |
|
||||
| [`TRANSIP`](transip.md) | ❌ | ✅ | ❌ |
|
||||
| [`VULTR`](vultr.md) | ❌ | ✅ | ❌ |
|
||||
|
||||
|
||||
### Provider API <!--(table 2/6)-->
|
||||
|
||||
| Provider name | [Concurrency Verified](../concurrency-verified.md) | [dual host](../dual-host.md) | create-domains | get-zones |
|
||||
| ------------- | -------------------------------------------------- | ---------------------------- | -------------- | --------- |
|
||||
| [`AKAMAIEDGEDNS`](akamaiedgedns.md) | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`AUTODNS`](autodns.md) | ✅ | ❌ | ❌ | ✅ |
|
||||
| [`AXFRDDNS`](axfrddns.md) | ✅ | ❌ | ❌ | ❌ |
|
||||
| [`AZURE_DNS`](azure_dns.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`AZURE_PRIVATE_DNS`](azure_private_dns.md) | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`BIND`](bind.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`BUNNY_DNS`](bunny_dns.md) | ❔ | ❌ | ✅ | ✅ |
|
||||
| [`CLOUDFLAREAPI`](cloudflareapi.md) | ✅ | ❌ | ✅ | ✅ |
|
||||
| [`CLOUDNS`](cloudns.md) | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`CNR`](cnr.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`CSCGLOBAL`](cscglobal.md) | ✅ | ❔ | ❌ | ✅ |
|
||||
| [`DESEC`](desec.md) | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`DIGITALOCEAN`](digitalocean.md) | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`DNSIMPLE`](dnsimple.md) | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`DNSMADEEASY`](dnsmadeeasy.md) | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`DNSOVERHTTPS`](dnsoverhttps.md) | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`DYNADOT`](dynadot.md) | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`EASYNAME`](easyname.md) | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`EXOSCALE`](exoscale.md) | ❔ | ❌ | ❌ | ❔ |
|
||||
| [`GANDI_V5`](gandi_v5.md) | ✅ | ❔ | ❌ | ✅ |
|
||||
| [`GCLOUD`](gcloud.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`GCORE`](gcore.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`HEDNS`](hedns.md) | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`HETZNER`](hetzner.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`HEXONET`](hexonet.md) | ❔ | ✅ | ✅ | ❔ |
|
||||
| [`HOSTINGDE`](hostingde.md) | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`HUAWEICLOUD`](huaweicloud.md) | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`INTERNETBS`](internetbs.md) | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`INWX`](inwx.md) | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`LINODE`](linode.md) | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`LOOPIA`](loopia.md) | ❔ | ✅ | ❌ | ✅ |
|
||||
| [`LUADNS`](luadns.md) | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`MSDNS`](msdns.md) | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`MYTHICBEASTS`](mythicbeasts.md) | ❔ | ✅ | ❌ | ✅ |
|
||||
| [`NAMECHEAP`](namecheap.md) | ✅ | ❌ | ❌ | ✅ |
|
||||
| [`NAMEDOTCOM`](namedotcom.md) | ❔ | ✅ | ❌ | ✅ |
|
||||
| [`NETCUP`](netcup.md) | ❔ | ❌ | ❌ | ❌ |
|
||||
| [`NETLIFY`](netlify.md) | ✅ | ❌ | ❌ | ✅ |
|
||||
| [`NS1`](ns1.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`OPENSRS`](opensrs.md) | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`ORACLE`](oracle.md) | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`OVH`](ovh.md) | ❔ | ✅ | ❌ | ✅ |
|
||||
| [`PACKETFRAME`](packetframe.md) | ❔ | ❌ | ❌ | ❔ |
|
||||
| [`PORKBUN`](porkbun.md) | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`POWERDNS`](powerdns.md) | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`REALTIMEREGISTER`](realtimeregister.md) | ❔ | ❌ | ✅ | ✅ |
|
||||
| [`ROUTE53`](route53.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`RWTH`](rwth.md) | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`SAKURACLOUD`](sakuracloud.md) | ❔ | ❌ | ✅ | ✅ |
|
||||
| [`SOFTLAYER`](softlayer.md) | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`TRANSIP`](transip.md) | ✅ | ❌ | ❌ | ✅ |
|
||||
| [`VULTR`](vultr.md) | ❔ | ❔ | ✅ | ✅ |
|
||||
|
||||
|
||||
### DNS extensions <!--(table 3/6)-->
|
||||
|
||||
| Provider name | [`ALIAS`](../language-reference/domain-modifiers/ALIAS.md) | [`DNAME`](../language-reference/domain-modifiers/DNAME.md) | [`LOC`](../language-reference/domain-modifiers/LOC.md) | [`PTR`](../language-reference/domain-modifiers/PTR.md) | [`SOA`](../language-reference/domain-modifiers/SOA.md) |
|
||||
| ------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ |
|
||||
| [`AKAMAIEDGEDNS`](akamaiedgedns.md) | ❌ | ❔ | ✅ | ✅ | ❌ |
|
||||
| [`AUTODNS`](autodns.md) | ✅ | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`AXFRDDNS`](axfrddns.md) | ❌ | ✅ | ✅ | ✅ | ❌ |
|
||||
| [`AZURE_DNS`](azure_dns.md) | ❌ | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`AZURE_PRIVATE_DNS`](azure_private_dns.md) | ❌ | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`BIND`](bind.md) | ❔ | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`BUNNY_DNS`](bunny_dns.md) | ✅ | ❔ | ❌ | ✅ | ❌ |
|
||||
| [`CLOUDFLAREAPI`](cloudflareapi.md) | ✅ | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`CLOUDNS`](cloudns.md) | ✅ | ✅ | ✅ | ✅ | ❔ |
|
||||
| [`CNR`](cnr.md) | ✅ | ❌ | ❌ | ✅ | ❌ |
|
||||
| [`DESEC`](desec.md) | ❔ | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`DIGITALOCEAN`](digitalocean.md) | ❔ | ❔ | ❌ | ❔ | ❔ |
|
||||
| [`DNSIMPLE`](dnsimple.md) | ✅ | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`DNSMADEEASY`](dnsmadeeasy.md) | ✅ | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`DOMAINNAMESHOP`](domainnameshop.md) | ❔ | ❔ | ❌ | ❌ | ❌ |
|
||||
| [`EXOSCALE`](exoscale.md) | ✅ | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`GANDI_V5`](gandi_v5.md) | ✅ | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`GCLOUD`](gcloud.md) | ✅ | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`GCORE`](gcore.md) | ✅ | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`HEDNS`](hedns.md) | ✅ | ❔ | ✅ | ✅ | ❌ |
|
||||
| [`HETZNER`](hetzner.md) | ❌ | ❔ | ❌ | ❌ | ❌ |
|
||||
| [`HEXONET`](hexonet.md) | ❌ | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`HOSTINGDE`](hostingde.md) | ✅ | ❔ | ❌ | ✅ | ✅ |
|
||||
| [`HUAWEICLOUD`](huaweicloud.md) | ❌ | ❔ | ❌ | ❌ | ❌ |
|
||||
| [`INWX`](inwx.md) | ✅ | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`LINODE`](linode.md) | ❔ | ❔ | ❌ | ❔ | ❔ |
|
||||
| [`LOOPIA`](loopia.md) | ❌ | ❔ | ✅ | ❌ | ❌ |
|
||||
| [`LUADNS`](luadns.md) | ✅ | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`MSDNS`](msdns.md) | ❌ | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`MYTHICBEASTS`](mythicbeasts.md) | ❌ | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`NAMECHEAP`](namecheap.md) | ✅ | ❔ | ❌ | ❌ | ❔ |
|
||||
| [`NAMEDOTCOM`](namedotcom.md) | ✅ | ❔ | ❌ | ❌ | ❔ |
|
||||
| [`NETCUP`](netcup.md) | ❔ | ❔ | ❌ | ❌ | ❔ |
|
||||
| [`NETLIFY`](netlify.md) | ✅ | ❔ | ❌ | ❌ | ❔ |
|
||||
| [`NS1`](ns1.md) | ✅ | ✅ | ❌ | ✅ | ❔ |
|
||||
| [`ORACLE`](oracle.md) | ✅ | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`OVH`](ovh.md) | ❌ | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`PACKETFRAME`](packetframe.md) | ❔ | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`PORKBUN`](porkbun.md) | ✅ | ❔ | ❌ | ❌ | ❌ |
|
||||
| [`POWERDNS`](powerdns.md) | ✅ | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`REALTIMEREGISTER`](realtimeregister.md) | ✅ | ❔ | ✅ | ❌ | ❌ |
|
||||
| [`ROUTE53`](route53.md) | ❌ | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`RWTH`](rwth.md) | ❌ | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`SAKURACLOUD`](sakuracloud.md) | ✅ | ❌ | ❌ | ✅ | ❌ |
|
||||
| [`SOFTLAYER`](softlayer.md) | ❔ | ❔ | ❌ | ❔ | ❔ |
|
||||
| [`TRANSIP`](transip.md) | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [`VULTR`](vultr.md) | ❌ | ❔ | ❌ | ❌ | ❔ |
|
||||
|
||||
|
||||
### Service discovery <!--(table 4/6)-->
|
||||
|
||||
| Provider name | [`DHCID`](../language-reference/domain-modifiers/DHCID.md) | [`NAPTR`](../language-reference/domain-modifiers/NAPTR.md) | [`SRV`](../language-reference/domain-modifiers/SRV.md) | [`SVCB`](../language-reference/domain-modifiers/SVCB.md) |
|
||||
| ------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------------ | -------------------------------------------------------- |
|
||||
| [`AKAMAIEDGEDNS`](akamaiedgedns.md) | ❔ | ✅ | ✅ | ❔ |
|
||||
| [`AUTODNS`](autodns.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`AXFRDDNS`](axfrddns.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`AZURE_DNS`](azure_dns.md) | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`AZURE_PRIVATE_DNS`](azure_private_dns.md) | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`BIND`](bind.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`BUNNY_DNS`](bunny_dns.md) | ❌ | ❌ | ✅ | ❔ |
|
||||
| [`CLOUDFLAREAPI`](cloudflareapi.md) | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`CLOUDNS`](cloudns.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`CNR`](cnr.md) | ❌ | ✅ | ✅ | ❌ |
|
||||
| [`CSCGLOBAL`](cscglobal.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`DESEC`](desec.md) | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`DIGITALOCEAN`](digitalocean.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`DNSIMPLE`](dnsimple.md) | ❔ | ✅ | ✅ | ❔ |
|
||||
| [`DNSMADEEASY`](dnsmadeeasy.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`DOMAINNAMESHOP`](domainnameshop.md) | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`EXOSCALE`](exoscale.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`GANDI_V5`](gandi_v5.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`GCLOUD`](gcloud.md) | ❔ | ❔ | ✅ | ✅ |
|
||||
| [`GCORE`](gcore.md) | ❔ | ❌ | ✅ | ✅ |
|
||||
| [`HEDNS`](hedns.md) | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`HETZNER`](hetzner.md) | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`HEXONET`](hexonet.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`HOSTINGDE`](hostingde.md) | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`HUAWEICLOUD`](huaweicloud.md) | ❔ | ❌ | ✅ | ❌ |
|
||||
| [`INWX`](inwx.md) | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`LOOPIA`](loopia.md) | ❔ | ✅ | ✅ | ❔ |
|
||||
| [`LUADNS`](luadns.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`MSDNS`](msdns.md) | ❔ | ✅ | ✅ | ❔ |
|
||||
| [`MYTHICBEASTS`](mythicbeasts.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`NAMECHEAP`](namecheap.md) | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`NAMEDOTCOM`](namedotcom.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`NETCUP`](netcup.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`NETLIFY`](netlify.md) | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`NS1`](ns1.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`ORACLE`](oracle.md) | ❔ | ✅ | ✅ | ❔ |
|
||||
| [`OVH`](ovh.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`PACKETFRAME`](packetframe.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`PORKBUN`](porkbun.md) | ❔ | ❌ | ✅ | ✅ |
|
||||
| [`POWERDNS`](powerdns.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`REALTIMEREGISTER`](realtimeregister.md) | ❌ | ✅ | ✅ | ❔ |
|
||||
| [`ROUTE53`](route53.md) | ❔ | ❔ | ✅ | ✅ |
|
||||
| [`RWTH`](rwth.md) | ❔ | ❌ | ✅ | ❔ |
|
||||
| [`SAKURACLOUD`](sakuracloud.md) | ❌ | ❌ | ✅ | ✅ |
|
||||
| [`SOFTLAYER`](softlayer.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
| [`TRANSIP`](transip.md) | ❌ | ✅ | ✅ | ❌ |
|
||||
| [`VULTR`](vultr.md) | ❔ | ❔ | ✅ | ❔ |
|
||||
|
||||
|
||||
### Security <!--(table 5/6)-->
|
||||
|
||||
| Provider name | [`CAA`](../language-reference/domain-modifiers/CAA.md) | [`HTTPS`](../language-reference/domain-modifiers/HTTPS.md) | [`SSHFP`](../language-reference/domain-modifiers/SSHFP.md) | [`TLSA`](../language-reference/domain-modifiers/TLSA.md) |
|
||||
| ------------- | ------------------------------------------------------ | ---------------------------------------------------------- | ---------------------------------------------------------- | -------------------------------------------------------- |
|
||||
| [`AKAMAIEDGEDNS`](akamaiedgedns.md) | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`AUTODNS`](autodns.md) | ✅ | ❔ | ❌ | ❌ |
|
||||
| [`AXFRDDNS`](axfrddns.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`AZURE_DNS`](azure_dns.md) | ✅ | ❔ | ❌ | ❌ |
|
||||
| [`AZURE_PRIVATE_DNS`](azure_private_dns.md) | ❌ | ❔ | ❌ | ❌ |
|
||||
| [`BIND`](bind.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`BUNNY_DNS`](bunny_dns.md) | ✅ | ❔ | ❌ | ❌ |
|
||||
| [`CLOUDFLAREAPI`](cloudflareapi.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`CLOUDNS`](cloudns.md) | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`CNR`](cnr.md) | ✅ | ❌ | ✅ | ✅ |
|
||||
| [`CSCGLOBAL`](cscglobal.md) | ✅ | ❔ | ❔ | ❔ |
|
||||
| [`DESEC`](desec.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`DIGITALOCEAN`](digitalocean.md) | ✅ | ❔ | ❔ | ❔ |
|
||||
| [`DNSIMPLE`](dnsimple.md) | ✅ | ❔ | ✅ | ❌ |
|
||||
| [`DNSMADEEASY`](dnsmadeeasy.md) | ✅ | ❔ | ❌ | ❌ |
|
||||
| [`DOMAINNAMESHOP`](domainnameshop.md) | ✅ | ❔ | ❌ | ❔ |
|
||||
| [`EXOSCALE`](exoscale.md) | ✅ | ❔ | ❔ | ❌ |
|
||||
| [`GANDI_V5`](gandi_v5.md) | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`GCLOUD`](gcloud.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`GCORE`](gcore.md) | ✅ | ✅ | ❌ | ❌ |
|
||||
| [`HEDNS`](hedns.md) | ✅ | ✅ | ✅ | ❌ |
|
||||
| [`HETZNER`](hetzner.md) | ✅ | ❔ | ❌ | ✅ |
|
||||
| [`HEXONET`](hexonet.md) | ✅ | ❔ | ❔ | ✅ |
|
||||
| [`HOSTINGDE`](hostingde.md) | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`HUAWEICLOUD`](huaweicloud.md) | ✅ | ❌ | ❌ | ❌ |
|
||||
| [`INWX`](inwx.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`LINODE`](linode.md) | ✅ | ❔ | ❔ | ❔ |
|
||||
| [`LOOPIA`](loopia.md) | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`LUADNS`](luadns.md) | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`MSDNS`](msdns.md) | ❌ | ❔ | ❔ | ❔ |
|
||||
| [`MYTHICBEASTS`](mythicbeasts.md) | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`NAMECHEAP`](namecheap.md) | ✅ | ❔ | ❔ | ❌ |
|
||||
| [`NETCUP`](netcup.md) | ✅ | ❔ | ❔ | ❔ |
|
||||
| [`NETLIFY`](netlify.md) | ✅ | ❔ | ❌ | ❌ |
|
||||
| [`NS1`](ns1.md) | ✅ | ✅ | ❔ | ✅ |
|
||||
| [`ORACLE`](oracle.md) | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`OVH`](ovh.md) | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`PORKBUN`](porkbun.md) | ✅ | ✅ | ❌ | ✅ |
|
||||
| [`POWERDNS`](powerdns.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`REALTIMEREGISTER`](realtimeregister.md) | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`ROUTE53`](route53.md) | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`RWTH`](rwth.md) | ✅ | ❔ | ✅ | ❌ |
|
||||
| [`SAKURACLOUD`](sakuracloud.md) | ✅ | ✅ | ❌ | ❌ |
|
||||
| [`TRANSIP`](transip.md) | ✅ | ❌ | ✅ | ✅ |
|
||||
| [`VULTR`](vultr.md) | ✅ | ❔ | ✅ | ❌ |
|
||||
|
||||
|
||||
### DNSSEC <!--(table 6/6)-->
|
||||
|
||||
| Provider name | [`AUTODNSSEC`](../language-reference/domain-modifiers/AUTODNSSEC_ON.md) | [`DNSKEY`](../language-reference/domain-modifiers/DNSKEY.md) | [`DS`](../language-reference/domain-modifiers/DS.md) |
|
||||
| ------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------ | ---------------------------------------------------- |
|
||||
| [`AKAMAIEDGEDNS`](akamaiedgedns.md) | ✅ | ❔ | ❌ |
|
||||
| [`AUTODNS`](autodns.md) | ❔ | ❔ | ❌ |
|
||||
| [`AXFRDDNS`](axfrddns.md) | ✅ | ❌ | ✅ |
|
||||
| [`BIND`](bind.md) | ✅ | ✅ | ✅ |
|
||||
| [`BUNNY_DNS`](bunny_dns.md) | ✅ | ❔ | ❌ |
|
||||
| [`CLOUDFLAREAPI`](cloudflareapi.md) | ❔ | ❌ | ✅ |
|
||||
| [`CLOUDNS`](cloudns.md) | ✅ | ❔ | ❔ |
|
||||
| [`DESEC`](desec.md) | ✅ | ✅ | ✅ |
|
||||
| [`DNSIMPLE`](dnsimple.md) | ✅ | ❔ | ❌ |
|
||||
| [`DNSMADEEASY`](dnsmadeeasy.md) | ❔ | ❔ | ❌ |
|
||||
| [`DOMAINNAMESHOP`](domainnameshop.md) | ❌ | ❔ | ❔ |
|
||||
| [`GANDI_V5`](gandi_v5.md) | ❔ | ❔ | ❌ |
|
||||
| [`GCORE`](gcore.md) | ✅ | ❔ | ❌ |
|
||||
| [`HEDNS`](hedns.md) | ❌ | ❔ | ❌ |
|
||||
| [`HETZNER`](hetzner.md) | ❌ | ❔ | ✅ |
|
||||
| [`HOSTINGDE`](hostingde.md) | ✅ | ❔ | ✅ |
|
||||
| [`HUAWEICLOUD`](huaweicloud.md) | ❔ | ❔ | ❌ |
|
||||
| [`INWX`](inwx.md) | ✅ | ❔ | ❔ |
|
||||
| [`LOOPIA`](loopia.md) | ❌ | ❔ | ❌ |
|
||||
| [`NETLIFY`](netlify.md) | ❌ | ❔ | ❌ |
|
||||
| [`NS1`](ns1.md) | ✅ | ❔ | ✅ |
|
||||
| [`ORACLE`](oracle.md) | ❔ | ❔ | ❌ |
|
||||
| [`PORKBUN`](porkbun.md) | ❌ | ❔ | ❌ |
|
||||
| [`POWERDNS`](powerdns.md) | ✅ | ✅ | ✅ |
|
||||
| [`REALTIMEREGISTER`](realtimeregister.md) | ✅ | ❔ | ❌ |
|
||||
| [`SAKURACLOUD`](sakuracloud.md) | ❌ | ❌ | ❌ |
|
||||
| [`TRANSIP`](transip.md) | ❌ | ❌ | ❌ |
|
||||
|
||||
<!-- provider-matrix-end -->
|
||||
|
||||
### Providers with "official support"
|
||||
|
|
Loading…
Add table
Reference in a new issue