dnscontrol/providers
Tom Limoncelli 703084160f
REFACTOR: BIND/GANDI_V5 add "RP" record type, rewrite CLOUDFLAREAPI CF_* and more (#3886)
# Issue

* New record type: "RP" (supported by BIND and GANDI_V5) 
* Cloudflare: CF_REDIRECT/CF_TEMP_REDIRECT now generate
CF_SINGLE_REDIRECT records. All PAGE_RULE-based code is removed.
PAGE_RULEs are deprecated at Cloudflare. (be careful when upgrading!)
* New "v2" RecordConfig: RP and CF_SINGLE_REDIRECT are the only record
types that use this method. It shifts most of the work out of JavaScript
and into the Go code, making new record types easier to make, easier to
test, and easier to use by providers. This opens the door to new things
like a potential code-generator for rtypes. Converting existing rtypes
will happen over the next year.
* When only the TTL changes (MODIFY-TTL), the output lists the TTL
change first, not at the end of the line where it is visually lost.
* CF_REDIRECT/CF_TEMP_REDIRECT generate different rule "names". They
will be updated the first time you "push" with this release. The order
of the rules may also change. If you rules depend on a particular order,
be very careful with this upgrade!

Refactoring:

* New "v2" RecordConfig: Record types using this new method simply
package the parameters from dnsconfig.js statements like
CF_REDIRECT(foo,bar) and send them (raw) to the Go code. The Go code
does all processing, validation, etc. and turns them into RecordConfig
that store all the rdata in `RecordConfig.F`. No more adding fields to
RecordConfig for each new record type!
* RecordConfig.IsModernType() returns true if the record uses the new v2
record mechanism.
* PostProcess is now a method on DnsConfig and DomainConfig.
* DOC: How to create new rtypes using the v2 method (incomplete)

Other things:

* Integration tests for CF "full proxy" are removed. This feature
doesn't exist any more.
* DEV: Debugger tips now includes VSCode advice
* TESTING: The names of testgroup's can now have extra spaces to make
data align better
* CF_TEMP_REDIRECT/CF_REDIRECT is now a "builder" that generates
CLOUDFLAREAPI_SINGLE_REDIRECT records.
* And more!

# Resolution

---------

Co-authored-by: Jakob Ackermann <das7pad@outlook.com>
2025-12-04 16:42:20 -05:00
..
_all ALIDNS: Implement ALIDNS Provider (#3878) 2025-12-04 10:55:14 -05:00
adguardhome NEW PROVIDER: ADGUARDHOME (#3638) 2025-07-09 12:06:34 -04:00
akamaiedgedns AKAMAIEDGEDNS: Add ALIAS and AKAMAITLC support to the Akamai Edge DNS provider (#3836) 2025-11-14 09:48:42 -05:00
alidns ALIDNS: Implement ALIDNS Provider (#3878) 2025-12-04 10:55:14 -05:00
autodns POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
axfrddns AXFRDDNS: Chunk large changes in multiple packets (#3732) 2025-08-28 12:27:18 -04:00
azuredns POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
azureprivatedns POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
bind REFACTOR: BIND/GANDI_V5 add "RP" record type, rewrite CLOUDFLAREAPI CF_* and more (#3886) 2025-12-04 16:42:20 -05:00
bunnydns POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
cloudflare REFACTOR: BIND/GANDI_V5 add "RP" record type, rewrite CLOUDFLAREAPI CF_* and more (#3886) 2025-12-04 16:42:20 -05:00
cloudns CLOUDNS: populate zone cache when creating zone (#3331) 2025-12-03 08:36:00 -05:00
cnr POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
cscglobal Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
desec DESEC: populate zone cache after creating zone (#3332) 2025-12-03 08:36:29 -05:00
digitalocean CHORE: Maintainer changes for OPENSRS and DIGITALOCEAN (#3849) 2025-11-24 20:29:43 -05:00
dnsimple Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
dnsmadeeasy POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
doh
domainnameshop Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
dynadot
easyname
exoscale POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
fortigate POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
gandiv5 REFACTOR: BIND/GANDI_V5 add "RP" record type, rewrite CLOUDFLAREAPI CF_* and more (#3886) 2025-12-04 16:42:20 -05:00
gcloud POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
gcore POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
hedns POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
hetzner HETZNER: gracefully handle FQDN labels when listing records (#3859) 2025-12-01 09:08:43 -05:00
hetznerv2 HETZNER_V2: Add provider for Hetzner DNS API (#3837) 2025-11-30 09:14:54 -05:00
hexonet POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
hostingde POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
huaweicloud POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
internetbs
inwx INWX: Enable concurrency support (#3856) 2025-12-01 09:13:06 -05:00
joker POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
linode Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
loopia security fix: Prevent exposure of creds in debug output (#3733) 2025-08-19 10:47:02 -04:00
luadns POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
mythicbeasts MYTHICBEASTS: Mark as concurrent verified. (#3631) 2025-06-20 10:50:22 -04:00
namecheap NAMECHEAP: Enable get-zones (#3775) 2025-09-29 13:43:03 -04:00
namedotcom Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
netcup NETCUP: add TLSA support (#3802) 2025-10-23 10:41:35 -04:00
netlify Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
ns1 POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
opensrs CHORE: Maintainer changes for OPENSRS and DIGITALOCEAN (#3849) 2025-11-24 20:29:43 -05:00
oracle POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
ovh
packetframe Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
porkbun CHORE: Upgrade github.com/failsafe-go/failsafe-go v0.6.9 to v0.7.0 (#3760) 2025-09-02 10:59:45 -04:00
powerdns BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
realtimeregister POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
route53 ROUTE53: make caching of zones thread-safe (#3328) 2025-12-03 08:35:24 -05:00
rwth Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
sakuracloud POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
softlayer Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
transip
vercel VERCEL: Fix some bugs (#3887) 2025-12-04 10:31:11 -05:00
vultr POWERDNS: Zone creation now abides by variant tags (#3830) 2025-11-05 09:33:47 -05:00
capabilities.go REFACTOR: BIND/GANDI_V5 add "RP" record type, rewrite CLOUDFLAREAPI CF_* and more (#3886) 2025-12-04 16:42:20 -05:00
capability_string.go REFACTOR: BIND/GANDI_V5 add "RP" record type, rewrite CLOUDFLAREAPI CF_* and more (#3886) 2025-12-04 16:42:20 -05:00
providers.go ALIDNS: Implement ALIDNS Provider (#3878) 2025-12-04 10:55:14 -05:00