mirror of
https://github.com/jjbrunton/Sauci.git
synced 2026-10-31 10:19:43 +00:00
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.
45 lines
1.5 KiB
Bash
Executable File
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
|