Domains
Consolidated domain provisioning — atomically creates port + DNS + reverse proxy in a single call.
Create a domain (port + DNS + proxy in one call)
Atomically provisions an exposed (internal-only) port, a DNS record with TLS, and a reverse proxy connecting them. Two flavors:
- Custom domain (
managed: false): requiresdnsto be a user-owned hostname whose CNAME points to the platform gateway. A pre-flight CNAME check runs server-side. - Managed subdomain (
managed: true): allocates a random*.<MANAGED_DOMAIN_BASE>subdomain. Subject to a per-org quota.
On any failure during creation, all already-created resources are rolled back (proxy → expose → port row → dns row, on both backbone and DB) before returning the error.
path Parameters
projectIdProject unique identifier
stackIdStack unique identifier
Create a domain (port + DNS + proxy in one call) › Request Body
managedIf true, allocate a random *.<MANAGED_DOMAIN_BASE> subdomain. If false, dns is required and a CNAME check is performed.
portInternal container port to expose. Must be declared in the compose ports: or carry an fr.composerun.routedPort.<port> label.
dnsCustom domain (required when managed is false). Ignored when managed is true.
originOptional free-text origin label persisted on the DNS row.
tls_enabletls_forceCreate a domain (port + DNS + proxy in one call) › Responses
Domain created (port + DNS + proxy)
Delete a domain (cascades proxy + port + DNS)
Reverses a POST /domains: deletes the reverse proxy, the
exposed port, and the DNS record on both the backbone and the DB.
Best-effort on partial backbone failures — only a final DB
DeleteDns failure returns a 5xx; intermediate backbone errors are
logged and surfaced via OTel.
path Parameters
projectIdProject unique identifier
stackIdStack unique identifier
dnsIdDNS record UUID
Delete a domain (cascades proxy + port + DNS) › Responses
Domain deleted
