#!/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."