Contáctanos
Webflow Premium Partner Ehab Fayez
Volver a Agent Skills
Seguridad y Calidad

1Password CLI Secrets

Accede y gestiona secretos de bóvedas 1Password programáticamente usando el CLI op y SDKs.

Claude Code Cursor

Descripción General

El CLI de 1Password (op) y el Connect SDK permiten a los desarrolladores acceder de forma segura a secretos almacenados en bóvedas de 1Password desde aplicaciones y pipelines CI/CD. En lugar de almacenar secretos en variables de entorno o archivos de configuración, las aplicaciones los recuperan directamente de 1Password en tiempo de ejecución, asegurando que los secretos estén siempre actualizados y gestionados centralmente.

El 1Password Connect Server proporciona una API REST que se ejecuta en tu infraestructura, dando a las aplicaciones acceso seguro a elementos de la bóveda sin requerir autenticación de usuario. El SDK JavaScript/TypeScript envuelve esta API con un cliente seguro en tipos. Las referencias de secretos usando el esquema URI op:// permiten referenciar secretos en archivos de configuración y variables de entorno sin exponer valores reales.

Para integración CI/CD, el CLI op puede inyectar secretos en entornos de build usando op run, que reemplaza referencias de secretos en variables de entorno con valores reales durante la ejecución de un comando. Esto elimina la necesidad de almacenar secretos en almacenes de secretos de plataformas CI/CD. 1Password también proporciona GitHub Actions para integración fluida con flujos de trabajo de GitHub.

¿Para Quién Es?

  • Inyectar secretos en pipelines CI/CD sin almacenarlos en la plataforma
  • Acceder a claves API y credenciales desde 1Password en apps Node.js
  • Reemplazar archivos .env con referencias de secretos 1Password
  • Rotar secretos centralmente sin redesplegar aplicaciones

Instalación

Configurar Claude Code
npm install @1password/connect

Configuración

import { OnePasswordConnect } from "@1password/connect"

const op = OnePasswordConnect({
  serverURL: "http://localhost:8080",
  token: process.env.OP_CONNECT_TOKEN!,
  keepAlive: true,
})

const item = await op.getItem("vault-id", "item-id")
const password = item.fields.find(f => f.label === "password")?.value