Add configuration files, database migrations, and authentication implementation scaffolding

This commit is contained in:
Sebastian Unterschütz
2026-04-30 19:08:07 +02:00
commit 331d60581e
83 changed files with 222264 additions and 0 deletions

96
scripts/test-e2e.sh Normal file
View File

@@ -0,0 +1,96 @@
#!/bin/bash
# End-to-End Testing Script for Zero-Knowledge Gaming Cloud
# Tests: Worker → Gateway → NATS → Storage → Dashboard
set -e
echo "🚀 Starting Zero-Knowledge Cloud E2E Test..."
# Colors for output
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# Step 1: Check if Docker Compose is running
echo -e "\n${YELLOW}[1/7]${NC} Checking Docker Compose status..."
if ! docker-compose ps | grep -q "Up"; then
echo -e "${RED}❌ Docker Compose is not running. Start with: docker-compose up${NC}"
exit 1
fi
echo -e "${GREEN}✅ Docker Compose is running${NC}"
# Step 2: Verify NATS connectivity
echo -e "\n${YELLOW}[2/7]${NC} Testing NATS connectivity..."
if docker-compose exec -T nats nats-server --version > /dev/null 2>&1; then
echo -e "${GREEN}✅ NATS is healthy${NC}"
else
echo -e "${RED}❌ NATS is not responding${NC}"
exit 1
fi
# Step 3: Check PostgreSQL
echo -e "\n${YELLOW}[3/7]${NC} Testing PostgreSQL connectivity..."
if docker-compose exec -T postgres-master pg_isready -U admin > /dev/null 2>&1; then
echo -e "${GREEN}✅ PostgreSQL is healthy${NC}"
else
echo -e "${RED}❌ PostgreSQL is not responding${NC}"
exit 1
fi
# Step 4: Verify Gateway HTTP endpoint
echo -e "\n${YELLOW}[4/7]${NC} Testing Gateway API..."
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:8080/api/auth/login/begin -X POST -H "Content-Type: application/json" -d '{"username":"test"}')
if [ "$HTTP_CODE" -eq 200 ] || [ "$HTTP_CODE" -eq 400 ]; then
echo -e "${GREEN}✅ Gateway API is responding (HTTP $HTTP_CODE)${NC}"
else
echo -e "${RED}❌ Gateway API failed (HTTP $HTTP_CODE)${NC}"
exit 1
fi
# Step 5: Check Worker logs for encryption
echo -e "\n${YELLOW}[5/7]${NC} Verifying Worker encryption..."
WORKER_LOGS=$(docker-compose logs worker --tail=20 2>&1)
if echo "$WORKER_LOGS" | grep -q "Sent MOCK event"; then
echo -e "${GREEN}✅ Worker is sending encrypted events${NC}"
else
echo -e "${RED}❌ Worker is not sending events${NC}"
echo "Latest worker logs:"
echo "$WORKER_LOGS"
fi
# Step 6: Check Storage Node persistence
echo -e "\n${YELLOW}[6/7]${NC} Verifying Storage Node persistence..."
STORAGE_LOGS=$(docker-compose logs storage-node --tail=20 2>&1)
if echo "$STORAGE_LOGS" | grep -q "Persisted"; then
echo -e "${GREEN}✅ Storage Node is persisting logs${NC}"
else
echo -e "${YELLOW}⚠️ Storage Node might not be persisting (check manually)${NC}"
fi
# Step 7: Verify Dashboard accessibility
echo -e "\n${YELLOW}[7/7]${NC} Testing Dashboard frontend..."
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:5173)
if [ "$HTTP_CODE" -eq 200 ]; then
echo -e "${GREEN}✅ Dashboard is accessible (HTTP $HTTP_CODE)${NC}"
else
echo -e "${RED}❌ Dashboard is not responding (HTTP $HTTP_CODE)${NC}"
exit 1
fi
# Final Summary
echo -e "\n${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo -e "${GREEN}✅ All E2E tests passed!${NC}"
echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""
echo "📊 Next steps:"
echo " 1. Open http://localhost:5173 in your browser"
echo " 2. Login with username 'demo' (WebAuthn will prompt)"
echo " 3. Watch real-time encrypted logs flowing through the system"
echo ""
echo "🔍 Inspect components:"
echo " docker-compose logs gateway"
echo " docker-compose logs storage-node"
echo " docker-compose logs worker"
echo " docker-compose logs discord-bot"