P2.1: Add GatewayConnector BackgroundService with WebSocket client

- GatewayConnector: BackgroundService maintaining persistent WebSocket connection
  to OpenClaw Gateway with Bearer token auth from backend env only
- IGatewayConnector: Interface exposing connection state, version info, health
- Exponential backoff reconnect: 1s initial, max 5min, with jitter
- Version pinning: RequiredVersion from config; fail-fast or warn on mismatch
- Pre-flight HTTP version check before WebSocket connect
- GatewayHealthController: GET /api/health/gateway with connection status
- GatewayConnectorOptions: Configurable via GatewayConnector config section
- Token never logged; read from Integrations:OpenClaw:Password/Token only
- 16 tests: options defaults, config binding, health endpoint responses,
  connection states, DI registration, routing attributes
This commit is contained in:
2026-07-13 14:13:39 +02:00
parent a55951f315
commit 6ba788bb6e
6 changed files with 925 additions and 0 deletions
+7
View File
@@ -27,5 +27,12 @@
"StaleHours": 2,
"IntervalMinutes": 30
},
"GatewayConnector": {
"WebSocketPath": "/ws",
"ReconnectInitialDelayMs": 1000,
"ReconnectMaxDelayMs": 300000,
"FailFastOnVersionMismatch": true,
"FailFastOnMissingVersion": false
},
"AllowedHosts": "*"
}