ADR-002: Central DNS — central.fintail.net now → central.fin.app in Phase 4

Status: accepted (2026-05-15) Date decided: 2026-05-15 Decided by: Rob Garcia, with Claude Code session 01 Supersedes: None Superseded by: None (yet — Phase 4 cutover ADR will reference this)

Context

Phase 1 §3.6 of the demarcation runbook required DNS for the Central Cloudflare Worker. The handoff plan called for central.fin.app, but fin.app was not yet a registered + Cloudflare-zoned domain at decision time. The existing Nathel deployment uses api.fintail.net (root-level subdomain on the existing fintail.net Cloudflare zone).

Three options considered:

OptionDNSProsCons
Acentral.fintail.netExisting CF zone — instant DNS, no registrar workDrifts from handoff plan (which said central.fin.app)
Bcentral.fin.appBrand-clean; matches strategic planRequires fin.app registration + CF zone add (1-3 days for nameserver propagation)
Ccentral-api.fintail.netFull symmetry with api.fintail.net (Nathel)api/ prefix loses meaning when serving full apps

Decision

Option A (central.fintail.net) for now; migrate to central.fin.app in Phase 4 production cutover when both Central and Nathel rebrand to *.fin.app together.

EnvDNS todayDNS Phase 4+
Central prodcentral.fintail.netcentral.fin.app
Central stagingstaging-central.fintail.netstaging-central.fin.app
Nathel prodapi.fintail.net (existing)TBD (api.nathel.fin.app or nathel.fin.app/api)
Nathel stagingstaging-api.fintail.net (existing)TBD

Consequences

Positive

  • Phase 1 unblocked immediately — no domain registrar wait
  • Sibling pattern to Nathelapi.fintail.net (Nathel) and central.fintail.net (Central) are visually distinct + same zone
  • Root subdomain pattern matches the eventual *.fin.app — no path-shape refactor needed at cutover
  • Cloudflare Pages, Worker routes, Access policies all configured against the same zone — operational consistency

Negative

  • Phase 4 cutover doc must explicitly cover the rename — DNS swap, Worker route updates, all central.fintail.net references in code and docs need search-and-replace
  • Partner conversations during this period reference central.fintail.net — potentially confusing if “central.fin.app” is the brand we want partners to remember. Mitigated by treating the URL as internal-only until Phase 4.

Neutral

  • DNS records added today (AAAA 100:: proxied) are easily removable when the cutover happens

Implementation notes

  • Added 2 AAAA records to fintail.net zone (central and staging-central), both 100:: IPv6 placeholder, both proxied (orange cloud)
  • Wrangler routes activated in wrangler.fin-central.jsonc:
    • env.staging.route.pattern = "staging-central.fintail.net/*"
    • env.production.route.pattern = "central.fintail.net/*"
  • /health verified returning role: central, role_verified: true end-to-end