fix(gateway): require admin for chat config writes

This commit is contained in:
Peter Steinberger
2026-03-07 19:38:40 +00:00
parent 724d2d58fa
commit 5f8f58ae25
7 changed files with 112 additions and 19 deletions

View File

@@ -745,7 +745,7 @@ Include your own number in `allowFrom` to enable self-chat mode (ignores native
- Override per channel: `channels.discord.commands.native` (bool or `"auto"`). `false` clears previously registered commands.
- `channels.telegram.customCommands` adds extra Telegram bot menu entries.
- `bash: true` enables `! <cmd>` for host shell. Requires `tools.elevated.enabled` and sender in `tools.elevated.allowFrom.<channel>`.
- `config: true` enables `/config` (reads/writes `openclaw.json`).
- `config: true` enables `/config` (reads/writes `openclaw.json`). For gateway `chat.send` clients, persistent `/config set|unset` writes also require `operator.admin`; read-only `/config show` stays available to normal write-scoped operator clients.
- `channels.<provider>.configWrites` gates config mutations per channel (default: true).
- `allowFrom` is per-provider. When set, it is the **only** authorization source (channel allowlists/pairing and `useAccessGroups` are ignored).
- `useAccessGroups: false` allows commands to bypass access-group policies when `allowFrom` is not set.

View File

@@ -149,6 +149,10 @@ Common scopes:
- `operator.approvals`
- `operator.pairing`
Method scope is only the first gate. Some slash commands reached through
`chat.send` apply stricter command-level checks on top. For example, persistent
`/config set` and `/config unset` writes require `operator.admin`.
### Caps/commands/permissions (node)
Nodes declare capability claims at connect time: