DNS Record Types Supported by is-a.dev: Complete Registry Guide

The is-a.dev registry supports exactly eleven DNS record types—A, AAAA, CAA, CNAME, DS, MX, NS, SRV, TLSA, TXT, and URL—validated through the validRecordTypes Set defined in tests/records.test.js and deployed via dnsconfig.js.

The is-a.dev project provides free sub-domains for developers through the is-a-dev/register repository, enforcing strict schema validation to ensure every DNS configuration conforms to supported types. When you submit a domain configuration, the automated test suite validates your records against the canonical whitelist before dnsconfig.js translates them into Cloudflare API calls.

Complete List of Supported DNS Record Types

The registry recognizes eleven distinct record types, each serving specific infrastructure purposes:

  • A: IPv4 address mapping (e.g., 192.0.2.123) for direct host-to-IP resolution
  • AAAA: IPv6 address mapping (e.g., 2001:db8::1) for modern IP connectivity
  • CAA: Certification Authority Authorization, restricting which CAs may issue certificates for your domain
  • CNAME: Canonical name pointing to external hostnames, flattened via Cloudflare ALIAS records
  • DS: Delegation Signer for linking to DNSSEC-signed child zones
  • MX: Mail exchange records with priority-based email routing
  • NS: Name server delegation for transferring DNS authority to external servers
  • SRV: Service locator for protocol-specific endpoints (e.g., _sip._tcp)
  • TLSA: TLS Authentication for DANE certificate validation
  • TXT: Generic text records for domain verification, SPF policies, and arbitrary strings
  • URL: Special HTTP(S) redirect record that proxies through Cloudflare IP 192.0.2.1

These types are explicitly enumerated in the validRecordTypes Set within tests/records.test.js. Any record type outside this list triggers immediate validation failure in the CI pipeline.

Validation and Deployment Architecture

Two critical files govern which DNS records reach production infrastructure.

Record Validation in the Test Suite

The tests/records.test.js file contains the authoritative schema definition. The validRecordTypes Set acts as a whitelist:

// Conceptual structure from the test suite implementation
const validRecordTypes = new Set([
  'A', 'AAAA', 'CAA', 'CNAME', 'DS', 'MX', 
  'NS', 'SRV', 'TLSA', 'TXT', 'URL'
]);

Every pull request undergoes automated validation against this Set. If your domains/yourname.json contains an undefined record type, the test suite rejects the submission before it reaches maintainers.

Cloudflare Configuration Generation

The dnsconfig.js script processes only validated record types from the whitelist. It contains conditional blocks that translate JSON configurations into Cloudflare DNS records:

// Implementation logic from dnsconfig.js
if (data.records.A) { /* Generate A records */ }
if (data.records.CNAME) { /* Generate ALIAS records */ }
if (data.records.URL) { /* Generate proxy redirect to 192.0.2.1 */ }

This architecture ensures that only the eleven supported DNS record types ever reach the live Cloudflare infrastructure.

Configuration Examples by Record Type

A and AAAA Records for Direct Hosting

Map your sub-domain to specific IPv4 and IPv6 addresses:

{
  "records": {
    "A": ["203.0.113.10"],
    "AAAA": ["2606:2800:220:1:248:1893:25c8:1946"]
  },
  "proxied": false
}

Set "proxied": true to enable Cloudflare's CDN and security services for these IP addresses.

CNAME and URL Redirects

Point your sub-domain to external hostnames or configure HTTP redirects:

{
  "records": {
    "CNAME": "example.com",
    "URL": "https://example.com/welcome"
  },
  "proxied": true
}

The CNAME creates a flattened ALIAS record at the DNS level, while the URL type automatically configures the special proxy IP 192.0.2.1 to handle HTTP(S) redirects through Cloudflare's edge network.

MX Records for Email Routing

Direct email traffic to specific mail servers with priority weighting:

{
  "records": {
    "MX": [
      { "priority": 10, "target": "mail.is-a.dev" },
      { "priority": 20, "target": "backup-mail.is-a.dev" }
    ]
  },
  "proxied": false
}

Lower priority values indicate preferred mail servers. The registry supports multiple MX entries for redundancy.

Advanced Security and Service Records

Configure DNSSEC delegation, service discovery, and certificate validation:

{
  "records": {
    "DS": [
      {
        "key_tag": 12345,
        "algorithm": 13,
        "digest_type": 2,
        "digest": "ABCD1234EF567890..."
      }
    ],
    "SRV": [
      {
        "priority": 5,
        "_service": "_sip",
        "_proto": "_tcp",
        "target": "sip.is-a.dev",
        "port": 5060,
        "weight": 10
      }
    ],
    "TLSA": [
      {
        "usage": 3,
        "selector": 1,
        "matching_type": 1,
        "certificate": "ABCD..."
      }
    ],
    "CAA": [
      { "tag": "issue", "value": "letsencrypt.org" }
    ],
    "TXT": ["v=spf1 include:_spf.is-a.dev ~all"]
  },
  "proxied": false
}

These records enable DNSSEC chain of trust via DS, VoIP service location through SRV, DANE validation with TLSA, certificate authority restrictions using CAA, and domain verification via TXT.

Summary

  • The is-a.dev registry strictly supports eleven DNS record types: A, AAAA, CAA, CNAME, DS, MX, NS, SRV, TLSA, TXT, and URL.
  • Validation occurs through the validRecordTypes Set defined in tests/records.test.js, enforced by automated CI pipelines on every submission.
  • The dnsconfig.js script generates Cloudflare configurations exclusively for validated record types, preventing unsupported entries from reaching production.
  • URL records provide a specialized HTTP(S) redirect mechanism using the reserved Cloudflare proxy IP 192.0.2.1.
  • Advanced records like DS, SRV, and TLSA enable enterprise-grade DNSSEC and service discovery capabilities.

Frequently Asked Questions

Can I use custom or experimental DNS record types with is-a.dev?

No. The registry strictly validates against the validRecordTypes Set in tests/records.test.js. Any record type outside the eleven supported types will cause the automated test suite to fail and block your pull request from merging. The validation logic explicitly rejects undefined record keys before they reach Cloudflare.

How does the URL record type differ from a CNAME redirect?

The URL record creates an HTTP(S) redirect at the Cloudflare edge by assigning the special proxy IP 192.0.2.1 to your sub-domain. In contrast, a CNAME creates a DNS-level alias (flattened via Cloudflare ALIAS) that points to another hostname without issuing HTTP redirects. Use URL for client-side browser redirects and CNAME for server aliasing and pointing to external hosting providers.

Are DNSSEC records like DS and TLSA fully supported?

Yes. The registry supports both DS (Delegation Signer) for linking to DNSSEC-signed child zones and TLSA for DANE certificate validation. These are processed alongside standard records in dnsconfig.js. However, you must ensure your downstream DNS infrastructure correctly handles the cryptographic material, including key tags, algorithms, and digest types specified in your JSON configuration.

Where can I find the complete list of supported record types in the source code?

The canonical enumeration resides in tests/records.test.js within the validRecordTypes constant. Additionally, dnsconfig.js contains the implementation logic that processes each supported type into Cloudflare API calls. For examples of internal usage, examine util/raw-api.js and the reserved domain configurations in util/internal.json and util/reserved.json, which demonstrate how the registry applies these record types to system domains.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →