← Schema index / Config Reference
nodes schema (451-498)
Canonical generated docsThis section is generated from
caco config schema --json. The table below preserves the runtime field path, type, required/default markers, and canonical description for every value in this slice.Node definitions — machines in the cluster.
| Field path | Type | Required | Default | Canonical description |
|---|---|---|---|---|
└ nodes.services.caco-git-daemon.transport.kind | string | optional | auto | Local transport: auto, unix, named_pipe, or loopback. |
└ nodes.services.caco-git-daemon.transport.endpoint | string | optional | Explicit socket, pipe, or loopback endpoint. | |
└ nodes.services.caco-daemon-extra-env | map[string, string] | optional | Node-scoped overlay of services.caco-daemon-extra-env, merged per-key over the global map at daemon launch (node wins) so a node can set daemon process env without a fleet-wide change. | |
└ nodes.actions | map[string, map] | optional | Node-scoped actions keyed by action name. | |
└ nodes.actions.<action-name> | map | optional | Node action entry. | |
└ nodes.actions.<action-name>.type | string | required | Action type (currently only 'command'). | |
└ nodes.actions.<action-name>.command | string | required | Shell command to execute. | |
└ nodes.actions.<action-name>.description | string | optional | Human-readable description. | |
└ nodes.actions.<action-name>.roles_permitted | list[string] | optional | Roles/profiles allowed to invoke (e.g. 'operator', 'profile:<name>'). | |
└ nodes.actions.<action-name>.cwd | string | optional | Working directory for command execution. | |
└ nodes.actions.<action-name>.timeout_secs | u64 | optional | 300 | Timeout in seconds for command execution. |
└ nodes.actions.<action-name>.idempotent | bool | optional | false | Whether exact replay is safe after restart. |
└ nodes.actions.<action-name>.check | string | optional | Side-effect-free shell command that exercises the action's prerequisites; run by 'caco action check'. | |
└ nodes.updates | map | optional | Sparse node-scoped update overrides; omitted fields inherit the top-level updates policy. | |
└ nodes.updates.auto_update | bool | optional | inherit updates.auto_update | Override automatic release downloads for this node. |
└ nodes.updates.channel | string | optional | inherit updates.channel | Release channel override. |
└ nodes.updates.github_repo | string | optional | inherit updates.github_repo | GitHub repository override in owner/repo form. |
└ nodes.updates.identity | string | optional | inherit updates.identity | Identity override for gh auth token resolution. |
└ nodes.updates.restart_on_update | bool | optional | inherit updates.restart_on_update | Override automatic daemon restart after update. |
└ nodes.updates.restart_grace_period_secs | u64 | optional | inherit updates.restart_grace_period_secs | Override the grace period before restart. |
└ nodes.updates.force_restart_on_update | bool | optional | inherit updates.force_restart_on_update | Override forced restart while transient agents run. |
└ nodes.updates.launcher_archive_count | usize | optional | inherit updates.launcher_archive_count | Override previous launcher retention for rollback. |
└ nodes.updates.stabilize_timeout_secs | u64 | optional | inherit updates.stabilize_timeout_secs | Override restart/update health stabilization timeout. |
└ nodes.updates.android | map | optional | inherit updates.android | Override configured Android companion APK update targets. |
└ nodes.updates.android.auto | bool | optional | false | Enable configured Android companion APK updates during update orchestration. |
└ nodes.updates.android.package | string | optional | com.cacophony.companion | Android package name to inspect/install. |
└ nodes.updates.android.artifact | string | optional | cacophony-companion.apk | GitHub release APK asset name. |
└ nodes.updates.android.targets | list[map] | optional | Explicit adb update targets. | |
└ nodes.updates.android.targets.name | string | optional | Optional target name. | |
└ nodes.updates.android.targets.host_node | string | optional | Node that owns adb connectivity; omitted means local node. | |
└ nodes.updates.android.targets.serial | string | required | adb serial such as sgu24:5555. | |
└ nodes.updates.android.targets.enabled | bool | optional | true | Whether this target participates in update checks/installs. |
└ nodes.health_expectations | map | optional | Expected node-health deviations for operator-facing peer summaries. | |
└ nodes.health_expectations.expected_unreachable | bool | optional | false | Treat unreachable peer status as expected/non-actionable for this node. |
└ nodes.health_expectations.expected_mismatch | bool | optional | false | Treat mismatch peer status as expected/non-actionable for this node. |
└ nodes.health_expectations.expected_degraded | bool | optional | false | Treat degraded peer status as expected/non-actionable for this node. |
└ nodes.health_expectations.note | string | optional | Optional operator-facing note explaining the expected health deviation. | |
└ nodes.interactive_defaults | map[string, map] | optional | Node-level interactive agent defaults keyed by runtime type. | |
└ nodes.interactive_defaults.<runtime-type> | map | optional | Defaults for a specific runtime type. | |
└ nodes.interactive_defaults.<runtime-type>.project | string | optional | Default project for interactive sessions when --project is not provided. | |
└ nodes.interactive_defaults.<runtime-type>.profile | string | list[string] | optional | Default profile or profile composition list. | |
└ nodes.interactive_defaults.<runtime-type>.goal | string | optional | Default goal / task description. Supports {{project}}, {{node}} template expressions. | |
└ nodes.interactive_defaults.<runtime-type>.model | string | optional | Default model override. | |
└ nodes.interactive_defaults.<runtime-type>.provider | string | optional | Default provider override. | |
└ nodes.interactive_defaults.<runtime-type>.env | map[string, string] | optional | Additional environment variables to inject. | |
└ nodes.interactive_defaults.<runtime-type>.mcp_servers | list[string] | optional | Additional MCP server names to attach. | |
└ nodes.spawn_defaults | map | optional | Node-level spawn defaults overlaid on the global spawn_defaults. | |
└ nodes.spawn_defaults.node | string | optional | Default placement node for spawns originating from this node; used when a spawn does not name an explicit target. |