docs: add network hub + pairing locality
This commit is contained in:
@@ -77,6 +77,21 @@ Client Gateway
|
|||||||
safely retry; the server keeps a short‑lived dedupe cache.
|
safely retry; the server keeps a short‑lived dedupe cache.
|
||||||
- Nodes must include `role: "node"` plus caps/commands/permissions in `connect`.
|
- Nodes must include `role: "node"` plus caps/commands/permissions in `connect`.
|
||||||
|
|
||||||
|
## Pairing + local trust
|
||||||
|
|
||||||
|
- All WS clients (operators + nodes) include a **device identity** on `connect`.
|
||||||
|
- New device IDs require pairing approval; the Gateway issues a **device token**
|
||||||
|
for subsequent connects.
|
||||||
|
- **Local** connects (loopback or the gateway host’s own tailnet address) can be
|
||||||
|
auto‑approved to keep same‑host UX smooth.
|
||||||
|
- **Non‑local** connects must sign the `connect.challenge` nonce and require
|
||||||
|
explicit approval.
|
||||||
|
- Gateway auth (`gateway.auth.*`) still applies to **all** connections, local or
|
||||||
|
remote.
|
||||||
|
|
||||||
|
Details: [Gateway protocol](/gateway/protocol), [Pairing](/start/pairing),
|
||||||
|
[Security](/gateway/security).
|
||||||
|
|
||||||
## Protocol typing and codegen
|
## Protocol typing and codegen
|
||||||
|
|
||||||
- TypeBox schemas define the protocol.
|
- TypeBox schemas define the protocol.
|
||||||
|
|||||||
@@ -195,6 +195,8 @@ The Gateway treats these as **claims** and enforces server-side allowlists.
|
|||||||
- Gateways issue tokens per device + role.
|
- Gateways issue tokens per device + role.
|
||||||
- Pairing approvals are required for new device IDs unless local auto-approval
|
- Pairing approvals are required for new device IDs unless local auto-approval
|
||||||
is enabled.
|
is enabled.
|
||||||
|
- **Local** connects include loopback and the gateway host’s own tailnet address
|
||||||
|
(so same‑host tailnet binds can still auto‑approve).
|
||||||
- All WS clients must include `device` identity during `connect` (operator + node).
|
- All WS clients must include `device` identity during `connect` (operator + node).
|
||||||
- Non-local connections must sign the server-provided `connect.challenge` nonce.
|
- Non-local connections must sign the server-provided `connect.challenge` nonce.
|
||||||
|
|
||||||
|
|||||||
@@ -270,6 +270,12 @@ Note: `gateway.remote.token` is **only** for remote CLI calls; it does not
|
|||||||
protect local WS access.
|
protect local WS access.
|
||||||
Optional: pin remote TLS with `gateway.remote.tlsFingerprint` when using `wss://`.
|
Optional: pin remote TLS with `gateway.remote.tlsFingerprint` when using `wss://`.
|
||||||
|
|
||||||
|
Local device pairing:
|
||||||
|
- Device pairing is auto‑approved for **local** connects (loopback or the
|
||||||
|
gateway host’s own tailnet address) to keep same‑host clients smooth.
|
||||||
|
- Other tailnet peers are **not** treated as local; they still need pairing
|
||||||
|
approval.
|
||||||
|
|
||||||
Auth modes:
|
Auth modes:
|
||||||
- `gateway.auth.mode: "token"`: shared bearer token (recommended for most setups).
|
- `gateway.auth.mode: "token"`: shared bearer token (recommended for most setups).
|
||||||
- `gateway.auth.mode: "password"`: password auth (prefer setting via env: `CLAWDBOT_GATEWAY_PASSWORD`).
|
- `gateway.auth.mode: "password"`: password auth (prefer setting via env: `CLAWDBOT_GATEWAY_PASSWORD`).
|
||||||
|
|||||||
51
docs/network.md
Normal file
51
docs/network.md
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
---
|
||||||
|
summary: "Network hub: gateway surfaces, pairing, discovery, and security"
|
||||||
|
read_when:
|
||||||
|
- You need the network architecture + security overview
|
||||||
|
- You are debugging local vs tailnet access or pairing
|
||||||
|
- You want the canonical list of networking docs
|
||||||
|
---
|
||||||
|
# Network hub
|
||||||
|
|
||||||
|
This hub links the core docs for how Clawdbot connects, pairs, and secures
|
||||||
|
devices across localhost, LAN, and tailnet.
|
||||||
|
|
||||||
|
## Core model
|
||||||
|
|
||||||
|
- [Gateway architecture](/concepts/architecture)
|
||||||
|
- [Gateway protocol](/gateway/protocol)
|
||||||
|
- [Gateway runbook](/gateway)
|
||||||
|
- [Web surfaces + bind modes](/web)
|
||||||
|
|
||||||
|
## Pairing + identity
|
||||||
|
|
||||||
|
- [Pairing overview (DM + nodes)](/start/pairing)
|
||||||
|
- [Gateway-owned node pairing](/gateway/pairing)
|
||||||
|
- [Devices CLI (pairing + token rotation)](/cli/devices)
|
||||||
|
- [Pairing CLI (DM approvals)](/cli/pairing)
|
||||||
|
|
||||||
|
Local trust:
|
||||||
|
- Local connections (loopback or the gateway host’s own tailnet address) can be
|
||||||
|
auto‑approved for pairing to keep same‑host UX smooth.
|
||||||
|
- Non‑local tailnet/LAN clients still require explicit pairing approval.
|
||||||
|
|
||||||
|
## Discovery + transports
|
||||||
|
|
||||||
|
- [Discovery & transports](/gateway/discovery)
|
||||||
|
- [Bonjour / mDNS](/gateway/bonjour)
|
||||||
|
- [Remote access (SSH)](/gateway/remote)
|
||||||
|
- [Tailscale](/gateway/tailscale)
|
||||||
|
|
||||||
|
## Nodes + bridge
|
||||||
|
|
||||||
|
- [Nodes overview](/nodes)
|
||||||
|
- [Bridge protocol (legacy nodes)](/gateway/bridge-protocol)
|
||||||
|
- [Node runbook: iOS](/platforms/ios)
|
||||||
|
- [Node runbook: Android](/platforms/android)
|
||||||
|
|
||||||
|
## Security
|
||||||
|
|
||||||
|
- [Security overview](/gateway/security)
|
||||||
|
- [Gateway config reference](/gateway/configuration)
|
||||||
|
- [Troubleshooting](/gateway/troubleshooting)
|
||||||
|
- [Doctor](/gateway/doctor)
|
||||||
@@ -32,6 +32,7 @@ Use these hubs to discover every page, including deep dives and reference docs t
|
|||||||
## Core concepts
|
## Core concepts
|
||||||
|
|
||||||
- [Architecture](/concepts/architecture)
|
- [Architecture](/concepts/architecture)
|
||||||
|
- [Network hub](/network)
|
||||||
- [Agent runtime](/concepts/agent)
|
- [Agent runtime](/concepts/agent)
|
||||||
- [Agent workspace](/concepts/agent-workspace)
|
- [Agent workspace](/concepts/agent-workspace)
|
||||||
- [Memory](/concepts/memory)
|
- [Memory](/concepts/memory)
|
||||||
|
|||||||
Reference in New Issue
Block a user