Pairing
Il “pairing” è il passaggio esplicito di approvazione del proprietario di OpenClaw. Viene usato in due punti:- DM pairing (chi è autorizzato a parlare con il bot)
- Node pairing (quali dispositivi/nodi sono autorizzati a unirsi alla rete del gateway)
1) DM pairing (accesso alla chat in ingresso)
Quando un canale è configurato con la policy DMpairing, i mittenti sconosciuti ricevono un codice breve e il loro messaggio non viene elaborato finché non approvi.
Le policy DM predefinite sono documentate in: Security
Codici di pairing:
- 8 caratteri, maiuscoli, senza caratteri ambigui (
0O1I). - Scadono dopo 1 ora. Il bot invia il messaggio di pairing solo quando viene creata una nuova richiesta (all’incirca una volta all’ora per mittente).
- Le richieste di DM pairing in sospeso sono limitate per impostazione predefinita a 3 per canale; le richieste aggiuntive vengono ignorate finché una non scade o non viene approvata.
Approvare un mittente
bluebubbles, discord, feishu, googlechat, imessage, irc, line, matrix, mattermost, msteams, nextcloud-talk, nostr, openclaw-weixin, signal, slack, synology-chat, telegram, twitch, whatsapp, zalo, zalouser.
Dove si trova lo stato
Memorizzato in~/.openclaw/credentials/:
- Richieste in sospeso:
<channel>-pairing.json - Archivio allowlist approvata:
- Account predefinito:
<channel>-allowFrom.json - Account non predefinito:
<channel>-<accountId>-allowFrom.json
- Account predefinito:
- Gli account non predefiniti leggono/scrivono solo il proprio file allowlist con ambito.
- L’account predefinito usa il file allowlist senza ambito, con ambito del canale.
groupAllowFrom, groups o override per gruppo/per argomento a seconda del canale).
2) Pairing del dispositivo nodo (nodi iOS/Android/macOS/headless)
I nodi si connettono al Gateway come dispositivi conrole: node. Il Gateway
crea una richiesta di pairing del dispositivo che deve essere approvata.
Pairing tramite Telegram (consigliato per iOS)
Se usi il plugindevice-pair, puoi eseguire il primo pairing del dispositivo interamente da Telegram:
- In Telegram, invia al tuo bot:
/pair - Il bot risponde con due messaggi: un messaggio di istruzioni e un messaggio separato con il codice di configurazione (facile da copiare/incollare in Telegram).
- Sul telefono, apri l’app iOS di OpenClaw → Impostazioni → Gateway.
- Incolla il codice di configurazione e connettiti.
- Tornato in Telegram:
/pair pending(rivedi ID richiesta, ruolo e scope), quindi approva.
url: l’URL WebSocket del Gateway (ws://...oppurewss://...)bootstrapToken: un bootstrap token a breve durata, per un solo dispositivo, usato per l’handshake iniziale di pairing
- il token
nodeprimario trasferito restascopes: [] - qualsiasi token
operatortrasferito resta vincolato all’allowlist bootstrap:operator.approvals,operator.read,operator.talk.secrets,operator.write - i controlli degli scope bootstrap usano prefissi di ruolo, non un unico pool di scope: le voci di scope operator soddisfano solo richieste operator, e i ruoli non operator devono comunque richiedere scope sotto il proprio prefisso di ruolo
Approvare un dispositivo nodo
requestId.
Archiviazione dello stato di pairing del nodo
Memorizzato in~/.openclaw/devices/:
pending.json(a breve durata; le richieste in sospeso scadono)paired.json(dispositivi abbinati + token)
Note
- L’API legacy
node.pair.*(CLI:openclaw nodes pending|approve|reject|rename) è un archivio di pairing separato di proprietà del gateway. I nodi WS richiedono comunque il pairing del dispositivo. - Il record di pairing è la fonte di verità durevole per i ruoli approvati. I token attivi del dispositivo restano vincolati a quell’insieme di ruoli approvati; una voce token isolata al di fuori dei ruoli approvati non crea nuovo accesso.