mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
New provider: INWX (#808)
* adds initial support for INWX * adds all features to the INWX provider * allows domain for tests in creds.json for INWX * runs go generate to update docs for INWX * fixes formatting with gofmt * changes goinwx to github.com/nrdcg/goinwx v0.8.0 * simplifies inwx sandbox check * changes inwx unknown key error to a warning * adds models.PostProcessRecords for inwx records * replaces strings.TrimRight with [:-1] to remove final dot for inwx * adds a comment about the domain creds.json key for the inwx provider * removes warning for invalid creds.json keys in the inwx provider * adds TOTP calculation support for inwx * adds comments to inwxProvider * improves INWX error messages * adds additional documentation about the TOTP support for INWX * adds inwx documentation * bumps goinwx to 0.8.1 to fix the inwx API
This commit is contained in:
@ -20,6 +20,7 @@
|
||||
<th class="rotate"><div><span>GCLOUD</span></div></th>
|
||||
<th class="rotate"><div><span>HEXONET</span></div></th>
|
||||
<th class="rotate"><div><span>INTERNETBS</span></div></th>
|
||||
<th class="rotate"><div><span>INWX</span></div></th>
|
||||
<th class="rotate"><div><span>LINODE</span></div></th>
|
||||
<th class="rotate"><div><span>NAMECHEAP</span></div></th>
|
||||
<th class="rotate"><div><span>NAMEDOTCOM</span></div></th>
|
||||
@ -85,6 +86,9 @@
|
||||
<td class="danger">
|
||||
<i class="fa fa-times text-danger" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td class="danger">
|
||||
<i class="fa fa-times text-danger" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td class="success">
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
@ -178,6 +182,9 @@
|
||||
<td class="success">
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td class="success">
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td class="danger">
|
||||
<i class="fa fa-times text-danger" aria-hidden="true"></i>
|
||||
</td>
|
||||
@ -241,6 +248,9 @@
|
||||
<td class="success">
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td class="success">
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td class="danger">
|
||||
<i class="fa fa-times text-danger" aria-hidden="true"></i>
|
||||
</td>
|
||||
@ -312,6 +322,9 @@
|
||||
<i class="fa has-tooltip fa-times text-danger" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="danger" data-toggle="tooltip" data-container="body" data-placement="top" title="INWX does not support the ALIAS or ANAME record type.">
|
||||
<i class="fa has-tooltip fa-times text-danger" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="danger">
|
||||
<i class="fa fa-times text-danger" aria-hidden="true"></i>
|
||||
@ -363,6 +376,9 @@
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="info" data-toggle="tooltip" data-container="body" data-placement="top" title="Supported by INWX but not implemented yet.">
|
||||
<i class="fa fa-circle-o text-info" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
@ -420,6 +436,9 @@
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="success">
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="success">
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
@ -485,6 +504,9 @@
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="success" data-toggle="tooltip" data-container="body" data-placement="top" title="PTR records with empty targets are not supported">
|
||||
<i class="fa has-tooltip fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="danger">
|
||||
<i class="fa fa-times text-danger" aria-hidden="true"></i>
|
||||
@ -540,6 +562,9 @@
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="success">
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
@ -595,6 +620,9 @@
|
||||
<i class="fa has-tooltip fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="success" data-toggle="tooltip" data-container="body" data-placement="top" title="SRV records with empty targets are not supported.">
|
||||
<i class="fa has-tooltip fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="danger" data-toggle="tooltip" data-container="body" data-placement="top" title="The namecheap web console allows you to make SRV records, but their api does not let you read or set them">
|
||||
<i class="fa has-tooltip fa-times text-danger" aria-hidden="true"></i>
|
||||
@ -662,6 +690,9 @@
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="success">
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
@ -717,6 +748,9 @@
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="success">
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="danger">
|
||||
<i class="fa fa-times text-danger" aria-hidden="true"></i>
|
||||
@ -768,6 +802,9 @@
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="danger" data-toggle="tooltip" data-container="body" data-placement="top" title="INWX only supports a single entry for TXT records">
|
||||
<i class="fa has-tooltip fa-times text-danger" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="danger">
|
||||
@ -816,6 +853,7 @@
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="success">
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
@ -840,6 +878,9 @@
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="danger">
|
||||
<i class="fa fa-times text-danger" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
@ -877,6 +918,9 @@
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="info" data-toggle="tooltip" data-container="body" data-placement="top" title="DS records are only supported at the apex and require a different API call that hasn't been implemented yet.">
|
||||
<i class="fa fa-circle-o text-info" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
@ -928,6 +972,9 @@
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="success">
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td class="danger">
|
||||
<i class="fa fa-times text-danger" aria-hidden="true"></i>
|
||||
</td>
|
||||
@ -1001,6 +1048,9 @@
|
||||
<td class="danger">
|
||||
<i class="fa fa-times text-danger" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td class="info" data-toggle="tooltip" data-container="body" data-placement="top" title="Supported by INWX but not implemented yet.">
|
||||
<i class="fa fa-circle-o text-info" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td class="danger">
|
||||
<i class="fa fa-times text-danger" aria-hidden="true"></i>
|
||||
</td>
|
||||
@ -1085,6 +1135,9 @@
|
||||
<td class="success">
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td class="success">
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td class="danger">
|
||||
<i class="fa fa-times text-danger" aria-hidden="true"></i>
|
||||
</td>
|
||||
@ -1161,6 +1214,9 @@
|
||||
<i class="fa fa-circle-o text-info" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td><i class="fa fa-minus dim"></i></td>
|
||||
<td class="success">
|
||||
<i class="fa fa-check text-success" aria-hidden="true"></i>
|
||||
</td>
|
||||
<td class="info">
|
||||
<i class="fa fa-circle-o text-info" aria-hidden="true"></i>
|
||||
</td>
|
||||
|
99
docs/_providers/inwx.md
Normal file
99
docs/_providers/inwx.md
Normal file
@ -0,0 +1,99 @@
|
||||
---
|
||||
name: INWX
|
||||
layout: default
|
||||
jsId: INWX
|
||||
---
|
||||
|
||||
# INWX
|
||||
|
||||
INWX.de is a Berlin-based domain registrar.
|
||||
|
||||
## Configuration
|
||||
In your `creds.json` file you must provide your INWX
|
||||
username and password:
|
||||
|
||||
{% highlight json %}
|
||||
{
|
||||
"inwx":{
|
||||
"username": "yourUsername",
|
||||
"password": "yourPassword"
|
||||
}
|
||||
}
|
||||
{% endhighlight %}
|
||||
|
||||
### Two factor authentication
|
||||
|
||||
If two factor authentication has been enabled you will also need to provide a valid TOTP number.
|
||||
This can also be done
|
||||
via an environment variable:
|
||||
{% highlight json %}
|
||||
{
|
||||
"inwx":{
|
||||
"username": "yourUsername",
|
||||
"password": "yourPassword",
|
||||
"totp": "$INWX_TOTP"
|
||||
}
|
||||
}
|
||||
{% endhighlight %}
|
||||
|
||||
and then you can run
|
||||
|
||||
{% highlight bash %}
|
||||
$ INWX_TOTP=12345 dnscontrol preview
|
||||
{% endhighlight %}
|
||||
|
||||
It is also possible to directly provide the shared TOTP secret using the key "totp-key" in `creds.json`.
|
||||
This secret is only shown once when two factor authentication is enabled and you'll have to make sure to write it down then.
|
||||
|
||||
**Important Notes**:
|
||||
* Anyone with access to this `creds.json` file will have *full* access to your INWX account and will be able to transfer and/or delete your domains
|
||||
* Storing the shared secret together with the password weakens two factor authentication because both factors are stored in a single place.
|
||||
|
||||
{% highlight json %}
|
||||
{
|
||||
"inwx":{
|
||||
"username": "yourUsername",
|
||||
"password": "yourPassword",
|
||||
"totp-key": "yourTOTPSharedSecret"
|
||||
}
|
||||
}
|
||||
{% endhighlight %}
|
||||
|
||||
|
||||
### Sandbox
|
||||
You can optionally also specify sandbox with a value of 1 to
|
||||
redirect all requests to the sandbox API instead:
|
||||
{% highlight json %}
|
||||
{
|
||||
"inwx":{
|
||||
"username": "yourUsername",
|
||||
"password": "yourPassword",
|
||||
"sandbox": "1"
|
||||
}
|
||||
}
|
||||
{% endhighlight %}
|
||||
|
||||
If sandbox is omitted or set to any other value the production
|
||||
API will be used.
|
||||
|
||||
|
||||
## Metadata
|
||||
This provider does not recognize any special metadata fields unique to
|
||||
INWX.
|
||||
|
||||
## Usage
|
||||
Example Javascript for `example.tld` registered with INWX
|
||||
and delegated to CloudFlare:
|
||||
|
||||
{% highlight js %}
|
||||
var regInwx = NewRegistrar('inwx', 'INWX')
|
||||
var dnsCF = NewDnsProvider('cloudflare', 'CLOUDFLAREAPI')
|
||||
|
||||
D("example.tld", regInwx, DnsProvider(dnsCF),
|
||||
A("test","1.2.3.4")
|
||||
);
|
||||
|
||||
{%endhighlight%}
|
||||
|
||||
|
||||
|
@ -80,6 +80,7 @@ Maintainers of contributed providers:
|
||||
* `GANDI_V5` @TomOnTime
|
||||
* `HEXONET` @papakai
|
||||
* `INTERNETBS` @pragmaton
|
||||
* `INWX` @svenpeter42
|
||||
* `LINODE` @koesie10
|
||||
* `NAMECHEAP` @captncraig
|
||||
* `NETCUP` @kordianbruck
|
||||
|
Reference in New Issue
Block a user