mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
@@ -30,6 +30,7 @@ The `ActiveDirectory_PS` provider reads an `ADServer` setting from `creds.json`
|
||||
```js
|
||||
{
|
||||
"activedir": {
|
||||
"TYPE": "ACTIVEDIRECTORY_PS",
|
||||
"ADServer": "ny-dc01"
|
||||
}
|
||||
}
|
||||
@@ -41,6 +42,7 @@ If you want to modify the "fake powershell" mode details, you can set them in th
|
||||
```js
|
||||
{
|
||||
"activedir": {
|
||||
"TYPE": "ACTIVEDIRECTORY_PS",
|
||||
"ADServer": "ny-dc01",
|
||||
"fakeps": "true",
|
||||
"pslog": "powershell.log",
|
||||
@@ -53,11 +55,11 @@ If you want to modify the "fake powershell" mode details, you can set them in th
|
||||
An example DNS configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE')
|
||||
var ACTIVEDIRECTORY = NewDnsProvider("activedir", "ACTIVEDIRECTORY_PS");
|
||||
var REG_NONE = NewRegistrar("none", "NONE")
|
||||
var DSP_ACTIVEDIRECTORY = NewDnsProvider("activedir", "ACTIVEDIRECTORY_PS");
|
||||
|
||||
D('example.tld', REG_NONE, DnsProvider(ACTIVEDIRECTORY),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_ACTIVEDIRECTORY),
|
||||
A("test", "1.2.3.4")
|
||||
)
|
||||
```
|
||||
|
||||
|
||||
@@ -24,10 +24,13 @@ the required credentials.
|
||||
|
||||
## Configuration
|
||||
|
||||
In the credentials file (creds.json), you must provide the following:
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `AKAMAIEDGEDNS` along with the authentication fields.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
"akamaiedgedns": {
|
||||
"TYPE": "AKAMAIEDGEDNS",
|
||||
"client_secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
||||
"host": "akaa-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.xxxx.akamaiapis.net",
|
||||
"access_token": "akaa-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
||||
@@ -60,17 +63,17 @@ NAMESERVER_TTL(86400)
|
||||
|
||||
modifier to the dnscontrol.js D() function so that DNSControl does not change the TTL of the authoritative NS records.
|
||||
|
||||
Example 'dnsconfig.js':
|
||||
Example `dnsconfig.js`:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE');
|
||||
var DNS_AKAMAIEDGEDNS = NewDnsProvider('akamaiedgedns', 'AKAMAIEDGEDNS');
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_AKAMAIEDGEDNS = NewDnsProvider("akamaiedgedns");
|
||||
|
||||
D('example.com', REG_NONE, DnsProvider(DNS_AKAMAIEDGEDNS),
|
||||
D("example.com", REG_NONE, DnsProvider(DSP_AKAMAIEDGEDNS),
|
||||
NAMESERVER_TTL(86400),
|
||||
AUTODNSSEC_ON,
|
||||
AKAMAICDN("@", "www.preconfigured.edgesuite.net", TTL(20)),
|
||||
A('foo','1.2.3.4')
|
||||
A("foo", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -9,11 +9,15 @@ jsId: AUTODNS
|
||||
|
||||
## Configuration
|
||||
|
||||
In your credentials file, you must provide [username, password and a context](https://help.internetx.com/display/APIXMLEN/Authentication#Authentication-AuthenticationviaCredentials(username/password/context)).
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `AUTODNS` along with
|
||||
[username, password and a context](https://help.internetx.com/display/APIXMLEN/Authentication#Authentication-AuthenticationviaCredentials(username/password/context)).
|
||||
|
||||
Example:
|
||||
|
||||
{% highlight json %}
|
||||
{
|
||||
"autodns": {
|
||||
"TYPE": "AUTODNS",
|
||||
"username": "autodns.service-account@example.com",
|
||||
"password": "[***]",
|
||||
"context": "33004"
|
||||
@@ -23,13 +27,13 @@ In your credentials file, you must provide [username, password and a context](ht
|
||||
|
||||
## Usage
|
||||
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
{% highlight js %}
|
||||
var REG_NONE = NewRegistrar('none', 'NONE');
|
||||
var AUTODNS = NewDnsProvider("autodns", "AUTODNS");
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_AUTODNS = NewDnsProvider("autodns");
|
||||
|
||||
D("example.tld", REG_NONE, DnsProvider(AUTODNS),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_AUTODNS),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
{%endhighlight%}
|
||||
|
||||
@@ -18,6 +18,8 @@ and [Yadifa](https://www.yadifa.eu/home).
|
||||
|
||||
## Configuration
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `AXFRDDNS`.
|
||||
|
||||
### Connection modes
|
||||
|
||||
Zone transfers default to TCP, DDNS updates default to UDP when
|
||||
@@ -41,10 +43,11 @@ For instance, your `creds.json` might looks like:
|
||||
|
||||
```json
|
||||
{
|
||||
"axfrddns": {
|
||||
"transfer-key": "hmac-sha256:transfer-key-id:Base64EncodedSecret=",
|
||||
"update-key": "hmac-sha256:update-key-id:AnotherSecret="
|
||||
}
|
||||
"axfrddns": {
|
||||
"TYPE": "AXFRDDNS",
|
||||
"transfer-key": "hmac-sha256:transfer-key-id:Base64EncodedSecret=",
|
||||
"update-key": "hmac-sha256:update-key-id:AnotherSecret="
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -57,8 +60,8 @@ If distinct zones require distinct keys, you will need to instantiate the
|
||||
provider once for each key:
|
||||
|
||||
```js
|
||||
var AXFRDDNS_A = NewDnsProvider('axfrddns-a', 'AXFRDDNS'}
|
||||
var AXFRDDNS_B = NewDnsProvider('axfrddns-b', 'AXFRDDNS'}
|
||||
var DSP_AXFRDDNS_A = NewDnsProvider("axfrddns-a"}
|
||||
var DSP_AXFRDDNS_B = NewDnsProvider("axfrddns-b"}
|
||||
```
|
||||
|
||||
And update `creds.json` accordingly:
|
||||
@@ -86,13 +89,14 @@ This list can be provided either as metadata or in `creds.json`. Only
|
||||
the later allows `get-zones` to work properly.
|
||||
|
||||
```js
|
||||
var AXFRDDNS = NewDnsProvider('axfrddns', 'AXFRDDNS',
|
||||
'default_ns': [
|
||||
'ns1.example.tld.',
|
||||
'ns2.example.tld.',
|
||||
'ns3.example.tld.',
|
||||
'ns4.example.tld.'
|
||||
]
|
||||
var DSP_AXFRDDNS = NewDnsProvider("axfrddns", {
|
||||
"default_ns": [
|
||||
"ns1.example.tld.",
|
||||
"ns2.example.tld.",
|
||||
"ns3.example.tld.",
|
||||
"ns4.example.tld."
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -1,26 +1,32 @@
|
||||
---
|
||||
name: Azure DNS
|
||||
layout: default
|
||||
jsId: AZURE_DNS
|
||||
name: Azure DNS
|
||||
layout: default
|
||||
jsId: AZURE_DNS
|
||||
---
|
||||
|
||||
# Azure DNS Provider
|
||||
|
||||
You can specify the API credentials in the credentials json file:
|
||||
## Configuration
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `AZURE_DNS`
|
||||
along with the API credentials.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"azuredns_main":{
|
||||
"SubscriptionID": "AZURE_SUBSCRIPTION_ID",
|
||||
"ResourceGroup": "AZURE_RESOURCE_GROUP",
|
||||
"TenantID": "AZURE_TENANT_ID",
|
||||
"ClientID": "AZURE_CLIENT_ID",
|
||||
"ClientSecret": "AZURE_CLIENT_SECRET",
|
||||
}
|
||||
"azuredns_main": {
|
||||
"TYPE": "AZURE_DNS",
|
||||
"SubscriptionID": "AZURE_SUBSCRIPTION_ID",
|
||||
"ResourceGroup": "AZURE_RESOURCE_GROUP",
|
||||
"TenantID": "AZURE_TENANT_ID"
|
||||
"ClientID": "AZURE_CLIENT_ID",
|
||||
"ClientSecret": "AZURE_CLIENT_SECRET",
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
You can also use environment variables, but this is discouraged, unless your environment provides them already.
|
||||
You can also use environment variables:
|
||||
|
||||
```bash
|
||||
export AZURE_SUBSCRIPTION_ID=XXXXXXXXX
|
||||
@@ -32,13 +38,14 @@ export AZURE_CLIENT_SECRET=BBBBBBBBB
|
||||
|
||||
```json
|
||||
{
|
||||
"azuredns_main":{
|
||||
"SubscriptionID": "$AZURE_SUBSCRIPTION_ID",
|
||||
"ResourceGroup": "$AZURE_RESOURCE_GROUP",
|
||||
"TenantID": "$AZURE_TENANT_ID",
|
||||
"ClientID": "$AZURE_CLIENT_ID",
|
||||
"ClientSecret": "$AZURE_CLIENT_SECRET",
|
||||
}
|
||||
"azuredns_main": {
|
||||
"TYPE": "AZURE_DNS",
|
||||
"SubscriptionID": "$AZURE_SUBSCRIPTION_ID",
|
||||
"ResourceGroup": "$AZURE_RESOURCE_GROUP",
|
||||
"ClientID": "$AZURE_CLIENT_ID",
|
||||
"TenantID": "$AZURE_TENANT_ID"
|
||||
"ClientSecret": "$AZURE_CLIENT_SECRET",
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -46,14 +53,14 @@ export AZURE_CLIENT_SECRET=BBBBBBBBB
|
||||
This provider does not recognize any special metadata fields unique to Azure DNS.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none','NONE');
|
||||
var ADNS = NewDnsProvider('azuredns_main', 'AZURE_DNS');
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_AZURE_MAIN = NewDnsProvider("azuredns_main");
|
||||
|
||||
D('example.tld', REG_NONE, DnsProvider(ADNS),
|
||||
A('test','1.2.3.4')
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_AZURE_MAIN),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -5,46 +5,61 @@ layout: default
|
||||
jsId: BIND
|
||||
---
|
||||
# BIND Provider
|
||||
This provider maintains a directory with a collection of .zone files.
|
||||
|
||||
This provider maintains a directory with a collection of .zone files
|
||||
as appropriate for ISC BIND, and other systems that use the RFC 1035
|
||||
zone-file format.
|
||||
|
||||
This provider does not generate or update the named.conf file, nor does it deploy the .zone files to the BIND master.
|
||||
Both of those tasks are different at each site, so they are best done by a locally-written script.
|
||||
|
||||
|
||||
## Configuration
|
||||
The BIND provider does not require anything in `creds.json`. However
|
||||
you can specify a `directory` where the provider will look for and create zone files. The default is the `zones` directory (in the current directory).
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `BIND`.
|
||||
|
||||
Optional fields include:
|
||||
|
||||
* `directory`: Location of the zone files. Default: `zones` (in the current directory).
|
||||
* `filenameformat`: The formula used to generate the zone filenames. The default is usually sufficient. Default: `"%U.zone"`
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"bind": {
|
||||
"directory": "myzones",
|
||||
"filenameformat": "%U.zone" << The default
|
||||
"TYPE": "BIND",
|
||||
"directory": "myzones"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
The BIND accepts some optional metadata via your DNS config when you create the provider:
|
||||
## Meta configuration
|
||||
|
||||
This provider accepts some optional metadata in the NewDnsProvider() call.
|
||||
|
||||
* `default_soa`: If no SOA record exists in a zone file, one will be created. The values of the new SOA are specified here.
|
||||
* `default_ns`: Inject these NS records into the zone.
|
||||
|
||||
In this example we set the default SOA settings and NS records.
|
||||
|
||||
```js
|
||||
var BIND = NewDnsProvider('bind', 'BIND', {
|
||||
'default_soa': {
|
||||
'master': 'ns1.example.tld.',
|
||||
'mbox': 'sysadmin.example.tld.',
|
||||
'refresh': 3600,
|
||||
'retry': 600,
|
||||
'expire': 604800,
|
||||
'minttl': 1440,
|
||||
},
|
||||
'default_ns': [
|
||||
'ns1.example.tld.',
|
||||
'ns2.example.tld.',
|
||||
'ns3.example.tld.',
|
||||
'ns4.example.tld.'
|
||||
]
|
||||
var DSP_BIND = NewDnsProvider("bind", {
|
||||
"default_soa": {
|
||||
"master": "ns1.example.tld.",
|
||||
"mbox": "sysadmin.example.tld.",
|
||||
"refresh": 3600,
|
||||
"retry": 600,
|
||||
"expire": 604800,
|
||||
"minttl": 1440,
|
||||
},
|
||||
"default_ns": [
|
||||
"ns1.example.tld.",
|
||||
"ns2.example.tld.",
|
||||
"ns3.example.tld.",
|
||||
"ns4.example.tld."
|
||||
]
|
||||
})
|
||||
```
|
||||
|
||||
@@ -64,6 +79,8 @@ There is an effort to make SOA records handled like A, CNAME, and other records.
|
||||
|
||||
# FYI: SOA serial numbers
|
||||
|
||||
DNSControl maintains beautiful zone serial numbers.
|
||||
|
||||
DNSControl tries to maintain the serial number as yyyymmddvv. The algorithm for increasing the serial number is to select the max of (current serial + 1) and (yyyymmdd00). If you use a number larger than today's date (say, 2099000099) DNSControl will simply increment it forever.
|
||||
|
||||
The good news is that DNSControl is smart enough to only increment a zone's serial number if something in the zone changed. It does not increment the serial number just because DNSControl ran.
|
||||
@@ -74,8 +91,8 @@ DNSControl does not handle special serial number math such as "looping through z
|
||||
# filenameformat
|
||||
|
||||
The `filenameformat` parameter specifies the file name to be used when
|
||||
writing the zone file. The default is acceptable in most cases: the
|
||||
name as specified in the `D()` function, plus ".zone".
|
||||
writing the zone file. The default (`%U.zone`) is acceptable in most cases: the
|
||||
file name is the name as specified in the `D()` function plus ".zone".
|
||||
|
||||
The filenameformat is a string with a few printf-like `%` verbs:
|
||||
|
||||
@@ -117,6 +134,5 @@ dnscontrol get-zones --format=nameonly - BIND all
|
||||
|
||||
If `filenameformat` is defined, `dnscontrol` makes an guess at which
|
||||
filenames are zones but doesn't try to hard to get it right, which is
|
||||
mathematically impossible in all cases. Feel free to file an issue if
|
||||
mathematically impossible in some cases. Feel free to file an issue if
|
||||
your format string doesn't work. I love a challenge!
|
||||
|
||||
|
||||
@@ -15,6 +15,27 @@ This is the provider for [Cloudflare](https://www.cloudflare.com/).
|
||||
|
||||
## Configuration
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `CLOUDFLAREAPI`.
|
||||
|
||||
Optional fields include:
|
||||
|
||||
* `accountid` and `apitoken`: Authentication information
|
||||
* `apikey` and `apiuser`: Old-style authentication
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"cloudflare": {
|
||||
"TYPE": "CLOUDFLAREAPI",
|
||||
"accountid": "your-cloudflare-account-id",
|
||||
"apitoken": "your-cloudflare-api-token"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
# Authentication
|
||||
|
||||
The Cloudflare API supports two different authentication methods.
|
||||
|
||||
The recommended (newer) method is to
|
||||
@@ -25,8 +46,9 @@ This method is enabled by setting the "apitoken" value in `creds.json`:
|
||||
```json
|
||||
{
|
||||
"cloudflare": {
|
||||
"apitoken": "your-cloudflare-api-token",
|
||||
"accountid": "your-cloudflare-account-id"
|
||||
"TYPE": "CLOUDFLAREAPI",
|
||||
"accountid": "your-cloudflare-account-id",
|
||||
"apitoken": "your-cloudflare-api-token"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -48,16 +70,17 @@ The other (older, not recommended) method is to
|
||||
provide your Cloudflare API username and access key.
|
||||
This key is available under "My Settings".
|
||||
|
||||
This method is not recommended because these credentials give DNSControl access to the entire Cloudflare API.
|
||||
This method is not recommended because these credentials give DNSControl access to everything (think of it as "root" for your account).
|
||||
|
||||
This method is enabled by setting the "apikey" and "apiuser" values in `creds.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"cloudflare": {
|
||||
"TYPE": "CLOUDFLAREAPI",
|
||||
"accountid": "your-cloudflare-account-id",
|
||||
"apikey": "your-cloudflare-api-key",
|
||||
"apiuser": "your-cloudflare-email-address",
|
||||
"accountid": "your-cloudflare-account-id"
|
||||
"apiuser": "your-cloudflare-email-address"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -72,15 +95,19 @@ The "accountid" is found in the Cloudflare portal ("Account ID") on the DNS page
|
||||
```json
|
||||
{
|
||||
"cloudflare": {
|
||||
"apitoken": "...",
|
||||
"TYPE": "CLOUDFLAREAPI",
|
||||
"accountid": "your-cloudflare-account-id",
|
||||
"apitoken": "..."
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Older `creds.json` files that do not have accountid set may work for now, but not in the future.
|
||||
|
||||
## Metadata
|
||||
## Meta configuration
|
||||
|
||||
This provider accepts some optional metadata:
|
||||
|
||||
Record level metadata available:
|
||||
* `cloudflare_proxy` ("on", "off", or "full")
|
||||
|
||||
@@ -115,54 +142,54 @@ the following aliases are *pre-defined*:
|
||||
|
||||
```js
|
||||
// Meta settings for individual records.
|
||||
var CF_PROXY_OFF = {'cloudflare_proxy': 'off'}; // Proxy disabled.
|
||||
var CF_PROXY_ON = {'cloudflare_proxy': 'on'}; // Proxy enabled.
|
||||
var CF_PROXY_FULL = {'cloudflare_proxy': 'full'}; // Proxy+Railgun enabled.
|
||||
var CF_PROXY_OFF = {"cloudflare_proxy": "off"}; // Proxy disabled.
|
||||
var CF_PROXY_ON = {"cloudflare_proxy": "on"}; // Proxy enabled.
|
||||
var CF_PROXY_FULL = {"cloudflare_proxy": "full"}; // Proxy+Railgun enabled.
|
||||
// Per-domain meta settings:
|
||||
// Proxy default off for entire domain (the default):
|
||||
var CF_PROXY_DEFAULT_OFF = {'cloudflare_proxy_default': 'off'};
|
||||
var CF_PROXY_DEFAULT_OFF = {"cloudflare_proxy_default": "off"};
|
||||
// Proxy default on for entire domain:
|
||||
var CF_PROXY_DEFAULT_ON = {'cloudflare_proxy_default': 'on'};
|
||||
var CF_PROXY_DEFAULT_ON = {"cloudflare_proxy_default": "on"};
|
||||
// UniversalSSL off for entire domain:
|
||||
var CF_UNIVERSALSSL_OFF = { cloudflare_universalssl: 'off' };
|
||||
var CF_UNIVERSALSSL_OFF = { cloudflare_universalssl: "off" };
|
||||
// UniversalSSL on for entire domain:
|
||||
var CF_UNIVERSALSSL_ON = { cloudflare_universalssl: 'on' };
|
||||
var CF_UNIVERSALSSL_ON = { cloudflare_universalssl: "on" };
|
||||
```
|
||||
|
||||
The following example shows how to set meta variables with and without aliases:
|
||||
|
||||
```js
|
||||
D('example.tld', REG_NONE, DnsProvider(CLOUDFLARE),
|
||||
A('www1','1.2.3.11', CF_PROXY_ON), // turn proxy ON.
|
||||
A('www2','1.2.3.12', CF_PROXY_OFF), // default is OFF, this is a no-op.
|
||||
A('www3','1.2.3.13', {'cloudflare_proxy': 'on'}) // Old format.
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_CLOUDFLARE),
|
||||
A("www1","1.2.3.11", CF_PROXY_ON), // turn proxy ON.
|
||||
A("www2","1.2.3.12", CF_PROXY_OFF), // default is OFF, this is a no-op.
|
||||
A("www3","1.2.3.13", {"cloudflare_proxy": "on"}) // Old format.
|
||||
);
|
||||
```
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE')
|
||||
var CLOUDFLARE = NewDnsProvider('cloudflare','CLOUDFLAREAPI');
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_CLOUDFLARE = NewDnsProvider("cloudflare");
|
||||
|
||||
// Example domain where the CF proxy abides by the default (off).
|
||||
D('example.tld', REG_NONE, DnsProvider(CLOUDFLARE),
|
||||
A('proxied','1.2.3.4', CF_PROXY_ON),
|
||||
A('notproxied','1.2.3.5'),
|
||||
A('another','1.2.3.6', CF_PROXY_ON),
|
||||
ALIAS('@','www.example.tld.', CF_PROXY_ON),
|
||||
CNAME('myalias','www.example.tld.', CF_PROXY_ON)
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_CLOUDFLARE),
|
||||
A("proxied", "1.2.3.4", CF_PROXY_ON),
|
||||
A("notproxied", "1.2.3.5"),
|
||||
A("another", "1.2.3.6", CF_PROXY_ON),
|
||||
ALIAS("@", "www.example.tld.", CF_PROXY_ON),
|
||||
CNAME("myalias", "www.example.tld.", CF_PROXY_ON)
|
||||
);
|
||||
|
||||
// Example domain where the CF proxy default is set to "on":
|
||||
D('example2.tld', REG_NONE, DnsProvider(CLOUDFLARE),
|
||||
D("example2.tld", REG_NONE, DnsProvider(DSP_CLOUDFLARE),
|
||||
CF_PROXY_DEFAULT_ON, // Enable CF proxy for all items unless otherwise noted.
|
||||
A('proxied','1.2.3.4'),
|
||||
A('notproxied','1.2.3.5', CF_PROXY_OFF),
|
||||
A('another','1.2.3.6'),
|
||||
ALIAS('@','www.example2.tld.'),
|
||||
CNAME('myalias','www.example2.tld.')
|
||||
A("proxied", "1.2.3.4"),
|
||||
A("notproxied", "1.2.3.5", CF_PROXY_OFF),
|
||||
A("another", "1.2.3.6"),
|
||||
ALIAS("@", "www.example2.tld."),
|
||||
CNAME("myalias", "www.example2.tld.")
|
||||
);
|
||||
```
|
||||
|
||||
@@ -179,9 +206,9 @@ The Cloudflare provider can manage "Forwarding URL" Page Rules (redirects) for y
|
||||
```js
|
||||
// chiphacker.com should redirect to electronics.stackexchange.com
|
||||
|
||||
var CLOUDFLARE = NewDnsProvider('cloudflare','CLOUDFLAREAPI', {"manage_redirects": true}); // enable manage_redirects
|
||||
var DSP_CLOUDFLARE = NewDnsProvider("cloudflare", {"manage_redirects": true}); // enable manage_redirects
|
||||
|
||||
D("chiphacker.com", REG_NONE, DnsProvider(CLOUDFLARE),
|
||||
D("chiphacker.com", REG_NONE, DnsProvider(DSP_CLOUDFLARE),
|
||||
// ...
|
||||
|
||||
// 302 for meta subdomain
|
||||
@@ -208,9 +235,9 @@ Notice a few details:
|
||||
The Cloudflare provider can manage Worker Routes for your domains. Simply use the `CF_WORKER_ROUTE` function passing the route pattern and the worker name:
|
||||
|
||||
```js
|
||||
var CLOUDFLARE = NewDnsProvider('cloudflare','CLOUDFLAREAPI', {"manage_workers": true}); // enable managing worker routes
|
||||
var DSP_CLOUDFLARE = NewDnsProvider("cloudflare", {"manage_workers": true}); // enable managing worker routes
|
||||
|
||||
D("foo.com", REG_NONE, DnsProvider(CLOUDFLARE),
|
||||
D("foo.com", REG_NONE, DnsProvider(DSP_CLOUDFLARE),
|
||||
// Assign the patterns `api.foo.com/*` and `foo.com/api/*` to `my-worker` script.
|
||||
CF_WORKER_ROUTE("api.foo.com/*", "my-worker"),
|
||||
CF_WORKER_ROUTE("foo.com/api/*", "my-worker"),
|
||||
|
||||
@@ -7,13 +7,16 @@ jsId: CLOUDNS
|
||||
# ClouDNS Provider
|
||||
|
||||
## Configuration
|
||||
In your credentials file, you must provide your [Api user ID and password](https://www.cloudns.net/wiki/article/42/).
|
||||
|
||||
Current version of provider doesn't support `sub-auth-user`.
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `CLOUDNS`
|
||||
along with your [Api user ID and password](https://www.cloudns.net/wiki/article/42/).
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"cloudns": {
|
||||
"TYPE": "CLOUDNS",
|
||||
"auth-id": "12345",
|
||||
"sub-auth-id": "12345",
|
||||
"auth-password": "your-password"
|
||||
@@ -21,6 +24,8 @@ Current version of provider doesn't support `sub-auth-user`.
|
||||
}
|
||||
```
|
||||
|
||||
Current version of provider doesn't support `sub-auth-user`.
|
||||
|
||||
## Records
|
||||
|
||||
ClouDNS does support DS Record on subdomains (not the apex domain itself).
|
||||
@@ -37,24 +42,24 @@ ClouDNS supports ClouDNS-specific "WR record (web redirects)" for your domains.
|
||||
Simply use the `CLOUDNS_WR` functions to make redirects like any other record:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE')
|
||||
var CLOUDNS = NewDnsProvider("cloudns", "CLOUDNS");
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_CLOUDNS = NewDnsProvider("cloudns");
|
||||
|
||||
D("example.tld", REG_NONE, DnsProvider(CLOUDNS),
|
||||
CLOUDNS_WR('@', 'http://example.com/'),
|
||||
CLOUDNS_WR('www', 'http://example.com/')
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_CLOUDNS),
|
||||
CLOUDNS_WR("@", "http://example.com/"),
|
||||
CLOUDNS_WR("www", "http://example.com/")
|
||||
)
|
||||
```
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE')
|
||||
var CLOUDNS = NewDnsProvider("cloudns", "CLOUDNS");
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_CLOUDNS = NewDnsProvider("cloudns");
|
||||
|
||||
D("example.tld", REG_NONE, DnsProvider(CLOUDNS),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_CLOUDNS),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -9,11 +9,17 @@ jsId: CSCGLOBAL
|
||||
DNSControl's CSC Global provider supports being a Registrar. Support for being a DNS Provider is not included, although CSC Global's API does provide for this so it could be implemented in the future.
|
||||
|
||||
## Configuration
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `CSCGLOBAL`.
|
||||
|
||||
In your `creds.json` file, you must provide your API key and user/client token. You can optionally provide an comma separated list of email addresses to have CSC Global send updates to.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"cscglobal": {
|
||||
"TYPE": "CSCGLOBAL",
|
||||
"api-key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
||||
"user-token": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
|
||||
"notification_emails": "test@exmaple.tld,hostmaster@example.tld"
|
||||
@@ -22,14 +28,14 @@ In your `creds.json` file, you must provide your API key and user/client token.
|
||||
```
|
||||
|
||||
## Usage
|
||||
Example Javascript for `example.tld` and delegated to Route53:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_CSCGLOBAL = NewRegistrar('cscglobal', 'CSCGLOBAL');
|
||||
var R53 = NewDnsProvider('r53_main', 'ROUTE53');
|
||||
var REG_CSCGLOBAL = NewRegistrar("cscglobal");
|
||||
var DSP_BIND = NewDnsProvider("bind");
|
||||
|
||||
D("example.tld", REG_CSCGLOBAL, DnsProvider(R53),
|
||||
A('test','1.2.3.4')
|
||||
D("example.tld", REG_CSCGLOBAL, DnsProvider(DSP_BIND),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -6,11 +6,16 @@ jsId: DESEC
|
||||
---
|
||||
# deSEC Provider
|
||||
## Configuration
|
||||
In your providers credentials file you must provide a deSEC account auth token:
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `DESEC`
|
||||
along with a deSEC account auth token.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"desec": {
|
||||
"TYPE": "DESEC",
|
||||
"auth-token": "your-deSEC-auth-token"
|
||||
}
|
||||
}
|
||||
@@ -20,14 +25,14 @@ In your providers credentials file you must provide a deSEC account auth token:
|
||||
This provider does not recognize any special metadata fields unique to deSEC.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE'); // No registrar.
|
||||
var deSEC = NewDnsProvider('desec', 'DESEC'); // deSEC
|
||||
var REG_NONE = NewRegistrar("none"); // No registrar.
|
||||
var DSP_DESEC = NewDnsProvider("desec"); // deSEC
|
||||
|
||||
D('example.tld', REG_NONE, DnsProvider(deSEC),
|
||||
A('test','1.2.3.4')
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_DESEC),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -7,12 +7,16 @@ jsId: DIGITALOCEAN
|
||||
# DigitalOcean Provider
|
||||
|
||||
## Configuration
|
||||
In your credentials file, you must provide your
|
||||
[DigitalOcean OAuth Token](https://cloud.digitalocean.com/settings/applications)
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `DIGITALOCEAN`
|
||||
along with your [DigitalOcean OAuth Token](https://cloud.digitalocean.com/settings/applications).
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"digitalocean": {
|
||||
"mydigitalocean": {
|
||||
"TYPE": "DIGITALOCEAN",
|
||||
"token": "your-digitalocean-ouath-token"
|
||||
}
|
||||
}
|
||||
@@ -22,14 +26,14 @@ In your credentials file, you must provide your
|
||||
This provider does not recognize any special metadata fields unique to DigitalOcean.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE')
|
||||
var DIGITALOCEAN = NewDnsProvider("digitalocean", "DIGITALOCEAN");
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_DIGITALOCEAN = NewDnsProvider("mydigitalocean");
|
||||
|
||||
D("example.tld", REG_NONE, DnsProvider(DIGITALOCEAN),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_DIGITALOCEAN),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -6,11 +6,16 @@ jsId: DNSIMPLE
|
||||
---
|
||||
# DNSimple Provider
|
||||
## Configuration
|
||||
In your providers credentials file you must provide a DNSimple account access token:
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `DIGITALOCEAN`
|
||||
along with a DNSimple account access token.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"dnsimple": {
|
||||
"TYPE": "DNSIMPLE",
|
||||
"token": "your-dnsimple-account-access-token"
|
||||
}
|
||||
}
|
||||
@@ -20,14 +25,14 @@ In your providers credentials file you must provide a DNSimple account access to
|
||||
This provider does not recognize any special metadata fields unique to DNSimple.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_DNSIMPLE = NewRegistrar("dnsimple", "DNSIMPLE");
|
||||
var DNSIMPLE = NewDnsProvider("dnsimple", "DNSIMPLE");
|
||||
var REG_DNSIMPLE = NewRegistrar("dnsimple");
|
||||
var DSP_DNSIMPLE = NewDnsProvider("dnsimple");
|
||||
|
||||
D("example.tld", REG_DNSIMPLE, DnsProvider(DNSIMPLE),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_DNSIMPLE, DnsProvider(DSP_DNSIMPLE),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -7,11 +7,16 @@ jsId: DNSMADEEASY
|
||||
# DNS Made Simple Provider
|
||||
|
||||
## Configuration
|
||||
In your credentials file, you must provide your `api_key` and `secret_key`. More info about authentication can be found in [DNS Made Easy API docs](https://api-docs.dnsmadeeasy.com/).
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `DNSMADEEASY`
|
||||
along with your `api_key` and `secret_key`. More info about authentication can be found in [DNS Made Easy API docs](https://api-docs.dnsmadeeasy.com/).
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"dnsmadeeasy": {
|
||||
"TYPE_key": "DNSMADEEASY",
|
||||
"api_key": "1c1a3c91-4770-4ce7-96f4-54c0eb0e457a",
|
||||
"secret_key": "e2268cde-2ccd-4668-a518-8aa8757a65a0"
|
||||
}
|
||||
@@ -30,14 +35,14 @@ SPF records are ignored by this provider. Use TXT records instead.
|
||||
This provider does not recognize any special metadata fields unique to DNS Made Easy.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE')
|
||||
var DNSMADEEASY = NewDnsProvider("dnsmadeeasy", "DNSMADEEASY");
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_DNSMADEEASY = NewDnsProvider("dnsmadeeasy");
|
||||
|
||||
D("example.tld", REG_NONE, DnsProvider(DNSMADEEASY),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_DNSMADEEASY),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -9,26 +9,44 @@ jsId: DNSOVERHTTPS
|
||||
This is a read-only/monitoring "registrar". It does a DNS NS lookup to confirm the nameserver servers are correct. This "registrar" is unable to update/correct the NS servers but will alert you if they are incorrect. A common use of this provider is when the domain is with a registrar that does not have an API.
|
||||
|
||||
## Configuration
|
||||
The DNS-over-HTTPS provider does not require anything in `creds.json`. By default, it uses Google Public DNS however you may configure an alternative RFC 8484 DoH provider.
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `DNSOVERHTTPS`.
|
||||
|
||||
```json
|
||||
{
|
||||
"DNS-over-HTTPS": {
|
||||
"dohdefault": {
|
||||
"TYPE": "DNSOVERHTTPS"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The DNS-over-HTTPS provider defaults to using Google Public DNS however you may configure an alternative RFC 8484 DoH provider using the `host` parameter.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"dohcloudflare": {
|
||||
"TYPE": "DNSOVERHTTPS",
|
||||
"host": "cloudflare-dns.com"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Some common DoH providers are `cloudflare-dns.com` ([Cloudflare](https://developers.cloudflare.com/1.1.1.1/dns-over-https)), `9.9.9.9` ([Quad9](https://www.quad9.net/about/)), and `dns.google` ([Google Public DNS](https://developers.google.com/speed/public-dns/docs/doh)).
|
||||
Some common DoH providers are:
|
||||
|
||||
* `cloudflare-dns.com` ([Cloudflare](https://developers.cloudflare.com/1.1.1.1/dns-over-https))
|
||||
* `9.9.9.9` ([Quad9](https://www.quad9.net/about/))
|
||||
* `dns.google` ([Google Public DNS](https://developers.google.com/speed/public-dns/docs/doh))
|
||||
|
||||
## Metadata
|
||||
This provider does not recognize any special metadata fields unique to DOH.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_MONITOR = NewRegistrar('DNS-over-HTTPS', 'DNSOVERHTTPS');
|
||||
var REG_MONITOR = NewRegistrar("dohcloudflare");
|
||||
|
||||
D("example.com", REG_MONITOR,
|
||||
NAMESERVER("ns1.example.com."),
|
||||
|
||||
@@ -9,16 +9,21 @@ jsId: EASYNAME
|
||||
DNSControl's easyname provider supports being a Registrar. Support for being a DNS Provider is not included, but could be added in the future.
|
||||
|
||||
## Configuration
|
||||
In your credentials file, you must provide your [API-Access](https://my.easyname.com/en/account/api) information
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `EASYNAME`
|
||||
along with [API-Access](https://my.easyname.com/en/account/api) information
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"easyname": {
|
||||
"userid": 12345,
|
||||
"email": "example@example.com",
|
||||
"TYPE": "EASYNAME",
|
||||
"apikey": "API Key",
|
||||
"authsalt": "API Authentication Salt",
|
||||
"signsalt": "API Signing Salt"
|
||||
"email": "example@example.com",
|
||||
"signsalt": "API Signing Salt",
|
||||
"userid": 12345
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -27,10 +32,10 @@ In your credentials file, you must provide your [API-Access](https://my.easyname
|
||||
This provider does not recognize any special metadata fields unique to easyname.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_EASYNAME = NewRegistrar('easyname', 'EASYNAME');
|
||||
var REG_EASYNAME = NewRegistrar("easyname");
|
||||
|
||||
D("example.com", REG_EASYNAME,
|
||||
NAMESERVER("ns1.example.com."),
|
||||
|
||||
@@ -7,18 +7,19 @@ jsId: GANDI_V5
|
||||
# Gandi_v5 Provider
|
||||
|
||||
`GANDI_V5` uses the v5 API and can act as a registrar provider
|
||||
or a DNS provider. It is only able to work with domains
|
||||
migrated to the new LiveDNS API, which should be all domains.
|
||||
API keys are assigned to particular users. Go to User Settings,
|
||||
"Manage the user account and security settings", the "Security"
|
||||
tab, then regenerate the "Production API key".
|
||||
or a DNS provider. It is only able to work with domains
|
||||
migrated to the new LiveDNS API, which should be all domains.
|
||||
API keys are assigned to particular users. Go to User Settings,
|
||||
"Manage the user account and security settings", the "Security"
|
||||
tab, then regenerate the "Production API key".
|
||||
|
||||
* API Documentation: https://api.gandi.net/docs
|
||||
* API Endpoint: https://api.gandi.net/
|
||||
|
||||
## Configuration
|
||||
In your credentials file you must provide your Gandi.net API key.
|
||||
The [sharing_id](https://api.gandi.net/docs/reference/) is optional.
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `GANDI_V5`
|
||||
along your Gandi.net API key. The [sharing_id](https://api.gandi.net/docs/reference/) is optional.
|
||||
|
||||
The `sharing_id` selects between different organizations which your account is
|
||||
a member of; to manage domains in multiple organizations, you can use multiple
|
||||
@@ -28,9 +29,12 @@ same backend `"GANDI_V5"` provider.
|
||||
(NB: in practice, this doesn't appear to be necessary and `sharing_id` is not
|
||||
enforced?)
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"gandi": {
|
||||
"TYPE": "GANDI_V5",
|
||||
"apikey": "your-gandi-key",
|
||||
"sharing_id": "your-sharing_id"
|
||||
}
|
||||
@@ -48,14 +52,14 @@ This provider only supports `ALIAS` on the `"@"` zone apex, not on any other
|
||||
names.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var GANDI = NewDnsProvider("gandi", "GANDI_V5");
|
||||
var REG_GANDI = NewRegistrar("gandi", "GANDI_V5");
|
||||
var REG_GANDI = NewRegistrar("gandi");
|
||||
var DSP_GANDI = NewDnsProvider("gandi");
|
||||
|
||||
D("example.tld", REG_GANDI, DnsProvider(GANDI),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_GANDI, DnsProvider(DSP_GANDI),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -9,26 +9,34 @@ jsId: GCLOUD
|
||||
|
||||
## Configuration
|
||||
|
||||
For Google cloud authentication, DNSControl requires a JSON 'Service Account Key' for your project. Newlines in the private key need to be replaced with `\n`.Copy the full JSON object into your `creds.json` like so:
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `GCLOUD`
|
||||
along with Google Cloud authentication values.
|
||||
|
||||
The provider requires a "Service Account Key" for your project. Newlines in the private key need to be replaced with `\n`. Copy the full JSON object into your `creds.json` like so:
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"gcloud": {
|
||||
"type": "service_account",
|
||||
"project_id": "mydnsproject",
|
||||
"private_key_id": "a05483aa208364c56716b384efff33c0574d365b",
|
||||
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADL2dhlY7YZbx7tpsfksOX\nih0DbxhiQ==\n-----END PRIVATE KEY-----\n",
|
||||
"client_email": "dnscontrolacct@mydnsproject.iam.gserviceaccount.com",
|
||||
"client_id": "107996619231234567750",
|
||||
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
||||
"token_uri": "https://accounts.google.com/o/oauth2/token",
|
||||
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
||||
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/dnscontrolsdfsdfsdf%40craigdnstest.iam.gserviceaccount.com",
|
||||
"name_server_set" : "optional_name_server_set_name (contact your TAM)"
|
||||
}
|
||||
"gcloud": {
|
||||
"TYPE": "GCLOUD",
|
||||
"type": "service_account",
|
||||
"project_id": "mydnsproject",
|
||||
"private_key_id": "a05483aa208364c56716b384efff33c0574d365b",
|
||||
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADL2dhlY7YZbx7tpsfksOX\nih0DbxhiQ==\n-----END PRIVATE KEY-----\n",
|
||||
"client_email": "dnscontrolacct@mydnsproject.iam.gserviceaccount.com",
|
||||
"client_id": "107996619231234567750",
|
||||
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
||||
"token_uri": "https://accounts.google.com/o/oauth2/token",
|
||||
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
||||
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/dnscontrolsdfsdfsdf%40craigdnstest.iam.gserviceaccount.com",
|
||||
"name_server_set": "optional_name_server_set_name (contact your TAM)"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Note:** Don't confuse the `TYPE` and `type` fields. `TYPE` is set to `GCLOUD` and specifies which provider type to use. `type` specifies the type of account in use.
|
||||
|
||||
**Note**: The `project_id`, `private_key`, and `client_email`, are the only fields that are strictly required, but it is sometimes easier to just paste the entire json object in. Either way is fine. `name_server_set` is optional and requires special permission from your TAM at Google in order to setup (See [Name server sets](#name_server_sets) below)
|
||||
|
||||
See [the Activation section](#activation) for some tips on obtaining these credentials.
|
||||
@@ -37,14 +45,14 @@ See [the Activation section](#activation) for some tips on obtaining these crede
|
||||
This provider does not recognize any special metadata fields unique to google cloud dns.
|
||||
|
||||
## Usage
|
||||
Use this provider like any other DNS Provider:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NAMECOM = NewRegistrar("name.com","NAMEDOTCOM");
|
||||
var GCLOUD = NewDnsProvider("gcloud", "GCLOUD");
|
||||
var REG_NONE = NewRegistrar("name.com");
|
||||
var DSP_GCLOUD = NewDnsProvider("gcloud");
|
||||
|
||||
D("example.tld", REG_NAMECOM, DnsProvider(GCLOUD),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_GCLOUD),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -12,14 +12,18 @@ with the web interface. Because there is no officially supported API, this provi
|
||||
Electric changes their interface, and you should be willing to accept this possibility before relying on this provider.
|
||||
|
||||
## Configuration
|
||||
In your `creds.json` file you must provide your `dns.he.net` account username and password. These are the same username
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `HEDNS`
|
||||
along with
|
||||
your `dns.he.net` account username and password. These are the same username
|
||||
and password used to login to the [web interface]([https://dns.he.net]).
|
||||
|
||||
```json
|
||||
{
|
||||
"hedns":{
|
||||
"username": "yourUsername",
|
||||
"password": "yourPassword"
|
||||
"hedns": {
|
||||
"TYPE": "HEDNS",
|
||||
"password": "yourPassword",
|
||||
"username": "yourUsername"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -31,10 +35,11 @@ This can also be done via an environment variable:
|
||||
|
||||
```json
|
||||
{
|
||||
"hedns":{
|
||||
"username": "yourUsername",
|
||||
"hedns": {
|
||||
"TYPE": "HEDNS",
|
||||
"password": "yourPassword",
|
||||
"totp": "$HEDNS_TOTP"
|
||||
"totp": "$HEDNS_TOTP",
|
||||
"username": "yourUsername"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -97,12 +102,13 @@ This option is disabled by default when this key is not present,
|
||||
This provider does not recognize any special metadata fields unique to Hurricane Electric DNS.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var DNSIMPLE = NewDnsProvider("hedns", "HEDNS");
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_HEDNS = NewDnsProvider("hedns");
|
||||
|
||||
D("example.tld", REG_DNSIMPLE, DnsProvider(HEDNS),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_HEDNS),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
@@ -9,12 +9,15 @@ jsId: HETZNER
|
||||
|
||||
## Configuration
|
||||
|
||||
In your credentials file, you must provide a
|
||||
[Hetzner API Key](https://dns.hetzner.com/settings/api-token).
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `HETZNER`
|
||||
along with a [Hetzner API Key](https://dns.hetzner.com/settings/api-token).
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"hetzner": {
|
||||
"TYPE": "HETZNER",
|
||||
"api_key": "your-api-key"
|
||||
}
|
||||
}
|
||||
@@ -27,14 +30,14 @@ This provider does not recognize any special metadata fields unique to Hetzner
|
||||
|
||||
## Usage
|
||||
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE');
|
||||
var HETZNER = NewDnsProvider("hetzner", "HETZNER");
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_HETZNER = NewDnsProvider("hetzner");
|
||||
|
||||
D("example.tld", REG_NONE, DnsProvider(HETZNER),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_HETZNER),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
@@ -77,8 +80,9 @@ In your `creds.json` for all `HETZNER` provider entries:
|
||||
```json
|
||||
{
|
||||
"hetzner": {
|
||||
"optimize_for_rate_limit_quota": "Minute",
|
||||
"api_key": "your-api-key"
|
||||
"TYPE": "HETZNER",
|
||||
"api_key": "your-api-key",
|
||||
"optimize_for_rate_limit_quota": "Minute"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -109,8 +113,9 @@ In your `creds.json` for all `HETZNER` provider entries:
|
||||
```json
|
||||
{
|
||||
"hetzner": {
|
||||
"start_with_default_rate_limit": "true",
|
||||
"api_key": "your-api-key"
|
||||
"TYPE": "HETZNER",
|
||||
"api_key": "your-api-key",
|
||||
"start_with_default_rate_limit": "true"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -17,11 +17,15 @@ This is based on API documents found at [https://wiki.hexonet.net/wiki/DNS_API](
|
||||
|
||||
## Configuration
|
||||
|
||||
Please provide your HEXONET login data in your credentials file `creds.json` as follows:
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `HEXONET`
|
||||
along with your HEXONET login data.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"hexonet": {
|
||||
"TYPE": "HEXONET",
|
||||
"apilogin": "your-hexonet-account-id",
|
||||
"apipassword": "your-hexonet-account-password",
|
||||
"apientity": "LIVE", // for the LIVE system; use "OTE" for the OT&E system
|
||||
@@ -36,6 +40,7 @@ Here a working example for our OT&E System:
|
||||
```json
|
||||
{
|
||||
"hexonet": {
|
||||
"TYPE": "HEXONET",
|
||||
"apilogin": "test.user",
|
||||
"apipassword": "test.passw0rd",
|
||||
"apientity": "OTE",
|
||||
@@ -66,8 +71,8 @@ You are free to decide if you want to use both of our provider technology or jus
|
||||
|
||||
```js
|
||||
// Providers:
|
||||
var REG_HX = NewRegistrar('hexonet', 'HEXONET');
|
||||
var DNS_HX = NewDnsProvider('hexonet', 'HEXONET');
|
||||
var REG_HX = NewRegistrar("hexonet");
|
||||
var DSP_HX = NewDnsProvider("hexonet");
|
||||
|
||||
// Set Default TTL for all RR to reflect our Backend API Default
|
||||
// If you use additional DNS Providers, configure a default TTL
|
||||
@@ -79,13 +84,13 @@ DEFAULTS(
|
||||
);
|
||||
|
||||
// Domains:
|
||||
D('abhoster.com', REG_HX, DnsProvider(DNS_HX),
|
||||
NAMESERVER('ns1.ispapi.net'),
|
||||
NAMESERVER('ns2.ispapi.net'),
|
||||
NAMESERVER('ns3.ispapi.net'),
|
||||
NAMESERVER('ns4.ispapi.net'),
|
||||
A('elk1', '10.190.234.178'),
|
||||
A('test', '56.123.54.12')
|
||||
D("abhoster.com", REG_HX, DnsProvider(DSP_HX),
|
||||
NAMESERVER("ns1.ispapi.net"),
|
||||
NAMESERVER("ns2.ispapi.net"),
|
||||
NAMESERVER("ns3.ispapi.net"),
|
||||
NAMESERVER("ns4.ispapi.net"),
|
||||
A("elk1", "10.190.234.178"),
|
||||
A("test", "56.123.54.12")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -2,20 +2,22 @@
|
||||
name: hosting.de
|
||||
title: hosting.de Provider
|
||||
layout: default
|
||||
jsId: hostingde
|
||||
jsId: HOSTINGDE
|
||||
---
|
||||
|
||||
# hosting.de Provider
|
||||
|
||||
## Configuration
|
||||
|
||||
In your credentials file, you must provide your [`authToken` and optionally an `ownerAccountId`](https://www.hosting.de/api/#requests-and-authentication).
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `HOSTINGDE`
|
||||
along with your [`authToken` and optionally an `ownerAccountId`](https://www.hosting.de/api/#requests-and-authentication).
|
||||
|
||||
### Example `creds.json`
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"hosting.de": {
|
||||
"TYPE": "HOSTINGDE",
|
||||
"authToken": "YOUR_API_KEY"
|
||||
}
|
||||
}
|
||||
@@ -23,14 +25,14 @@ In your credentials file, you must provide your [`authToken` and optionally an `
|
||||
|
||||
## Usage
|
||||
|
||||
### Example `dnsconfig.js`
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_HOSTINGDE = NewRegistrar('hosting.de', 'HOSTINGDE')
|
||||
var DNS_HOSTINGDE = NewDnsProvider('hosting.de' 'HOSTINGDE');
|
||||
var REG_HOSTINGDE = NewRegistrar("hosting.de");
|
||||
var DSP_HOSTINGDE = NewDnsProvider("hosting.de");
|
||||
|
||||
D('example.tld', REG_HOSTINGDE, DnsProvider(DNS_HOSTINGDE),
|
||||
A('test', '1.2.3.4')
|
||||
D("example.tld", REG_HOSTINGDE, DnsProvider(DSP_HOSTINGDE),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
@@ -41,27 +43,28 @@ Using them requires setting the `baseURL` and (optionally) overriding the defaul
|
||||
|
||||
### Example http.net configuration
|
||||
|
||||
#### Example `creds.json`
|
||||
An example `creds.json` configuration:
|
||||
|
||||
```json
|
||||
{
|
||||
"http.net": {
|
||||
"TYPE": "HOSTINGDE",
|
||||
"authToken": "YOUR_API_KEY",
|
||||
"baseURL": "https://partner.http.net"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Example `dnsconfig.js`
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_HTTPNET = NewRegistrar('http.net', 'HOSTINGDE');
|
||||
var REG_HTTPNET = NewRegistrar("http.net");
|
||||
|
||||
var DNS_HTTPNET = NewDnsProvider('http.net', 'HOSTINGDE', {
|
||||
var DSP_HTTPNET = NewDnsProvider("http.net");
|
||||
default_ns: [
|
||||
'ns1.routing.net.',
|
||||
'ns2.routing.net.',
|
||||
'ns3.routing.net.',
|
||||
"ns1.routing.net.",
|
||||
"ns2.routing.net.",
|
||||
"ns3.routing.net.",
|
||||
],
|
||||
});
|
||||
```
|
||||
|
||||
@@ -9,11 +9,16 @@ jsId: INTERNETBS
|
||||
DNSControl's Internet.bs provider supports being a Registrar. Support for being a DNS Provider is not included, but could be added in the future.
|
||||
|
||||
## Configuration
|
||||
In your credentials file, you must provide your API key and account password
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `INTERNETBS`
|
||||
along with an API key and account password.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"internetbs": {
|
||||
"TYPE": "INTERNETBS",
|
||||
"api-key": "your-api-key",
|
||||
"password": "account-password"
|
||||
}
|
||||
@@ -24,10 +29,10 @@ In your credentials file, you must provide your API key and account password
|
||||
This provider does not recognize any special metadata fields unique to Internet.bs.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_INTERNETBS = NewRegistrar('internetbs', 'INTERNETBS');
|
||||
var REG_INTERNETBS = NewRegistrar("internetbs");
|
||||
|
||||
D("example.com", REG_INTERNETBS,
|
||||
NAMESERVER("ns1.example.com."),
|
||||
|
||||
@@ -9,14 +9,18 @@ jsId: INWX
|
||||
INWX.de is a Berlin-based domain registrar.
|
||||
|
||||
## Configuration
|
||||
In your `creds.json` file you must provide your INWX
|
||||
username and password:
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `INWX`
|
||||
along with your INWX username and password.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"inwx":{
|
||||
"username": "yourUsername",
|
||||
"password": "yourPassword"
|
||||
"inwx": {
|
||||
"TYPE": "INWX",
|
||||
"password": "yourPassword",
|
||||
"username": "yourUsername"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -37,10 +41,11 @@ This can also be done via an environment variable:
|
||||
|
||||
```json
|
||||
{
|
||||
"inwx":{
|
||||
"username": "yourUsername",
|
||||
"inwx": {
|
||||
"TYPE": "INWX",
|
||||
"password": "yourPassword",
|
||||
"totp": "$INWX_TOTP"
|
||||
"totp": "$INWX_TOTP",
|
||||
"username": "yourUsername"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -60,10 +65,11 @@ This secret is only shown once when two factor authentication is enabled and you
|
||||
|
||||
```json
|
||||
{
|
||||
"inwx":{
|
||||
"username": "yourUsername",
|
||||
"inwx": {
|
||||
"TYPE": "INWX",
|
||||
"password": "yourPassword",
|
||||
"totp-key": "yourTOTPSharedSecret"
|
||||
"totp-key": "yourTOTPSharedSecret",
|
||||
"username": "yourUsername"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -92,15 +98,16 @@ This provider does not recognize any special metadata fields unique to
|
||||
INWX.
|
||||
|
||||
## Usage
|
||||
Example Javascript for `example.tld` registered with INWX
|
||||
An example `dnsconfig.js` configuration file
|
||||
for `example.tld` registered with INWX
|
||||
and delegated to CloudFlare:
|
||||
|
||||
```js
|
||||
var regInwx = NewRegistrar('inwx', 'INWX')
|
||||
var dnsCF = NewDnsProvider('cloudflare', 'CLOUDFLAREAPI')
|
||||
var REG_INWX = NewRegistrar("inwx");
|
||||
var DSP_CF = NewDnsProvider("cloudflare");
|
||||
|
||||
D("example.tld", regInwx, DnsProvider(dnsCF),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_INWX, DnsProvider(DSP_CF),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -7,12 +7,16 @@ jsId: LINODE
|
||||
# Linode Provider
|
||||
|
||||
## Configuration
|
||||
In your credentials file, you must provide your
|
||||
[Linode Personal Access Token](https://cloud.linode.com/profile/tokens)
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `LINODE`
|
||||
along with your [Linode Personal Access Token](https://cloud.linode.com/profile/tokens).
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"linode": {
|
||||
"TYPE": "LINODE",
|
||||
"token": "your-linode-personal-access-token"
|
||||
}
|
||||
}
|
||||
@@ -22,14 +26,14 @@ In your credentials file, you must provide your
|
||||
This provider does not recognize any special metadata fields unique to Linode.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE')
|
||||
var LINODE = NewDnsProvider("linode", "LINODE");
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_LINODE = NewDnsProvider("linode");
|
||||
|
||||
D("example.tld", REG_NONE, DnsProvider(LINODE),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_LINODE),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -37,13 +37,18 @@ supports this. It should be easy to implement. Volunteers requested.
|
||||
|
||||
## Configuration
|
||||
|
||||
The `ActiveDirectory_PS` provider reads an `computername` setting from
|
||||
`creds.json` to know the name of the ActiveDirectory DNS Server to run the commands on.
|
||||
Otherwise
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `MSDNS`
|
||||
along with other settings:
|
||||
|
||||
* `dnsserver`: (optional) the name of the Microsoft DNS Server to communicate with.
|
||||
* `pssession`: (optional) the name of the PowerShell PSSession host to run commands on.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"msdns": {
|
||||
"TYPE": "MSDNS",
|
||||
"dnsserver": "ny-dc01",
|
||||
"pssession": "mywindowshost"
|
||||
}
|
||||
@@ -53,11 +58,11 @@ Otherwise
|
||||
An example DNS configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE')
|
||||
var MSDNS = NewDnsProvider("msdns", "MSDNS");
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_MSDNS = NewDnsProvider("msdns");
|
||||
|
||||
D('example.tld', REG_NONE, DnsProvider(MSDNS),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_MSDNS),
|
||||
A("test", "1.2.3.4")
|
||||
)
|
||||
```
|
||||
|
||||
|
||||
@@ -8,11 +8,16 @@ jsId: NAMEDOTCOM
|
||||
# Name.com Provider
|
||||
|
||||
## Configuration
|
||||
In your credentials file you must provide your name.com api username and access token:
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `NAMEDOTCOM`
|
||||
along with your name.com API username and access token:
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"name.com":{
|
||||
"name.com": {
|
||||
"TYPE": "NAMEDOTCOM",
|
||||
"apikey": "yourApiKeyFromName.com",
|
||||
"apiuser": "yourUsername"
|
||||
}
|
||||
@@ -30,25 +35,27 @@ export NAMEDOTCOM_URL='api.name.com'
|
||||
This provider does not recognize any special metadata fields unique to name.com.
|
||||
|
||||
## Usage
|
||||
**Example Javascript (DNS hosted with name.com):**
|
||||
|
||||
An example `dnsconfig.js` configuration with NAMEDOTCOM
|
||||
as the registrar and DNS service provider:
|
||||
|
||||
```js
|
||||
var REG_NAMECOM = NewRegistrar("name.com","NAMEDOTCOM");
|
||||
var NAMECOM = NewDnsProvider("name.com","NAMEDOTCOM");
|
||||
var REG_NAMECOM = NewRegistrar("name.com");
|
||||
var DSP_NAMECOM = NewDnsProvider("name.com");
|
||||
|
||||
D("example.tld", REG_NAMECOM, DnsProvider(NAMECOM),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_NAMECOM, DnsProvider(DSP_NAMECOM),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
**Example Javascript (Registrar only. DNS hosted elsewhere):**
|
||||
An example `dnsconfig.js` configuration with NAMEDOTCOM
|
||||
as the registrar and DNS only, DNS hosted elsewhere:
|
||||
|
||||
```js
|
||||
var REG_NAMECOM = NewRegistrar("name.com","NAMEDOTCOM");
|
||||
var R53 = NewDnsProvider("r53", "ROUTE53");
|
||||
var REG_NAMECOM = NewRegistrar("name.com");
|
||||
var DSP_R53 = NewDnsProvider("r53");
|
||||
|
||||
D("example.tld", REG_NAMECOM, DnsProvider(R53),
|
||||
D("example.tld", REG_NAMECOM, DnsProvider(DSP_R53),
|
||||
A("test","1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
@@ -9,12 +9,16 @@ jsId: NAMECHEAP
|
||||
Namecheap only provides a registrar provider implementation.
|
||||
|
||||
## Configuration
|
||||
In your providers config json file you must provide your Namecheap api
|
||||
username and key:
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `NAMECHEAP`
|
||||
along with your Namecheap API username and key:
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"namecheap":{
|
||||
"namecheap": {
|
||||
"TYPE": "NAMECHEAP",
|
||||
"apikey": "yourApiKeyFromNameCheap",
|
||||
"apiuser": "yourUsername"
|
||||
}
|
||||
@@ -26,15 +30,16 @@ sandbox:
|
||||
|
||||
```json
|
||||
{
|
||||
"namecheap.com":{
|
||||
"namecheapSandbox": {
|
||||
"TYPE": "NAMECHEAP",
|
||||
"apikey": "yourApiKeyFromNameCheap",
|
||||
"apiuser": "yourUsername"
|
||||
"apiuser": "yourUsername",
|
||||
"BaseURL": "https://api.sandbox.namecheap.com/xml.response"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
if BaseURL is omitted, the production namecheap url is used.
|
||||
if BaseURL is omitted, the production namecheap URL is assumed.
|
||||
|
||||
|
||||
## Metadata
|
||||
@@ -42,14 +47,14 @@ This provider does not recognize any special metadata fields unique to
|
||||
Namecheap.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NAMECHEAP = NewRegistrar("namecheap","NAMECHEAP");
|
||||
var R53 = NewDnsProvider("r53", "ROUTE53");
|
||||
var REG_NAMECHEAP = NewRegistrar("namecheap");
|
||||
var DSP_BIND = NewDnsProvider("bind");
|
||||
|
||||
D("example.tld", REG_NAMECHEAP, DnsProvider(R53),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_NAMECHEAP, DnsProvider(DSP_BIND),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
@@ -57,13 +62,13 @@ Namecheap provides custom redirect records URL, URL301, and FRAME. These
|
||||
records can be used like any other record:
|
||||
|
||||
```js
|
||||
var REG_NAMECHEAP = NewRegistrar("namecheap","NAMECHEAP");
|
||||
var NAMECHEAP = NewDnsProvider("namecheap","NAMECHEAP");
|
||||
var REG_NAMECHEAP = NewRegistrar("namecheap");
|
||||
var DSP_NAMECHEAP = NewDnsProvider("namecheap");
|
||||
|
||||
D("example.tld", REG_NAMECHEAP, DnsProvider(NAMECHEAP),
|
||||
URL('@', 'http://example.com/'),
|
||||
URL('www', 'http://example.com/'),
|
||||
URL301('backup', 'http://backup.example.com/')
|
||||
D("example.tld", REG_NAMECHEAP, DnsProvider(DSP_NAMECHEAP),
|
||||
URL("@", "http://example.com/"),
|
||||
URL("www", "http://example.com/"),
|
||||
URL301("backup", "http://backup.example.com/")
|
||||
)
|
||||
```
|
||||
|
||||
|
||||
@@ -7,11 +7,16 @@ jsId: NETCUP
|
||||
# Netcup Provider
|
||||
|
||||
## Configuration
|
||||
In your credentials file, you must provide your [api key, password and your customer number](https://www.netcup-wiki.de/wiki/CCP_API#Authentifizierung).
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `NETCUP`
|
||||
along with your [api key, password and your customer number](https://www.netcup-wiki.de/wiki/CCP_API#Authentifizierung).
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"netcup": {
|
||||
"TYPE": "NETCUP",
|
||||
"api-key": "abc12345",
|
||||
"api-password": "abc12345",
|
||||
"customer-number": "123456"
|
||||
@@ -20,14 +25,14 @@ In your credentials file, you must provide your [api key, password and your cust
|
||||
```
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE')
|
||||
var NETCUP = NewDnsProvider('netcup' 'NETCUP');
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_NETCUP = NewDnsProvider("netcup");
|
||||
|
||||
D('example.tld', REG_NONE, DnsProvider(NETCUP),
|
||||
A('test','1.2.3.4')
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_NETCUP),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -8,11 +8,15 @@ jsId: NS1
|
||||
|
||||
## Configuration
|
||||
|
||||
In your credentials json file you must provide your NS1 api key:
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `NS1`
|
||||
along with your NS1 api key.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"ns1":{
|
||||
"ns1": {
|
||||
"TYPE": "NS1",
|
||||
"api_token": "your-ns1-token"
|
||||
}
|
||||
}
|
||||
@@ -22,14 +26,14 @@ In your credentials json file you must provide your NS1 api key:
|
||||
This provider does not recognize any special metadata fields unique to NS1.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE')
|
||||
var NS1 = NewDnsProvider("ns1", "NS1");
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_NS1 = NewDnsProvider("ns1");
|
||||
|
||||
D("example.tld", REG_NONE, DnsProvider(NS1),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_NS1),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -8,19 +8,25 @@ jsId: ORACLE
|
||||
|
||||
## Configuration
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `ORACLE`
|
||||
along with other authentication parameters.
|
||||
|
||||
Create an API key through the Oracle Cloud portal, and provide the user OCID, tenancy OCID, key fingerprint, region, and the contents of the private key.
|
||||
The OCID of the compartment DNS resources should be put in can also optionally be provided.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"oracle": {
|
||||
"user_ocid": "$ORACLE_USER_OCID",
|
||||
"tenancy_ocid": "$ORACLE_TENANCY_OCID",
|
||||
"TYPE": "ORACLE",
|
||||
"compartment": "$ORACLE_COMPARTMENT",
|
||||
"fingerprint": "$ORACLE_FINGERPRINT",
|
||||
"region": "$ORACLE_REGION",
|
||||
"private_key": "$ORACLE_PRIVATE_KEY",
|
||||
"compartment": "$ORACLE_COMPARTMENT"
|
||||
},
|
||||
"region": "$ORACLE_REGION",
|
||||
"tenancy_ocid": "$ORACLE_TENANCY_OCID",
|
||||
"user_ocid": "$ORACLE_USER_OCID"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -28,16 +34,16 @@ The OCID of the compartment DNS resources should be put in can also optionally b
|
||||
This provider does not recognize any special metadata fields unique to Oracle Cloud.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE')
|
||||
var ORACLE = NewDnsProvider("oracle", "ORACLE");
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_ORACLE = NewDnsProvider("oracle");
|
||||
|
||||
D("example.tld", REG_NONE, DnsProvider(ORACLE),
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_ORACLE),
|
||||
NAMESERVER_TTL(86400),
|
||||
|
||||
A("test","1.2.3.4")
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -7,11 +7,15 @@ jsId: OVH
|
||||
|
||||
## Configuration
|
||||
|
||||
In your providers config json file you must provide a OVH app-key, app-secret-key and consumer-key:
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `OVH`
|
||||
along with a OVH app-key, app-secret-key and consumer-key.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"ovh":{
|
||||
"ovh": {
|
||||
"TYPE": "OVH",
|
||||
"app-key": "your app key",
|
||||
"app-secret-key": "your app secret key",
|
||||
"consumer-key": "your consumer key"
|
||||
@@ -27,27 +31,25 @@ This provider does not recognize any special metadata fields unique to OVH.
|
||||
|
||||
## Usage
|
||||
|
||||
Example javascript:
|
||||
|
||||
Example javascript (DNS hosted with OVH):
|
||||
An example `dnsconfig.js` configuration: (DNS hosted with OVH):
|
||||
|
||||
```js
|
||||
var REG_OVH = NewRegistrar("ovh", "OVH");
|
||||
var OVH = NewDnsProvider("ovh", "OVH");
|
||||
var REG_OVH = NewRegistrar("ovh");
|
||||
var DSP_OVH = NewDnsProvider("ovh");
|
||||
|
||||
D("example.tld", REG_OVH, DnsProvider(OVH),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_OVH, DnsProvider(DSP_OVH),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
Example javascript (Registrar only. DNS hosted elsewhere):
|
||||
An example `dnsconfig.js` configuration: (Registrar only. DNS hosted elsewhere)
|
||||
|
||||
```js
|
||||
var REG_OVH = NewRegistrar("ovh", "OVH");
|
||||
var R53 = NewDnsProvider("r53", "ROUTE53");
|
||||
var REG_OVH = NewRegistrar("ovh");
|
||||
var DSP_R53 = NewDnsProvider("r53");
|
||||
|
||||
D("example.tld", REG_OVH, DnsProvider(R53),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_OVH, DnsProvider(DSP_R53),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -7,11 +7,16 @@ jsId: PACKETFRAME
|
||||
# Packetframe Provider
|
||||
|
||||
## Configuration
|
||||
In your credentials file, you must provide your Packetframe Token which can be extracted from the `token` cookie on packetframe.com
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `PACKETFRAME`
|
||||
along with your Packetframe Token which can be extracted from the `token` cookie on packetframe.com
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"packetframe": {
|
||||
"TYPE": "PACKETFRAME",
|
||||
"token": "your-packetframe-token"
|
||||
}
|
||||
}
|
||||
@@ -21,13 +26,13 @@ In your credentials file, you must provide your Packetframe Token which can be e
|
||||
This provider does not recognize any special metadata fields unique to Packetframe.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE')
|
||||
var PACKETFRAME = NewDnsProvider("packetframe", "PACKETFRAME");
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_PACKETFRAME = NewDnsProvider("packetframe");
|
||||
|
||||
D("example.tld", REG_NONE, DnsProvider(PACKETFRAME),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_PACKETFRAME),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
@@ -7,15 +7,19 @@ jsId: POWERDNS
|
||||
# PowerDNS Provider
|
||||
|
||||
## Configuration
|
||||
In your credentials file, you must provide your [API URL, API Key and Server ID](https://doc.powerdns.com/authoritative/http-api/index.html).
|
||||
|
||||
In most cases the Server id is `localhost`
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `POWERDNS`
|
||||
along with your [API URL, API Key and Server ID](https://doc.powerdns.com/authoritative/http-api/index.html).
|
||||
In most cases the Server id is `localhost`.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"powerdns": {
|
||||
"apiUrl": "http://localhost",
|
||||
"TYPE": "POWERDNS",
|
||||
"apiKey": "your-key",
|
||||
"apiUrl": "http://localhost",
|
||||
"serverName": "localhost"
|
||||
}
|
||||
}
|
||||
@@ -38,14 +42,14 @@ Following metadata are available:
|
||||
- `dnssec_on_create` specifies if DNSSEC should be enabled when creating zones
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE')
|
||||
var POWERDNS = NewDnsProvider("powerdns", "POWERDNS");
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_POWERDNS = NewDnsProvider("powerdns");
|
||||
|
||||
D("example.tld", REG_NONE, DnsProvider(POWERDNS),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_POWERDNS),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -6,20 +6,25 @@ jsId: ROUTE53
|
||||
# Amazon Route 53 Provider
|
||||
|
||||
## Configuration
|
||||
You can specify the API credentials in the credentials json file:
|
||||
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `ROUTE53`
|
||||
along with API credentials.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"r53_main": {
|
||||
"KeyId": "your-aws-key",
|
||||
"SecretKey": "your-aws-secret-key",
|
||||
"Token": "optional-sts-token",
|
||||
"DelegationSet" : "optional-delegation-set-id"
|
||||
}
|
||||
"r53_main": {
|
||||
"TYPE": "ROUTE53",
|
||||
"DelegationSet": "optional-delegation-set-id",
|
||||
"KeyId": "your-aws-key",
|
||||
"SecretKey": "your-aws-secret-key",
|
||||
"Token": "optional-sts-token"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
You can also use environment variables, but this is discouraged, unless your environment provides them already.
|
||||
Alternatively you can also use environment variables. This is discouraged unless your environment provides them already.
|
||||
|
||||
```bash
|
||||
export AWS_ACCESS_KEY_ID=XXXXXXXXX
|
||||
@@ -29,30 +34,29 @@ export AWS_SESSION_TOKEN=ZZZZZZZZ
|
||||
|
||||
```json
|
||||
{
|
||||
"r53_main": {
|
||||
"KeyId": "$AWS_ACCESS_KEY_ID",
|
||||
"SecretKey": "$AWS_SECRET_ACCESS_KEY"
|
||||
}
|
||||
"r53_main": {
|
||||
"KeyId": "$AWS_ACCESS_KEY_ID",
|
||||
"SecretKey": "$AWS_SECRET_ACCESS_KEY",
|
||||
"TYPE": "ROUTE53"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Alternatively if you want to used [named profiles](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) you need to export the following variable
|
||||
Alternatively, this provider supports [named profiles](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html). In that case export the following variable:
|
||||
|
||||
```bash
|
||||
export AWS_PROFILE=ZZZZZZZZ
|
||||
```
|
||||
|
||||
Ensure you have a minimal creds.json file with the DNS Provider specified, otherwise versions above 3.8.0 will fail. So, for:
|
||||
and provide a minimal entry in creds.json:
|
||||
|
||||
```js
|
||||
var R53_MAIN = NewDnsProvider('r53_main', 'ROUTE53');
|
||||
```
|
||||
|
||||
You will need a creds.json file with the following content:
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"R53_MAIN": {}
|
||||
"r53_main": {
|
||||
"TYPE": "ROUTE53"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -62,14 +66,14 @@ You can find some other ways to authenticate to Route53 in the [go sdk configura
|
||||
This provider does not recognize any special metadata fields unique to route 53.
|
||||
|
||||
## Usage
|
||||
Example Javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar('none', 'NONE');
|
||||
var R53 = NewDnsProvider('r53_main', 'ROUTE53');
|
||||
var REG_NONE = NewRegistrar("none");
|
||||
var DSP_R53 = NewDnsProvider("r53_main");
|
||||
|
||||
D('example.tld', REG_NONE, DnsProvider(R53),
|
||||
A('test','1.2.3.4')
|
||||
D("example.tld", REG_NONE, DnsProvider(DSP_R53),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
@@ -145,7 +149,7 @@ Error getting corrections: AccessDeniedException: User: arn:aws:iam::86839973084
|
||||
Done. 1 corrections.
|
||||
```
|
||||
|
||||
If this happens to you, we'd appreciate it if you could help us fix the code. In the meanwhile, you can give the account additional IAM permissions so that it can do DNS-related actions, or simply use `NewRegistrar(..., 'NONE')` for now.
|
||||
If this happens to you, we'd appreciate it if you could help us fix the code. In the meanwhile, you can give the account additional IAM permissions so that it can do DNS-related actions, or simply use `NewRegistrar(..., "NONE")` for now.
|
||||
|
||||
### Bug when converting new zones
|
||||
|
||||
@@ -188,7 +192,7 @@ Creating r53 dns provider: NoCredentialProviders: no valid providers in chain. D
|
||||
```
|
||||
|
||||
This means that the creds.json entry isn't found. Either there is no entry, or the entry name doesn't match the first parameter in the `NewDnsProvider()` call. In the above example, note
|
||||
that the string `r53_main` is specified in `NewDnsProvider('r53_main', 'ROUTE53')` and that is the exact key used in the creds file above.
|
||||
that the string `r53_main` is specified in `NewDnsProvider("r53_main")` and that is the exact key used in the creds file above.
|
||||
|
||||
### Invalid KeyId
|
||||
|
||||
|
||||
@@ -12,15 +12,19 @@ a volunteer. If this provider breaks it may be disabled or removed if
|
||||
it can not be easily fixed.
|
||||
|
||||
## Configuration
|
||||
To authenticate with SoftLayer requires at least a `username` and `api_key` for authentication. It can also optionally take a `timeout` and `endpoint_url` parameter however these are optional and will use standard defaults if not provided.
|
||||
|
||||
These can be supplied in the `creds.json` file:
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `SOFTLAYER`
|
||||
along with authentication fields.
|
||||
Authenticating with SoftLayer requires at least a `username` and `api_key` for authentication. It can also optionally take a `timeout` and `endpoint_url` parameter however these are optional and will use standard defaults if not provided.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"softlayer": {
|
||||
"username": "myusername",
|
||||
"api_key": "mysecretapikey"
|
||||
"TYPE": "SOFTLAYER",
|
||||
"api_key": "mysecretapikey",
|
||||
"username": "myusername"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -28,14 +32,15 @@ These can be supplied in the `creds.json` file:
|
||||
To maintain compatibility with existing softlayer CLI services these can also be provided by the `SL_USERNAME` and `SL_API_KEY` environment variables or specified in the `~/.softlayer`, but this is discouraged. More information about these methods can be found at [the softlayer-go library documentation](https://github.com/softlayer/softlayer-go#sessions).
|
||||
|
||||
## Usage
|
||||
Use this provider like any other DNS Provider:
|
||||
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var REG_NONE = NewRegistrar("none","NONE"); // no registrar
|
||||
var SOFTLAYER = NewDnsProvider("softlayer", "SOFTLAYER");
|
||||
var REG_NONE = NewRegistrar("none"); // no registrar
|
||||
var DSP_SOFTLAYER = NewDnsProvider("softlayer");
|
||||
|
||||
D("example.tld", registrary, DnsProvider(SOFTLAYER),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", registrary, DnsProvider(DSP_SOFTLAYER),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
@@ -47,6 +52,6 @@ For compatibility with the pre-generated NAMESERVER fields it's recommended to s
|
||||
D("example.tld", REG_NONE, DnsProvider(SOFTLAYER),
|
||||
NAMESERVER_TTL(86400),
|
||||
|
||||
A("test","1.2.3.4")
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
@@ -9,13 +9,17 @@ jsId: TRANSIP
|
||||
|
||||
## Configuration
|
||||
|
||||
In your providers config json file you must include your TransIP credentials
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `TRANSIP`
|
||||
along with your TransIP credentials.
|
||||
|
||||
You can login with your AccountName and a PrivateKey which can be generated in the TransIP control panel. The PrivateKey is a stringified version of the private key given by the API, see the example below, each newline is replaced by "\n".
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"transip":{
|
||||
"TYPE": "TRANSIP",
|
||||
"AccountName": "your-account-name"
|
||||
"PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp\nwmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5\n1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh\n3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2\npIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX\nGukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il\nAkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF\nL0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k\nX6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl\nU9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ\n37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=\n-----END RSA PRIVATE KEY-----"
|
||||
}
|
||||
@@ -27,7 +31,8 @@ Or you can choose to have an AccessToken as credential. These can be generated i
|
||||
|
||||
```json
|
||||
{
|
||||
"transip":{
|
||||
"transip": {
|
||||
"TYPE": "TRANSIP",
|
||||
"AccessToken": "your-transip-personal-access-token"
|
||||
}
|
||||
}
|
||||
@@ -41,13 +46,13 @@ This provider does not recognize any special metadata fields unique to TransIP.
|
||||
|
||||
## Usage
|
||||
|
||||
Example javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var TRANSIP = NewDnsProvider("transip", "TRANSIP");
|
||||
var DSP_TRANSIP = NewDnsProvider("transip");
|
||||
|
||||
D("example.tld", REG_DNSIMPLE, DnsProvider(TRANSIP),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_DNSIMPLE, DnsProvider(DSP_TRANSIP),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
@@ -8,11 +8,15 @@ jsId: VULTR
|
||||
|
||||
## Configuration
|
||||
|
||||
In your providers config json file you must include a Vultr personal access token:
|
||||
To use this provider, add an entry to `creds.json` with `TYPE` set to `VULTR`
|
||||
along with a Vultr personal access token.
|
||||
|
||||
Example:
|
||||
|
||||
```json
|
||||
{
|
||||
"vultr":{
|
||||
"vultr": {
|
||||
"TYPE": "VULTR",
|
||||
"token": "your-vultr-personal-access-token"
|
||||
}
|
||||
}
|
||||
@@ -24,13 +28,13 @@ This provider does not recognize any special metadata fields unique to Vultr.
|
||||
|
||||
## Usage
|
||||
|
||||
Example javascript:
|
||||
An example `dnsconfig.js` configuration:
|
||||
|
||||
```js
|
||||
var VULTR = NewDnsProvider("vultr", "VULTR");
|
||||
var DSP_VULTR = NewDnsProvider("vultr");
|
||||
|
||||
D("example.tld", REG_DNSIMPLE, DnsProvider(VULTR),
|
||||
A("test","1.2.3.4")
|
||||
D("example.tld", REG_DNSIMPLE, DnsProvider(DSP_VULTR),
|
||||
A("test", "1.2.3.4")
|
||||
);
|
||||
```
|
||||
|
||||
|
||||
18
docs/v316.md
18
docs/v316.md
@@ -80,7 +80,7 @@ The following subcommands require the PTI a parameter on the command line:
|
||||
|
||||
In 3.16, that parameter can be changed to `-` as a placeholder, or removed
|
||||
entirely if it is the last parameter on the command line. When you omit this
|
||||
parameter, DNSControl will look find the value in `creds.json` instead.
|
||||
parameter, DNSControl will find the value in `creds.json` instead.
|
||||
|
||||
In 4.0, that parameter will be removed, though a `-` is permitted for backwards compatibility.
|
||||
|
||||
@@ -129,7 +129,7 @@ Starting in v4.0 these forms are valid:
|
||||
|
||||
## Step 1: Upgrade
|
||||
|
||||
Upgrade to v3.16 or later. If DNSControl is used in many places, do not
|
||||
Upgrade to v3.16 or later. If DNSControl is installed in many places, do not
|
||||
continue until they are all at v3.16 or later.
|
||||
|
||||
## Step 2: Edit creds.json
|
||||
@@ -165,21 +165,31 @@ Run `dnscontrol preview` as one normally would. Fix any errors, warnings, or in
|
||||
|
||||
Here are some examples:
|
||||
|
||||
If you see something like...
|
||||
|
||||
```
|
||||
WARNING: For future compatibility, update the "namedotcom_main" entry in `creds.json` by adding: "TYPE": "NAMEDOTCOM", (See https://stackexchange.github.io/dnscontrol/creds-json#missing)
|
||||
```
|
||||
|
||||
...it means that the TYPE field is missing from that entry in `creds.json`.
|
||||
|
||||
|
||||
If you see something like...
|
||||
|
||||
```
|
||||
ERROR: Mismatch found! creds.json entry "namedotcom_main" has "TYPE" set to "ROUTE53" but dnsconfig.js specifies New*("namedotcom_main", "NAMEDOTCOM") (See https://stackexchange.github.io/dnscontrol/creds-json#mismatch)
|
||||
```
|
||||
|
||||
After you correct some warnings, you may receive information messages like:
|
||||
...it means your `dnsconfig.js` and `creds.json` specify mismatched values. Fix one or the other.
|
||||
|
||||
|
||||
After you correct some warnings, you may receive information messages like...
|
||||
|
||||
```
|
||||
INFO: In dnsconfig.js New*("namedotcom_main", "NAMEDOTCOM") can be simplified to New*("namedotcom_main") (See https://stackexchange.github.io/dnscontrol/creds-json#cleanup)
|
||||
```
|
||||
|
||||
Those messages will disappear as you update `dnsconfig.js` in the next step.
|
||||
...which is a message that will disappear as you update `dnsconfig.js` in the next step.
|
||||
|
||||
## Step 4: Edit dnsconfig.js
|
||||
|
||||
|
||||
Reference in New Issue
Block a user