openclaw secrets
Usa openclaw secrets para gestionar SecretRefs y mantener en buen estado la instantánea activa de runtime.
Funciones de los comandos:
reload: RPC de gateway (secrets.reload) que vuelve a resolver refs e intercambia la instantánea de runtime solo si todo se completa correctamente (sin escrituras de configuración).audit: análisis de solo lectura del almacenamiento de configuración/autenticación/modelos generados y residuos heredados para detectar texto sin formato, refs sin resolver y desajustes de precedencia (las refsexecse omiten salvo que se establezca--allow-exec).configure: planificador interactivo para configuración de proveedores, asignación de destinos y preflight (requiere TTY).apply: ejecuta un plan guardado (--dry-runsolo para validación; el dry-run omite comprobacionesexecde forma predeterminada, y el modo de escritura rechaza planes que contienenexecsalvo que se establezca--allow-exec), luego depura los residuos en texto sin formato seleccionados.
exec, pasa --allow-exec tanto en los comandos apply de dry-run como en los de escritura.
Nota sobre códigos de salida para CI/puertas:
audit --checkdevuelve1cuando hay hallazgos.- las refs sin resolver devuelven
2.
- Guía de secretos: Secrets Management
- Superficie de credenciales: SecretRef Credential Surface
- Guía de seguridad: Security
Recargar la instantánea de runtime
Vuelve a resolver refs de secretos e intercambia atómicamente la instantánea de runtime.- Usa el método RPC de gateway
secrets.reload. - Si la resolución falla, la gateway conserva la última instantánea válida conocida y devuelve un error (sin activación parcial).
- La respuesta JSON incluye
warningCount.
--url <url>--token <token>--timeout <ms>--json
Auditoría
Analiza el estado de OpenClaw para detectar:- almacenamiento de secretos en texto sin formato
- refs sin resolver
- desajuste de precedencia (credenciales de
auth-profiles.jsonque ocultan refs deopenclaw.json) - residuos generados en
agents/*/agent/models.json(valoresapiKeydel proveedor y encabezados sensibles del proveedor) - residuos heredados (entradas del almacén de autenticación heredado, recordatorios de OAuth)
- La detección de encabezados sensibles del proveedor se basa en heurísticas de nombre (nombres y fragmentos comunes de encabezados de autenticación/credenciales como
authorization,x-api-key,token,secret,passwordycredential).
--checksale con código distinto de cero cuando hay hallazgos.- las refs sin resolver salen con un código distinto de cero de mayor prioridad.
status:clean | findings | unresolvedresolution:refsChecked,skippedExecRefs,resolvabilityCompletesummary:plaintextCount,unresolvedRefCount,shadowedRefCount,legacyResidueCount- códigos de hallazgo:
PLAINTEXT_FOUNDREF_UNRESOLVEDREF_SHADOWEDLEGACY_RESIDUE
Configurar (asistente interactivo)
Crea cambios de proveedor y SecretRef de forma interactiva, ejecuta preflight y, opcionalmente, aplícalos:- Primero, configuración de proveedores (
add/edit/removepara alias desecrets.providers). - Segundo, asignación de credenciales (selecciona campos y asigna refs
{source, provider, id}). - Por último, preflight y aplicación opcional.
--providers-only: configura solosecrets.providers; omite la asignación de credenciales.--skip-provider-setup: omite la configuración de proveedores y asigna credenciales a proveedores existentes.--agent <id>: limita el descubrimiento de destinos y las escrituras deauth-profiles.jsona un único almacén de agente.--allow-exec: permite comprobacionesexecde SecretRef durante preflight/apply (puede ejecutar comandos del proveedor).
- Requiere un TTY interactivo.
- No puedes combinar
--providers-onlycon--skip-provider-setup. configureapunta a campos con secretos enopenclaw.jsonademás deauth-profiles.jsonpara el ámbito de agente seleccionado.configureadmite crear nuevas asignaciones deauth-profiles.jsondirectamente en el flujo del selector.- Superficie canónica compatible: SecretRef Credential Surface.
- Realiza resolución preflight antes de aplicar.
- Si el preflight/apply incluye refs
exec, mantén--allow-execactivado en ambos pasos. - Los planes generados usan de forma predeterminada opciones de depuración (
scrubEnv,scrubAuthProfilesForProviderTargets,scrubLegacyAuthJsontodas habilitadas). - La ruta de aplicación es unidireccional para los valores en texto sin formato depurados.
- Sin
--apply, la CLI sigue preguntandoApply this plan now?después del preflight. - Con
--apply(y sin--yes), la CLI solicita una confirmación adicional irreversible. --jsonimprime el plan + el informe de preflight, pero el comando sigue requiriendo un TTY interactivo.
- Las instalaciones de Homebrew suelen exponer binarios enlazados simbólicamente en
/opt/homebrew/bin/*. - Establece
allowSymlinkCommand: truesolo cuando sea necesario para rutas de gestores de paquetes de confianza, y combínalo contrustedDirs(por ejemplo["/opt/homebrew"]). - En Windows, si la verificación ACL no está disponible para una ruta de proveedor, OpenClaw falla de forma cerrada. Solo para rutas de confianza, establece
allowInsecurePath: trueen ese proveedor para omitir las comprobaciones de seguridad de ruta.
Aplicar un plan guardado
Aplica o ejecuta preflight de un plan generado previamente:--dry-runvalida el preflight sin escribir archivos.- Las comprobaciones
execde SecretRef se omiten de forma predeterminada en dry-run. - El modo de escritura rechaza planes que contienen SecretRefs/proveedores
execsalvo que se establezca--allow-exec. - Usa
--allow-execpara activar explícitamente las comprobaciones/ejecución de proveedores exec en cualquiera de los dos modos.
apply:
openclaw.json(destinos SecretRef + upserts/deletes de proveedores)auth-profiles.json(depuración de destinos de proveedor)- residuos heredados en
auth.json - claves secretas conocidas de
~/.openclaw/.envcuyos valores fueron migrados
Por qué no hay copias de seguridad para rollback
secrets apply intencionadamente no escribe copias de seguridad de rollback que contengan los valores antiguos en texto sin formato.
La seguridad proviene de un preflight estricto + una aplicación casi atómica con restauración en memoria en el mejor esfuerzo si se produce un fallo.
Ejemplo
audit --check sigue informando hallazgos de texto sin formato, actualiza las rutas de destino restantes que se indiquen y vuelve a ejecutar la auditoría.