Commit graph

272 commits

Author SHA1 Message Date
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
Jiacheng
bcef7f52fc
ALIDNS: Implement ALIDNS Provider (#3878)
<!--
## Before submiting a pull request

Please make sure you've run the following commands from the root
directory.

    bin/generate-all.sh

(this runs commands like "go generate", fixes formatting, and so on)

## Release changelog section

Help keep the release changelog clear by pre-naming the proper section
in the GitHub pull request title.

Some examples:
* CICD: Add required GHA permissions for goreleaser
* DOCS: Fixed providers with "contributor support" table
* ROUTE53: Allow R53_ALIAS records to enable target health evaluation

More examples/context can be found in the file .goreleaser.yml under the
'build' > 'changelog' key.
!-->

https://github.com/StackExchange/dnscontrol/issues/420


Please create the GitHub label 'provider-ALIDNS'

---------

Co-authored-by: Tom Limoncelli <6293917+tlimoncelli@users.noreply.github.com>
2025-12-04 10:55:14 -05:00
Sukka
6153e3bac9
VERCEL: Fix some bugs (#3887)
The PR follows https://github.com/StackExchange/dnscontrol/pull/3542

Found some bugs when running intergration tests locally again, and the
PR is an attempt to fix them:

- When updating/creating HTTPS/SRV records, Vercel API only reads from
the corresponding struct (either `srv` or `https`). If we provide a
`value`, the Vercel API will reject with an error.
- The PR makes `Value` "nil-able", and sets `Value` to nil when dealing
with `SRV` or `HTTPS` records.
- When updating a record, currently, we treat the empty SVC param as
omitting the field. But with Vercel's API, omitting a field means not
updating the field. We need to explicitly make the field an empty string
to create/update an empty SVC param, and the PR does that.
- Vercel implements an unknown `ech=` parameter validation process for
HTTPS records. The validation process is unknown, undocumented, thus I
can't implement a `rejectif` for `AuditRecord`.
- Let's make this a known caveat, describe it in the provider docs, skip
these intergration tests, and move on.

Please tag this PR w/ `provider-VERCEL`.
2025-12-04 10:31:11 -05:00
Tom Limoncelli
c11a523982
FEATURE: Fixing IDN support for domains (#3879)
# Issue

The previous fix had backwards compatibility issues and treated
uppercase Unicode incorrectly.

# Resolution

* Don't call strings.ToUpper() on Unicode strings. Only call it on the
output of ToASCII.
* Fix BIND's "filenameformat" to be more compatible (only breaks if you
had uppercase unicode in a domain name... which you probably didn't)
* Change IDN to ASCII in most places (Thanks for the suggestion,
@KaiSchwarz-cnic!)
* Update BIND documentation
2025-12-03 20:31:59 -05:00
Sukka
daf5a7a501
VERCEL: Implement Vercel DNS Provider (#3379) (#3542)
Fixes https://github.com/StackExchange/dnscontrol/issues/3379

Thanks to @SukkaW for adding this provider!  Even though you claimed to be "not familiar with Go at all" the new code looks excellent!  Great job!
2025-12-01 08:41:56 -05:00
Jan von Aschwege
a71b89e5a2
NEW FEATURE: Add SMIMEA support for BIND and deSEC (#3786) 2025-10-10 11:16:13 -04:00
Louis Laureys
2122390f29
DOCS: Fill some question marks for cloudns (#3767)
Co-authored-by: Tom Limoncelli <6293917+tlimoncelli@users.noreply.github.com>
2025-10-01 15:47:50 -04:00
Georg
8c8948e69a
NEW RECORD TYPE: OPENPGPKEY (basic) (#3718)
Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2025-08-11 10:44:12 -04:00
Alex Trull
ca64774004
Joker: Implement DNS Provider (#3661)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2025-08-04 16:37:20 -04:00
Tom Limoncelli
633196e328
Warn if IGNORE() is unreliable for this provider (#3683) 2025-07-30 20:41:49 -04:00
Tom Limoncelli
6105082715
TESTING: Exempt 4 providers from NS_only_APEX test (#3687) 2025-07-25 09:46:59 -04:00
Paul Donald
e84925b491
Loopia: feature updates (#3686) 2025-07-24 14:41:57 -04:00
Klett IT
a815bdcf45
FORTIGATE: Add NS and MX record support (#3671)
Co-authored-by: Klett IT <git@klett-it.net>
2025-07-18 10:22:37 -04:00
Tom Limoncelli
8a6baa7c24 Reapply "CHORE: Remove the MSDNS provider (#3656)"
This reverts commit e9f136036f.
2025-07-09 13:07:03 -04:00
Tom Limoncelli
e9f136036f Revert "CHORE: Remove the MSDNS provider (#3656)"
This reverts commit 1ccd5eb532.
2025-07-09 13:06:42 -04:00
Tom Limoncelli
1ccd5eb532
CHORE: Remove the MSDNS provider (#3656) 2025-07-09 12:47:48 -04:00
Ishan Jain
e1830abb58
NEW PROVIDER: ADGUARDHOME (#3638) 2025-07-09 12:06:34 -04:00
Klett IT
3bdbb48164
NEW PROVIDE: FORTIGATE (#3642) 2025-07-08 08:37:19 -04:00
Max Chernoff
3ea7ea84c9
FEATURE: Support ignoring the ech= parameter in HTTPS/SVCB RR types (#3485) 2025-06-11 11:16:15 -04:00
Tom Limoncelli
277a260d64
ROUTE53: BUGFIX converting alias to cname causes failure (#3567) 2025-05-12 17:15:51 -04:00
Tom Limoncelli
5e4d68b41c
CLOUDFLAREAPI: Enable inserting DS records at the domain apex (even if they may be rejected) (#3571) 2025-05-12 17:14:32 -04:00
Will Power
03932c9c1a
NAMECHEAP: fix support for url etc records (#3538)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2025-05-03 08:25:03 -04:00
Tom Limoncelli
c01bfdc7ab
CHORE: Future proof CAA integration test (#3449) 2025-02-24 11:11:10 -05:00
Tom Limoncelli
2c4cc0c5e5
refactor(current-domain) Remove dot from **current-domain** (#3433) 2025-02-14 07:03:33 -05:00
Tom Limoncelli
311b6d8bbb
REFACTOR: Split integration_test.go (it should mostly contain data tables) (#3420) 2025-02-06 15:13:44 -05:00
Tom Limoncelli
9e88b6a801
CICD: Make pager tests more visible (#3387) 2025-01-16 21:47:10 -05:00
Tom Limoncelli
67db0e287d
GCLOUD: remove (irrelevant) slow test (#3384) 2025-01-16 14:41:18 -05:00
Tom Limoncelli
c348e354ff
GCLOUD: CICD: Skip the pager1201 integration test (#3383) 2025-01-16 14:32:32 -05:00
Tom Limoncelli
fc2c506920
CICD: Warn user if -provider does not match profiles.json:TYPE (#3375) 2025-01-15 18:28:15 -05:00
Tom Limoncelli
5dbe5e84c9
CHORE: Fix lint warnings from golangci-lint (#3311) 2025-01-13 11:33:12 -05:00
Tom Limoncelli
4956d3d068
HEXONET: Skip unneeded test to speed up CICD (#3348) 2025-01-10 13:01:59 -05:00
Grégoire Henry
692633845a
TESTING: Improve AXFRDDNS integration tests (#3317) 2025-01-07 08:38:39 -05:00
Jeffrey Cafferata
e8bf7c71d4 CHORE: Rename -provider to -profile within the integration tests. 2025-01-06 09:38:39 -05:00
Jeffrey Cafferata
59afd10bb4 CHORE: Rename providers.json to profiles.json within the integration tests. 2025-01-06 09:38:39 -05:00
Max Chernoff
e664daea53
AXFRDDNS: Modernize, Update supported capabilities (#3294) 2025-01-03 10:08:35 -05:00
Tom Limoncelli
f202433878
CHORE: Remove debug statements (#3293) 2025-01-01 15:12:40 -05:00
Tom Limoncelli
9c3a161ccd
AXFRDDNS: Enable automated testing (#3290) 2025-01-01 14:51:58 -05:00
tomf
ea5e571bcf
CICD: Update docs/comments after file renames (#3278)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2025-01-01 09:25:56 -05:00
Tom Limoncelli
a341022068
BUGFIX: IGNORE() deletes ignored records on ByZone() platforms (#3263) 2024-12-18 20:34:52 -05:00
Tom Limoncelli
3d25d3e3bd
TEST: Improve IGNORE() integration tests (#3255) 2024-12-17 07:44:52 -05:00
Tom Limoncelli
006a434fc6
CNR: Disable pager101 integration test (#3226) 2024-12-09 15:22:00 -05:00
Tom Limoncelli
de0f346ca2
NS1: Remove tests for NS1_URLFWD (#3195) 2024-11-07 16:26:42 -05:00
Tom Limoncelli
2abbab0c84
CHORE: go generate (#3182) 2024-10-30 14:59:19 -04:00
Yuhui Xu
be25228cc8
GCORE: Add support for GeoDNS/Failover (#3161)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2024-10-29 09:23:02 -04:00
fabienmazieres
1edde6274a
Clean-up records after TestDualProviders (#3171) 2024-10-28 11:32:20 -04:00
Paul Donald
d6d50fc862
LOC: fix float altitude value ingestion, gate size and precision values (#3130)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2024-09-27 12:06:19 -04:00
Tom Limoncelli
06ba3cce77
Bugfix: Providers with batched updates might not report the correct number of changes (#3108) 2024-09-16 12:20:30 -04:00
imlonghao
04f34cf2e3
PORKBUN: support URL Forward (#3064)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2024-08-26 14:50:25 -04:00
Tom Limoncelli
0869052419
CLOUDFLAREAPI: CF_SINGLE_REDIRECT improvements: fix bugs, log translated redirects (#3051) 2024-07-18 12:10:46 -04:00
Tom Limoncelli
088306883d
CLOUDFLAREAPI: Add CF_SINGLE_REDIRECT to manage "dynamic single" redirects (#3035) 2024-07-08 12:38:38 -04:00