Swap the stale trading_service monitoring proto (10 RPCs, never implemented) for the real monitoring_service proto (2 RPCs: GetLiveTrainingMetrics, StreamTrainingMetrics). Add a dedicated MonitoringServiceProxy that forwards directly to monitoring-service on port 50057, so `fxt watch` works end-to-end through the gateway. - build.rs: compile monitoring_service/proto/monitoring.proto with server+client - MonitoringServiceProxy: new zero-copy proxy (unary + streaming) - TradingServiceProxy: remove monitoring_client, stub 6 stale methods - main.rs: MONITORING_SERVICE_URL env, optional proxy with graceful degradation - Network policies: api-gateway↔monitoring-service egress/ingress on 50057 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
api_gateway
API Gateway service with 6-layer authentication, RBAC, rate limiting, and gRPC proxy routing.
Key Types
ApiGatewayService-- main service implementationRoleBasedAccessControl-- RBAC authorizationRateLimiter-- 3-tier rate limiting (auth/trading/compute)CircuitBreaker-- upstream service protection
Configuration
JWT_SECRET-- JWT signing secret (min 32 chars)UPSTREAM_TRADING_URL-- trading service gRPC endpointUPSTREAM_ML_URL-- ML service gRPC endpoint
Features
mfa(default) -- multi-factor authentication support- Build without:
cargo check -p api_gateway --no-default-features --features minimal