Precedencia de resolución de credenciales
El runtime de la Skill independiente resuelve credenciales mediante una estricta precedencia de tres niveles. Los secretos externos administrados siempre tienen prioridad sobre los archivos locales, garantizando que los tokens nunca se dupliquen en disco cuando se proporciona un secreto de entorno.
- 1. XMEMO_KEY: Variable de entorno o almacén de secretos administrado (Doppler, 1Password, Vault). Preferido; nunca se copia a archivos de credenciales locales.
- 2. Meta Muse Secure Vault: Resolución de almacén sustituto en entornos Meta Muse compatibles.
- 3. Archivo de credenciales local: ~/.xmemo/skill-credentials.json (o $XMEMO_CREDENTIALS_PATH), leído solo como respaldo cuando no se han establecido credenciales de entorno.
- Requisito de egreso de OpenClaw: El egreso de OpenClaw es un requisito de transporte gestionado dentro de la rama XMEMO_KEY (auth-state.mjs). Si se detecta un centinela de OpenClaw, se impone la accesibilidad del proxy de egreso; es una verificación de transporte dentro de XMEMO_KEY, no una fuente de credenciales separada.
- Cero exposición de tokens: Los comandos y los diagnósticos de doctor nunca imprimen tokens activos ni prefijos de secretos.
# Preferred: provide credential via environment or secret store
export XMEMO_KEY='<your-xmemo-token>'
# Inspect active credential source and scopes without printing secrets:
node scripts/xmemo-skill.mjs auth status --verifyInicio de sesión del dispositivo y elección informada de texto sin formato
Cuando no existe una clave de entorno administrada, la configuración interactiva utiliza la autorización de dispositivo basada en navegador. El usuario aprueba el acceso en el navegador y este nunca muestra el valor del token de portador.
- Consentimiento explícito de texto sin formato: El comando login requiere --allow-plaintext para confirmar el consentimiento informado de guardar el token sin cifrar en la máquina local.
- Permisos de archivo restringidos: ~/.xmemo/skill-credentials.json se crea con permisos POSIX 0600 (lectura y escritura solo por el propietario).
- Importación segura por stdin: Importa un token existente mediante la entrada estándar usando auth add --from-stdin --allow-plaintext, evitando argumentos de línea de comandos y el registro en el historial de shell.
- Endpoints de autorización del dispositivo: POST /v1/auth/device/start (iniciar flujo), POST /v1/auth/device/token (sondear e intercambiar), POST /v1/auth/token/validate (verificar), POST /v1/auth/token/revoke-self (revocar).
# Start interactive device login (requires explicit plaintext flag):
node scripts/xmemo-skill.mjs login --allow-plaintext
# Or pipe an existing token securely from standard input:
printf '%s' "$XMEMO_KEY" | node scripts/xmemo-skill.mjs auth add --from-stdin --allow-plaintext
# Verify active session status:
node scripts/xmemo-skill.mjs auth status --verifyLímites del registro temporal
Para entornos desatendidos o cuando un humano rechaza el inicio de sesión formal, la Skill puede registrar un entorno de pruebas de memoria temporal. La memoria temporal está estrictamente delimitada y concebida solo para una continuidad operativa de corta duración.
- Solo desatendido o rechazado: node scripts/xmemo-skill.mjs register --reason <unattended|declined> --allow-plaintext.
- Límite de capacidad: Acotado a un máximo de 100 elementos.
- TTL de retención: TTL de inactividad de 14 días y vida útil máxima absoluta de 30 días.
- Traspaso de reclamación en dos fases: Emite una URL de vinculación (bind_url) que permite a un operador humano reclamar la cuenta temporal y vincularla a credenciales formales.
- Comandos de gestión de reclamaciones: auth claim-status inspecciona las reclamaciones pendientes, auth claim-confirm acepta el traspaso formal del token y auth claim-deny rechaza la vinculación.
- Restricciones del entorno de pruebas: Las cuentas temporales no pueden capturar instantáneas de reinicio (restart-snapshot) ni acceder a bases de Knowledge (recall-context --include_knowledge true).
# Register temporary sandbox:
node scripts/xmemo-skill.mjs register --reason unattended --allow-plaintext
# Inspect and manage claim binding:
node scripts/xmemo-skill.mjs auth claim-status --allow-plaintext
node scripts/xmemo-skill.mjs auth claim-confirm --allow-plaintext
node scripts/xmemo-skill.mjs auth claim-deny --allow-plaintextCierre de sesión y revocación adecuada según el proveedor
Cerrar sesión desvincula el archivo de credenciales local y autorevoca el token de sesión activo en el servidor. Los proveedores de secretos externos deben administrarse en sus propios entornos.
- Cierre de sesión local: node scripts/xmemo-skill.mjs logout elimina ~/.xmemo/skill-credentials.json y llama a /v1/auth/token/revoke-self.
- Token de entorno externo: Cuando XMEMO_KEY suministra la credencial activa, el cierre de sesión deja intacto dicho token a menos que se pase explícitamente --revoke-environment-token.
- La eliminación local no es una revocación global: Eliminar el directorio de skill local o cerrar sesión localmente NO revoca los tokens almacenados en almacenes de secretos en la nube, ejecutores de CI/CD u otras máquinas.
- Limpieza externa: Anula la asignación de XMEMO_KEY en la shell o elimina el secreto de tu gestor de secretos para desautorizar permanentemente el acceso.
# Log out and revoke local credential file:
node scripts/xmemo-skill.mjs logout
# Log out and revoke external environment token remotely:
node scripts/xmemo-skill.mjs logout --revoke-environment-tokenAutenticación de la Skill
Las Skills son la vía de instrucciones y comandos para agentes que no montan directamente un servidor MCP alojado.
Fuente: XMemo Skills