platform

Custom DNS management (per domain & hub)

Step-by-step: where to manage records in globNIC, which record types the API allows, plan limits, and the Bulk DNS tool.

Updated 2026-04-26

When DNS management is unlocked

The backend only allows add/edit/delete when the asset belongs to you and nameServerStatus is one of:

  • verified
  • parked
  • verified_ns
  • verified_txt
  • verified_cname

If you see "Domain must be verified before managing DNS", finish /member/domains/{domain}/verify first (NS, TXT, or CNAME). This matches GET/POST/PATCH/DELETE on /api/member/domains/{domain}/dns.

Eligibility is identical for Bulk DNS (/api/member/domains/bulk-dns): only domains in those verified-like statuses are updated; the rest are returned as unverified in the response and skipped.

Where to click in the member UI

DNS hub (all domains)

  • Open /member/dns. You’ll see Verified domains (links to per-domain management) and Pending (not yet eligible). Use DNS Templates at /member/dns/templates to reuse record sets; per-domain and bulk UIs can load saved templates where implemented.

Per-domain editor

  • Navigate to /member/domains/{domain}/dns (from the hub Manage DNS or your domain list). The page:

    • Loads records with GET /api/member/domains/{domain}/dns (PowerDNS-backed zone).
    • Adds a record with POST; edits with PATCH; deletes with DELETE.

Validation rules (must match the API)

From dnsRecordSchema (used by the per-domain DNS API):

  • Types: only A, AAAA, CNAME, MX, TXT.
  • Name: 1–255 chars; @ or labels like www; must match the regex used in code (alphanumeric, dots, underscore, hyphen).
  • Content: 1–4096 characters; type-specific (e.g. A = IPv4, CNAME = hostname, MX = mail host + priority required).
  • TTL: integer 300–86400 seconds (default 3600 in typical forms).
  • CNAME at apex: You cannot set CNAME with name = @ in the managed globNIC DNS editor — the schema rejects it (“Use A record instead”). Verification CNAME to parking.globnic.com is done at your external DNS, not as an editable root CNAME in this editor.

Per-plan record caps are enforced on POST: FREE/Navigator: 10, Strategist: 50, Sovereign: 200, Enterprise: 1000 custom records (non-protected rows counted for the cap logic in the route). Hitting the cap returns 403 with upgradeUrl /pricing.

Bulk DNS tool

  • URL: /member/domains/bulk-dns

  • API: POST /api/member/domains/bulk-dns with JSON:

    • domains: string array, 1–100 hostnames per request (UI may batch large selections into 100-domain chunks with a short delay between batches).
    • records: 1–10 record objects, each: name, type (A, AAAA, CNAME, MX, TXT), content, ttl (60–86400 in bulk), optional priority for MX (defaults to 10 if omitted in bulk).
  • Result: JSON lists successDomains, failedDomains, and optional unverifiedDomains (domains you don’t own or that aren’t in a verified-like status). If the backend is down, the API can return 503 with a “retry in 1–2 minutes” style message for transient PowerDNS errors.

  • Templates: The bulk page can load a template id from the query ?template= when templates are loaded from the templates API (same record shapes as above).

Quick actions in the per-domain UI

  • The per-domain page can offer Quick actions (e.g. email presets) backed by the same A/AAAA/CNAME/MX/TXT types; presets must still pass schema validation (e.g. MX needs priority).

Related