Skip to content

Enable AI Edge from DNS Record #613

@bmertens-datum

Description

@bmertens-datum

High-Level Summary

In the DNS section of Datum Cloud, add a Protect action for eligible DNS records that do not yet have AI Edge enabled.

Protect is a shortcut that enables AI Edge (HTTPProxy + WAF) for a hostname. Protection routes traffic through Datum Edge using ALIAS records.

Core principle: DNS transparency

The DNS service must always present an accurate, transparent view of the actual zone file.
Requirements:

  • The DNS UI must display records exactly as they exist in the zone file
  • If a user downloads the zone file, it must match what is shown in the UI
  • Protection workflows must not obscure, hide, or virtualize DNS records
  • Any changes made by Protect must be reflected directly in the zone data

This ensures customer trust, debuggability, and operational clarity.

Eligible record types

  • A
  • AAAA
  • CNAME
  • ALIAS

User Experience

DNS Records List

DNS continues to display the records that exist in the zone file.
For each eligible record (A/AAAA/CNAME/ALIAS):

If AI Edge is NOT enabled

  • Show the record normally
  • Show a Protect button (single-click action)

If AI Edge IS enabled

  • Show status: Protected
  • Protected links to the corresponding AI Edge configuration (Proxy + WAF)

Behavior

Protection enablement rules

  • Enabling protection from DNS is a shortcut to enable AI Edge for a hostname
  • All protection enablement must be implemented using ALIAS records
  • After protection is enabled, the hostname routes through Datum Edge
  • Any DNS changes performed by Protect must be visible in the zone file and UI

Origin TLS guidance

Datum fully supports HTTPS to origin when a hostname is used.

Customers are strongly encouraged to configure origins using a hostname rather than a raw IP address. Hostname-based origins enable full TLS validation and are the recommended production configuration.

A and AAAA record limitation (IP origins)

When the origin is specified only as an IP address (A/AAAA record):

  • Datum cannot perform proper hostname-based TLS validation
  • HTTPS to the origin is therefore not supported by default
  • Origin connectivity will default to HTTP

This is a limitation of IP-based origins, not of AI Edge TLS capability.

Recommended configuration

Preferred (fully supported):


DNS → CNAME/ALIAS → origin.example.com
Datum Edge → HTTPS → origin.example.com (valid cert)

Supported with limitation:


DNS → A/AAAA → origin IP
Datum Edge → HTTP → origin IP

Using a hostname for the origin enables:

  • Proper SNI
  • Certificate validation
  • End-to-end HTTPS
  • Better long-term operability

Customers should use hostname-based origins whenever possible.


Proxy reuse behavior

When Protect is clicked:

Reuse existing proxy (preferred)

If an existing HTTPProxy is found whose backend endpoint matches the DNS record’s current target:

  • Add the hostname to the existing proxy’s spec.hostnames
  • Do not create a new proxy

Create new proxy (fallback)

If no matching proxy exists:

  • Create a new HTTPProxy
  • Create associated WAF configuration per current AI Edge defaults

Motivation

Users frequently start in DNS and want a fast way to enable AI Edge protection for a hostname. Today this requires multiple steps across DNS and AI Edge pages.
This feature provides a fast path from DNS to AI Edge while keeping DNS as the authoritative view of zone contents.

Before protection
Client

datum.design / app.datum.design

waf-demo.vercel.app

After protection
Client

datum.design / app.datum.design

AI Edge (HTTPProxy + WAF ready)

waf-demo.vercel.app

Goals

  • For eligible record types (A/AAAA/CNAME/ALIAS) without AI Edge, show a Protect button
  • For hostnames with AI Edge enabled, show Protected status
  • Protected status links to the AI Edge configuration page for that hostname
  • Clicking Protect provisions AI Edge (HTTPProxy + WAF) for the hostname
  • DNS routing is updated to route through Datum using an ALIAS record
  • If a proxy already exists with a matching backend endpoint:
    • Add the hostname to that proxy’s spec.hostnames
    • Do not create a new proxy
  • If no matching proxy exists:
    • Create a new HTTPProxy
  • After provisioning, the DNS list reflects the protected state (Protected)
  • DNS continues to show the actual zone contents

Non-Goals

No response

Sub-issues

Metadata

Metadata

Labels

No labels
No labels

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions