1ctl v1 Contract
The v1 contract is the behavior users can rely on from the current 1ctl surface.
Deployment contract
Section titled “Deployment contract”1ctl deploydefaults to managed cloud capacity.- Owned machines are selected only with
--machineor--machine-tag. --cpusets CPU request.--memorysets memory request and memory limit.- Memory requires
MiorGi. --imageskips cloud build.--waitdefaults to--wait-mode application. It succeeds only after reconciliation iscurrent, the workload isavailable, and application readiness isverified; replica counts and generic reachability alone are insufficient.--wait-mode workloadis the explicit, warning-producing compatibility opt-in. It waits only for current reconciliation plus an available workload; application readiness is not verified.--health-path /healthor[checks].health_pathcan provide application verification only after the public route is available and the HTTP health request succeeds. An old backend that omits live readiness conditions, or a liveunknowncondition, cannot satisfy default--waiton its own.1ctl app statusdisplaysApplication readiness: <state> (<basis>); JSON exposes the additive condition model atstatus.readiness. It separates reconciliation and generation, workload and replica counts, application state/basis, and Phase 3route,dns, andpublic_reachabilitynot_observed/unknownplaceholders. The placeholders are not observed external route, DNS, or public-reachability state.- A generated default hostname is an allocated reservation for the application,
not proof that a public endpoint is ready. Where present,
domain_status.dns.conditionis the authoritative DNS result: onlyverifiedproves that the reserved hostname resolves to its expected target.pending,nxdomain,wrong_target, anderrordo not make DNS, the public route, or application readiness successful. Route and application readiness remain separate conditions. READINESS_UNVERIFIEDmeans configure or repair the readiness signal and retry after inspecting status and logs.READINESS_FAILEDmeans a reported reconciliation, workload, or application condition is failing; correct it, then retry.app deletereports cleanup results returned by the backend, including persistent-volume state.
Domain contract
Section titled “Domain contract”- Production default-hostname configuration requires both
DEFAULT_HOSTNAME_DOMAINandDEFAULT_HOSTNAME_EXPECTED_TARGET; see the domain architecture reference for the operator contract. Non-production localhost defaults are not a production fallback. 1ctl domains add|list|remove|check|setupis the current custom-domain interface.domains checkmust distinguish backend attachment, route attachment, DNS, TLS, and optional HTTP reachability.- Domain diagnostics should not report a detached domain as healthy.
Volume contract
Section titled “Volume contract”- Persistent volumes are created through deploy volume flags or
[volume]insatusky.toml. 1ctl volumesis the current inspection and lifecycle surface.- Destroy operations must make PVC deletion state explicit.
Machine contract
Section titled “Machine contract”1ctl machineresolves machine references from the authenticated user’s owned machines.- Inventory create/update/delete operates through the authenticated machine API.
machine inspectcombines inventory, hardware, labels, and Talos status where available.machine availablelists rentable capacity and supports resource filters.
Output contract
Section titled “Output contract”--output jsonworks before or after common subcommands.- Commands intended for scripting should return structured JSON without requiring table parsing.
- Failed API operations exit nonzero. In JSON mode, failures preserve the backend’s safe diagnostics:
error,code,message,details,retryable,remediation, andrequest_idwhen available. - Use
codeandretryablefor automation; retainrequest_idwhen contacting support. Older backend responses that provide onlyerrorandmessageremain readable during the compatibility window.