workspace/projects/trading-platform/scripts/verify-integration.sh
rckrdmrd 789d1ab46b
Some checks failed
CI Pipeline / changes (push) Has been cancelled
CI Pipeline / core (push) Has been cancelled
CI Pipeline / trading-backend (push) Has been cancelled
CI Pipeline / trading-data-service (push) Has been cancelled
CI Pipeline / trading-frontend (push) Has been cancelled
CI Pipeline / erp-core (push) Has been cancelled
CI Pipeline / erp-mecanicas (push) Has been cancelled
CI Pipeline / gamilit-backend (push) Has been cancelled
CI Pipeline / gamilit-frontend (push) Has been cancelled
changes on workspace
2025-12-09 14:46:20 -06:00

190 lines
5.6 KiB
Bash
Executable File

#!/bin/bash
# =============================================================================
# OrbiQuant IA - Integration Verification Script
# Verifies all services are running and can communicate
# =============================================================================
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
# Default ports
BACKEND_PORT=${BACKEND_PORT:-3000}
ML_ENGINE_PORT=${ML_ENGINE_PORT:-8001}
DATA_SERVICE_PORT=${DATA_SERVICE_PORT:-8002}
LLM_AGENT_PORT=${LLM_AGENT_PORT:-8003}
OLLAMA_PORT=${OLLAMA_PORT:-11434}
echo -e "${BLUE}"
echo "╔══════════════════════════════════════════════════════════════╗"
echo "║ OrbiQuant IA - Integration Verification ║"
echo "╚══════════════════════════════════════════════════════════════╝"
echo -e "${NC}"
PASSED=0
FAILED=0
# Function to check service
check_service() {
local name=$1
local url=$2
local expected_status=${3:-200}
echo -n " Checking $name... "
response=$(curl -s -o /dev/null -w "%{http_code}" "$url" 2>/dev/null || echo "000")
if [ "$response" = "$expected_status" ]; then
echo -e "${GREEN}✓ OK${NC} (HTTP $response)"
((PASSED++))
return 0
else
echo -e "${RED}✗ FAILED${NC} (HTTP $response, expected $expected_status)"
((FAILED++))
return 1
fi
}
# Function to check JSON endpoint
check_json_endpoint() {
local name=$1
local url=$2
local json_path=$3
local expected_value=$4
echo -n " Checking $name... "
response=$(curl -s "$url" 2>/dev/null)
if [ -z "$response" ]; then
echo -e "${RED}✗ FAILED${NC} (no response)"
((FAILED++))
return 1
fi
# Use jq if available, otherwise just check for 200
if command -v jq &> /dev/null; then
value=$(echo "$response" | jq -r "$json_path" 2>/dev/null)
if [ "$value" = "$expected_value" ]; then
echo -e "${GREEN}✓ OK${NC}"
((PASSED++))
return 0
else
echo -e "${RED}✗ FAILED${NC} (got '$value', expected '$expected_value')"
((FAILED++))
return 1
fi
else
echo -e "${GREEN}✓ OK${NC} (response received)"
((PASSED++))
return 0
fi
}
echo ""
echo -e "${YELLOW}1. Checking Core Services${NC}"
echo ""
# Backend API
check_service "Backend API Health" "http://localhost:$BACKEND_PORT/health"
# ML Engine
check_service "ML Engine Health" "http://localhost:$ML_ENGINE_PORT/health"
# Data Service
check_service "Data Service Health" "http://localhost:$DATA_SERVICE_PORT/health"
# LLM Agent
check_service "LLM Agent Health" "http://localhost:$LLM_AGENT_PORT/health"
echo ""
echo -e "${YELLOW}2. Checking Ollama (Local LLM)${NC}"
echo ""
# Ollama
check_service "Ollama API" "http://localhost:$OLLAMA_PORT/api/tags"
echo ""
echo -e "${YELLOW}3. Checking ML Endpoints${NC}"
echo ""
# Test ICT Analysis endpoint
echo -n " Testing ICT Analysis... "
ict_response=$(curl -s -X POST "http://localhost:$ML_ENGINE_PORT/api/ict/EURUSD" 2>/dev/null)
if echo "$ict_response" | grep -q "market_bias"; then
echo -e "${GREEN}✓ OK${NC}"
((PASSED++))
else
echo -e "${YELLOW}⚠ Skipped${NC} (may need data service)"
fi
# Test Ensemble Signal endpoint
echo -n " Testing Ensemble Signal... "
ensemble_response=$(curl -s -X POST "http://localhost:$ML_ENGINE_PORT/api/ensemble/EURUSD" 2>/dev/null)
if echo "$ensemble_response" | grep -q "action"; then
echo -e "${GREEN}✓ OK${NC}"
((PASSED++))
else
echo -e "${YELLOW}⚠ Skipped${NC} (may need data service)"
fi
echo ""
echo -e "${YELLOW}4. Checking API Documentation${NC}"
echo ""
# Swagger/OpenAPI docs
check_service "ML Engine Docs" "http://localhost:$ML_ENGINE_PORT/docs"
check_service "Data Service Docs" "http://localhost:$DATA_SERVICE_PORT/docs"
check_service "LLM Agent Docs" "http://localhost:$LLM_AGENT_PORT/docs"
echo ""
echo -e "${YELLOW}5. Checking Database Connectivity${NC}"
echo ""
# Check via backend (which connects to Postgres)
echo -n " PostgreSQL (via Backend)... "
if curl -s "http://localhost:$BACKEND_PORT/health" | grep -q "healthy\|ok\|status"; then
echo -e "${GREEN}✓ OK${NC}"
((PASSED++))
else
echo -e "${YELLOW}⚠ Unknown${NC}"
fi
echo ""
echo "═══════════════════════════════════════════════════════════════"
echo ""
# Summary
TOTAL=$((PASSED + FAILED))
if [ $FAILED -eq 0 ]; then
echo -e "${GREEN}All checks passed! ($PASSED/$TOTAL)${NC}"
echo ""
echo "Your OrbiQuant IA platform is ready!"
echo ""
echo "Access points:"
echo " - Frontend: http://localhost:5173"
echo " - Backend API: http://localhost:$BACKEND_PORT"
echo " - ML Engine: http://localhost:$ML_ENGINE_PORT/docs"
echo " - LLM Agent: http://localhost:$LLM_AGENT_PORT/docs"
echo ""
exit 0
else
echo -e "${YELLOW}Some checks failed: $PASSED passed, $FAILED failed${NC}"
echo ""
echo "Troubleshooting:"
echo " 1. Ensure all services are running: docker compose ps"
echo " 2. Check logs: docker compose logs <service>"
echo " 3. Verify .env configuration"
echo ""
exit 1
fi