Files
proxmox/scripts/verify/smoke-phoenix-api-hub-lan.sh
2026-04-13 21:41:14 -07:00

34 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Read-only LAN smoke: Tier-1 Phoenix API hub (:8080) — health + GraphQL + proxied api-docs.
# Usage: bash scripts/verify/smoke-phoenix-api-hub-lan.sh
# Env: IP_SANKOFA_PHOENIX_API, SANKOFA_API_HUB_PORT (default 8080) from load-project-env / ip-addresses.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
# shellcheck source=/dev/null
source "${PROJECT_ROOT}/scripts/lib/load-project-env.sh"
HUB_IP="${IP_SANKOFA_PHOENIX_API:-192.168.11.50}"
# Tier-1 nginx hub listens on :8080 by default (not SANKOFA_PHOENIX_API_HUB_PORT, which often tracks Apollo :4000).
HUB_PORT="${SANKOFA_API_HUB_LISTEN_PORT:-8080}"
BASE="http://${HUB_IP}:${HUB_PORT}"
echo "=== smoke-phoenix-api-hub-lan ==="
echo "Base: ${BASE}"
echo ""
curl -fsS -m 8 "${BASE}/health" | head -c 200
echo ""
echo "--- GraphQL POST /graphql"
curl -fsS -m 12 "${BASE}/graphql" \
-H 'Content-Type: application/json' \
-d '{"query":"query { __typename }"}' | head -c 300
echo ""
echo "--- GET /api-docs (optional)"
_ad="/tmp/hub-api-docs-$$"
code="$(curl -sS -m 12 -o "$_ad" -w "%{http_code}" "${BASE}/api-docs" || echo 000)"
if [[ "$code" == "200" ]]; then head -c 120 "$_ad"; echo ""; else echo "HTTP ${code} (hub still OK if GraphQL passed)"; fi
rm -f "$_ad"
echo ""
echo "OK: hub smoke passed."