Register a node.
Changed onEnrolls a worker node. Authenticated by a node join token in the Authorization header, not an API key.
Request
- Base URLhttps://api.smolmachines.com
- Authnone declared
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Request body
Runtime's per-process boot id, forwarded from the node's /capacity. A change between heartbeats means the serve restarted (its warm pool wiped), which the control uses to prune the node's now-stale pool records. Absent on an older node/runtime that doesn't report it.
PEM-encoded certificate signing request, sent only at registration. When present, the control plane signs it as the node's mTLS server cert (overriding the CSR's subject/SANs with the validated node id/addresses) and returns the cert in RegisterResponse. The node's private key never leaves it. Absent ⇒ control plane has no node-CA configured, or this is an older node; the registration still succeeds (cert fields stay empty).
Set (RFC3339) when the control plane soft-cordons this node for DISK pressure — its heartbeat-reported host-free disk dropped below the cordon threshold, so it stops receiving NEW placements. SEPARATE from the data-plane cordon: the node stays status = "ready" and is never reaped; its running machines are untouched. Cleared when free disk recovers past the (higher, hysteretic) un-cordon threshold. None = not disk-cordoned.
Sum of the (thin/nominal) local-SSD footprints reserved by the machines placed on this node — the disk-overcommit ledger. Unlike available_disk_gb (overwritten by every heartbeat with the host's live free space), this is a reserve/release decrement ledger the scheduler gates admission on, so a node can't be packed past total_disk_gb * ratio. Reconciled by the capacity self-heal. Default 0 (legacy rows / never reserved).
The runtime this node speaks (e.g. "smolvm"). The control plane resolves a driver from this name; smolvm_address is that runtime's endpoint. Defaults to "smolvm" so a node that doesn't report a runtime (the only runtime today) is handled transparently.
The runtime endpoint (HTTP address) on this node.
The smolvm engine version this node's runtime reports on /health, recorded by the control plane. Read-only: a node never sets it. A checkpoint is only restored on a node at the capturing engine's version or newer. Absent until the runtime has been probed.
Real CPU usage as fractional CPUs (e.g., 2.5 = 2.5 CPUs worth of load). Reported by the node from hypervisor/process stats. Separate from available_cpus (which is allocation-based bookkeeping).
Real disk space consumed by VM overlay/storage files in GB. Reported from filesystem stat of VM disk images. Separate from available_disk_gb (which reflects the entire host filesystem).
Real memory usage in MB. Reported by the node from RSS of VM processes. Separate from available_memory_mb (which is allocation-based bookkeeping).
Response
Node registered
Runtime's per-process boot id, forwarded from the node's /capacity. A change between heartbeats means the serve restarted (its warm pool wiped), which the control uses to prune the node's now-stale pool records. Absent on an older node/runtime that doesn't report it.
PEM-encoded certificate signing request, sent only at registration. When present, the control plane signs it as the node's mTLS server cert (overriding the CSR's subject/SANs with the validated node id/addresses) and returns the cert in RegisterResponse. The node's private key never leaves it. Absent ⇒ control plane has no node-CA configured, or this is an older node; the registration still succeeds (cert fields stay empty).
Set (RFC3339) when the control plane soft-cordons this node for DISK pressure — its heartbeat-reported host-free disk dropped below the cordon threshold, so it stops receiving NEW placements. SEPARATE from the data-plane cordon: the node stays status = "ready" and is never reaped; its running machines are untouched. Cleared when free disk recovers past the (higher, hysteretic) un-cordon threshold. None = not disk-cordoned.
Sum of the (thin/nominal) local-SSD footprints reserved by the machines placed on this node — the disk-overcommit ledger. Unlike available_disk_gb (overwritten by every heartbeat with the host's live free space), this is a reserve/release decrement ledger the scheduler gates admission on, so a node can't be packed past total_disk_gb * ratio. Reconciled by the capacity self-heal. Default 0 (legacy rows / never reserved).
The runtime this node speaks (e.g. "smolvm"). The control plane resolves a driver from this name; smolvm_address is that runtime's endpoint. Defaults to "smolvm" so a node that doesn't report a runtime (the only runtime today) is handled transparently.
The runtime endpoint (HTTP address) on this node.
The smolvm engine version this node's runtime reports on /health, recorded by the control plane. Read-only: a node never sets it. A checkpoint is only restored on a node at the capturing engine's version or newer. Absent until the runtime has been probed.
Real CPU usage as fractional CPUs (e.g., 2.5 = 2.5 CPUs worth of load). Reported by the node from hypervisor/process stats. Separate from available_cpus (which is allocation-based bookkeeping).
Real disk space consumed by VM overlay/storage files in GB. Reported from filesystem stat of VM disk images. Separate from available_disk_gb (which reflects the entire host filesystem).
Real memory usage in MB. Reported by the node from RSS of VM processes. Separate from available_memory_mb (which is allocation-based bookkeeping).
Changes
- info
added the new optional request property
- info
added the new optional request property
- info
added the new optional request property
- info
added the new optional request property
- info
added the new optional request property
- info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status
- info