Funções
Clientes WebSocket do Gateway se conectam com uma função:operator: clientes de plano de controle, como CLI, Control UI, automação e processos auxiliares confiáveis.node: hosts de capacidade, como macOS, iOS, Android ou nós sem interface que expõem comandos por meio denode.invoke.
operator. Métodos originados por node
exigem a função node.
Níveis de escopo
| Escopo | Significado |
|---|---|
operator.read | Status somente leitura, listas, catálogo, logs, leituras de sessão e outras chamadas de plano de controle que não fazem mutações. |
operator.write | Ações normais de operador que fazem mutações, como enviar mensagens, invocar ferramentas, atualizar configurações de conversa/voz e retransmissão de comandos de node. Também satisfaz operator.read. |
operator.admin | Acesso administrativo ao plano de controle. Satisfaz todos os escopos operator.*. Necessário para mutação de configuração, atualizações, hooks nativos, namespaces reservados sensíveis e aprovações de alto risco. |
operator.pairing | Gerenciamento de pareamento de dispositivos e nodes, incluindo listar, aprovar, rejeitar, remover, rotacionar e revogar registros de pareamento ou tokens de dispositivo. |
operator.approvals | APIs de aprovação de exec e Plugin. |
operator.talk.secrets | Leitura da configuração do Talk com segredos incluídos. |
operator.* futuros desconhecidos exigem uma correspondência exata, a menos que o chamador tenha
operator.admin.
O escopo do método é apenas o primeiro bloqueio
Cada RPC do Gateway tem um escopo de método de privilégio mínimo. Esse escopo de método decide se a solicitação pode chegar ao handler. Alguns handlers então aplicam verificações mais rigorosas no momento da aprovação com base no item concreto que está sendo aprovado ou alterado. Exemplos:device.pair.approveé acessível comoperator.pairing, mas aprovar um dispositivo operador só pode emitir ou preservar escopos que o chamador já possui.node.pair.approveé acessível comoperator.pairinge então deriva escopos extras de aprovação da lista pendente de comandos do node.chat.sendnormalmente é um método com escopo de escrita, mas/config sete/config unsetpersistentes exigemoperator.adminno nível do comando.
Aprovações de pareamento de dispositivos
Registros de pareamento de dispositivos são a fonte durável das funções e escopos aprovados. Dispositivos já pareados não recebem acesso mais amplo silenciosamente: reconexões que pedem uma função mais ampla ou escopos mais amplos criam uma nova solicitação pendente de upgrade. Ao aprovar uma solicitação de dispositivo:- Uma solicitação sem função de operador não precisa de aprovação de escopo de token de operador.
- Uma solicitação para uma função de dispositivo não operador, como
node, exigeoperator.admin, mesmo quandodevice.pair.approveé acessível comoperator.pairing. - Uma solicitação para
operator.read,operator.write,operator.approvals,operator.pairingouoperator.talk.secretsexige que o chamador tenha esses escopos ouoperator.admin. - Uma solicitação para
operator.adminexigeoperator.admin. - Uma solicitação de reparo sem escopos explícitos pode herdar os escopos do token
de operador existente. Se esse token existente tiver escopo de administrador, a aprovação ainda exige
operator.admin.
operator.pairing de outra forma.
Para sessões de token de dispositivo pareado, o gerenciamento também é autoescopado, a menos que o
chamador tenha operator.admin: chamadores não administradores veem apenas suas próprias entradas de
pareamento, podem aprovar ou rejeitar apenas sua própria solicitação pendente e podem rotacionar,
revogar ou remover apenas sua própria entrada de dispositivo.
Aprovações de pareamento de Node
Onode.pair.* legado usa um armazenamento separado de pareamento de nodes pertencente ao Gateway. Nodes WS
usam pareamento de dispositivos com role: node, mas o mesmo vocabulário de nível de aprovação
se aplica.
node.pair.approve usa a lista de comandos da solicitação pendente para derivar escopos
necessários adicionais:
- Solicitação sem comandos:
operator.pairing - Comandos de node que não são exec:
operator.pairing+operator.write system.run,system.run.prepareousystem.which:operator.pairing+operator.admin
system.run própria do node.
Autenticação por segredo compartilhado
Autenticação por token/senha compartilhados do Gateway é tratada como acesso de operador confiável para esse Gateway. Superfícies HTTP compatíveis com OpenAI,/tools/invoke e endpoints HTTP de histórico de sessão
restauram o conjunto padrão normal e completo de escopos de operador para
autenticação bearer por segredo compartilhado, mesmo que um chamador envie escopos declarados mais estreitos.
Modos que carregam identidade, como autenticação por proxy confiável ou none de ingresso privado,
ainda podem respeitar escopos declarados explicitamente. Use Gateways separados para separação real de
limites de confiança.