Technical reference
Permukaan kredensial SecretRef
Halaman ini mendefinisikan permukaan kredensial SecretRef kanonis: bidang kredensial mana yang menerima SecretRef (referensi yang didukung env/file/exec) sebagai pengganti nilai rahasia mentah.
Cakupan:
- Termasuk dalam cakupan: kredensial yang sepenuhnya disediakan pengguna dan tidak dibuat atau dirotasi oleh OpenClaw.
- Di luar cakupan: kredensial yang dibuat saat runtime atau dirotasi, materi penyegaran OAuth, dan artefak menyerupai sesi.
Daftar di bawah ini dihasilkan dari registri target sumber dan diperiksa terhadap docs/reference/secretref-user-supplied-credentials-matrix.json di CI; jangan mengedit entri secara manual.
Kredensial yang didukung
Target 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.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.serviceAccountmelaluiserviceAccountRefyang setara (pengecualian kompatibilitas)channels.googlechat.accounts.*.serviceAccountmelaluiserviceAccountRefyang setara (pengecualian kompatibilitas)
Target auth-profiles.json (secrets configure + secrets apply + secrets audit)
profiles.*.keyRef(type: "api_key"; tidak didukung ketikaauth.profiles.<id>.mode = "oauth")profiles.*.tokenRef(type: "token"; tidak didukung ketikaauth.profiles.<id>.mode = "oauth")
Catatan:
- Target rencana profil autentikasi memerlukan
agentId; entri rencana menargetkanprofiles.*.key/profiles.*.tokendan menulis referensi yang setara (keyRef/tokenRef). Referensi profil autentikasi disertakan dalam resolusi runtime dan cakupan audit. - Dalam
openclaw.json, SecretRef harus menggunakan objek terstruktur seperti{"source":"env","provider":"default","id":"DISCORD_BOT_TOKEN"}. String penanda lamasecretref-env:<ENV_VAR>ditolak pada jalur kredensial SecretRef; jalankanopenclaw doctor --fixuntuk memigrasikan penanda yang valid. - Pengaman kebijakan OAuth:
auth.profiles.<id>.mode = "oauth"tidak dapat digabungkan dengan masukan SecretRef untuk profil tersebut. Proses mulai ulang/pemuatan ulang dan resolusi profil autentikasi langsung gagal ketika kebijakan ini dilanggar. - Untuk penyedia model yang dikelola SecretRef, entri
agents/*/agent/models.jsonyang dihasilkan menyimpan penanda nonrahasia (bukan nilai rahasia yang telah diresolusi) untuk permukaanapiKey/header. Persistensi penanda mengikuti sumber otoritatif: OpenClaw menulis penanda dari snapshot konfigurasi sumber aktif (sebelum resolusi), bukan dari nilai rahasia runtime yang telah diresolusi. - Untuk pencarian web: dalam mode penyedia eksplisit (
tools.web.search.providerditetapkan), hanya kunci penyedia yang dipilih yang aktif. Dalam mode otomatis (tools.web.search.providertidak ditetapkan), hanya kunci penyedia pertama yang berhasil diresolusi berdasarkan urutan prioritas yang aktif, dan referensi penyedia yang tidak dipilih diperlakukan sebagai tidak aktif hingga dipilih. Jalur penyedia lamatools.web.search.*masih diresolusi selama periode kompatibilitas, tetapi permukaan SecretRef kanonis adalahplugins.entries.<plugin>.config.webSearch.*.
Kredensial yang tidak didukung
Kredensial ini termasuk dalam kelas yang dibuat, dirotasi, memuat sesi, atau bertahan lama untuk OAuth sehingga tidak sesuai dengan resolusi SecretRef eksternal hanya-baca:
commands.ownerDisplaySecrethooks.tokenhooks.gmail.pushTokenhooks.mappings[].sessionKeyauth-profiles.oauth.*channels.discord.threadBindings.webhookTokenchannels.discord.accounts.*.threadBindings.webhookTokenchannels.whatsapp.creds.jsonchannels.whatsapp.accounts.*.creds.json
Terkait
Was this useful?