Files
aitbc/apps/api-gateway
aitbc bfcc8e3663
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
security: update vulnerable dependencies in Python services
- 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
2026-05-02 16:23:28 +02:00
..

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

  1. Start GPU service in another terminal:

    python -m gpu_service.main
    
  2. Test through gateway:

    curl http://localhost:8080/gpu/health
    

Expected response:

{"status": "healthy", "service": "gpu-service"}

Test Routing to Marketplace Service

  1. Start Marketplace service in another terminal:

    python -m marketplace_service.main
    
  2. Test through gateway:

    curl http://localhost:8080/marketplace/health
    

Expected response:

{"status": "healthy", "service": "marketplace-service"}

Test Routing to Trading Service

  1. Start Trading service in another terminal:

    python -m trading_service.main
    
  2. Test through gateway:

    curl http://localhost:8080/trading/health
    

Expected response:

{"status": "healthy", "service": "trading-service"}

Test Routing to Governance Service

  1. Start Governance service in another terminal:

    python -m governance_service.main
    
  2. 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 check
  • GET /services - List registered services
  • /* - Proxy all other requests to appropriate microservice

Configuration

Service URLs are configured in main.py under the SERVICES dictionary.