Some checks failed
Cross-Node Transaction Testing / transaction-test (push) Has been cancelled
Deploy to Testnet / deploy-testnet (push) Has been cancelled
Integration Tests / test-service-integration (push) Has been cancelled
Multi-Node Stress Testing / stress-test (push) Has been cancelled
Python Tests / test-python (push) Has been cancelled
Security Scanning / security-scan (push) Has been cancelled
CLI Tests / test-cli (push) Failing after 10s
Package Tests / Python package - aitbc-agent-sdk (push) Successful in 26s
Package Tests / Python package - aitbc-core (push) Failing after 3s
Package Tests / Python package - aitbc-crypto (push) Successful in 13s
Package Tests / Python package - aitbc-sdk (push) Successful in 12s
Package Tests / JavaScript package - aitbc-sdk-js (push) Successful in 11s
Package Tests / JavaScript package - aitbc-token (push) Successful in 17s
- Root pyproject.toml: urllib3 >=2.6.3 -> >=2.7.0 - packages/py/aitbc-sdk: requests >=2.31.0 -> >=2.32.4, httpx >=0.25.0 -> >=0.28.1 - packages/py/aitbc-agent-sdk: requests >=2.31.0 -> >=2.32.4, pydantic >=2.5.0 -> >=2.11.0 - apps/aitbc-edge-api: updated all dependencies to match secure versions - apps/api-gateway: uvicorn ^0.24.0 -> >=0.34.0 - examples/stubs/aitbc-ai-service: updated uvicorn, sqlmodel, sqlalchemy, pydantic, pydantic-settings
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.