Summary
There is currently no way to manage a web service's domains programmatically:
- The MCP server has no domain tool (
create_service accepts allow_public_networking, but the actual domain record can only be created in the web UI).
- The REST v1 API doesn't cover domains either.
- Automatic DNS (
Dns::AutoSetupService) only activates with Cloudflare credentials, so self-hosted environments with internal DNS (wildcard records, sslip/nip-style schemes, or corporate DNS) can't use it.
For headless automation — e.g. an internal service that provisions apps for users through Canine's MCP — assigning <app>.<internal-suffix> domains is a required step, and right now it needs either UI interaction or reaching into the Rails internals.
Request
An MCP tool (and/or API endpoint) to set/replace the domains of a web service, e.g. set_service_domain(project_id, service_name, domain_name). We currently inject exactly that as a monkey-patched MCP tool via an initializer and it works well with the existing Domain model + ingress generation — happy to send a PR if you'd take this shape (or a variant that fits your roadmap for domain management).
Somewhat related: is broader API/MCP parity with the UI on your roadmap (ref #636)? We're happy to contribute to the pieces we need for self-hosted automation.
Summary
There is currently no way to manage a web service's domains programmatically:
create_serviceacceptsallow_public_networking, but the actual domain record can only be created in the web UI).Dns::AutoSetupService) only activates with Cloudflare credentials, so self-hosted environments with internal DNS (wildcard records, sslip/nip-style schemes, or corporate DNS) can't use it.For headless automation — e.g. an internal service that provisions apps for users through Canine's MCP — assigning
<app>.<internal-suffix>domains is a required step, and right now it needs either UI interaction or reaching into the Rails internals.Request
An MCP tool (and/or API endpoint) to set/replace the domains of a web service, e.g.
set_service_domain(project_id, service_name, domain_name). We currently inject exactly that as a monkey-patched MCP tool via an initializer and it works well with the existingDomainmodel + ingress generation — happy to send a PR if you'd take this shape (or a variant that fits your roadmap for domain management).Somewhat related: is broader API/MCP parity with the UI on your roadmap (ref #636)? We're happy to contribute to the pieces we need for self-hosted automation.