Problem
Onebox explicitly defines and enforces one application per host:
README.md: “One host, one application, no failover.”
docs/product.md: “one application per environment, on one active production host.”
internal/app/preflight.go refuses a host owned by another application.
However, the rationale above Engine.slotNames in internal/engine/roll.go says the application prefix is required because “two applications that each have a web workload would both want web-1.” That scenario is outside the supported and enforced topology.
This makes the reason for names such as <app>-postgres-1 unclear, particularly because the equally managed host proxy is named onebox-proxy.
Expected clarification
Document the naming boundary consistently:
onebox-* denotes host-scoped Onebox infrastructure, such as onebox-proxy and onebox-discovery.
<app>-<component>-<replica> denotes runtime resources owned by the sole application, including managed services.
- The application prefix provides explicit ownership, stable generated identity, and collision detection against stale or foreign Docker resources—not simultaneous multi-application tenancy.
- Provider-internal service resources continue to use the injective
ob_<app>_<service> form.
Update the misleading slotNames comment and, if appropriate, add this rationale to the naming documentation so the distinction between “Onebox-managed” and “host-scoped Onebox infrastructure” is explicit.
Version
ob version v2026.9.13 (fcd4c68e56bb5baaaedee24f9f4072d62023bbde).
Problem
Onebox explicitly defines and enforces one application per host:
README.md: “One host, one application, no failover.”docs/product.md: “one application per environment, on one active production host.”internal/app/preflight.gorefuses a host owned by another application.However, the rationale above
Engine.slotNamesininternal/engine/roll.gosays the application prefix is required because “two applications that each have awebworkload would both wantweb-1.” That scenario is outside the supported and enforced topology.This makes the reason for names such as
<app>-postgres-1unclear, particularly because the equally managed host proxy is namedonebox-proxy.Expected clarification
Document the naming boundary consistently:
onebox-*denotes host-scoped Onebox infrastructure, such asonebox-proxyandonebox-discovery.<app>-<component>-<replica>denotes runtime resources owned by the sole application, including managed services.ob_<app>_<service>form.Update the misleading
slotNamescomment and, if appropriate, add this rationale to the naming documentation so the distinction between “Onebox-managed” and “host-scoped Onebox infrastructure” is explicit.Version
ob version v2026.9.13(fcd4c68e56bb5baaaedee24f9f4072d62023bbde).