--- id: ADR-0005 title: Share one API host across storefront subdomains status: active date: 2026-08-20 supersedes: [ADR-0004] tags: [architecture, multi-tenant, api, routing, dns] --- # ADR-0005: Share one API host across storefront subdomains ## Context One frontend bundle serves a base storefront domain and tenant subdomains. The API is shared at the base-domain level; a tenant subdomain must not create a nested API hostname. ## Decision - `example.com`, `store1.example.com`, and `www.example.com` all use `https://api.example.com`. - The complete storefront hostname remains the tenant hint. nginx validates the browser Origin and forwards that hostname as `X-Storefront-Host`. - Backend tenant lookup trusts that header only from the known proxy, verifies it against the domain registry, and binds authenticated sessions to the same tenant. - Localhost continues through `/api`. `tenantApiBaseUrls` remains available for public-suffix or custom-domain exceptions. ## Consequences Tenant subdomains need no extra API DNS records or certificates. CORS must echo the exact allowed storefront origin, while unknown or disabled domains still receive `403` from the backend. The shared API `Host` alone cannot identify a subdomain tenant.