Skip to content

Commit 2cd2732

Browse files
committed
docs: document trusted CIDR node auto-approval
1 parent 537a8e2 commit 2cd2732

4 files changed

Lines changed: 52 additions & 0 deletions

File tree

docs/cli/devices.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@ request. Review the `Requested` vs `Approved` columns in `openclaw devices list`
6666
or use `openclaw devices approve --latest` to preview the exact upgrade before
6767
approving it.
6868

69+
If the Gateway is explicitly configured with
70+
`gateway.nodes.pairing.autoApproveCidrs`, first-time `role: node` requests from
71+
matching client IPs can be approved before they appear in this list. That policy
72+
is disabled by default and never applies to operator/browser clients or upgrade
73+
requests.
74+
6975
```
7076
openclaw devices approve
7177
openclaw devices approve <requestId>
@@ -127,6 +133,8 @@ Pass `--token` or `--password` explicitly. Missing explicit credentials is an er
127133

128134
- Token rotation returns a new token (sensitive). Treat it like a secret.
129135
- These commands require `operator.pairing` (or `operator.admin`) scope.
136+
- `gateway.nodes.pairing.autoApproveCidrs` is an opt-in Gateway policy for
137+
fresh node device pairing only; it does not change CLI approval authority.
130138
- Token rotation stays inside the approved pairing role set and approved scope
131139
baseline for that device. A stray cached token entry does not grant a new
132140
rotate target.

docs/cli/node.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,25 @@ openclaw devices list
123123
openclaw devices approve <requestId>
124124
```
125125

126+
On tightly controlled node networks, the Gateway operator can explicitly opt in
127+
to auto-approving first-time node pairing from trusted CIDRs:
128+
129+
```json5
130+
{
131+
gateway: {
132+
nodes: {
133+
pairing: {
134+
autoApproveCidrs: ["192.168.1.0/24"],
135+
},
136+
},
137+
},
138+
}
139+
```
140+
141+
This is disabled by default. It only applies to fresh `role: node` pairing with
142+
no requested scopes. Operator/browser clients, Control UI, WebChat, and role,
143+
scope, metadata, or public-key upgrades still require manual approval.
144+
126145
If the node retries pairing with changed auth details (role/scopes/public key),
127146
the previous pending request is superseded and a new `requestId` is created.
128147
Run `openclaw devices list` again before approval.

docs/cli/nodes.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ filter to nodes that connected within a duration (e.g. `24h`, `7d`).
4242
Approval note:
4343

4444
- `openclaw nodes pending` only needs pairing scope.
45+
- `gateway.nodes.pairing.autoApproveCidrs` can skip the pending step only for
46+
explicitly trusted, first-time `role: node` device pairing. It is off by
47+
default and does not approve upgrades.
4548
- `openclaw nodes approve <requestId>` inherits extra scope requirements from the
4649
pending request:
4750
- commandless request: pairing only

docs/gateway/configuration-examples.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,28 @@ Save to `~/.openclaw/openclaw.json` and you can DM the bot from that number.
501501
}
502502
```
503503

504+
### Trusted node network auto-approval
505+
506+
Keep device pairing manual unless you control the network path. For a dedicated
507+
lab or tailnet subnet, you can opt in to first-time node device auto-approval
508+
with exact CIDRs or IPs:
509+
510+
```json5
511+
{
512+
gateway: {
513+
nodes: {
514+
pairing: {
515+
autoApproveCidrs: ["192.168.1.0/24", "fd00:1234:5678::/64"],
516+
},
517+
},
518+
},
519+
}
520+
```
521+
522+
This remains off when unset. It only applies to fresh `role: node` pairing with
523+
no requested scopes. Operator/browser clients and role, scope, metadata, or
524+
public-key upgrades still require manual approval.
525+
504526
### Secure DM mode (shared inbox / multi-user DMs)
505527

506528
If more than one person can DM your bot (multiple entries in `allowFrom`, pairing approvals for multiple people, or `dmPolicy: "open"`), enable **secure DM mode** so DMs from different senders don’t share one context by default:

0 commit comments

Comments
 (0)