dnscontrol/pkg/js/parse_tests
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
..
001-basic
002-ttl
003-meta
004-ips
006-transforms TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
008-import
011-cfRedirect REFACTOR: BIND/GANDI_V5 add "RP" record type, rewrite CLOUDFLAREAPI CF_* and more (#3886) 2025-12-04 16:42:20 -05:00
012-duration TESTING: pkg/js/parse_tests: fix a broken test (#1498) 2022-05-03 19:46:48 -04:00
013-mx
014-caa
015-tlsa
017-txt REFACTOR: Opinion: TXT records are one long string (#2631) 2023-12-04 17:45:25 -05:00
018-dkim REFACTOR: Opinion: TXT records are one long string (#2631) 2023-12-04 17:45:25 -05:00
020-complexRequire
021-srv
022-sshfp
023-ignored-glob-records
024-json-import
027-ds
028-dextend
029-dextendsub BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
030-dextenddoc
031-dextendnames
032-reverseip
033-revextend
035-naptr
036-dextendcf REFACTOR: BIND/GANDI_V5 add "RP" record type, rewrite CLOUDFLAREAPI CF_* and more (#3886) 2025-12-04 16:42:20 -05:00
037-splithor Improve tagged domain handling in support of Split Horizon feature (#3444) 2025-02-25 12:27:24 -05:00
038-soa
040-cfWorkerRoute
045-loc LOC: fix float altitude value ingestion, gate size and precision values (#3130) 2024-09-27 12:06:19 -04:00
050-cfSingleRedirect REFACTOR: BIND/GANDI_V5 add "RP" record type, rewrite CLOUDFLAREAPI CF_* and more (#3886) 2025-12-04 16:42:20 -05:00
054-b3487_d_extend_rev bug(rev) D_EXTEND does not work with REV (#3488) 2025-03-21 12:39:23 -04:00
055-b3550-ipv6ptr BUGFIX: REV fails in D_EXTEND for IPv6 addresses (#3552) 2025-05-03 08:20:44 -04:00
complexImports TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
001-basic.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
001-basic.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
002-ttl.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
002-ttl.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
003-meta.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
003-meta.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
004-ips.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
004-ips.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
005-ignored-records.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
005-ignored-records.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
006-transforms.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
006-transforms.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
007-importTransformTTL.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
007-importTransformTTL.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
008-import.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
008-import.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
009-reverse.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
009-reverse.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
010-alias.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
010-alias.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
011-cfRedirect.js REFACTOR: BIND/GANDI_V5 add "RP" record type, rewrite CLOUDFLAREAPI CF_* and more (#3886) 2025-12-04 16:42:20 -05:00
011-cfRedirect.json REFACTOR: BIND/GANDI_V5 add "RP" record type, rewrite CLOUDFLAREAPI CF_* and more (#3886) 2025-12-04 16:42:20 -05:00
012-duration.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
012-duration.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
013-mx.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
013-mx.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
014-caa.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
014-caa.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
015-tlsa.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
015-tlsa.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
017-txt.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
017-txt.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
018-dkim.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
018-dkim.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
019-r53-alias.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
019-r53-alias.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
020-complexRequire.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
020-complexRequire.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
021-srv.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
021-srv.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
022-sshfp.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
022-sshfp.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
023-ignored-glob-records.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
023-ignored-glob-records.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
024-json-import.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
024-json-import.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
025-autodnssec.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
025-autodnssec.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
026-azure-alias.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
026-azure-alias.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
027-ds.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
027-ds.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
028-dextend.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
028-dextend.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
029-dextendsub.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
029-dextendsub.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
030-dextenddoc.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
030-dextenddoc.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
031-dextendnames.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
031-dextendnames.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
032-reverseip.js bug(rev) D_EXTEND does not work with REV (#3488) 2025-03-21 12:39:23 -04:00
032-reverseip.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
033-revextend.js bug(rev) D_EXTEND does not work with REV (#3488) 2025-03-21 12:39:23 -04:00
033-revextend.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
034-nameserver-ttl.js
034-nameserver-ttl.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
035-naptr.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
035-naptr.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
036-dextendcf.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
036-dextendcf.json REFACTOR: BIND/GANDI_V5 add "RP" record type, rewrite CLOUDFLAREAPI CF_* and more (#3886) 2025-12-04 16:42:20 -05:00
037-splithor.js Improve tagged domain handling in support of Split Horizon feature (#3444) 2025-02-25 12:27:24 -05:00
037-splithor.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
038-soa.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
038-soa.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
039-include.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
039-include.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
040-cfWorkerRoute.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
040-cfWorkerRoute.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
040-r53-zone.js
040-r53-zone.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
041-newstyleproviders.js NEW FEATURE: Moving provider TYPE from dnsconfig.js to creds.json (#1500) 2022-05-08 14:23:45 -04:00
041-newstyleproviders.json CICD: json files should be strictly formatted (#3282) 2025-01-01 12:02:23 -05:00
043-safety.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
043-safety.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
044-ensureabsent.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
044-ensureabsent.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
045-loc.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
045-loc.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
046-DHCID.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
046-DHCID.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
047-DNAME.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
047-DNAME.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
047-SVCB.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
047-SVCB.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
048-DNSKEY.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
048-DNSKEY.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
049-json5-require.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
049-json5-require.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
050-cfSingleRedirect.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
050-cfSingleRedirect.json REFACTOR: BIND/GANDI_V5 add "RP" record type, rewrite CLOUDFLAREAPI CF_* and more (#3886) 2025-12-04 16:42:20 -05:00
051-HASH.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00
051-HASH.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
054-b3487_d_extend_rev.js bug(rev) D_EXTEND does not work with REV (#3488) 2025-03-21 12:39:23 -04:00
054-b3487_d_extend_rev.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
055-b3550-ipv6ptr.js BUGFIX: REV fails in D_EXTEND for IPv6 addresses (#3552) 2025-05-03 08:20:44 -04:00
055-b3550-ipv6ptr.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
056-openpgpkey.js NEW RECORD TYPE: OPENPGPKEY (basic) (#3718) 2025-08-11 10:44:12 -04:00
056-openpgpkey.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
057-smimea.js NEW FEATURE: Add SMIMEA support for BIND and deSEC (#3786) 2025-10-10 11:16:13 -04:00
057-smimea.json BUGFIX: IDN support is broken for domain names (#3845) 2025-11-29 12:17:44 -05:00
058-ignore-external-dns.js feat: Add IGNORE_EXTERNAL_DNS() for Kubernetes external-dns coexistence (#3869)s 2025-12-03 08:56:55 -05:00
058-ignore-external-dns.json CHORE: fmt (#3882) 2025-12-03 14:53:02 -05:00
domain-ip-map.json CICD: json files should be strictly formatted (#3282) 2025-01-01 12:02:23 -05:00
domain-ip-map.json5 FEATURE: Enable "require()" function to accept json5 files (#3003) 2024-06-11 15:27:11 -04:00
import.js TESTING: parse_tests: reformat/regenerate .js .json files 2025-01-03 13:19:39 -05:00