🔐 Script: vault.sh

🇪🇸 Descripción

El script vault.sh gestiona secretos cifrados dentro de ShFlow. Permite almacenar, consultar, editar y eliminar valores sensibles como contraseñas, tokens o claves API, usando cifrado simétrico o asimétrico con gpg.

Puede usarse como módulo (vault_task) dentro de un playbook, o como CLI directa mediante el alias shflow-vault.

Los secretos se guardan en core/vault/ y pueden exportarse como variables de entorno.


🧩 Argumentos disponibles (modo módulo)

Clave Descripción
action Acción a realizar: add, get, show, edit, remove, list, exists, export
key Nombre del secreto
value Valor del secreto (solo para add)
become Si se requiere sudo, usar become=true

▶️ Ejemplo de uso en playbook

tasks:
  - name: Guardar token de acceso
    module: vault
    args:
      action: add
      key: ACCESS_TOKEN
      value: "abc123"

▶️ Ejemplo de uso como CLI

shflow-vault add ACCESS_TOKEN
shflow-vault get ACCESS_TOKEN
shflow-vault list
shflow-vault export

🧠 Trazas esperadas

🔐 Usando cifrado simétrico para 'ACCESS_TOKEN'
✅ Secreto 'ACCESS_TOKEN' guardado en core/vault
🗑️ Secreto 'ACCESS_TOKEN' eliminado.
❌ No se encontró clave para cifrar. Ejecuta vault-init.sh primero.

📦 Claves utilizadas

  • VAULT_KEY: clave simétrica (~/.shflow.key)
  • VAULT_PUBKEY: clave pública (~/.shflow.pub)
  • VAULT_RECIPIENT: ID de clave pública (opcional)
  • VAULT_DIR: ruta de almacenamiento (core/vault/)

📜 Changelog

Consulta el historial de cambios en changelog/vault.md