Technical reference
SecretRef-Anmeldedatenoberfläche
Diese Seite definiert die kanonische SecretRef-Oberfläche für Anmeldedaten: welche Anmeldedatenfelder eine SecretRef (umgebungs-/datei-/exec-gestützte Referenz) anstelle eines unverarbeiteten Geheimniswerts akzeptieren.
Umfang:
- Im Umfang: ausschließlich von Benutzern bereitgestellte Anmeldedaten, die OpenClaw weder ausstellt noch rotiert.
- Außerhalb des Umfangs: zur Laufzeit ausgestellte oder rotierende Anmeldedaten, OAuth-Aktualisierungsmaterial und sitzungsähnliche Artefakte.
Die folgenden Listen werden aus der Quell-Zielregistrierung generiert und in der CI mit docs/reference/secretref-user-supplied-credentials-matrix.json abgeglichen; bearbeiten Sie die Einträge nicht manuell.
Unterstützte Anmeldedaten
openclaw.json-Ziele (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.*.apiKeymemory.search.remote.apiKeyagents.entries.*.tts.providers.*.apiKeyagents.entries.*.memory.search.remote.apiKeytalk.providers.*.apiKeytalk.realtime.providers.*.apiKeytts.providers.*.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.firecrawl.config.webFetch.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.authTokenplugins.entries.webhooks.config.routes.*.secretgateway.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.serviceAccountüber die benachbarteserviceAccountRef(Kompatibilitätsausnahme)channels.googlechat.accounts.*.serviceAccountüber die benachbarteserviceAccountRef(Kompatibilitätsausnahme)
auth-profiles.json-Ziele (secrets configure + secrets apply + secrets audit)
profiles.*.keyRef(type: "api_key"; nicht unterstützt, wennauth.profiles.<id>.mode = "oauth")profiles.*.tokenRef(type: "token"; nicht unterstützt, wennauth.profiles.<id>.mode = "oauth")
Hinweise:
- Ziele in Authentifizierungsprofil-Plänen erfordern
agentId; Planeinträge zielen aufprofiles.*.key/profiles.*.tokenund schreiben benachbarte Referenzen (keyRef/tokenRef). Referenzen von Authentifizierungsprofilen sind in der Laufzeitauflösung und der Audit-Abdeckung enthalten. - In
openclaw.jsonmüssen SecretRefs strukturierte Objekte wie{"source":"env","provider":"default","id":"DISCORD_BOT_TOKEN"}verwenden. Veraltetesecretref-env:<ENV_VAR>-Markierungszeichenfolgen werden in SecretRef-Anmeldedatenpfaden abgelehnt; führen Sieopenclaw doctor --fixaus, um gültige Markierungen zu migrieren. - OAuth-Richtlinienschutz:
auth.profiles.<id>.mode = "oauth"kann für dieses Profil nicht mit SecretRef-Eingaben kombiniert werden. Start/Neuladen und die Auflösung von Authentifizierungsprofilen schlagen sofort fehl, wenn gegen diese Richtlinie verstoßen wird. - Bei SecretRef-verwalteten Modell-Providern speichern generierte
agents/*/agent/models.json-Einträge nicht geheime Markierungen (keine aufgelösten Geheimniswerte) fürapiKey-/Header-Oberflächen. Die Speicherung der Markierungen folgt verbindlich der Quelle: OpenClaw schreibt Markierungen aus dem aktiven Schnappschuss der Quellkonfiguration (vor der Auflösung), nicht aus aufgelösten Geheimniswerten der Laufzeit. - Ein Kaltstart des Gateway kann wiederholbare Auflösungsfehler für zugeordnete Eigentümer isolieren, die nicht dem Gateway angehören. Zu den derzeit zugeordneten Klassen gehören Modell-Provider und Skills, Medien-/TTS-/Cron-Provider, geeignete Authentifizierungsprofile, agentenspezifischer Speicher, Sandbox-SSH, Kanalkonten und im Manifest deklarierte Plugin-Routen. Beim Start werden die expliziten Referenzen jedes fehlgeschlagenen Eigentümers im Laufzeitschnappschuss beibehalten, der Eigentümer wird über Status und Doctor gemeldet, und Anfragen für diesen Eigentümer werden abgelehnt, ohne Anmeldedaten mit niedrigerer Priorität auszuprobieren. Neuladen und die Vorabprüfung beim Schreiben der Konfiguration verwenden dieselbe eigentümerbezogene Richtlinie: Fehlerfreie Eigentümer werden aktualisiert; ein geeigneter fehlgeschlagener Eigentümer bleibt nur dann veraltet, wenn seine Referenzidentitäten, Provider-Definitionen und sein vollständiger nicht geheimer Eigentümervertrag unverändert sind; ein neuer oder geänderter Fehler führt zu einem kalten Zustand. Die Authentifizierung beim Gateway-Eingang, strukturell ungültige Referenzen oder Werte, bei Fehlern geschlossene Eigentümer und derzeit nicht zugeordnete Eigentümer bleiben strikt.
- Für die Websuche gilt: Im expliziten Provider-Modus (
tools.web.search.providerfestgelegt) ist nur der Schlüssel des ausgewählten Providers aktiv. Im automatischen Modus (tools.web.search.providernicht festgelegt) ist nur der erste Provider-Schlüssel aktiv, der gemäß der Prioritätsreihenfolge aufgelöst wird; Referenzen nicht ausgewählter Provider gelten bis zu ihrer Auswahl als inaktiv. Provider-Anmeldedaten verwendenplugins.entries.<plugin>.config.webSearch.*. - Slack
identity: "user"verwendetchannels.slack.userTokenzusammen mitchannels.slack.appTokenfür den Socket Mode oderchannels.slack.signingSecretfür den HTTP-Modus. Dieselbe Kombination gilt unterchannels.slack.accounts.*; für diese Identität ist kein Bot-Token erforderlich.
Nicht unterstützte Anmeldedaten
Diese Anmeldedaten werden ausgestellt oder rotiert, enthalten Sitzungsdaten oder gehören zu dauerhaft gespeicherten OAuth-Klassen, die sich nicht für die schreibgeschützte externe SecretRef-Auflösung eignen:
hooks.tokenhooks.gmail.pushTokenhooks.mappings[].sessionKeyauth-profiles.oauth.*channels.discord.threadBindings.webhookTokenchannels.discord.accounts.*.threadBindings.webhookTokenchannels.whatsapp.creds.jsonchannels.whatsapp.accounts.*.creds.json
Verwandte Themen
Was this useful?