mirror of
https://origin.cursor.com/mrdevmx/panels.git
synced 2026-10-09 20:03:18 +00:00
El cliente S3 lee osRelease; sin --allow-sys el ping a R2 falla con NotCapable aunque endpoint y bucket estén bien. Co-authored-by: alberto.martinez <alberto.martinez@mrdev.mx>
79 lines
2.4 KiB
Bash
Executable file
79 lines
2.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# PANELS · comprueba que ESTE ambiente responde: Postgres (6 roles),
|
|
# Redis (2 ACL) y Contabo (opcional; obligatorio si REQUIRE_S3=1).
|
|
#
|
|
# No crea recursos. Carga URLs desde el entorno (source .env.dev-local o
|
|
# las vars de Coolify).
|
|
#
|
|
# Uso:
|
|
# set -a && source .env.dev-local && set +a
|
|
# ./db/provision/verify-connectivity.sh
|
|
# REQUIRE_S3=1 ./db/provision/verify-connectivity.sh # staging/prod
|
|
set -uo pipefail
|
|
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
|
fail=0
|
|
check() {
|
|
local desc="$1"; shift
|
|
if "$@" >/tmp/panels-conn-out.$$ 2>&1; then
|
|
echo "OK - $desc"
|
|
else
|
|
echo "FAIL - $desc"
|
|
cat /tmp/panels-conn-out.$$
|
|
fail=1
|
|
fi
|
|
rm -f /tmp/panels-conn-out.$$
|
|
}
|
|
|
|
need() {
|
|
local name="$1"
|
|
if [[ -z "${!name:-}" ]]; then
|
|
echo "FAIL - falta $name"
|
|
fail=1
|
|
return 1
|
|
fi
|
|
return 0
|
|
}
|
|
|
|
echo "== Postgres =="
|
|
need DATABASE_URL_PLATFORM && check "platform_app SELECT 1" psql "$DATABASE_URL_PLATFORM" -c "SELECT 1;"
|
|
need DATABASE_URL_IAM && check "iam_app SELECT 1" psql "$DATABASE_URL_IAM" -c "SELECT 1;"
|
|
need DATABASE_URL_CORE && check "core_app SELECT 1" psql "$DATABASE_URL_CORE" -c "SELECT 1;"
|
|
if [[ -n "${DATABASE_URL_PLATFORM_OWNER:-}" ]]; then
|
|
check "platform_owner SELECT 1" psql "$DATABASE_URL_PLATFORM_OWNER" -c "SELECT 1;"
|
|
else
|
|
echo "SKIP - DATABASE_URL_PLATFORM_OWNER (solo hace falta para Liquibase)"
|
|
fi
|
|
if [[ -n "${DATABASE_URL_IAM_OWNER:-}" ]]; then
|
|
check "iam_owner SELECT 1" psql "$DATABASE_URL_IAM_OWNER" -c "SELECT 1;"
|
|
else
|
|
echo "SKIP - DATABASE_URL_IAM_OWNER"
|
|
fi
|
|
if [[ -n "${DATABASE_URL_CORE_OWNER:-}" ]]; then
|
|
check "core_owner SELECT 1" psql "$DATABASE_URL_CORE_OWNER" -c "SELECT 1;"
|
|
else
|
|
echo "SKIP - DATABASE_URL_CORE_OWNER"
|
|
fi
|
|
|
|
echo "== Redis =="
|
|
need REDIS_URL_IAM && check "iam redis PING" redis-cli -u "$REDIS_URL_IAM" PING
|
|
need REDIS_URL_CORE && check "core redis PING" redis-cli -u "$REDIS_URL_CORE" PING
|
|
|
|
echo "== Contabo (S3) =="
|
|
if command -v deno >/dev/null 2>&1; then
|
|
if (cd "$ROOT/api" && REQUIRE_S3="${REQUIRE_S3:-}" deno run --allow-net --allow-env --allow-read --allow-write --allow-sys scripts/verify-storage.ts); then
|
|
:
|
|
else
|
|
fail=1
|
|
fi
|
|
else
|
|
echo "FAIL - deno no está en PATH; no se pudo probar el bucket"
|
|
fail=1
|
|
fi
|
|
|
|
echo ""
|
|
if [[ "$fail" == "0" ]]; then
|
|
echo "Conectividad de este ambiente: OK"
|
|
else
|
|
echo "Hay fallos de conectividad -- no desplegar la API contra este ambiente todavía."
|
|
exit 1
|
|
fi
|