Technical reference
Surface d’identifiants SecretRef
Cette page définit la surface d’identifiants SecretRef canonique : les champs d’identifiants qui acceptent une SecretRef (référence basée sur env/file/exec) au lieu d’une valeur secrète brute.
Périmètre :
- Dans le périmètre : uniquement les identifiants fournis par l’utilisateur qu’OpenClaw ne génère ni ne renouvelle.
- Hors périmètre : les identifiants générés ou renouvelés à l’exécution, les données d’actualisation OAuth et les artefacts assimilables à des sessions.
Les listes ci-dessous sont générées à partir du registre des cibles source et vérifiées par rapport à docs/reference/secretref-user-supplied-credentials-matrix.json dans la CI ; ne modifiez pas les entrées manuellement.
Identifiants pris en charge
Cibles openclaw.json (secrets configure + secrets apply + secrets audit)
models.providers.*.apiKeymodels.providers.*.headers.*models.providers.*.request.auth.tokenmodels.providers.*.request.auth.valuemodels.providers.*.request.headers.*models.providers.*.request.proxy.tls.camodels.providers.*.request.proxy.tls.certmodels.providers.*.request.proxy.tls.keymodels.providers.*.request.proxy.tls.passphrasemodels.providers.*.request.tls.camodels.providers.*.request.tls.certmodels.providers.*.request.tls.keymodels.providers.*.request.tls.passphraseskills.entries.*.apiKeyagents.defaults.memorySearch.remote.apiKeyagents.list[].tts.providers.*.apiKeyagents.list[].memorySearch.remote.apiKeytalk.providers.*.apiKeytalk.realtime.providers.*.apiKeymessages.tts.providers.*.apiKeytools.web.fetch.firecrawl.apiKeyplugins.entries.acpx.config.mcpServers.*.env.*plugins.entries.brave.config.webSearch.apiKeyplugins.entries.codex.config.appServer.authTokenplugins.entries.codex.config.appServer.headers.*plugins.entries.exa.config.webSearch.apiKeyplugins.entries.google-meet.config.realtime.providers.*.apiKeyplugins.entries.google.config.webSearch.apiKeyplugins.entries.xai.config.webSearch.apiKeyplugins.entries.moonshot.config.webSearch.apiKeyplugins.entries.perplexity.config.webSearch.apiKeyplugins.entries.firecrawl.config.webSearch.apiKeyplugins.entries.minimax.config.webSearch.apiKeyplugins.entries.tavily.config.webSearch.apiKeyplugins.entries.parallel.config.webSearch.apiKeyplugins.entries.voice-call.config.realtime.providers.*.apiKeyplugins.entries.voice-call.config.streaming.providers.*.apiKeyplugins.entries.voice-call.config.tts.providers.*.apiKeyplugins.entries.voice-call.config.twilio.authTokentools.web.search.*.apiKeytools.web.search.apiKeygateway.auth.passwordgateway.auth.tokengateway.remote.tokengateway.remote.passwordcron.webhookTokenchannels.telegram.botTokenchannels.telegram.webhookSecretchannels.telegram.accounts.*.botTokenchannels.telegram.accounts.*.webhookSecretchannels.slack.botTokenchannels.slack.appTokenchannels.slack.relay.authTokenchannels.slack.userTokenchannels.slack.signingSecretchannels.slack.accounts.*.botTokenchannels.slack.accounts.*.appTokenchannels.slack.accounts.*.relay.authTokenchannels.slack.accounts.*.userTokenchannels.slack.accounts.*.signingSecretchannels.sms.authTokenchannels.sms.accounts.*.authTokenchannels.clickclack.tokenchannels.clickclack.accounts.*.tokenchannels.discord.tokenchannels.discord.pluralkit.tokenchannels.discord.voice.tts.providers.*.apiKeychannels.discord.accounts.*.tokenchannels.discord.accounts.*.pluralkit.tokenchannels.discord.accounts.*.voice.tts.providers.*.apiKeychannels.irc.passwordchannels.irc.nickserv.passwordchannels.irc.accounts.*.passwordchannels.irc.accounts.*.nickserv.passwordchannels.feishu.appSecretchannels.feishu.encryptKeychannels.feishu.verificationTokenchannels.feishu.accounts.*.appSecretchannels.feishu.accounts.*.encryptKeychannels.feishu.accounts.*.verificationTokenchannels.qqbot.clientSecretchannels.qqbot.accounts.*.clientSecretchannels.msteams.appPasswordchannels.mattermost.botTokenchannels.mattermost.accounts.*.botTokenchannels.matrix.accessTokenchannels.matrix.passwordchannels.matrix.accounts.*.accessTokenchannels.matrix.accounts.*.passwordchannels.nextcloud-talk.botSecretchannels.nextcloud-talk.apiPasswordchannels.nextcloud-talk.accounts.*.botSecretchannels.nextcloud-talk.accounts.*.apiPasswordchannels.zalo.botTokenchannels.zalo.webhookSecretchannels.zalo.accounts.*.botTokenchannels.zalo.accounts.*.webhookSecretchannels.googlechat.serviceAccountvia l’élément frèreserviceAccountRef(exception de compatibilité)channels.googlechat.accounts.*.serviceAccountvia l’élément frèreserviceAccountRef(exception de compatibilité)
Cibles auth-profiles.json (secrets configure + secrets apply + secrets audit)
profiles.*.keyRef(type: "api_key"; non pris en charge lorsqueauth.profiles.<id>.mode = "oauth")profiles.*.tokenRef(type: "token"; non pris en charge lorsqueauth.profiles.<id>.mode = "oauth")
Remarques :
- Les cibles de plan de profil d’authentification nécessitent
agentId; les entrées de plan ciblentprofiles.*.key/profiles.*.tokenet écrivent les références sœurs (keyRef/tokenRef). Les références de profil d’authentification sont incluses dans la résolution à l’exécution et la couverture d’audit. - Dans
openclaw.json, les SecretRefs doivent utiliser des objets structurés tels que{"source":"env","provider":"default","id":"DISCORD_BOT_TOKEN"}. Les anciennes chaînes de marqueursecretref-env:<ENV_VAR>sont rejetées sur les chemins d’identifiants SecretRef ; exécutezopenclaw doctor --fixpour migrer les marqueurs valides. - Garde de politique OAuth :
auth.profiles.<id>.mode = "oauth"ne peut pas être combiné avec des entrées SecretRef pour ce profil. Le démarrage/rechargement et la résolution du profil d’authentification échouent immédiatement lorsque cette politique est enfreinte. - Pour les fournisseurs de modèles gérés par SecretRef, les entrées
agents/*/agent/models.jsongénérées conservent des marqueurs non secrets (et non les valeurs secrètes résolues) pour les surfacesapiKey/d’en-têtes. La persistance des marqueurs fait autorité depuis la source : OpenClaw écrit les marqueurs à partir de l’instantané actif de la configuration source (avant résolution), et non à partir des valeurs secrètes résolues à l’exécution. - Pour la recherche Web : en mode fournisseur explicite (
tools.web.search.providerdéfini), seule la clé du fournisseur sélectionné est active. En mode automatique (tools.web.search.providernon défini), seule la première clé de fournisseur résolue selon l’ordre de priorité est active, et les références des fournisseurs non sélectionnés sont considérées comme inactives jusqu’à leur sélection. Les anciens chemins de fournisseurtools.web.search.*sont toujours résolus pendant la période de compatibilité, mais la surface SecretRef canonique estplugins.entries.<plugin>.config.webSearch.*.
Identifiants non pris en charge
Ces identifiants appartiennent à des classes générées, renouvelées, porteuses de session ou durables pour OAuth, qui ne sont pas adaptées à la résolution externe SecretRef en lecture seule :
commands.ownerDisplaySecrethooks.tokenhooks.gmail.pushTokenhooks.mappings[].sessionKeyauth-profiles.oauth.*channels.discord.threadBindings.webhookTokenchannels.discord.accounts.*.threadBindings.webhookTokenchannels.whatsapp.creds.jsonchannels.whatsapp.accounts.*.creds.json
Pages connexes
Was this useful?