gandi: Added support for personal access tokens
This commit is contained in:
parent
9b7714c39c
commit
12e9a7c47b
2 changed files with 31 additions and 12 deletions
|
@ -199,7 +199,8 @@ ssl=yes # use ssl-support. Works with
|
||||||
## Single host update
|
## Single host update
|
||||||
# protocol=gandi
|
# protocol=gandi
|
||||||
# zone=example.com
|
# zone=example.com
|
||||||
# password=my-gandi-api-key
|
# password=my-gandi-access-token
|
||||||
|
# use-personal-access-token=yes
|
||||||
# ttl=10800 # optional
|
# ttl=10800 # optional
|
||||||
# myhost.example.com
|
# myhost.example.com
|
||||||
|
|
||||||
|
|
26
ddclient.in
26
ddclient.in
|
@ -730,6 +730,7 @@ my %services = (
|
||||||
'min-interval' => setv(T_DELAY, 0, 0, 0, interval('5m')),
|
'min-interval' => setv(T_DELAY, 0, 0, 0, interval('5m')),
|
||||||
'server' => setv(T_FQDNP, 1, 0, 'api.gandi.net', undef),
|
'server' => setv(T_FQDNP, 1, 0, 'api.gandi.net', undef),
|
||||||
'script' => setv(T_STRING, 1, 1, '/v5', undef),
|
'script' => setv(T_STRING, 1, 1, '/v5', undef),
|
||||||
|
'use-personal-access-token' => setv(T_BOOL, 0, 0, 0, undef),
|
||||||
'ttl' => setv(T_DELAY, 0, 0, undef, interval('5m')),
|
'ttl' => setv(T_DELAY, 0, 0, undef, interval('5m')),
|
||||||
'zone' => setv(T_FQDN, 1, 0, undef, undef),
|
'zone' => setv(T_FQDN, 1, 0, undef, undef),
|
||||||
# Unused variables.
|
# Unused variables.
|
||||||
|
@ -7455,20 +7456,31 @@ Description of Gandi's LiveDNS API can be found at:
|
||||||
https://api.gandi.net/docs/livedns/
|
https://api.gandi.net/docs/livedns/
|
||||||
|
|
||||||
Available configuration variables:
|
Available configuration variables:
|
||||||
* password: The Gandi API key. If you don’t have one yet, you can generate
|
* password: The Gandi API key or personal access token. If you don’t have
|
||||||
your production API key from the API Key Page (in the Security section).
|
one yet, you can generate a production API key from the API Key Page
|
||||||
Required.
|
(in the Security section) or a personal access token from the Gandi
|
||||||
|
Admin application. Required.
|
||||||
|
* use-personal-access-token: Whether the password value is a API key or a
|
||||||
|
personal access token. Defaults to API key. Note that API keys are
|
||||||
|
deprecated by Gandi.
|
||||||
* zone: The DNS zone to be updated. Required.
|
* zone: The DNS zone to be updated. Required.
|
||||||
* ttl: The time-to-live value associated with the updated DNS record.
|
* ttl: The time-to-live value associated with the updated DNS record.
|
||||||
Optional; uses Gandi's default (10800) if unset.
|
Optional; uses Gandi's default (10800) if unset.
|
||||||
|
|
||||||
Example ${program}.conf file entries:
|
Example ${program}.conf file entries:
|
||||||
## Single host update.
|
## Single host update using API key.
|
||||||
protocol=gandi
|
protocol=gandi
|
||||||
zone=example.com
|
zone=example.com
|
||||||
password=my-gandi-api-key
|
password=my-gandi-api-key
|
||||||
host.example.com
|
host.example.com
|
||||||
|
|
||||||
|
## Single host update using Personal access token
|
||||||
|
protocol=gandi
|
||||||
|
zone=example.com
|
||||||
|
password=my-gandi-personal-access-token
|
||||||
|
use-personal-access-token=yes
|
||||||
|
host.example.com
|
||||||
|
|
||||||
## Multiple host update.
|
## Multiple host update.
|
||||||
protocol=gandi
|
protocol=gandi
|
||||||
zone=example.com
|
zone=example.com
|
||||||
|
@ -7496,7 +7508,13 @@ sub nic_gandi_update {
|
||||||
|
|
||||||
my $headers;
|
my $headers;
|
||||||
$headers = "Content-Type: application/json\n";
|
$headers = "Content-Type: application/json\n";
|
||||||
|
if ($config{$h}{'use-personal-access-token'} == 1) {
|
||||||
|
$headers .= "Authorization: Bearer $config{$h}{'password'}\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
$headers .= "Authorization: Apikey $config{$h}{'password'}\n";
|
$headers .= "Authorization: Apikey $config{$h}{'password'}\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue