diff --git a/.superset/setup.sh b/.superset/setup.sh index 58441d6554a..1c0e7a21aec 100755 --- a/.superset/setup.sh +++ b/.superset/setup.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -set -e +set -euo pipefail RED='\033[0;31m' GREEN='\033[0;32m' @@ -36,9 +36,10 @@ WORKSPACE_NAME="${SUPERSET_WORKSPACE_NAME:-$(basename "$PWD")}" NEON_OUTPUT=$(neonctl branches create \ --project-id tiny-cherry-82420694 \ --name "$WORKSPACE_NAME" \ - --output json 2>&1 | grep -v "^WARNING:") + --output json) # Parse connection strings from create output +BRANCH_ID=$(echo "$NEON_OUTPUT" | jq -r '.branch.id') DATABASE_URL=$(echo "$NEON_OUTPUT" | jq -r '.connection_uris[0].connection_uri') POOLER_HOST=$(echo "$NEON_OUTPUT" | jq -r '.connection_uris[0].connection_parameters.pooler_host') PASSWORD=$(echo "$NEON_OUTPUT" | jq -r '.connection_uris[0].connection_parameters.password') @@ -47,6 +48,7 @@ DATABASE=$(echo "$NEON_OUTPUT" | jq -r '.connection_uris[0].connection_parameter DATABASE_POOLED_URL="postgresql://${ROLE}:${PASSWORD}@${POOLER_HOST}/${DATABASE}?sslmode=require" cat > .env << EOF +NEON_BRANCH_ID=$BRANCH_ID DATABASE_URL=$DATABASE_URL DATABASE_POOLED_URL=$DATABASE_POOLED_URL EOF diff --git a/.superset/teardown.sh b/.superset/teardown.sh index 063fd74aab6..14269a20f4d 100755 --- a/.superset/teardown.sh +++ b/.superset/teardown.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -set -e +set -euo pipefail RED='\033[0;31m' GREEN='\033[0;32m' @@ -15,12 +15,20 @@ command -v neonctl &> /dev/null || error "Neon CLI not installed. Run: npm insta # Delete Neon branch for this workspace WORKSPACE_NAME="${SUPERSET_WORKSPACE_NAME:-$(basename "$PWD")}" +if [ -f ".env" ]; then + # shellcheck disable=SC1091 + source .env +fi +BRANCH_ID="${NEON_BRANCH_ID:-}" +if [ -z "$BRANCH_ID" ]; then + error "No NEON_BRANCH_ID found in .env; cannot delete branch" +fi -echo "🗄️ Deleting Neon branch: $WORKSPACE_NAME" -if neonctl branches delete "$WORKSPACE_NAME" --project-id tiny-cherry-82420694 --force 2>/dev/null; then +echo "🗄️ Deleting Neon branch: $WORKSPACE_NAME ($BRANCH_ID)" +if neonctl branches delete "$BRANCH_ID" --project-id tiny-cherry-82420694 --force 2>/dev/null; then success "Neon branch deleted: $WORKSPACE_NAME" else - echo "⚠️ Neon branch '$WORKSPACE_NAME' not found or already deleted" + echo "⚠️ Neon branch '$WORKSPACE_NAME' ($BRANCH_ID) not found or already deleted" fi echo "✨ Teardown complete!"