Files
microdao-daarion/infrastructure/test-full-flow.sh
Apple 38cb96dd68 🔐 Auth: інтеграція JWT в Memory Service + конфігурації
- Опціональна JWT auth в Memory Service endpoints
- get_current_service_optional для backward compatibility
- NATS auth config (nkeys) - шаблони
- Qdrant auth config (API keys) - шаблони
- Тестовий скрипт для повного потоку

TODO: Генерація реальних JWT/ключів та застосування конфігів
2026-01-10 10:46:25 -08:00

94 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
# Тестування повного потоку: Matrix → Gateway → NATS → Worker → Memory Service
set -e
echo "🧪 Тестування повного потоку..."
echo ""
# Кольори для виводу
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# Перевірка компонентів
echo "=== Перевірка компонентів ==="
# 1. NATS
echo -n "NATS JetStream: "
if kubectl get pods -n nats -l app=nats --field-selector=status.phase=Running 2>/dev/null | grep -q nats; then
echo -e "${GREEN}✅ Running${NC}"
else
echo -e "${RED}❌ Not running${NC}"
exit 1
fi
# 2. Memory Service
echo -n "Memory Service: "
if kubectl get pods -n daarion -l app=memory-service --field-selector=status.phase=Running 2>/dev/null | grep -q memory-service; then
echo -e "${GREEN}✅ Running${NC}"
else
echo -e "${YELLOW}⚠️ Not running (може бути нормально)${NC}"
fi
# 3. Qdrant
echo -n "Qdrant: "
if kubectl get pods -n qdrant -l app=qdrant --field-selector=status.phase=Running 2>/dev/null | grep -q qdrant; then
echo -e "${GREEN}✅ Running${NC}"
else
echo -e "${YELLOW}⚠️ Not running (може бути нормально)${NC}"
fi
echo ""
echo "=== Перевірка NATS streams ==="
NATS_POD=$(kubectl get pods -n nats -l app=nats -o jsonpath='{.items[0].metadata.name}' 2>/dev/null)
if [ -n "$NATS_POD" ]; then
kubectl exec -n nats "$NATS_POD" -- wget -qO- http://localhost:8222/jsz 2>/dev/null | python3 -m json.tool 2>/dev/null | grep -E '"streams"|"name"' | head -10 || echo "Streams не знайдено"
else
echo "NATS pod не знайдено"
fi
echo ""
echo "=== Тест створення job ==="
echo "Створюю тестовий job через Python..."
cat << 'PYEOF' | python3
import asyncio
import json
from nats.js import api
from nats.aio.client import Client as NATS
async def test_job():
nc = NATS()
try:
await nc.connect("nats://nats-client.nats:4222")
js = nc.jetstream()
# Тестовий job
job = {
"job_id": "test-001",
"idempotency_key": "sha256:test",
"type": "embed",
"priority": "online",
"input": {
"text": ["Тестовий текст для embedding"],
"model": "cohere/embed-multilingual-v3.0",
"dims": 1024
}
}
# Публікація
ack = await js.publish("mm.embed.online", json.dumps(job).encode())
print(f"✅ Job опубліковано: seq={ack.seq}")
await nc.close()
except Exception as e:
print(f"❌ Помилка: {e}")
asyncio.run(test_job())
PYEOF
echo ""
echo "✅ Тестування завершено!"