This package implements the libdns interfaces for Cloudflare.
Important
This package supports API token authentication (as opposed to legacy API keys).
There are two approaches for token permissions supported by this package:
- Single token for everything
APITokenpermissions required: Zone:Read, Zone.DNS:Write - All zones
- Dual token method
ZoneTokenpermissions required: Zone:Read - All zonesAPITokenpermissions required: Zone.DNS:Write - for the zone(s) you wish to manage
The dual token method allows users who have multiple DNS zones in their Cloudflare account to restrict which zones the token can access, whereas the first method will allow access to all DNS Zones. If you only have one domain/zone then this approach does not provide any benefit, and you might as well just have the single API token
To use the dual token approach simply ensure that the ZoneToken property is provided - otherwise the package will use APIToken for all API requests.
To clarify, do NOT use API keys, which are globally-scoped:
DO use scoped API tokens:
// With Auth
p := cloudflare.Provider{
APIToken: "apitoken",
ZoneToken: "zonetoken", // optional
}
// With Custom HTTP Client
p := cloudflare.Provider{
APIToken: "apitoken",
HTTPClient: http.Client{
Timeout: 10 * time.Second,
},
}
