Some checks failed
Cross-Node Transaction Testing / transaction-test (push) Successful in 7s
Deploy to Testnet / deploy-testnet (push) Has started running
Multi-Node Stress Testing / stress-test (push) Has been cancelled
Node Failover Simulation / failover-test (push) Has been cancelled
Integration Tests / test-service-integration (push) Successful in 1m39s
Security Scanning / security-scan (push) Has been cancelled
- Update FastAPI to >=0.115.6 across services (fixes starlette vulnerabilities) - Update httpx to >=0.28.1 across services - Update pytest to >=9.0.3 (fixes tmpdir handling vulnerability) - Update pytest-asyncio to >=1.3.0 - Update black to >=26.3.1 (fixes high severity vulnerability) Affected services: - api-gateway - ai-service - monitoring-service - openclaw-service - plugin-service Addresses GitHub dependabot alerts for: - starlette (high/medium severity DoS vulnerabilities) - pytest (medium severity tmpdir handling) - black (high severity vulnerability) Note: contracts uuid vulnerability deferred due to npm dependency conflicts
AITBC API Gateway
Routes requests to AITBC microservices.
Service Registry
The gateway routes requests to the following services:
- GPU Service (port 8101):
/gpu/*→ GPU resource management - Marketplace Service (port 8102):
/marketplace/*→ GPU marketplace - Agent Service (port 8103):
/agent/*→ Agent operations - Trading Service (port 8104):
/trading/*→ Trading operations - Governance Service (port 8105):
/governance/*→ Governance operations - Coordinator API (port 8000):
/coordinator/*→ Coordinator API (default)
Installation
cd /opt/aitbc
poetry install --with api-gateway
Running
# Development
python -m api_gateway.main
# Production (systemd)
sudo systemctl start api-gateway
sudo systemctl enable api-gateway
Testing
Prerequisites
- All microservices installed via Poetry
- At least one microservice running (e.g., GPU service)
- Microservice database created (if testing that service)
Start Gateway (Development)
python -m api_gateway.main
Health Check
curl http://localhost:8080/health
Expected response:
{"status": "healthy", "service": "api-gateway"}
Service Registry
curl http://localhost:8080/services
Expected response:
{
"services": [
{
"name": "gpu",
"url": "http://localhost:8101",
"health_check": "/health",
"routes": ["/gpu/*"]
},
{
"name": "marketplace",
"url": "http://localhost:8102",
"health_check": "/health",
"routes": ["/marketplace/*"]
},
{
"name": "trading",
"url": "http://localhost:8104",
"health_check": "/health",
"routes": ["/trading/*"]
},
{
"name": "governance",
"url": "http://localhost:8105",
"health_check": "/health",
"routes": ["/governance/*"]
}
]
}
Test Routing to GPU Service
-
Start GPU service in another terminal:
python -m gpu_service.main -
Test through gateway:
curl http://localhost:8080/gpu/health
Expected response:
{"status": "healthy", "service": "gpu-service"}
Test Routing to Marketplace Service
-
Start Marketplace service in another terminal:
python -m marketplace_service.main -
Test through gateway:
curl http://localhost:8080/marketplace/health
Expected response:
{"status": "healthy", "service": "marketplace-service"}
Test Routing to Trading Service
-
Start Trading service in another terminal:
python -m trading_service.main -
Test through gateway:
curl http://localhost:8080/trading/health
Expected response:
{"status": "healthy", "service": "trading-service"}
Test Routing to Governance Service
-
Start Governance service in another terminal:
python -m governance_service.main -
Test through gateway:
curl http://localhost:8080/governance/health
Expected response:
{"status": "healthy", "service": "governance-service"}
For comprehensive testing procedures, see MICROSERVICES_TESTING_GUIDE.md.
Endpoints
GET /health- Health checkGET /services- List registered services/*- Proxy all other requests to appropriate microservice
Configuration
Service URLs are configured in main.py under the SERVICES dictionary.