Domain search + Cloudflare Registrar integration (register & point to products)
Imported from GitHub issue El-SaMa/oma#85 by @El-SaMa.
Let users search, register/transfer domains via OMA's Cloudflare account, then auto-point them to products (hosting/VPS/cPanel/Enhance).
Feasibility (verified against current Cloudflare docs)
- Cloudflare Registrar API (beta) supports Search, Check (live price), Register, registration-status. After registration the domain becomes a zone in our CF account, so we point it via the Zones DNS API (A/CNAME).
- Blockers: (1) cannot change apex nameservers (Cloudflare NS forced) -> point via DNS records, not NS delegation; (2) reselling restricted by CF ToS -> OMA is holder-of-record; (3) beta has no transfer/renewal/contact API yet and only a subset of TLDs.
Decisions
- Cloudflare-first behind a
RegistrarAdapterabstraction so a reseller registrar (OpenSRS/Enom/ResellerClub) can be added later for apex NS delegation + true resale. - Products that truly need apex NS delegation are flagged
requiresApexNsand routed to the reseller/manual path. - OMA is holder-of-record for now.
Done
RegistrarAdaptercontract + capability flags (@oma/contracts).CloudflareRegistraradapter (search/check/register/status/getZoneId/setDnsRecords) +MockRegistrarfallback + factory (services/core-api/src/registrar.ts).- Product->DNS target map with
{ip}/{domain}substitution +requiresApexNs. - Orchestration:
searchDomainNames,checkDomainAvailability,registerDomainForOrg,pointDomainToProduct. - DB migration
0004_domains.sql:domains,domain_dns_records,domain_registration_events+ RLS +updated_attriggers. - UI: live search under
/domains, capability banner, "Connect to a product" card on domain detail. .env.example:CLOUDFLARE_API_TOKEN/CLOUDFLARE_ACCOUNT_ID+ default registrant contact.
Follow-ups
- Persist registrations to
domainstable + credit ledger + audit on register/point. - Payment/contact capture in checkout before the billable register call.
- Reseller registrar adapter for apex NS delegation + transfers/renewals.
- Reconcile DNS records from Cloudflare; renewal/expiry sync job.
- ICANN registrant email verification handling.
Tracking: Hollahoop oma-portal / feature-requests.