Commit graph

155 commits

Author SHA1 Message Date
Tom Limoncelli
6d4a185422
REFACTOR: Run moderize -fix (#3908)
# Issue

We haven't run `moderize` on the codebase in a while. There have been
many updates to the Go language since.

# Resolution

Run it. Test it.
2025-12-09 14:23:26 -05:00
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
Tom Limoncelli
1b2f5d4d34
BUGFIX: IDN support is broken for domain names (#3845)
# Issue

Fixes https://github.com/StackExchange/dnscontrol/issues/3842

CC @das7pad

# Resolution

Convert domain.Name to IDN earlier in the pipeline. Hack the --domains
processing to convert everything to IDN.

* Domain names are now stored 3 ways: The original input from
dnsconfig.js, canonical IDN format (`xn--...`), and Unicode format. All
are downcased. Providers that haven't been updated will receive the IDN
format instead of the original input format. This might break some
providers but only for users with unicode in their D("domain.tld").
PLEASE TEST YOUR PROVIDER.
* BIND filename formatting options have been added to access the new
formats.

# Breaking changes

* BIND zonefiles may change. The default used the name input in the D()
statement. It now defaults to the IDN name + "!tag" if there is a tag.
* Providers that are not IDN-aware may break (hopefully only if they
weren't processing IDN already)

---------

Co-authored-by: Jakob Ackermann <das7pad@outlook.com>
2025-11-29 12:17:44 -05:00
Gabe Van Engel
97209bc2fc
AKAMAIEDGEDNS: Add ALIAS and AKAMAITLC support to the Akamai Edge DNS provider (#3836) 2025-11-14 09:48:42 -05:00
Elvis Ratzlaff
2a4e2509bc
POWERDNS: New record type: LUA (#3815) 2025-11-03 11:32:28 -05:00
Tom Limoncelli
3eddfcd037
feat(validation): Validation errors now include the line number (#3788) 2025-10-10 13:48:41 -04:00
Jan von Aschwege
a71b89e5a2
NEW FEATURE: Add SMIMEA support for BIND and deSEC (#3786) 2025-10-10 11:16:13 -04:00
Paul Sütterlin
589cb77c68
CAA: Support issuemail / issuevmc tag in CAA builder (#3774)
Co-authored-by: Paul Sütterlin <psuet@kawo1.rwth-aachen.de>
2025-09-22 16:12:30 -04:00
Tom Limoncelli
f2ff95a20e
FEATURE: Optionally disable spfcache.json (#3765)
Co-authored-by: Jeffrey Cafferata <jeffrey@jcid.nl>
2025-09-13 12:23:46 -04:00
networkException
f874b5fc1d
FEATURE: Support RFC 9495 issuemail tag in CAA records (#3762) 2025-09-05 16:07:42 -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
Tom Limoncelli
1f86d69b09
DOCS: Warn that "" should be "@" in error messages & docs. Update docs to suggest safer onboarding process. (#3691) 2025-07-29 14:50:59 -04:00
Eli Heady
48c99f7065
Improve tagged domain handling in support of Split Horizon feature (#3444)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2025-02-25 12:27:24 -05:00
Costas Drogos
4f5655e510
NS1: remove deprecated NS1_URLFWD (#3400)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2025-01-27 10:29:26 -05:00
Tom Limoncelli
5dbe5e84c9
CHORE: Fix lint warnings from golangci-lint (#3311) 2025-01-13 11:33:12 -05:00
Tom Limoncelli
9df5a25715
CHORE: Linting corrections (#3236) 2024-12-12 14:07:11 -05:00
Tom Limoncelli
df8f8a6426
feat(import_transform): skip records with import_transform_skip set (#3193) 2024-11-07 17:21:35 -05:00
Tom Limoncelli
583cba3855
IMPORT_TRANSFORM_SUFFIX: Fix for CNAMEs (#3192) 2024-11-04 17:00:08 -05:00
Tom Limoncelli
74582e14e7
BUG: IMPORT_TRANSFORM_STRIP not stripping CNAME targets (#3189) 2024-11-01 14:30:37 -04:00
Tom Limoncelli
1872b12116
NEW FEATURE: IMPORT_TRANSFORM_STRIP (#3181) 2024-10-31 11:05:56 -04:00
Tom Limoncelli
571eaf0244
CLOUDFLAREAPI: Bugfix: Fix misaligned CF_SINGLE_REDIRECT validation (#3042) 2024-07-09 14:32:37 -04:00
Tom Limoncelli
088306883d
CLOUDFLAREAPI: Add CF_SINGLE_REDIRECT to manage "dynamic single" redirects (#3035) 2024-07-08 12:38:38 -04:00
Florian Ritterhoff
3a9b413175
NEW RECORD TYPE: HTTPS & SVCB (#2919)
Thanks so much for this contribution!  I have a feeling that a lot of people are going to need these records soon!
2024-05-01 11:37:15 -04:00
xtex
3f05482e6b
NEW RECORD TYPE: DNSKEY (#2917)
Signed-off-by: xtex <xtexchooser@duck.com>
2024-04-22 09:54:12 -04:00
imlonghao
42125b5248
NEW RECORD TYPE: DNAME (#2893) 2024-04-02 14:28:57 -04:00
Tom Limoncelli
a9a4725356
BUG: ALIAS target not properly canonicalized (#2899) 2024-04-01 16:47:11 -04:00
Tom Limoncelli
e52ec54453
Remove unused CantUseNOPURGE capability (#2877) 2024-03-18 18:30:09 -04:00
Tom Limoncelli
b1477d35e4 fix unused params in: pkg/normalize 2024-03-04 12:28:09 -05:00
Tom Limoncelli
cbccbbeb8d
REFACTOR: Opinion: TXT records are one long string (#2631)
Co-authored-by: Costas Drogos <costas.drogos@gmail.com>
Co-authored-by: imlonghao <git@imlonghao.com>
Co-authored-by: Jeffrey Cafferata <jeffrey@jcid.nl>
Co-authored-by: Vincent Hagen <blackshadev@users.noreply.github.com>
2023-12-04 17:45:25 -05:00
Tom Limoncelli
3dab594757
CHORE: More cleanups (#2632) 2023-11-19 13:44:49 -05:00
Tom Limoncelli
c91fe6c1c8
CHORE: Remove diff1 from codebase (#2575) 2023-10-22 13:56:13 -04:00
Tom Limoncelli
46f15114dd
IMPORT_TRANSFORM: Be more forgiving about non-standard rtypes (#2587) 2023-10-08 11:33:19 -04:00
Tom Limoncelli
08afef7f7c
CHORE: Clean up checkRecordSetHasMultipleTTLs (#2565) 2023-09-20 13:03:46 -04:00
Florian Ritterhoff
b6e183d4b5 add missing handling of dhcid 2023-09-10 08:09:02 +02:00
Florian Ritterhoff
3e1e7aeb8e fix: correct order for dhcid 2023-09-10 08:09:02 +02:00
Florian Ritterhoff
1c5e038c67 add dhcid type 2023-09-10 08:09:02 +02:00
Tom Limoncelli
0b7dabacc8
NEW FEATURE: IGNORE() (diff2 only) (#2388)
Co-authored-by: Jeffrey Cafferata <jeffrey@jcid.nl>
2023-05-24 15:14:36 -04:00
nemunaire
5ae231030e
Update version in go.mod (#2382) 2023-05-20 13:21:45 -04:00
Daniil Lemenkov
36e3595612
CHORE: Satisfy Staticcheck and remove unused code (#2331) 2023-05-08 16:49:26 -04:00
Florent Thoumie
a8b0d4ca66
NS1 Fix URLFWD implementation by being more consistent (#2320) 2023-05-05 09:11:57 -04:00
Tom Limoncelli
489be2e3dc
ROUTE53: fix R53_ZONE() handling for domains (#2306)
Co-authored-by: Tom Limoncelli <tal@whatexit.org>
2023-05-02 13:04:59 -04:00
Paul Dee
036c8b23b3
CHORE: Alphabetize various code lists (#2242)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2023-03-28 19:30:01 -04:00
Tom Limoncelli
ad2f028d76
BUG: TTL consistency check should be on ResourceSet, not Label (#2200) 2023-03-18 10:54:59 -04:00
Tom Limoncelli
c72495d37b
BUG: AutoDNSSEC validation is too aggressive (#2196) 2023-03-17 15:13:45 -04:00
Tom Limoncelli
9f6499048c Revert "BUG: AutoDNSSEC validation is too aggressive"
This reverts commit 61fc663c3d.
2023-03-17 11:37:06 -04:00
Tom Limoncelli
61fc663c3d BUG: AutoDNSSEC validation is too aggressive
This should be a warning.
2023-03-17 11:36:44 -04:00
Paul Dee
3b6591fd95
NEW FEATURE: Support DNS LOC record type (#2174) 2023-03-16 14:04:20 -04:00
Tom Limoncelli
dde7e5daf7
FEATURE: Detect simple CNAME loops (#2112) 2023-03-01 10:15:41 -05:00
Tom Limoncelli
169d7c8062
CHORE: linting (#2098) 2023-02-27 20:28:17 -05:00
Yannik Sembritzki
b1b24df6cb
Remove value check for removed AUTODNSSEC() function (we now only have AUTODNSSEC_ON and AUTODNSSEC_OFF) (#2091) 2023-02-23 08:28:22 -05:00