#!/usr/bin/env bash set -euo pipefail NAMESPACE="la-huasca" SECRET_NAME="la-huasca-db-secrets" PROTECTED_FILE="$HOME/.lahuasca-db-pass.enc" PIN="78963" generate_password() { openssl rand -base64 48 | tr -dc 'a-zA-Z0-9' | head -c 32 } decrypt_password() { openssl enc -aes-256-cbc -d -salt -pbkdf2 -iter 100000 -pass pass:"$PIN" -in "$PROTECTED_FILE" | tr -d '\n' } # Generate a secure random password if it doesn't already exist if [ -f "$PROTECTED_FILE" ]; then echo "Protected password file already exists at $PROTECTED_FILE" echo "Run './deploy-db.sh reveal' to view it." else PASSWORD=*** if [ -z "$PASSWORD" ]; then echo "Failed to generate password. Is openssl installed?" exit 1 fi echo -n "$PASSWORD" | openssl enc -aes-256-cbc -salt -pbkdf2 -iter 100000 -pass pass:"$PIN" -out "$PROTECTED_FILE" echo "Generated secure password and saved it to $PROTECTED_FILE" fi if [ "${1:-}" = "reveal" ]; then echo "Enter PIN to reveal the database password:" read -s USER_PIN if [ "$USER_PIN" != "$PIN" ]; then echo "Incorrect PIN." exit 1 fi PASSWORD=*** if [ -z "$PASSWORD" ]; then echo "Failed to decrypt password." exit 1 fi echo "Database password: $PASSWORD" exit 0 fi # Read password for deployment PASSWORD=*** if [ -z "$PASSWORD" ]; then echo "Failed to decrypt password. Protected file may be corrupt." exit 1 fi cat <