hooks:update

Update one hook; only the flags you pass change (at least one is required). A supplied --workflow_yaml replaces the old workflow entirely, nothing is merged. Enabling or disabling is a separate command: `hooks:set-enabled`. Needs write access to the owner node.

Reference for flywheel hooks:update.

Command Group

Hooks Commands

Summary

Update one hook; only the flags you pass change (at least one is required). A supplied --workflow_yaml replaces the old workflow entirely, nothing is merged. Enabling or disabling is a separate command: hooks:set-enabled. Needs write access to the owner node.

Effect

DESTRUCTIVE: deletes, overwrites or revokes something

Usage

flywheel hooks:update <FLAGS>

Required flags

FlagValueDefaultChoicesDescription
--owner_node_idstringNode owning the hooks and secrets: any node_id, or owner_node_id in hook results. Missing or hidden: 404. Listing hooks or runs needs read access; changes and secret listing need write access (else 403).
--hook_idstringHook on owner_node_id, from hook_id in hooks:list or the create result. Unknown or on another owner node: 404, except as the hooks:runs:list filter, where no match returns no runs (omitted: runs of every hook).

Optional flags

FlagValueDefaultChoicesDescription
--namestringNew label (non-blank). Omitted: unchanged.
--scopestringWhose events run the hook: self, the owner node's own; subtree, the owner node's and its descendants'; graph, matched like subtree (not a separate graph-wide stream). Omitted: unchanged.
--workflow_yamlstringNew workflow YAML text, in the format of hooks:create --workflow_yaml. It replaces the whole old workflow, nothing is merged. Omitted: unchanged.
--rerun_policystringif_inputs_changed (the only value): skip an event whose inputs match the hook's latest finished run for the same node. Omitted: unchanged.
--formatFORMATjson, tsv, csv, tableOutput format for command results.
--envPROFILESelect a CLI profile; unconfigured default requires FLYWHEEL_BASE_URL.
--outPATHWrite output to a file path, or use - for stdout.
--openOpen browser-bound URLs when supported.
--no-retryDisable transient-error retries.
--retry-maxNMaximum transient-error retry attempts.
--waitBlock on async operations until a terminal state is reached.
--wait-timeoutSECONDS600Seconds to wait for --wait before timing out. Defaults to 600.
--allow-selfAllow mutating the currently active credential.
--timeoutSECONDSSet the per-request timeout budget in seconds.
--idempotency-keyKEYReuse an Idempotency-Key so ambiguous write failures can be retried with the same key.
--forceForce safety-gated operations where supported.
--yesConfirm forced compute:release-all --force. Other runtime commands do not read --yes.
--debugPrint structured request debugging with secrets masked.
--verbosePrint verbose progress for long-running operations.
-h, --helpShow this help.

Examples

Move a hook to graph scope.

flywheel hooks:update --owner_node_id n_owner --hook_id hk_1 --scope graph

Output

Default format: json.

FieldType
hookobject

hooks:set-enabled

Enable or disable one hook. A disabled hook is kept but queues no new runs, and a run of it that is still queued when the worker picks it up does not start: it ends as `canceled`, with an error message that names the hook. Runs already running are not interrupted. Enabling again does not revive a canceled run; the next matching event queues a new one. The run history stays. Needs write access to the owner node.

compute:acquire

Rent a machine now at the outside provider that owns the offer (Lambda, Modal, Vast.ai, Prime Intellect, Nebius or RunPod). This starts paid usage: it is billed by the second at the offer's hourly price plus any provider margin the server adds, to your Flywheel credits (to the campaign's sponsor for a `root` grant), until the lease is released or its grant is used up. It needs an active `compute_grant_id` bound to the approval session (compute-grants:request-approval first). Returns `compute` with `request_state` (`accepted` or `completed`), `lease_id`, `lease_control_token`, `lease_status`, provider, `offer_id`, region, hourly price, grant balances and `auto_shutdown_at`; it carries no SSH key, so poll compute:status until the lease is usable, then call compute:connection. A call with the same --lease_control_token and grant as a pending or active lease reuses that lease instead of provisioning another, as long as its provider, offer and any --region you give match the lease; if they differ the call fails and says what to change or release. --cmd_id is only a label, not a duplicate guard. Release with compute:release when done: the machine and its storage are destroyed. With --wait, wait for usable SSH connection material.