UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

80 lines (60 loc) • 3.79 kB
--- summary: "CLI reference for `openclaw file-transfer` (review and migrate standing file-transfer approvals)" read_when: - You upgraded and older file-transfer permissions stopped taking effect - You need the flag surface for `openclaw file-transfer approvals migrate` - You want a scriptable check for unreviewed file-transfer permissions title: "File transfers" --- # `openclaw file-transfer` Review the standing approvals that the file-transfer plugin stores under `plugins.entries.file-transfer.config`. The command group ships with the file-transfer plugin. It is absent when that plugin is not installed. ## `file-transfer approvals migrate` Review older file-transfer permissions and migrate them to the current policy format. Older positive permissions stay inactive until this review finishes. Deny rules, size limits, and symlink settings keep applying throughout. ```bash openclaw file-transfer approvals migrate openclaw file-transfer approvals migrate --dry-run openclaw file-transfer approvals migrate --json ``` | Option | Effect | | ----------- | ------------------------------------------------------------------------------- | | `--dry-run` | Walk the prompts and print the plan. No config is written. | | `--json` | Print the unreviewed permissions as JSON and exit. No prompts, no config write. | Both options default to off. ### Where it runs Run the command on the Gateway host in an interactive terminal. The command updates that host's file-transfer policy, so it refuses to run when `gateway.mode` is `remote`. It also refuses when the OpenClaw config is invalid. Fix the config first, then rerun. ### What the interactive run asks The command lists one entry per legacy permission, shown as `<node selector> · read|write · <path>`. Choose one outcome per entry: - **Require exact reapproval** removes the ambiguous permission. The next use prompts once and records the exact node, command, requested path, and canonical target. - **Keep as an intentional wildcard** preserves the entry as an operator-authored glob. - **Remove this permission** drops the entry outright. The command then prints a plan with the count for each outcome, plus a downgrade note. It asks for one confirmation before writing. On success it writes the migrated config and reports the adjacent config backup path. It says so when that backup cannot be verified. ### Scripted and non-interactive use `--json` reports the work without changing anything. Use it in a health check or an upgrade script. | Situation | Output | Exit code | | ----------------------------- | ------------------------------------------------------------------------------------------------------------- | --------- | | Nothing to review | `{"status":"ok","changed":false,"message":"No legacy permissions need review."}` | 0 | | Permissions still need review | `{"status":"needs-input","changed":false,"items":[...],"command":"openclaw file-transfer approvals migrate"}` | 2 | Without `--json`, the command checks for work first. A non-interactive shell is an error only when permissions still need review. The command then tells you to rerun it in a terminal rather than guessing an outcome for each permission. A non-interactive run with nothing to review prints the same no-work message and exits 0, so a repeated upgrade script stays quiet. ## Related - [CLI reference](/cli) - [Node file transfers](/nodes/file-transfers) - [File Transfer plugin reference](/plugins/reference/file-transfer)