Saltar al contenido principal

Obtención de datos (get)

Obtención de datos de elementos y accesos directos​

Este ejemplo demuestra cómo obtener elementos y accesos directos de Passwork utilizando el modo get, así como cómo extraer campos específicos de ellos.

Casos de uso​

El comando get proporciona muchos casos de uso para trabajar de forma segura con datos de Passwork:

  1. Extracción de campos específicos — obtener valores individuales (nombre, contraseña, login, URL, descripción, etiquetas o campos personalizados)
  2. Uso en scripts — integración en scripts bash y otras herramientas de automatización para el manejo seguro de contraseñas
  3. Pipelines de CI/CD — pasar secretos a procesos de compilación y despliegue sin almacenarlos en archivos de configuración
  4. Generación de códigos TOTP — crear contraseñas de un solo uso para la autenticación de dos factores a partir de secretos almacenados en campos personalizados
  5. Obtención de datos personalizados — extraer claves de API, tokens de acceso y otros campos personalizados de los registros
  6. Trabajo con accesos directos — obtener datos a través de accesos directos para acceder a elementos de otras bóvedas
  7. Gestión segura de contraseñas — obtener contraseñas sin guardarlas en disco o en el historial de la línea de comandos

Identificación de elemento/acceso directo​

Especifique la fuente de datos; uno de los parámetros es obligatorio:

ParámetroDescripción
--password-idID del elemento
--shortcut-idID del acceso directo

Modos de salida y extracción​

ParámetroDescripción
--fieldMuestra el campo especificado de un elemento o acceso directo
--jsonMuestra todos los datos disponibles del elemento/acceso directo en formato JSON
--totp-codeGenera y muestra un código TOTP a partir de un campo que contiene un secreto en base32 o otpauth://

Campos compatibles con --field:

  • name, login, password, url, description, tags
  • Campos personalizados por nombre, por ejemplo API_KEY, SERVICE_ACCOUNT

Uso básico​

Obtener contraseña de un elemento por ID​

passwork-cli get \
--host "https://passwork.example.com" \
--token "your_access_token" \
--master-key "your_master_key" \
--password-id "68793e13dfc88d879e0f2e39" \

De forma predeterminada, se obtendrá la contraseña. Si el campo de contraseña está vacío, se mostrará un error.

Uso de variables de entorno​

Puede exportar los datos de Passwork como variables de entorno:

export PASSWORK_HOST="https://passwork.example.com"
export PASSWORK_TOKEN="your_access_token"
export PASSWORK_MASTER_KEY="your_master_key"

# Then retrieve without specifying credentials
passwork-cli get --password-id "68793e13dfc88d879e0f2e39"

Esto es útil para scripts de automatización y pipelines de CI/CD, donde las credenciales pueden almacenarse de forma segura como variables de entorno.

Extracción de campos específicos​

# Item name
passwork-cli get --password-id "68793e13dfc88d879e0f2e39" --field name

# Custom field (e.g., API_KEY)
passwork-cli get --password-id "68793e13dfc88d879e0f2e39" --field API_KEY

Generación de códigos TOTP​

Puede generar códigos TOTP (Time-based One-Time Password) a partir de secretos almacenados en campos personalizados. Esto es útil para la autenticación de dos factores.

Uso del campo de secreto TOTP​

# Generate TOTP code from a custom field containing a secret
passwork-cli get \
--password-id "68793e13dfc88d879e0f2e39" \
--totp-code "TOTP_SECRET" \

El parámetro --totp-code espera el nombre de un campo (personalizado) que contenga:

  • Secreto TOTP sin procesar (cadena en codificación base32)
  • O URL otpauth://, por ejemplo:
otpauth://totp/Service:[email protected]?secret=JBSWY3DPEHPK3PXP&issuer=Service

El código TOTP se mostrará en stdout, lo que facilita su uso en scripts o para copiar.

Trabajo con accesos directos​

Ejemplos para accesos directos:

# Password from shortcut
passwork-cli get --shortcut-id "68d6c94bec3a3fe41209546e"

# Name field from shortcut
passwork-cli get --shortcut-id "68d6c94bec3a3fe41209546e" --field name

# TOTP from totp_secret field
passwork-cli get --shortcut-id "68d6c94bec3a3fe41209546e" --totp-code "totp_secret"

Cómo funciona​

  1. CLI se conecta a Passwork utilizando los datos proporcionados
  2. Obtiene un elemento o acceso directo por ID
  3. El elemento se descifra utilizando la clave maestra (cuando se utiliza cifrado del lado del cliente)
  4. Si se especifica --totp-code, se genera un código TOTP a partir del campo especificado y se muestra
  5. Si se especifica --field, solo se muestra el valor de ese campo
  6. Si no se especifica ni --totp-code ni --field, se muestra el valor de la contraseña (o un error si está vacío)

Uso en scripts​

El comando get es adecuado para scripts de automatización donde necesita obtener valores específicos de un elemento:

#!/bin/bash
DB_PASSWORD=$(passwork-cli get \
--password-id "68d6c94bec3a3fe41209546e")

echo "Connecting to database..."
mysql -u admin -p"$DB_PASSWORD" mydatabase