OpenClaw é compatível com SecretRefs aditivos, para que credenciais compatíveis não precisem ser armazenadas como texto simples na configuração.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Texto simples ainda funciona. SecretRefs são opcionais por credencial.
Objetivos e modelo de runtime
Segredos são resolvidos em um snapshot de runtime em memória.- A resolução é antecipada durante a ativação, não preguiçosa nos caminhos de solicitação.
- A inicialização falha rapidamente quando uma SecretRef efetivamente ativa não pode ser resolvida.
- O recarregamento usa troca atômica: sucesso completo, ou mantém o último snapshot bom conhecido.
- Violações de política de SecretRef (por exemplo, perfis de autenticação em modo OAuth combinados com entrada SecretRef) falham a ativação antes da troca de runtime.
- Solicitações de runtime leem apenas do snapshot ativo em memória.
- Após a primeira ativação/carga de configuração bem-sucedida, os caminhos de código de runtime continuam lendo esse snapshot ativo em memória até que um recarregamento bem-sucedido o substitua.
- Caminhos de entrega de saída também leem desse snapshot ativo (por exemplo, entrega de resposta/thread do Discord e envios de ação do Telegram); eles não resolvem SecretRefs novamente a cada envio.
Filtragem de superfície ativa
SecretRefs são validadas apenas em superfícies efetivamente ativas.- Superfícies habilitadas: refs não resolvidas bloqueiam inicialização/recarregamento.
- Superfícies inativas: refs não resolvidas não bloqueiam inicialização/recarregamento.
- Refs inativas emitem diagnósticos não fatais com o código
SECRETS_REF_IGNORED_INACTIVE_SURFACE.
Examples of inactive surfaces
Examples of inactive surfaces
- Entradas de canal/conta desabilitadas.
- Credenciais de canal de nível superior que nenhuma conta habilitada herda.
- Superfícies de ferramenta/recurso desabilitadas.
- Chaves específicas de provedor de pesquisa web que não são selecionadas por
tools.web.search.provider. No modo automático (provedor não definido), as chaves são consultadas por precedência para detecção automática de provedor até que uma seja resolvida. Após a seleção, chaves de provedores não selecionados são tratadas como inativas até serem selecionadas. - Material de autenticação SSH de sandbox (
agents.defaults.sandbox.ssh.identityData,certificateData,knownHostsData, além de substituições por agente) fica ativo apenas quando o backend de sandbox efetivo ésshpara o agente padrão ou um agente habilitado. - SecretRefs de
gateway.remote.token/gateway.remote.passwordficam ativas se uma destas condições for verdadeira:gateway.mode=remotegateway.remote.urlestá configuradogateway.tailscale.modeéserveoufunnel- Em modo local sem essas superfícies remotas:
gateway.remote.tokenfica ativo quando autenticação por token pode vencer e nenhum token de env/autenticação está configurado.gateway.remote.passwordfica ativo apenas quando autenticação por senha pode vencer e nenhuma senha de env/autenticação está configurada.
- A SecretRef
gateway.auth.tokenfica inativa para resolução de autenticação na inicialização quandoOPENCLAW_GATEWAY_TOKENestá definido, porque a entrada de token de env vence para esse runtime.
Diagnósticos da superfície de autenticação do Gateway
Quando uma SecretRef está configurada emgateway.auth.token, gateway.auth.password, gateway.remote.token ou gateway.remote.password, a inicialização/recarregamento do Gateway registra explicitamente o estado da superfície:
active: a SecretRef faz parte da superfície de autenticação efetiva e precisa ser resolvida.inactive: a SecretRef é ignorada para este runtime porque outra superfície de autenticação vence, ou porque a autenticação remota está desabilitada/não ativa.
SECRETS_GATEWAY_AUTH_SURFACE e incluem o motivo usado pela política de superfície ativa, para que você possa ver por que uma credencial foi tratada como ativa ou inativa.
Pré-verificação de referência no onboarding
Quando o onboarding é executado em modo interativo e você escolhe armazenamento SecretRef, o OpenClaw executa validação prévia antes de salvar:- Refs de env: valida o nome da variável de env e confirma que um valor não vazio está visível durante a configuração.
- Refs de provedor (
fileouexec): valida a seleção do provedor, resolveide verifica o tipo do valor resolvido. - Caminho de reutilização do Quickstart: quando
gateway.auth.tokenjá é uma SecretRef, o onboarding a resolve antes do bootstrap de probe/dashboard (para refsenv,fileeexec) usando a mesma barreira de falha rápida.
Contrato SecretRef
Use um único formato de objeto em todos os lugares:- env
- file
- exec
providerdeve corresponder a^[a-z][a-z0-9_-]{0,63}$iddeve corresponder a^[A-Z][A-Z0-9_]{0,127}$
Configuração do provedor
Defina provedores emsecrets.providers:
Env provider
Env provider
- Allowlist opcional via
allowlist. - Valores de env ausentes/vazios falham a resolução.
File provider
File provider
- Lê arquivo local de
path. mode: "json"espera payload de objeto JSON e resolveidcomo ponteiro.mode: "singleValue"espera ref id"value"e retorna o conteúdo do arquivo.- O caminho deve passar por verificações de propriedade/permissão.
- Observação de falha fechada no Windows: se a verificação de ACL estiver indisponível para um caminho, a resolução falha. Apenas para caminhos confiáveis, defina
allowInsecurePath: truenesse provedor para ignorar verificações de segurança de caminho.
Exec provider
Exec provider
- Executa o caminho absoluto do binário configurado, sem shell.
- Por padrão,
commanddeve apontar para um arquivo regular (não um symlink). - Defina
allowSymlinkCommand: truepara permitir caminhos de comando symlink (por exemplo, shims do Homebrew). O OpenClaw valida o caminho de destino resolvido. - Combine
allowSymlinkCommandcomtrustedDirspara caminhos de gerenciadores de pacotes (por exemplo,["/opt/homebrew"]). - Oferece suporte a timeout, timeout sem saída, limites de bytes de saída, allowlist de env e diretórios confiáveis.
- Observação de falha fechada no Windows: se a verificação de ACL estiver indisponível para o caminho do comando, a resolução falha. Apenas para caminhos confiáveis, defina
allowInsecurePath: truenesse provedor para ignorar verificações de segurança de caminho.
Exemplos de integração exec
1Password CLI
1Password CLI
HashiCorp Vault CLI
HashiCorp Vault CLI
sops
sops
Variáveis de ambiente do servidor MCP
Variáveis de env do servidor MCP configuradas viaplugins.entries.acpx.config.mcpServers aceitam SecretInput. Isso mantém chaves de API e tokens fora da configuração em texto simples:
${MCP_SERVER_API_KEY} e objetos SecretRef são resolvidos durante a ativação do Gateway antes que o processo do servidor MCP seja iniciado. Como em outras superfícies SecretRef, refs não resolvidas só bloqueiam a ativação quando o Plugin acpx está efetivamente ativo.
Material de autenticação SSH de sandbox
O backend de sandboxssh do core também oferece suporte a SecretRefs para material de autenticação SSH:
- O OpenClaw resolve essas refs durante a ativação do sandbox, não de forma preguiçosa durante cada chamada SSH.
- Os valores resolvidos são gravados em arquivos temporários com permissões restritivas e usados na configuração SSH gerada.
- Se o backend de sandbox efetivo não for
ssh, essas refs permanecem inativas e não bloqueiam a inicialização.
Superfície de credenciais compatível
As credenciais canônicas compatíveis e incompatíveis estão listadas em:Credenciais emitidas em tempo de execução ou rotativas e material de atualização OAuth são excluídos intencionalmente da resolução SecretRef somente leitura.
Comportamento obrigatório e precedência
- Campo sem uma ref: inalterado.
- Campo com uma ref: obrigatório em superfícies ativas durante a ativação.
- Se texto simples e ref estiverem presentes, a ref terá precedência nos caminhos de precedência compatíveis.
- O sentinela de redação
__OPENCLAW_REDACTED__é reservado para redação/restauração interna de configuração e é rejeitado como dados literais de configuração enviados.
SECRETS_REF_OVERRIDES_PLAINTEXT(aviso de tempo de execução)REF_SHADOWED(achado de auditoria quando as credenciais deauth-profiles.jsontêm precedência sobre refs deopenclaw.json)
serviceAccountReftem precedência sobreserviceAccountem texto simples.- O valor em texto simples é ignorado quando a ref irmã está definida.
Acionadores de ativação
A ativação de segredos é executada em:- Inicialização (pré-verificação mais ativação final)
- Caminho de aplicação a quente do recarregamento de configuração
- Caminho de verificação de reinício do recarregamento de configuração
- Recarregamento manual via
secrets.reload - Pré-verificação RPC de gravação de configuração do Gateway (
config.set/config.apply/config.patch) para resolubilidade de SecretRef em superfícies ativas dentro da carga de configuração enviada antes de persistir edições
- O sucesso troca o snapshot atomicamente.
- Falha na inicialização aborta a inicialização do gateway.
- Falha no recarregamento em tempo de execução mantém o último snapshot válido conhecido.
- Falha na pré-verificação de RPC de gravação rejeita a configuração enviada e mantém inalterados tanto a configuração em disco quanto o snapshot ativo em tempo de execução.
- Fornecer um token de canal explícito por chamada a uma chamada de helper/ferramenta de saída não aciona a ativação de SecretRef; os pontos de ativação continuam sendo inicialização, recarregamento e
secrets.reloadexplícito.
Sinais de degradação e recuperação
Quando a ativação no momento do recarregamento falha após um estado saudável, o OpenClaw entra em estado de segredos degradado. Códigos de evento de sistema de disparo único e de log:SECRETS_RELOADER_DEGRADEDSECRETS_RELOADER_RECOVERED
- Degradado: o tempo de execução mantém o último snapshot válido conhecido.
- Recuperado: emitido uma vez após a próxima ativação bem-sucedida.
- Falhas repetidas enquanto já está degradado registram avisos, mas não disparam eventos em excesso.
- Falha rápida na inicialização não emite eventos degradados porque o tempo de execução nunca ficou ativo.
Resolução de caminhos de comando
Caminhos de comando podem optar pela resolução SecretRef compatível via RPC de snapshot do Gateway. Há dois comportamentos amplos:- Caminhos de comando estritos
- Caminhos de comando somente leitura
Por exemplo, caminhos de memória remota de
openclaw memory e openclaw qr --remote quando precisa de refs de segredo compartilhado remoto. Eles leem do snapshot ativo e falham rapidamente quando uma SecretRef obrigatória está indisponível.- A atualização do snapshot após rotação de segredo no backend é tratada por
openclaw secrets reload. - Método RPC do Gateway usado por esses caminhos de comando:
secrets.resolve.
Fluxo de auditoria e configuração
Fluxo padrão do operador:secrets audit
secrets audit
Achados incluem:
- valores em texto simples em repouso (
openclaw.json,auth-profiles.json,.enveagents/*/agent/models.jsongerados) - resíduos de cabeçalhos sensíveis de provedores em texto simples em entradas
models.jsongeradas - refs não resolvidas
- sombreamento por precedência (
auth-profiles.jsontendo prioridade sobre refs deopenclaw.json) - resíduos legados (
auth.json, lembretes OAuth)
- Por padrão, a auditoria ignora verificações de resolubilidade de SecretRef exec para evitar efeitos colaterais de comandos.
- Use
openclaw secrets audit --allow-execpara executar provedores exec durante a auditoria.
- A detecção de cabeçalhos sensíveis de provedores é baseada em heurística de nome (nomes comuns de cabeçalhos de autenticação/credenciais e fragmentos como
authorization,x-api-key,token,secret,passwordecredential).
secrets configure
secrets configure
Helper interativo que:
- configura
secrets.providersprimeiro (env/file/exec, adicionar/editar/remover) - permite selecionar campos compatíveis que contêm segredos em
openclaw.jsonmaisauth-profiles.jsonpara um escopo de agente - pode criar um novo mapeamento
auth-profiles.jsondiretamente no seletor de destino - captura detalhes da SecretRef (
source,provider,id) - executa resolução de pré-verificação
- pode aplicar imediatamente
- A pré-verificação ignora verificações de SecretRef exec, a menos que
--allow-execesteja definido. - Se você aplicar diretamente de
configure --applye o plano incluir refs/provedores exec, mantenha--allow-execdefinido também para a etapa de aplicação.
openclaw secrets configure --providers-onlyopenclaw secrets configure --skip-provider-setupopenclaw secrets configure --agent <id>
configure:- limpar credenciais estáticas correspondentes de
auth-profiles.jsonpara provedores direcionados - limpar entradas
api_keyestáticas legadas deauth.json - limpar linhas de segredo conhecidas correspondentes de
<config-dir>/.env
secrets apply
secrets apply
Aplicar um plano salvo:Observação sobre exec:
- dry-run ignora verificações exec, a menos que
--allow-execesteja definido. - o modo de gravação rejeita planos contendo SecretRefs/provedores exec, a menos que
--allow-execesteja definido.
Política de segurança unidirecional
Modelo de segurança:- a pré-verificação deve ser bem-sucedida antes do modo de gravação
- a ativação em tempo de execução é validada antes do commit
- a aplicação atualiza arquivos usando substituição atômica de arquivo e restauração de melhor esforço em caso de falha
Observações de compatibilidade de autenticação legada
Para credenciais estáticas, o tempo de execução não depende mais do armazenamento legado de autenticação em texto simples.- A fonte de credenciais em tempo de execução é o snapshot resolvido em memória.
- Entradas
api_keyestáticas legadas são limpas quando descobertas. - O comportamento de compatibilidade relacionado ao OAuth permanece separado.
Observação sobre Web UI
Algumas uniões SecretInput são mais fáceis de configurar no modo editor bruto do que no modo formulário.Relacionado
- Autenticação — configuração de autenticação
- CLI: secrets — comandos da CLI
- Variáveis de ambiente — precedência de ambiente
- Superfície de credenciais SecretRef — superfície de credenciais
- Contrato de plano de aplicação de segredos — detalhes do contrato do plano
- Segurança — postura de segurança