Skip to content

Add DNSSEC DNS record types - #7564

Merged
Mzack9999 merged 1 commit into
devfrom
dnssec-record-types
Jul 24, 2026
Merged

Add DNSSEC DNS record types#7564
Mzack9999 merged 1 commit into
devfrom
dnssec-record-types

Conversation

@Mzack9999

@Mzack9999 Mzack9999 commented Jul 22, 2026

Copy link
Copy Markdown
Member

Closes #5693

The DNS protocol type whitelist did not include DNSSEC records, so templates could not query NSEC/NSEC3 for zonewalking-style checks.

Adds NSEC, NSEC3, NSEC3PARAM, DNSKEY, and RRSIG to the DNS type enum and question mapping. Response extraction already handles these via miekg/dns. Unit tests cover parsing, Make(), and YAML unmarshal.

Summary by CodeRabbit

  • New Features

    • Added support for DNSSEC record query types: RRSIG, NSEC, DNSKEY, NSEC3, and NSEC3PARAM.
    • These types are now available in DNS request configuration and schema validation.
  • Documentation

    • Updated syntax and generated documentation to list the newly supported DNSSEC types.
  • Tests

    • Added coverage for DNSSEC type parsing, conversion, validation, and request generation.

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c41504b2-f2cc-4b9e-aa9f-ca9cea9e8046

📥 Commits

Reviewing files that changed from the base of the PR and between be21943 and 1203d4e.

📒 Files selected for processing (5)
  • SYNTAX-REFERENCE.md
  • pkg/protocols/dns/dns.go
  • pkg/protocols/dns/dns_types.go
  • pkg/protocols/dns/dns_types_test.go
  • pkg/templates/templates_doc.go

Walkthrough

DNSSEC record types RRSIG, NSEC, DNSKEY, NSEC3, and NSEC3PARAM are added to DNS request enums, mappings, conversion logic, schemas, documentation, and unit tests.

Changes

DNSSEC request type support

Layer / File(s) Summary
DNSSEC request type contracts
pkg/protocols/dns/dns_types.go, pkg/protocols/dns/dns.go, SYNTAX-REFERENCE.md, pkg/templates/templates_doc.go
Adds DNSSEC enum values and mappings, expands request schema metadata, and updates generated and reference documentation.
DNSSEC request conversion and validation
pkg/protocols/dns/dns.go, pkg/protocols/dns/dns_types_test.go
Maps DNSSEC strings to DNS type constants and tests parsing, invalid input, supported types, NSEC question construction, and YAML unmarshalling.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Template
  participant DNSRequestTypeHolder
  participant questionTypeToInt
  participant RequestMake
  participant DNS
  Template->>DNSRequestTypeHolder: provide DNSSEC request type
  DNSRequestTypeHolder->>questionTypeToInt: resolve type string
  questionTypeToInt->>DNS: return matching Type constant
  RequestMake->>DNS: construct dns.Question
Loading

Poem

I’m a rabbit with DNS in my hat,
NSEC hops forward—imagine that!
RRSIG and keys join the queue,
YAML knows what they should do.
Five new types now dance in flight—
Thump, thump, validated right!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding DNSSEC DNS record types.
Linked Issues check ✅ Passed The PR adds native DNSSEC record support, including NSEC/NSEC3, matching the linked issue's goal.
Out of Scope Changes check ✅ Passed The changes stay focused on DNSSEC record support, documentation, and tests.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dnssec-record-types

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Mzack9999 Mzack9999 self-assigned this Jul 22, 2026
@Mzack9999
Mzack9999 merged commit 44e6f54 into dev Jul 24, 2026
19 checks passed
@Mzack9999
Mzack9999 deleted the dnssec-record-types branch July 24, 2026 06:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support for DNSSEC specific records like NSEC/NSEC3

2 participants