mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2026-01-10 18:24:25 +08:00
DOCS: Provider URI redirect (#3307)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
This commit is contained in:
parent
e8bf7c71d4
commit
519e4f82e1
13 changed files with 218 additions and 217 deletions
|
|
@ -19,7 +19,7 @@ func generateFeatureMatrix() error {
|
|||
}
|
||||
|
||||
replaceInlineContent(
|
||||
"documentation/providers.md",
|
||||
"documentation/provider/index.md",
|
||||
"<!-- provider-matrix-start -->",
|
||||
"<!-- provider-matrix-end -->",
|
||||
markdownTable,
|
||||
|
|
@ -38,7 +38,7 @@ func markdownTable(matrix *FeatureMatrix) (string, error) {
|
|||
featureMap := matrix.Providers[providerName]
|
||||
|
||||
var tableDataRow []string
|
||||
tableDataRow = append(tableDataRow, "[`"+providerName+"`](provider/"+strings.ToLower(providerName)+".md)")
|
||||
tableDataRow = append(tableDataRow, "[`"+providerName+"`]("+strings.ToLower(providerName)+".md)")
|
||||
for _, featureName := range matrix.Features {
|
||||
tableDataRow = append(tableDataRow, featureEmoji(featureMap, featureName))
|
||||
}
|
||||
|
|
|
|||
8
commands/types/dnscontrol.d.ts
vendored
8
commands/types/dnscontrol.d.ts
vendored
|
|
@ -2326,10 +2326,10 @@ declare function NS1_URLFWD(name: string, target: string, ...modifiers: RecordMo
|
|||
* answers on port 53 to queries related to the zone).
|
||||
*
|
||||
* * `name` must match the name of an entry in `creds.json`.
|
||||
* * `type` specifies a valid DNS provider type identifier listed on the [provider page](../../providers.md).
|
||||
* * `type` specifies a valid DNS provider type identifier listed on the [provider page](../../provider/index.md).
|
||||
* * Starting with [v3.16](../../v316.md), the type is optional. If it is absent, the `TYPE` field in `creds.json` is used instead. You can leave it out. (Thanks to JavaScript magic, you can leave it out even when there are more fields).
|
||||
* * Starting with v4.0, specifying the type may be an error. Please add the `TYPE` field to `creds.json` and remove this parameter from `dnsconfig.js` to prepare.
|
||||
* * `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../providers.md) for details.
|
||||
* * `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../provider/index.md) for details.
|
||||
*
|
||||
* This function will return an opaque string that should be assigned to a variable name for use in [D](D.md) directives.
|
||||
*
|
||||
|
|
@ -2365,10 +2365,10 @@ declare function NewDnsProvider(name: string, type?: string, meta?: object): str
|
|||
* nameservers for the domain). DNSControl only manages the delegation.
|
||||
*
|
||||
* * `name` must match the name of an entry in `creds.json`.
|
||||
* * `type` specifies a valid DNS provider type identifier listed on the [provider page](../../providers.md).
|
||||
* * `type` specifies a valid DNS provider type identifier listed on the [provider page](../../provider/index.md).
|
||||
* * Starting with [v3.16](../../v316.md), the type is optional. If it is absent, the `TYPE` field in `creds.json` is used instead. You can leave it out. (Thanks to JavaScript magic, you can leave it out even when there are more fields).
|
||||
* * Starting with v4.0, specifying the type may be an error. Please add the `TYPE` field to `creds.json` and remove this parameter from `dnsconfig.js` to prepare.
|
||||
* * `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../providers.md) for details.
|
||||
* * `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../provider/index.md) for details.
|
||||
*
|
||||
* This function will return an opaque string that should be assigned to a variable name for use in [D](D.md) directives.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
redirects:
|
||||
getting-started/providers: providers/index.md
|
||||
service-providers/providers: providers.md
|
||||
service-providers/providers/akamaiedgedns: provider/akamaiedgedns.md
|
||||
service-providers/providers/autodns: provider/autodns.md
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@
|
|||
* [Examples](examples.md)
|
||||
* [Migrating zones to DNSControl](migrating.md)
|
||||
* [TypeScript autocomplete and type checking](typescript.md)
|
||||
* [Providers](providers.md)
|
||||
|
||||
## Language Reference
|
||||
|
||||
|
|
@ -104,6 +103,7 @@
|
|||
|
||||
## Provider
|
||||
|
||||
* [Supported providers](provider/index.md)
|
||||
* [Akamai Edge DNS](provider/akamaiedgedns.md)
|
||||
* [Amazon Route 53](provider/route53.md)
|
||||
* [AutoDNS](provider/autodns.md)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
If an issue is related to a particular provider, assign it to
|
||||
the person responsible for the provider, as listed in
|
||||
[Providers](providers.md)'s "Maintainers of
|
||||
[Providers](provider/index.md)'s "Maintainers of
|
||||
contributed providers".
|
||||
|
||||
Otherwise leave it unassigned until someone grabs it.
|
||||
|
|
@ -26,7 +26,7 @@ priority:
|
|||
1. Respond to the issue with the message below
|
||||
1. Close the issue
|
||||
|
||||
The [Providers](providers.md) page is generated
|
||||
The [Providers](provider/index.md) page is generated
|
||||
automatically from all the issues tagged `provider-request`:
|
||||
|
||||
1. "Requested providers: state=closed, tagged `provider-request`
|
||||
|
|
|
|||
|
|
@ -167,7 +167,7 @@ invalid. Perhaps you meant to specify a `-` on a command-line tool?
|
|||
|
||||
The fix is to change the `TYPE` subkey entry in `creds.json` from `-` to
|
||||
a valid service provider identifier, as listed
|
||||
in [the service provider list](providers.md).
|
||||
in [the service provider list](provider/index.md).
|
||||
|
||||
|
||||
## Using a different file name
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ D("example.com", REG_NONE, DnsProvider(DNS_BIND),
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
Modify this file to match your particular providers and domains. See [the DNSConfig docs](js.md) and [the provider docs](providers.md) for more details.
|
||||
Modify this file to match your particular providers and domains. See [the DNSConfig docs](js.md) and [the provider docs](provider/index.md) for more details.
|
||||
|
||||
Create a file called `creds.json` for storing provider configurations (API tokens and other account information).
|
||||
For example, to use both name.com and Cloudflare, you would have:
|
||||
|
|
@ -306,7 +306,7 @@ a real domain (or a test domain if you have one).
|
|||
|
||||
Set up the provider: Add the providers's definition to `dnsconfig.js`
|
||||
and list any credentials in `creds.json`. Each provider is different.
|
||||
See [the provider docs](providers.md) for
|
||||
See [the provider docs](provider/index.md) for
|
||||
specifics.
|
||||
|
||||
Edit the domain: Add the `D()` entry for the domain, or repurpose
|
||||
|
|
|
|||
|
|
@ -8,14 +8,14 @@ Want to jump right in? Follow our [quick start tutorial](getting-started.md) on
|
|||
|
||||
# Use It
|
||||
|
||||
Take advantage of the advanced features. Use macros and variables for easier updates. Upload your zones to [multiple DNS providers](providers.md).
|
||||
Take advantage of the advanced features. Use macros and variables for easier updates. Upload your zones to [multiple DNS providers](provider/index.md).
|
||||
|
||||
{% hint style="success" %}
|
||||
* Maintain your DNS data as a high-level DS, with macros, and variables for easier updates.
|
||||
* Super extensible! Plug-in architecture makes adding new DNS providers and Registrars easy!
|
||||
* Eliminate vendor lock-in. Switch DNS providers easily, any time, with full fidelity.
|
||||
* Reduce points of failure: Easily maintain dual DNS providers and easily drop one that is down.
|
||||
* Supports 35+ [DNS Providers](providers.md) including [BIND](provider/bind.md), [AWS Route 53](provider/route53.md), [Google DNS](provider/gcloud.md), and [name.com](provider/namedotcom.md).
|
||||
* Supports 35+ [DNS Providers](provider/index.md) including [BIND](provider/bind.md), [AWS Route 53](provider/route53.md), [Google DNS](provider/gcloud.md), and [name.com](provider/namedotcom.md).
|
||||
* [Apply CI/CD principles](ci-cd-gitlab.md) to DNS: Unit-tests, system-tests, automated deployment.
|
||||
* All the benefits of Git (or any VCS) for your DNS zone data. View history. Accept PRs.
|
||||
* Optimize DNS with [SPF optimizer](language-reference/domain-modifiers/SPF_BUILDER.md). Detect too many lookups. Flatten includes.
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@ A DSP stores a DNS zone's records and provides DNS service for the zone (i.e.
|
|||
answers on port 53 to queries related to the zone).
|
||||
|
||||
* `name` must match the name of an entry in `creds.json`.
|
||||
* `type` specifies a valid DNS provider type identifier listed on the [provider page](../../providers.md).
|
||||
* `type` specifies a valid DNS provider type identifier listed on the [provider page](../../provider/index.md).
|
||||
* Starting with [v3.16](../../v316.md), the type is optional. If it is absent, the `TYPE` field in `creds.json` is used instead. You can leave it out. (Thanks to JavaScript magic, you can leave it out even when there are more fields).
|
||||
* Starting with v4.0, specifying the type may be an error. Please add the `TYPE` field to `creds.json` and remove this parameter from `dnsconfig.js` to prepare.
|
||||
* `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../providers.md) for details.
|
||||
* `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../provider/index.md) for details.
|
||||
|
||||
This function will return an opaque string that should be assigned to a variable name for use in [D](D.md) directives.
|
||||
|
||||
|
|
|
|||
|
|
@ -16,10 +16,10 @@ A registrar maintains the domain's registration and delegation (i.e. the
|
|||
nameservers for the domain). DNSControl only manages the delegation.
|
||||
|
||||
* `name` must match the name of an entry in `creds.json`.
|
||||
* `type` specifies a valid DNS provider type identifier listed on the [provider page](../../providers.md).
|
||||
* `type` specifies a valid DNS provider type identifier listed on the [provider page](../../provider/index.md).
|
||||
* Starting with [v3.16](../../v316.md), the type is optional. If it is absent, the `TYPE` field in `creds.json` is used instead. You can leave it out. (Thanks to JavaScript magic, you can leave it out even when there are more fields).
|
||||
* Starting with v4.0, specifying the type may be an error. Please add the `TYPE` field to `creds.json` and remove this parameter from `dnsconfig.js` to prepare.
|
||||
* `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../providers.md) for details.
|
||||
* `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../provider/index.md) for details.
|
||||
|
||||
This function will return an opaque string that should be assigned to a variable name for use in [D](D.md) directives.
|
||||
|
||||
|
|
|
|||
196
documentation/provider/index.md
Normal file
196
documentation/provider/index.md
Normal file
|
|
@ -0,0 +1,196 @@
|
|||
# Service Providers
|
||||
|
||||
## Provider Features
|
||||
|
||||
The table below shows various features supported, or not supported by DNSControl providers.
|
||||
This table is automatically generated from metadata supplied by the provider when they register themselves inside dnscontrol.
|
||||
|
||||
An empty space may indicate the feature is not supported by a provider, or it may simply mean
|
||||
the feature has not been investigated and implemented yet. If a feature you need is missing from
|
||||
a provider that supports it, we'd love your contribution to ensure it works correctly and add it to this matrix.
|
||||
|
||||
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 | [`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-matrix-end -->
|
||||
|
||||
### Providers with "official support"
|
||||
|
||||
Official support means:
|
||||
|
||||
* New releases will block if any of these providers do not pass integration tests.
|
||||
* The DNSControl maintainers prioritize fixing bugs in these providers (though we gladly accept PRs).
|
||||
* New features will work on these providers (unless the provider does not support it).
|
||||
* StackOverflow maintains test accounts with those providers for running integration tests.
|
||||
|
||||
Providers in this category and their maintainers are:
|
||||
|
||||
|Name|Maintainer|
|
||||
|---|---|
|
||||
|[`AZURE_DNS`](provider/azure_dns.md)|@vatsalyagoel|
|
||||
|[`BIND`](provider/bind.md)|@tlimoncelli|
|
||||
|[`CLOUDFLAREAPI`](provider/cloudflareapi.md)|@tresni|
|
||||
|[`CSCGLOBAL`](provider/cscglobal.md)|@mikenz|
|
||||
|[`GCLOUD`](provider/gcloud.md)|@riyadhalnur|
|
||||
|[`MSDNS`](provider/msdns.md)|@tlimoncelli|
|
||||
|[`ROUTE53`](provider/route53.md)|@tresni|
|
||||
|
||||
### Providers with "contributor support"
|
||||
|
||||
The other providers are supported by community members, usually the
|
||||
original contributor.
|
||||
|
||||
Due to the large number of DNS providers in the world, the DNSControl
|
||||
team can not support and test all providers. Test frameworks are
|
||||
provided to help community members support their code independently.
|
||||
|
||||
Expectations of maintainers:
|
||||
|
||||
* Maintainers are expected to support their provider and/or help find a new maintainer.
|
||||
* Maintainers should set up test accounts and periodically verify that all tests pass (`pkg/js/parse_tests` and `integrationTest`).
|
||||
* Contributors are encouraged to add new tests and refine old ones. (Test-driven development is encouraged.)
|
||||
* Bugs will be referred to the maintainer or their designate.
|
||||
* Maintainers must be responsible to bug reports and PRs. If a maintainer is unresponsive for more than 2 months, we will consider disabling the provider. First we will put out a call for new maintainer. If nobody volunteers, the provider may be disabled.
|
||||
* Tom needs to know your real email address. Please email tlimoncelli at stack over flow dot com so he has it.
|
||||
|
||||
Providers in this category and their maintainers are:
|
||||
|
||||
|Name|Maintainer|
|
||||
|---|---|
|
||||
|[`AZURE_PRIVATE_DNS`](provider/azure_private_dns.md)|@matthewmgamble|
|
||||
|[`AKAMAIEDGEDNS`](provider/akamaiedgedns.md)|@edglynes|
|
||||
|[`AXFRDDNS`](provider/axfrddns.md)|@hnrgrgr|
|
||||
|[`BUNNY_DNS`](provider/bunny_dns.md)|@ppmathis|
|
||||
|[`CLOUDFLAREAPI`](provider/cloudflareapi.md)|@tresni|
|
||||
|[`CLOUDNS`](provider/cloudns.md)|@pragmaton|
|
||||
|[`CNR`](provider/cnr.md)|@KaiSchwarz-cnic|
|
||||
|[`CSCGLOBAL`](provider/cscglobal.md)|@Air-New-Zealand|
|
||||
|[`DESEC`](provider/desec.md)|@D3luxee|
|
||||
|[`DIGITALOCEAN`](provider/digitalocean.md)|@Deraen|
|
||||
|[`DNSIMPLE`](provider/dnsimple.md)|@onlyhavecans|
|
||||
|[`DNSMADEEASY`](provider/dnsmadeeasy.md)|@vojtad|
|
||||
|[`DNSOVERHTTPS`](provider/dnsoverhttps.md)|@mikenz|
|
||||
|[`DOMAINNAMESHOP`](provider/domainnameshop.md)|@SimenBai|
|
||||
|[`EASYNAME`](provider/easyname.md)|@tresni|
|
||||
|[`EXOSCALE`](provider/exoscale.md)|@pierre-emmanuelJ|
|
||||
|[`GANDI_V5`](provider/gandi_v5.md)|@TomOnTime|
|
||||
|[`GCORE`](provider/gcore.md)|@xddxdd|
|
||||
|[`HEDNS`](provider/hedns.md)|@rblenkinsopp|
|
||||
|[`HETZNER`](provider/hetzner.md)|@das7pad|
|
||||
|[`HEXONET`](provider/hexonet.md)|@KaiSchwarz-cnic|
|
||||
|[`HOSTINGDE`](provider/hostingde.md)|@membero|
|
||||
|[`HUAWEICLOUD`](provider/huaweicloud.md)|@huihuimoe|
|
||||
|[`INTERNETBS`](provider/internetbs.md)|@pragmaton|
|
||||
|[`INWX`](provider/inwx.md)|@patschi|
|
||||
|[`LINODE`](provider/linode.md)|@koesie10|
|
||||
|[`LOOPIA`](provider/loopia.md)|@systemcrash|
|
||||
|[`LUADNS`](provider/luadns.md)|@riku22|
|
||||
|[`NAMECHEAP`](provider/namecheap.md)|@willpower232|
|
||||
|[`NETCUP`](provider/netcup.md)|@kordianbruck|
|
||||
|[`NETLIFY`](provider/netlify.md)|@SphericalKat|
|
||||
|[`NS1`](provider/ns1.md)|@costasd|
|
||||
|[`OPENSRS`](provider/opensrs.md)|@philhug|
|
||||
|[`ORACLE`](provider/oracle.md)|@kallsyms|
|
||||
|[`OVH`](provider/ovh.md)|@masterzen|
|
||||
|[`PACKETFRAME`](provider/packetframe.md)|@hamptonmoore|
|
||||
|[`POWERDNS`](provider/powerdns.md)|@jpbede|
|
||||
|[`REALTIMEREGISTER`](provider/realtimeregister.md)|@PJEilers|
|
||||
|[`ROUTE53`](provider/route53.md)|@tresni|
|
||||
|[`RWTH`](provider/rwth.md)|@MisterErwin|
|
||||
|[`SAKURACLOUD`](provider/sakuracloud.md)|@ttkzw|
|
||||
|[`SOFTLAYER`](provider/softlayer.md)|@jamielennox|
|
||||
|[`TRANSIP`](provider/transip.md)|@blackshadev|
|
||||
|[`VULTR`](provider/vultr.md)|@pgaskin|
|
||||
|
||||
### Requested providers
|
||||
|
||||
We have received requests for the following providers. If you would like to contribute
|
||||
code to support this provider, we'd be glad to help in any way.
|
||||
|
||||
* [1984 Hosting](https://github.com/StackExchange/dnscontrol/issues/1251) (#1251)
|
||||
* [Alibaba Cloud DNS](https://github.com/StackExchange/dnscontrol/issues/420)(#420)
|
||||
* [Constellix (DNSMadeEasy)](https://github.com/StackExchange/dnscontrol/issues/842) (#842)
|
||||
* [CoreDNS](https://github.com/StackExchange/dnscontrol/issues/1284) (#1284)
|
||||
* [EU.ORG](https://github.com/StackExchange/dnscontrol/issues/1176) (#1176)
|
||||
* [EnCirca](https://github.com/StackExchange/dnscontrol/issues/1048) (#1048)
|
||||
* [GoDaddy](https://github.com/StackExchange/dnscontrol/issues/2596) (#2596)
|
||||
* [Imperva](https://github.com/StackExchange/dnscontrol/issues/1484) (#1484)
|
||||
* [Infoblox DNS](https://github.com/StackExchange/dnscontrol/issues/1077) (#1077)
|
||||
* [Joker.com](https://github.com/StackExchange/dnscontrol/issues/854) (#854)
|
||||
* [Plesk](https://github.com/StackExchange/dnscontrol/issues/2261) (#2261)
|
||||
* [RcodeZero](https://github.com/StackExchange/dnscontrol/issues/884) (#884)
|
||||
* [SynergyWholesale](https://github.com/StackExchange/dnscontrol/issues/1605) (#1605)
|
||||
* [UltraDNS by Neustar / CSCGlobal](https://github.com/StackExchange/dnscontrol/issues/1533) (#1533)
|
||||
|
||||
#### Q: Why are the above GitHub issues marked "closed"?
|
||||
|
||||
A: Following [the bug triage process](bug-triage.md), the request
|
||||
is closed once it is added to this list. If someone chooses to implement the
|
||||
provider, they re-open the issue.
|
||||
|
||||
#### Q: Would someone write a provider for me?
|
||||
|
||||
A: The maintainer of DNSControl does not write new providers. New providers
|
||||
are contributed by the community.
|
||||
|
||||
DNSControl tries to make writing a provider as easy as possible. DNSControl
|
||||
does most of the work for you, you only have to write code to authenticate,
|
||||
download DNS records, and perform create/modify/delete operations on those
|
||||
records. Please read the directions for [Writing new DNS
|
||||
providers](writing-providers.md). The DNS maintainers will gladly
|
||||
coach you through the process.
|
||||
|
|
@ -1,196 +0,0 @@
|
|||
# Service Providers
|
||||
|
||||
## Provider Features
|
||||
|
||||
The table below shows various features supported, or not supported by DNSControl providers.
|
||||
This table is automatically generated from metadata supplied by the provider when they register themselves inside dnscontrol.
|
||||
|
||||
An empty space may indicate the feature is not supported by a provider, or it may simply mean
|
||||
the feature has not been investigated and implemented yet. If a feature you need is missing from
|
||||
a provider that supports it, we'd love your contribution to ensure it works correctly and add it to this matrix.
|
||||
|
||||
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 | [`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`](provider/akamaiedgedns.md) | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❔ | ✅ | ❌ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`AUTODNS`](provider/autodns.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ❔ | ✅ | ❌ | ❔ | ❌ | ❌ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`AXFRDDNS`](provider/axfrddns.md) | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
|
||||
| [`AZURE_DNS`](provider/azure_dns.md) | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❔ | ❔ | ❌ | ❌ | ✅ | ❔ | ✅ | ❌ | ❔ | ❌ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`AZURE_PRIVATE_DNS`](provider/azure_private_dns.md) | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❔ | ❔ | ❌ | ❌ | ✅ | ❔ | ✅ | ❌ | ❔ | ❌ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`BIND`](provider/bind.md) | ✅ | ✅ | ❌ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||
| [`BUNNY_DNS`](provider/bunny_dns.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❔ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ❔ | ❌ | ❌ | ❌ | ❔ | ❔ | ❌ | ✅ | ✅ |
|
||||
| [`CLOUDFLAREAPI`](provider/cloudflareapi.md) | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❔ | ✅ | ❌ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ | ✅ |
|
||||
| [`CLOUDNS`](provider/cloudns.md) | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ | ❔ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ✅ | ❔ | ❔ | ✅ | ✅ |
|
||||
| [`CNR`](provider/cnr.md) | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ❔ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ❔ | ❌ | ❌ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`CSCGLOBAL`](provider/cscglobal.md) | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ |
|
||||
| [`DESEC`](provider/desec.md) | ❌ | ✅ | ❌ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ❔ | ❔ | ✅ | ❔ | ✅ | ✅ |
|
||||
| [`DIGITALOCEAN`](provider/digitalocean.md) | ❌ | ✅ | ❌ | ✅ | ❔ | ✅ | ❔ | ❔ | ❌ | ❔ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ |
|
||||
| [`DNSIMPLE`](provider/dnsimple.md) | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❔ | ❌ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ❌ | ❌ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`DNSMADEEASY`](provider/dnsmadeeasy.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❔ | ❔ | ❌ | ❔ | ✅ | ❔ | ✅ | ❌ | ❔ | ❌ | ❌ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`DNSOVERHTTPS`](provider/dnsoverhttps.md) | ❌ | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`DOMAINNAMESHOP`](provider/domainnameshop.md) | ❌ | ✅ | ❌ | ❌ | ❔ | ✅ | ❌ | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ |
|
||||
| [`DYNADOT`](provider/dynadot.md) | ❌ | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`EASYNAME`](provider/easyname.md) | ❌ | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`EXOSCALE`](provider/exoscale.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❔ | ❔ | ❌ | ❔ | ✅ | ❔ | ✅ | ❔ | ❔ | ❌ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ❔ |
|
||||
| [`GANDI_V5`](provider/gandi_v5.md) | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❔ | ❔ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ |
|
||||
| [`GCLOUD`](provider/gcloud.md) | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❔ | ✅ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`GCORE`](provider/gcore.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ❔ | ✅ | ❌ | ✅ | ❌ | ❌ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`HEDNS`](provider/hedns.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`HETZNER`](provider/hetzner.md) | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`HEXONET`](provider/hexonet.md) | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ❔ | ✅ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ❔ |
|
||||
| [`HOSTINGDE`](provider/hostingde.md) | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❔ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`HUAWEICLOUD`](provider/huaweicloud.md) | ❌ | ✅ | ❌ | ❔ | ❌ | ✅ | ❔ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`INTERNETBS`](provider/internetbs.md) | ❌ | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`INWX`](provider/inwx.md) | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❔ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`LINODE`](provider/linode.md) | ❌ | ✅ | ❌ | ❌ | ❔ | ✅ | ❔ | ❔ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`LOOPIA`](provider/loopia.md) | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❔ | ✅ | ❌ | ❔ | ❔ | ❔ | ✅ | ❌ | ✅ |
|
||||
| [`LUADNS`](provider/luadns.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❔ | ❔ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`MSDNS`](provider/msdns.md) | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❔ | ❔ | ❌ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`MYTHICBEASTS`](provider/mythicbeasts.md) | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❔ | ❔ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ❌ | ✅ |
|
||||
| [`NAMECHEAP`](provider/namecheap.md) | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❔ | ❔ | ❌ | ❔ | ❌ | ❔ | ❌ | ❔ | ❔ | ❌ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`NAMEDOTCOM`](provider/namedotcom.md) | ❌ | ✅ | ✅ | ❌ | ✅ | ❔ | ❔ | ❔ | ❌ | ❔ | ❌ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ✅ | ❌ | ✅ |
|
||||
| [`NETCUP`](provider/netcup.md) | ❌ | ✅ | ❌ | ❌ | ❔ | ✅ | ❔ | ❔ | ❌ | ❔ | ❌ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ❌ |
|
||||
| [`NETLIFY`](provider/netlify.md) | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❔ | ❌ | ❌ | ❌ | ❔ | ✅ | ❌ | ❔ | ❌ | ❌ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`NS1`](provider/ns1.md) | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❔ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`OPENSRS`](provider/opensrs.md) | ❌ | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`ORACLE`](provider/oracle.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❔ | ❔ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ❌ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`OVH`](provider/ovh.md) | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ❌ | ✅ |
|
||||
| [`PACKETFRAME`](provider/packetframe.md) | ❌ | ✅ | ❌ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ❔ |
|
||||
| [`PORKBUN`](provider/porkbun.md) | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❔ | ✅ | ❌ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`POWERDNS`](provider/powerdns.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ❔ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`REALTIMEREGISTER`](provider/realtimeregister.md) | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❔ | ✅ | ❌ | ❌ | ❔ | ❔ | ❌ | ✅ | ✅ |
|
||||
| [`ROUTE53`](provider/route53.md) | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❔ | ❔ | ❌ | ❔ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||
| [`RWTH`](provider/rwth.md) | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❔ | ❔ | ❌ | ❌ | ✅ | ❔ | ✅ | ✅ | ❔ | ❌ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ |
|
||||
| [`SAKURACLOUD`](provider/sakuracloud.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
|
||||
| [`SOFTLAYER`](provider/softlayer.md) | ❌ | ✅ | ❌ | ❌ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❔ |
|
||||
| [`TRANSIP`](provider/transip.md) | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ |
|
||||
| [`VULTR`](provider/vultr.md) | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❔ | ❔ | ❌ | ❔ | ❌ | ❔ | ✅ | ✅ | ❔ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ |
|
||||
<!-- provider-matrix-end -->
|
||||
|
||||
### Providers with "official support"
|
||||
|
||||
Official support means:
|
||||
|
||||
* New releases will block if any of these providers do not pass integration tests.
|
||||
* The DNSControl maintainers prioritize fixing bugs in these providers (though we gladly accept PRs).
|
||||
* New features will work on these providers (unless the provider does not support it).
|
||||
* StackOverflow maintains test accounts with those providers for running integration tests.
|
||||
|
||||
Providers in this category and their maintainers are:
|
||||
|
||||
|Name|Maintainer|
|
||||
|---|---|
|
||||
|[`AZURE_DNS`](provider/azure_dns.md)|@vatsalyagoel|
|
||||
|[`BIND`](provider/bind.md)|@tlimoncelli|
|
||||
|[`CLOUDFLAREAPI`](provider/cloudflareapi.md)|@tresni|
|
||||
|[`CSCGLOBAL`](provider/cscglobal.md)|@mikenz|
|
||||
|[`GCLOUD`](provider/gcloud.md)|@riyadhalnur|
|
||||
|[`MSDNS`](provider/msdns.md)|@tlimoncelli|
|
||||
|[`ROUTE53`](provider/route53.md)|@tresni|
|
||||
|
||||
### Providers with "contributor support"
|
||||
|
||||
The other providers are supported by community members, usually the
|
||||
original contributor.
|
||||
|
||||
Due to the large number of DNS providers in the world, the DNSControl
|
||||
team can not support and test all providers. Test frameworks are
|
||||
provided to help community members support their code independently.
|
||||
|
||||
Expectations of maintainers:
|
||||
|
||||
* Maintainers are expected to support their provider and/or help find a new maintainer.
|
||||
* Maintainers should set up test accounts and periodically verify that all tests pass (`pkg/js/parse_tests` and `integrationTest`).
|
||||
* Contributors are encouraged to add new tests and refine old ones. (Test-driven development is encouraged.)
|
||||
* Bugs will be referred to the maintainer or their designate.
|
||||
* Maintainers must be responsible to bug reports and PRs. If a maintainer is unresponsive for more than 2 months, we will consider disabling the provider. First we will put out a call for new maintainer. If nobody volunteers, the provider may be disabled.
|
||||
* Tom needs to know your real email address. Please email tlimoncelli at stack over flow dot com so he has it.
|
||||
|
||||
Providers in this category and their maintainers are:
|
||||
|
||||
|Name|Maintainer|
|
||||
|---|---|
|
||||
|[`AZURE_PRIVATE_DNS`](provider/azure_private_dns.md)|@matthewmgamble|
|
||||
|[`AKAMAIEDGEDNS`](provider/akamaiedgedns.md)|@edglynes|
|
||||
|[`AXFRDDNS`](provider/axfrddns.md)|@hnrgrgr|
|
||||
|[`BUNNY_DNS`](provider/bunny_dns.md)|@ppmathis|
|
||||
|[`CLOUDFLAREAPI`](provider/cloudflareapi.md)|@tresni|
|
||||
|[`CLOUDNS`](provider/cloudns.md)|@pragmaton|
|
||||
|[`CNR`](provider/cnr.md)|@KaiSchwarz-cnic|
|
||||
|[`CSCGLOBAL`](provider/cscglobal.md)|@Air-New-Zealand|
|
||||
|[`DESEC`](provider/desec.md)|@D3luxee|
|
||||
|[`DIGITALOCEAN`](provider/digitalocean.md)|@Deraen|
|
||||
|[`DNSIMPLE`](provider/dnsimple.md)|@onlyhavecans|
|
||||
|[`DNSMADEEASY`](provider/dnsmadeeasy.md)|@vojtad|
|
||||
|[`DNSOVERHTTPS`](provider/dnsoverhttps.md)|@mikenz|
|
||||
|[`DOMAINNAMESHOP`](provider/domainnameshop.md)|@SimenBai|
|
||||
|[`EASYNAME`](provider/easyname.md)|@tresni|
|
||||
|[`EXOSCALE`](provider/exoscale.md)|@pierre-emmanuelJ|
|
||||
|[`GANDI_V5`](provider/gandi_v5.md)|@TomOnTime|
|
||||
|[`GCORE`](provider/gcore.md)|@xddxdd|
|
||||
|[`HEDNS`](provider/hedns.md)|@rblenkinsopp|
|
||||
|[`HETZNER`](provider/hetzner.md)|@das7pad|
|
||||
|[`HEXONET`](provider/hexonet.md)|@KaiSchwarz-cnic|
|
||||
|[`HOSTINGDE`](provider/hostingde.md)|@membero|
|
||||
|[`HUAWEICLOUD`](provider/huaweicloud.md)|@huihuimoe|
|
||||
|[`INTERNETBS`](provider/internetbs.md)|@pragmaton|
|
||||
|[`INWX`](provider/inwx.md)|@patschi|
|
||||
|[`LINODE`](provider/linode.md)|@koesie10|
|
||||
|[`LOOPIA`](provider/loopia.md)|@systemcrash|
|
||||
|[`LUADNS`](provider/luadns.md)|@riku22|
|
||||
|[`NAMECHEAP`](provider/namecheap.md)|@willpower232|
|
||||
|[`NETCUP`](provider/netcup.md)|@kordianbruck|
|
||||
|[`NETLIFY`](provider/netlify.md)|@SphericalKat|
|
||||
|[`NS1`](provider/ns1.md)|@costasd|
|
||||
|[`OPENSRS`](provider/opensrs.md)|@philhug|
|
||||
|[`ORACLE`](provider/oracle.md)|@kallsyms|
|
||||
|[`OVH`](provider/ovh.md)|@masterzen|
|
||||
|[`PACKETFRAME`](provider/packetframe.md)|@hamptonmoore|
|
||||
|[`POWERDNS`](provider/powerdns.md)|@jpbede|
|
||||
|[`REALTIMEREGISTER`](provider/realtimeregister.md)|@PJEilers|
|
||||
|[`ROUTE53`](provider/route53.md)|@tresni|
|
||||
|[`RWTH`](provider/rwth.md)|@MisterErwin|
|
||||
|[`SAKURACLOUD`](provider/sakuracloud.md)|@ttkzw|
|
||||
|[`SOFTLAYER`](provider/softlayer.md)|@jamielennox|
|
||||
|[`TRANSIP`](provider/transip.md)|@blackshadev|
|
||||
|[`VULTR`](provider/vultr.md)|@pgaskin|
|
||||
|
||||
### Requested providers
|
||||
|
||||
We have received requests for the following providers. If you would like to contribute
|
||||
code to support this provider, we'd be glad to help in any way.
|
||||
|
||||
* [1984 Hosting](https://github.com/StackExchange/dnscontrol/issues/1251) (#1251)
|
||||
* [Alibaba Cloud DNS](https://github.com/StackExchange/dnscontrol/issues/420)(#420)
|
||||
* [Constellix (DNSMadeEasy)](https://github.com/StackExchange/dnscontrol/issues/842) (#842)
|
||||
* [CoreDNS](https://github.com/StackExchange/dnscontrol/issues/1284) (#1284)
|
||||
* [EU.ORG](https://github.com/StackExchange/dnscontrol/issues/1176) (#1176)
|
||||
* [EnCirca](https://github.com/StackExchange/dnscontrol/issues/1048) (#1048)
|
||||
* [GoDaddy](https://github.com/StackExchange/dnscontrol/issues/2596) (#2596)
|
||||
* [Imperva](https://github.com/StackExchange/dnscontrol/issues/1484) (#1484)
|
||||
* [Infoblox DNS](https://github.com/StackExchange/dnscontrol/issues/1077) (#1077)
|
||||
* [Joker.com](https://github.com/StackExchange/dnscontrol/issues/854) (#854)
|
||||
* [Plesk](https://github.com/StackExchange/dnscontrol/issues/2261) (#2261)
|
||||
* [RcodeZero](https://github.com/StackExchange/dnscontrol/issues/884) (#884)
|
||||
* [SynergyWholesale](https://github.com/StackExchange/dnscontrol/issues/1605) (#1605)
|
||||
* [UltraDNS by Neustar / CSCGlobal](https://github.com/StackExchange/dnscontrol/issues/1533) (#1533)
|
||||
|
||||
#### Q: Why are the above GitHub issues marked "closed"?
|
||||
|
||||
A: Following [the bug triage process](bug-triage.md), the request
|
||||
is closed once it is added to this list. If someone chooses to implement the
|
||||
provider, they re-open the issue.
|
||||
|
||||
#### Q: Would someone write a provider for me?
|
||||
|
||||
A: The maintainer of DNSControl does not write new providers. New providers
|
||||
are contributed by the community.
|
||||
|
||||
DNSControl tries to make writing a provider as easy as possible. DNSControl
|
||||
does most of the work for you, you only have to write code to authenticate,
|
||||
download DNS records, and perform create/modify/delete operations on those
|
||||
records. Please read the directions for [Writing new DNS
|
||||
providers](writing-providers.md). The DNS maintainers will gladly
|
||||
coach you through the process.
|
||||
|
|
@ -8,7 +8,7 @@ and the system takes care of the rest.
|
|||
Please do note that if you submit a new provider you will be
|
||||
assigned bugs related to the provider in the future (unless
|
||||
you designate someone else as the maintainer). More details
|
||||
[here](providers.md).
|
||||
[here](provider/index.md).
|
||||
|
||||
Please follow the [DNSControl Code Style Guide](styleguide-code.md) and the [DNSControl Documentation Style Guide](styleguide-doc.md).
|
||||
|
||||
|
|
@ -219,7 +219,7 @@ an automated way to test for this bug. The manual steps are here in
|
|||
* Add the name of the provider to the PROVIDERS list.
|
||||
* Edit `documentation/providers.md`:
|
||||
* Remove the provider from the `Requested providers` list (near the end of the doc) (if needed).
|
||||
* Add the new provider to the [Providers with "contributor support"](providers.md#providers-with-contributor-support) section.
|
||||
* Add the new provider to the [Providers with "contributor support"](provider/index.md#providers-with-contributor-support) section.
|
||||
* Edit `documentation/SUMMARY.md`:
|
||||
* Add the provider to the "Providers" list.
|
||||
* Create `documentation/provider/PROVIDERNAME.md`:
|
||||
|
|
@ -367,7 +367,7 @@ These are the things we'll be checking when you submit the PR. Please try to co
|
|||
4. Verify you're using the most recent version of anything you import. (See [Step 12](#step-12-dependencies))
|
||||
5. Re-run the [integration test](#step-7-integration-test) one last time.
|
||||
* Post the results as a comment to your PR.
|
||||
6. Re-read the [maintainer's responsibilities](providers.md#providers-with-contributor-support) bullet list. By submitting a provider you agree to maintain it, respond to bugs, periodically re-run the integration test to verify nothing has broken, and if we don't hear from you for 2 months we may disable the provider.
|
||||
6. Re-read the [maintainer's responsibilities](provider/index.md#providers-with-contributor-support) bullet list. By submitting a provider you agree to maintain it, respond to bugs, periodically re-run the integration test to verify nothing has broken, and if we don't hear from you for 2 months we may disable the provider.
|
||||
|
||||
## Step 15: Submit a PR
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue