89 lines
2.4 KiB
Bash
Executable File
89 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Get CONTRACT_TEST_API_KEY from the database
|
|
#
|
|
# Usage:
|
|
# ./get-api-key.sh # Uses env vars or defaults
|
|
# ./get-api-key.sh --docker # Query via docker exec
|
|
# ./get-api-key.sh --host db.example.com --password secret
|
|
#
|
|
# Environment variables:
|
|
# DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD
|
|
#
|
|
|
|
set -e
|
|
|
|
# Defaults
|
|
DB_HOST="${DB_HOST:-localhost}"
|
|
DB_PORT="${DB_PORT:-5432}"
|
|
DB_NAME="${DB_NAME:-amarback}"
|
|
DB_USER="${DB_USER:-postgres}"
|
|
DB_PASSWORD="${DB_PASSWORD:-}"
|
|
DOCKER_CONTAINER=""
|
|
|
|
# Parse arguments
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
--docker)
|
|
DOCKER_CONTAINER="${2:-core_nest_db}"
|
|
shift 2 || shift 1
|
|
;;
|
|
--host)
|
|
DB_HOST="$2"
|
|
shift 2
|
|
;;
|
|
--port)
|
|
DB_PORT="$2"
|
|
shift 2
|
|
;;
|
|
--name)
|
|
DB_NAME="$2"
|
|
shift 2
|
|
;;
|
|
--user)
|
|
DB_USER="$2"
|
|
shift 2
|
|
;;
|
|
--password)
|
|
DB_PASSWORD="$2"
|
|
shift 2
|
|
;;
|
|
--help|-h)
|
|
echo "Usage: $0 [options]"
|
|
echo ""
|
|
echo "Options:"
|
|
echo " --docker [container] Query via docker exec (default: core_nest_db)"
|
|
echo " --host HOST Database host"
|
|
echo " --port PORT Database port (default: 5432)"
|
|
echo " --name NAME Database name (default: amarback)"
|
|
echo " --user USER Database user (default: postgres)"
|
|
echo " --password PASS Database password"
|
|
echo ""
|
|
echo "Environment variables: DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD"
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo "Unknown option: $1" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
QUERY="SELECT key FROM common_apikey WHERE is_active=true LIMIT 1;"
|
|
|
|
if [[ -n "$DOCKER_CONTAINER" ]]; then
|
|
# Query via docker
|
|
API_KEY=$(docker exec "$DOCKER_CONTAINER" psql -U "$DB_USER" -d "$DB_NAME" -t -c "$QUERY" 2>/dev/null | tr -d ' \n')
|
|
else
|
|
# Query directly
|
|
export PGPASSWORD="$DB_PASSWORD"
|
|
API_KEY=$(psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -t -c "$QUERY" 2>/dev/null | tr -d ' \n')
|
|
fi
|
|
|
|
if [[ -z "$API_KEY" ]]; then
|
|
echo "Error: No active API key found in database" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "$API_KEY"
|