Files
Sauci/scripts/with-local-supabase-env.sh
jjbrunton 006761d3b0 feat(backend): add standalone data plane
Replace the Supabase application data plane with the Node/PostgreSQL API, migrate mobile, admin, web, and MCP callers, add controlled cutover tooling, and define hardened Dokploy infrastructure.
2026-08-28 14:42:11 +01:00

45 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
PROFILE="${1:?usage: with-local-supabase-env.sh <web|admin|mobile|mcp|tests> <command...>}"
shift
[ "$#" -gt 0 ] || { echo "command is required" >&2; exit 2; }
if [ "$PROFILE" = "mcp" ]; then
: "${SAUCI_ADMIN_API_URL:?SAUCI_ADMIN_API_URL is required for MCP}"
: "${SAUCI_ADMIN_API_TOKEN:?SAUCI_ADMIN_API_TOKEN is required for MCP}"
: "${SAUCI_MCP_API_KEY:?SAUCI_MCP_API_KEY is required for MCP}"
exec env SAUCI_ADMIN_API_URL="$SAUCI_ADMIN_API_URL" \
SAUCI_ADMIN_API_TOKEN="$SAUCI_ADMIN_API_TOKEN" \
SAUCI_MCP_API_KEY="$SAUCI_MCP_API_KEY" "$@"
fi
STATUS_ENV="$(cd "$ROOT" && npx supabase status --workdir apps -o env 2>/dev/null)" || {
echo "Local Supabase is not running. Run scripts/dev-local.sh up." >&2
exit 1
}
eval "$STATUS_ENV"
case "${API_URL:-}" in
http://127.0.0.1:*|http://localhost:*) ;;
*) echo "Refusing non-local Supabase URL: ${API_URL:-unset}" >&2; exit 1 ;;
esac
case "$PROFILE" in
web)
exec env NEXT_PUBLIC_SUPABASE_URL="$API_URL" "$@"
;;
admin)
exec env VITE_SUPABASE_URL="$API_URL" VITE_SUPABASE_ANON_KEY="$ANON_KEY" "$@"
;;
mobile)
exec env EXPO_PUBLIC_SUPABASE_URL="$API_URL" EXPO_PUBLIC_SUPABASE_ANON_KEY="$ANON_KEY" "$@"
;;
tests)
exec env SUPABASE_URL="$API_URL" SUPABASE_ANON_KEY="$ANON_KEY" \
SUPABASE_SERVICE_ROLE_KEY="$SERVICE_ROLE_KEY" "$@"
;;
*) echo "unknown profile: $PROFILE" >&2; exit 2 ;;
esac