Gateway
Configuración
OpenClaw lee una configuración opcional <Tooltip tip="JSON5 admite comentarios y comas finales">JSON5</Tooltip> desde ~/.openclaw/openclaw.json.
La ruta de configuración activa debe ser un archivo normal. Los diseños de openclaw.json
con enlaces simbólicos no son compatibles con escrituras propiedad de OpenClaw; una escritura atómica puede reemplazar
la ruta en lugar de conservar el enlace simbólico. Si mantienes la configuración fuera del
directorio de estado predeterminado, apunta OPENCLAW_CONFIG_PATH directamente al archivo real.
Si falta el archivo, OpenClaw usa valores predeterminados seguros. Razones comunes para agregar una configuración:
- Conectar canales y controlar quién puede enviar mensajes al bot
- Definir modelos, herramientas, aislamiento o automatización (Cron, hooks)
- Ajustar sesiones, medios, red o UI
Consulta la referencia completa para ver todos los campos disponibles.
Los agentes y la automatización deben usar config.schema.lookup para consultar la documentación exacta
a nivel de campo antes de editar la configuración. Usa esta página como guía orientada a tareas y
la Referencia de configuración para el mapa de campos más amplio
y los valores predeterminados.
Configuración mínima
// ~/.openclaw/openclaw.json
{
agents: { defaults: { workspace: "~/.openclaw/workspace" } },
channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}
Editar configuración
Asistente interactivo
openclaw onboard # full onboarding flow
openclaw configure # config wizard
CLI (comandos de una línea)
openclaw config get agents.defaults.workspace
openclaw config set agents.defaults.heartbeat.every "2h"
openclaw config unset plugins.entries.brave.config.webSearch.apiKey
UI de Control
Abre http://127.0.0.1:18789 y usa la pestaña Configuración.
La UI de Control renderiza un formulario a partir del esquema de configuración en vivo, incluida la metadata
de documentación title / description de los campos, además de los esquemas de Plugin y canal cuando
están disponibles, con un editor JSON sin procesar como vía de escape. Para UIs de navegación
detallada y otras herramientas, el Gateway también expone config.schema.lookup para
obtener un nodo de esquema limitado a una ruta, más resúmenes de sus hijos inmediatos.
Edición directa
Edita ~/.openclaw/openclaw.json directamente. El Gateway observa el archivo y aplica los cambios automáticamente (consulta recarga en caliente).
Validación estricta
openclaw config schema imprime el JSON Schema canónico usado por la UI de Control
y la validación. config.schema.lookup obtiene un único nodo limitado a una ruta, más
resúmenes de hijos para herramientas de navegación detallada. La metadata de documentación
title/description de los campos se conserva en objetos anidados, comodines (*),
elementos de array ([]) y ramas anyOf/
oneOf/allOf. Los esquemas de Plugin y canal en tiempo de ejecución se fusionan cuando se carga
el registro de manifiestos.
Cuando falla la validación:
- El Gateway no arranca
- Solo funcionan los comandos de diagnóstico (
openclaw doctor,openclaw logs,openclaw health,openclaw status) - Ejecuta
openclaw doctorpara ver los problemas exactos - Ejecuta
openclaw doctor --fix(o--yes) para aplicar reparaciones
El Gateway mantiene una copia confiable de la última configuración válida conocida después de cada inicio correcto,
pero el inicio y la recarga en caliente no la restauran automáticamente. Si openclaw.json
falla la validación (incluida la validación local del Plugin), el inicio del Gateway falla o
la recarga se omite y el runtime actual mantiene la última configuración aceptada.
Ejecuta openclaw doctor --fix (o --yes) para reparar configuraciones con prefijos/sobrescritas o
restaurar la copia de la última configuración válida conocida. La promoción a última configuración válida conocida se omite cuando una
candidata contiene marcadores de secretos redactados como ***.
Tareas comunes
Configurar un canal (WhatsApp, Telegram, Discord, etc.)
Cada canal tiene su propia sección de configuración bajo channels.<provider>. Consulta la página dedicada del canal para ver los pasos de configuración:
- WhatsApp -
channels.whatsapp - Telegram -
channels.telegram - Discord -
channels.discord - Feishu -
channels.feishu - Google Chat -
channels.googlechat - Microsoft Teams -
channels.msteams - Slack -
channels.slack - Signal -
channels.signal - iMessage -
channels.imessage - Mattermost -
channels.mattermost
Todos los canales comparten el mismo patrón de política de DM:
{
channels: {
telegram: {
enabled: true,
botToken: "123:abc",
dmPolicy: "pairing", // pairing | allowlist | open | disabled
allowFrom: ["tg:123"], // only for allowlist/open
},
},
}
Elegir y configurar modelos
Define el modelo principal y los respaldos opcionales:
{
agents: {
defaults: {
model: {
primary: "anthropic/claude-sonnet-4-6",
fallbacks: ["openai/gpt-5.4"],
},
models: {
"anthropic/claude-sonnet-4-6": { alias: "Sonnet" },
"openai/gpt-5.4": { alias: "GPT" },
},
},
},
}
agents.defaults.modelsdefine el catálogo de modelos y actúa como lista de permitidos para/model.- Usa
openclaw config set agents.defaults.models '<json>' --strict-json --mergepara agregar entradas a la lista de permitidos sin eliminar modelos existentes. Los reemplazos simples que eliminarían entradas se rechazan a menos que pases--replace. - Las referencias de modelo usan el formato
provider/model(por ejemplo,anthropic/claude-opus-4-6). agents.defaults.imageMaxDimensionPxcontrola la reducción de escala de imágenes de transcripción/herramientas (valor predeterminado1200); los valores más bajos suelen reducir el uso de tokens de visión en ejecuciones con muchas capturas de pantalla.- Consulta CLI de modelos para cambiar modelos en el chat y Conmutación por error de modelos para la rotación de autenticación y el comportamiento de respaldo.
- Para proveedores personalizados/autohospedados, consulta Proveedores personalizados en la referencia.
Controla quién puede enviar mensajes al bot
El acceso por DM se controla por canal mediante dmPolicy:
"pairing"(predeterminado): los remitentes desconocidos reciben un código de vinculación de un solo uso para aprobarlos"allowlist": solo remitentes enallowFrom(o en el almacén de permitidos vinculados)"open": permite todos los DM entrantes (requiereallowFrom: ["*"])"disabled": ignora todos los DM
Para grupos, usa groupPolicy + groupAllowFrom o listas de permitidos específicas del canal.
Consulta la referencia completa para ver detalles por canal.
Configura el control por menciones en chats grupales
Los mensajes de grupo requieren mención de forma predeterminada. Configura patrones de activación por agente y mantén las respuestas visibles de sala en la ruta predeterminada de la herramienta de mensajes, salvo que quieras intencionalmente las respuestas finales automáticas heredadas:
{
messages: {
visibleReplies: "automatic", // set "message_tool" to require message-tool sends everywhere
groupChat: {
visibleReplies: "message_tool", // default; use "automatic" for legacy room replies
},
},
agents: {
list: [
{
id: "main",
groupChat: {
mentionPatterns: ["@openclaw", "openclaw"],
},
},
],
},
channels: {
whatsapp: {
groups: { "*": { requireMention: true } },
},
},
}
- Menciones de metadatos: @-menciones nativas (mención táctil de WhatsApp, @bot de Telegram, etc.)
- Patrones de texto: patrones regex seguros en
mentionPatterns - Respuestas visibles:
messages.visibleRepliespuede requerir envíos con herramienta de mensajes globalmente;messages.groupChat.visibleReplieslo sobrescribe para grupos/canales. - Consulta la referencia completa para ver los modos de respuesta visible, las sobrescrituras por canal y el modo de chat propio.
Restringe Skills por agente
Usa agents.defaults.skills como base compartida y luego sobrescribe agentes específicos con agents.list[].skills:
{
agents: {
defaults: {
skills: ["github", "weather"],
},
list: [
{ id: "writer" }, // inherits github, weather
{ id: "docs", skills: ["docs-search"] }, // replaces defaults
{ id: "locked-down", skills: [] }, // no skills
],
},
}
- Omite
agents.defaults.skillspara permitir Skills sin restricciones de forma predeterminada. - Omite
agents.list[].skillspara heredar los valores predeterminados. - Define
agents.list[].skills: []para no permitir Skills. - Consulta Skills, configuración de Skills y la Referencia de configuración.
Ajusta el monitoreo de estado de los canales del Gateway
Controla con qué agresividad el Gateway reinicia canales que parecen obsoletos:
{
gateway: {
channelHealthCheckMinutes: 5,
channelStaleEventThresholdMinutes: 30,
channelMaxRestartsPerHour: 10,
},
channels: {
telegram: {
healthMonitor: { enabled: false },
accounts: {
alerts: {
healthMonitor: { enabled: true },
},
},
},
},
}
- Define
gateway.channelHealthCheckMinutes: 0para desactivar globalmente los reinicios del monitor de estado. channelStaleEventThresholdMinutesdebe ser mayor o igual que el intervalo de comprobación.- Usa
channels.<provider>.healthMonitor.enabledochannels.<provider>.accounts.<id>.healthMonitor.enabledpara desactivar reinicios automáticos de un canal o cuenta sin desactivar el monitor global. - Consulta Comprobaciones de estado para depuración operativa y la referencia completa para todos los campos.
Ajusta el tiempo de espera del handshake WebSocket del Gateway
Da a los clientes locales más tiempo para completar el handshake WebSocket previo a la autenticación en hosts cargados o de baja potencia:
{
gateway: {
handshakeTimeoutMs: 30000,
},
}
- El valor predeterminado es
15000milisegundos. OPENCLAW_HANDSHAKE_TIMEOUT_MSsigue teniendo prioridad para sobrescrituras puntuales de servicio o shell.- Prefiere corregir primero los bloqueos de inicio o del bucle de eventos; este ajuste es para hosts que están sanos pero son lentos durante el calentamiento.
Configura sesiones y restablecimientos
Las sesiones controlan la continuidad y el aislamiento de la conversación:
{
session: {
dmScope: "per-channel-peer", // recommended for multi-user
threadBindings: {
enabled: true,
idleHours: 24,
maxAgeHours: 0,
},
reset: {
mode: "daily",
atHour: 4,
idleMinutes: 120,
},
},
}
dmScope:main(compartido) |per-peer|per-channel-peer|per-account-channel-peerthreadBindings: valores predeterminados globales para el enrutamiento de sesiones vinculado a hilos (Discord admite/focus,/unfocus,/agents,/session idley/session max-age).- Consulta Gestión de sesiones para ámbitos, enlaces de identidad y política de envío.
- Consulta la referencia completa para todos los campos.
Habilitar el sandboxing
Ejecuta sesiones de agente en runtimes de sandbox aislados:
{
agents: {
defaults: {
sandbox: {
mode: "non-main", // off | non-main | all
scope: "agent", // session | agent | shared
},
},
},
}
Compila primero la imagen: desde un checkout de origen ejecuta scripts/sandbox-setup.sh, o desde una instalación de npm consulta el comando docker build en línea en Sandboxing § Imágenes y configuración.
Consulta Sandboxing para ver la guía completa y la referencia completa para todas las opciones.
Habilitar push respaldado por relay para compilaciones oficiales de iOS
El push respaldado por relay se configura en openclaw.json.
Define esto en la configuración del Gateway:
{
gateway: {
push: {
apns: {
relay: {
baseUrl: "https://relay.example.com",
// Optional. Default: 10000
timeoutMs: 10000,
},
},
},
},
}
Equivalente en CLI:
openclaw config set gateway.push.apns.relay.baseUrl https://relay.example.com
Qué hace esto:
- Permite que el gateway envíe
push.test, avisos de activación y activaciones de reconexión a través del relay externo. - Usa una concesión de envío con alcance de registro reenviada por la app iOS emparejada. El gateway no necesita un token de relay para todo el despliegue.
- Vincula cada registro respaldado por relay con la identidad del gateway con la que se emparejó la app iOS, de modo que otro gateway no pueda reutilizar el registro almacenado.
- Mantiene las compilaciones locales/manuales de iOS en APNs directo. Los envíos respaldados por relay solo se aplican a compilaciones oficiales distribuidas que se registraron a través del relay.
- Debe coincidir con la URL base del relay integrada en la compilación oficial/TestFlight de iOS, para que el tráfico de registro y envío llegue al mismo despliegue de relay.
Flujo de extremo a extremo:
- Instala una compilación oficial/TestFlight de iOS que se haya compilado con la misma URL base del relay.
- Configura
gateway.push.apns.relay.baseUrlen el gateway. - Empareja la app iOS con el gateway y deja que se conecten tanto las sesiones del nodo como las del operador.
- La app iOS obtiene la identidad del gateway, se registra con el relay usando App Attest más el recibo de la app y luego publica la carga
push.apns.registerrespaldada por relay en el gateway emparejado. - El gateway almacena el identificador del relay y la concesión de envío, y luego los usa para
push.test, avisos de activación y activaciones de reconexión.
Notas operativas:
- Si cambias la app iOS a otro gateway, vuelve a conectar la app para que pueda publicar un nuevo registro de relay vinculado a ese gateway.
- Si distribuyes una nueva compilación de iOS que apunta a un despliegue de relay distinto, la app actualiza su registro de relay en caché en lugar de reutilizar el origen de relay anterior.
Nota de compatibilidad:
OPENCLAW_APNS_RELAY_BASE_URLyOPENCLAW_APNS_RELAY_TIMEOUT_MSsiguen funcionando como sobrescrituras temporales de entorno.OPENCLAW_APNS_RELAY_ALLOW_HTTP=truesigue siendo una vía de escape de desarrollo limitada a loopback; no persistas URLs de relay HTTP en la configuración.
Consulta App iOS para ver el flujo de extremo a extremo y Flujo de autenticación y confianza para el modelo de seguridad del relay.
Configurar heartbeat (registros periódicos)
{
agents: {
defaults: {
heartbeat: {
every: "30m",
target: "last",
},
},
},
}
every: cadena de duración (30m,2h). Define0mpara deshabilitar.target:last|none|<channel-id>(por ejemplodiscord,matrix,telegramowhatsapp)directPolicy:allow(predeterminado) oblockpara destinos de heartbeat de estilo DM- Consulta Heartbeat para ver la guía completa.
Configurar trabajos de cron
{
cron: {
enabled: true,
maxConcurrentRuns: 2, // cron dispatch + isolated cron agent-turn execution
sessionRetention: "24h",
runLog: {
maxBytes: "2mb",
keepLines: 2000,
},
},
}
sessionRetention: depura las sesiones de ejecución aisladas completadas desessions.json(predeterminado24h; definefalsepara deshabilitar).runLog: depuracron/runs/<jobId>.jsonlpor tamaño y líneas conservadas.- Consulta Trabajos de Cron para ver la descripción general de la función y ejemplos de CLI.
Configurar webhooks (hooks)
Habilita endpoints de Webhook HTTP en el Gateway:
{
hooks: {
enabled: true,
token: "shared-secret",
path: "/hooks",
defaultSessionKey: "hook:ingress",
allowRequestSessionKey: false,
allowedSessionKeyPrefixes: ["hook:"],
mappings: [
{
match: { path: "gmail" },
action: "agent",
agentId: "main",
deliver: true,
},
],
},
}
Nota de seguridad:
- Trata todo el contenido de carga de hook/Webhook como entrada no confiable.
- Usa un
hooks.tokendedicado; no reutilices el token compartido del Gateway. - La autenticación de hooks solo usa encabezados (
Authorization: Bearer ...ox-openclaw-token); se rechazan los tokens en la cadena de consulta. hooks.pathno puede ser/; mantén la entrada de Webhook en una subruta dedicada como/hooks.- Mantén deshabilitadas las marcas para omitir contenido inseguro (
hooks.gmail.allowUnsafeExternalContent,hooks.mappings[].allowUnsafeExternalContent) salvo que estés haciendo depuración de alcance muy limitado. - Si habilitas
hooks.allowRequestSessionKey, define tambiénhooks.allowedSessionKeyPrefixespara limitar las claves de sesión seleccionadas por el llamador. - Para agentes controlados por hooks, prefiere niveles de modelos modernos y sólidos, y una política de herramientas estricta (por ejemplo, solo mensajería más sandboxing donde sea posible).
Consulta la referencia completa para ver todas las opciones de asignación y la integración de Gmail.
Configurar enrutamiento multiagente
Ejecuta varios agentes aislados con workspaces y sesiones separados:
{
agents: {
list: [
{ id: "home", default: true, workspace: "~/.openclaw/workspace-home" },
{ id: "work", workspace: "~/.openclaw/workspace-work" },
],
},
bindings: [
{ agentId: "home", match: { channel: "whatsapp", accountId: "personal" } },
{ agentId: "work", match: { channel: "whatsapp", accountId: "biz" } },
],
}
Consulta Multiagente y la referencia completa para ver las reglas de vinculación y los perfiles de acceso por agente.
Dividir la configuración en varios archivos ($include)
Usa $include para organizar configuraciones grandes:
// ~/.openclaw/openclaw.json
{
gateway: { port: 18789 },
agents: { $include: "./agents.json5" },
broadcast: {
$include: ["./clients/a.json5", "./clients/b.json5"],
},
}
- Archivo único: reemplaza el objeto que lo contiene
- Array de archivos: se fusiona en profundidad en orden (el último gana)
- Claves hermanas: se fusionan después de los includes (sobrescriben los valores incluidos)
- Includes anidados: admitidos hasta 10 niveles de profundidad
- Rutas relativas: se resuelven en relación con el archivo que incluye
- Escrituras propiedad de OpenClaw: cuando una escritura cambia solo una sección de nivel superior
respaldada por un include de archivo único como
plugins: { $include: "./plugins.json5" }, OpenClaw actualiza ese archivo incluido y dejaopenclaw.jsonintacto - Escritura transparente no admitida: los includes raíz, los arrays de includes y los includes con sobrescrituras hermanas fallan de forma cerrada para escrituras propiedad de OpenClaw en lugar de aplanar la configuración
- Confinamiento: las rutas
$includedeben resolverse bajo el directorio que contieneopenclaw.json. Para compartir un árbol entre máquinas o usuarios, defineOPENCLAW_INCLUDE_ROOTScomo una lista de rutas (:en POSIX,;en Windows) de directorios adicionales a los que los includes pueden hacer referencia. Los enlaces simbólicos se resuelven y se vuelven a comprobar, por lo que una ruta que vive léxicamente en un directorio de configuración pero cuyo destino real escapa de todas las raíces permitidas se sigue rechazando. - Manejo de errores: errores claros para archivos faltantes, errores de análisis e includes circulares
Recarga en caliente de configuración
El Gateway vigila ~/.openclaw/openclaw.json y aplica los cambios automáticamente; no hace falta reiniciar manualmente para la mayoría de las opciones.
Las ediciones directas de archivos se tratan como no confiables hasta que se validan. El observador espera
a que se estabilice el ciclo de escritura temporal/cambio de nombre del editor, lee el archivo final y rechaza
ediciones externas no válidas sin reescribir openclaw.json. Las escrituras de configuración propiedad de OpenClaw
usan la misma compuerta de esquema antes de escribir; los sobrescritos destructivos como
eliminar gateway.mode o reducir el archivo en más de la mitad se rechazan y
se guardan como .rejected.* para su inspección.
Si ves config reload skipped (invalid config) o el inicio informa Invalid config, inspecciona la configuración, ejecuta openclaw config validate y luego ejecuta openclaw doctor --fix para repararla. Consulta Solución de problemas del Gateway
para ver la lista de comprobación.
Modos de recarga
| Modo | Comportamiento |
|---|---|
hybrid (predeterminado) |
Aplica en caliente al instante los cambios seguros. Reinicia automáticamente para los críticos. |
hot |
Solo aplica en caliente los cambios seguros. Registra una advertencia cuando se necesita reiniciar; tú te encargas. |
restart |
Reinicia el Gateway ante cualquier cambio de configuración, sea seguro o no. |
off |
Deshabilita la vigilancia de archivos. Los cambios surten efecto en el siguiente reinicio manual. |
{
gateway: {
reload: { mode: "hybrid", debounceMs: 300 },
},
}
Qué se aplica en caliente y qué necesita reinicio
La mayoría de los campos se aplican en caliente sin tiempo de inactividad. En modo hybrid, los cambios que requieren reinicio se gestionan automáticamente.
| Categoría | Campos | ¿Necesita reinicio? |
|---|---|---|
| Canales | channels.*, web (WhatsApp) - todos los canales integrados y de plugin |
No |
| Agente y modelos | agent, agents, models, routing |
No |
| Automatización | hooks, cron, agent.heartbeat |
No |
| Sesiones y mensajes | session, messages |
No |
| Herramientas y medios | tools, browser, skills, mcp, audio, talk |
No |
| UI y varios | ui, logging, identity, bindings |
No |
| Servidor Gateway | gateway.* (puerto, enlace, autenticación, tailscale, TLS, HTTP) |
Sí |
| Infraestructura | discovery, canvasHost, plugins |
Sí |
Planificación de recarga
Cuando editas un archivo fuente al que se hace referencia mediante $include, OpenClaw planifica
la recarga desde el diseño escrito en el origen, no desde la vista aplanada en memoria.
Eso mantiene predecibles las decisiones de recarga en caliente (aplicar en caliente frente a reiniciar) incluso cuando una
sola sección de nivel superior vive en su propio archivo incluido, como
plugins: { $include: "./plugins.json5" }. La planificación de recarga falla en modo cerrado si el
diseño de origen es ambiguo.
RPC de configuración (actualizaciones programáticas)
Para herramientas que escriben configuración mediante la API del Gateway, prefiere este flujo:
config.schema.lookuppara inspeccionar un subárbol (nodo de esquema superficial + resúmenes de hijos)config.getpara obtener la instantánea actual junto conhashconfig.patchpara actualizaciones parciales (parche de combinación JSON: los objetos se combinan,nullelimina, los arreglos reemplazan)config.applysolo cuando pretendas reemplazar toda la configuraciónupdate.runpara una autoactualización explícita más reinicio; incluyecontinuationMessagecuando la sesión posterior al reinicio deba ejecutar un turno de seguimientoupdate.statuspara inspeccionar el último centinela de reinicio de actualización y verificar la versión en ejecución después de un reinicio
Los agentes deben tratar config.schema.lookup como la primera parada para documentación y restricciones exactas
a nivel de campo. Usa Referencia de configuración
cuando necesiten el mapa de configuración más amplio, los valores predeterminados o enlaces a referencias dedicadas
de subsistemas.
Ejemplo de parche parcial:
openclaw gateway call config.get --params '{}' # capture payload.hash
openclaw gateway call config.patch --params '{
"raw": "{ channels: { telegram: { groups: { \"*\": { requireMention: false } } } } }",
"baseHash": "<hash>"
}'
Tanto config.apply como config.patch aceptan raw, baseHash, sessionKey,
note y restartDelayMs. baseHash es obligatorio para ambos métodos cuando ya existe una
configuración.
Variables de entorno
OpenClaw lee variables de entorno del proceso padre y, además, de:
.envdesde el directorio de trabajo actual (si existe)~/.openclaw/.env(respaldo global)
Ninguno de los archivos sobrescribe variables de entorno existentes. También puedes establecer variables de entorno en línea en la configuración:
{
env: {
OPENROUTER_API_KEY: "sk-or-...",
vars: { GROQ_API_KEY: "gsk-..." },
},
}
Importación del entorno de shell (opcional)
Si está habilitado y las claves esperadas no están definidas, OpenClaw ejecuta tu shell de inicio de sesión e importa solo las claves faltantes:
{
env: {
shellEnv: { enabled: true, timeoutMs: 15000 },
},
}
Equivalente de variable de entorno: OPENCLAW_LOAD_SHELL_ENV=1
Sustitución de variables de entorno en valores de configuración
Referencia variables de entorno en cualquier valor de cadena de configuración con ${VAR_NAME}:
{
gateway: { auth: { token: "${OPENCLAW_GATEWAY_TOKEN}" } },
models: { providers: { custom: { apiKey: "${CUSTOM_API_KEY}" } } },
}
Reglas:
- Solo coinciden nombres en mayúsculas:
[A-Z_][A-Z0-9_]* - Las variables faltantes/vacías lanzan un error en el momento de carga
- Escapa con
$${VAR}para obtener salida literal - Funciona dentro de archivos
$include - Sustitución en línea:
"${BASE}/v1"→"https://api.example.com/v1"
Referencias a secretos (entorno, archivo, exec)
Para campos que admiten objetos SecretRef, puedes usar:
{
models: {
providers: {
openai: { apiKey: { source: "env", provider: "default", id: "OPENAI_API_KEY" } },
},
},
skills: {
entries: {
"image-lab": {
apiKey: {
source: "file",
provider: "filemain",
id: "/skills/entries/image-lab/apiKey",
},
},
},
},
channels: {
googlechat: {
serviceAccountRef: {
source: "exec",
provider: "vault",
id: "channels/googlechat/serviceAccount",
},
},
},
}
Los detalles de SecretRef (incluido secrets.providers para env/file/exec) están en Gestión de secretos.
Las rutas de credenciales compatibles se listan en Superficie de credenciales SecretRef.
Consulta Entorno para ver la precedencia y las fuentes completas.
Referencia completa
Para obtener la referencia completa campo por campo, consulta Referencia de configuración.
Relacionado: Ejemplos de configuración · Referencia de configuración · Doctor