Passa al contenuto principale

ibkr-keepalive

Cosa fa

Mantiene attiva la sessione verso IBKR Gateway con heartbeat e verifiche periodiche.

Ruoli e responsabilita

  • keepalive e controllo sessione gateway;
  • monitoraggio timeout/request state;
  • disponibilita endpoint operativi per stato connettivita.

Porta esposta

  • Porta interna servizio: 3019
  • Esposizione via Traefik: https://api.trading.expovin.it/ibkr-keepalive/*

Configurazione (docker-compose.paper.yml)

ibkr-keepalive:
image: expovin/ibkr-keepalive:${IBKRKEEPALIVE_VERSION}
container_name: ibkr-keepalive
network_mode: "service:ibkrgw-paper"
depends_on:
- ibkrgw-paper
environment:
- IBKR_BASE_URL=${IBKRGW_BASE_URL}
- CORS_ORIGIN=${CORS_ORIGIN}
- KEEPALIVE_INTERVAL_MS=45000
- REQUEST_TIMEOUT_MS=8000
- ENV=${ENV}
labels:
- "traefik.enable=true"
- "traefik.http.routers.ibkr-keepalive.rule=Host(`api.trading.expovin.it`) && PathPrefix(`/ibkr-keepalive`)"
- "traefik.http.services.ibkr-keepalive.loadbalancer.server.port=3019"
- "traefik.http.routers.ibkr-keepalive.middlewares=ibkr-keepalive-stripprefix,cors-default@docker,auth-forward@docker"

Variabili d'ambiente

Infrastruttura

Variabili di base gestite dal modulo principale (comune a tutti i microservizi).

VariabileDefaultDescrizione
DATAHUB_URLhttp://datahub:3000URL del servizio datahub (ex DBMANAGER_URL, ancora accettato come alias).
REDIS_URLURI Redis (es. redis://redis:6379). Obbligatorio per il bus eventi e i canali di stato.
LOG_LEVELinfoLivello di log: trace, debug, info, warning, error.
ENVDEVAmbiente di esecuzione (local, paper, prod). Usato nel prefisso dei canali Redis.
PORT3019Porta su cui il server Express rimane in ascolto.
CORS_ORIGINhttp://localhost:5173Origin o lista di origin (separate da virgola) autorizzate dalle policy CORS.

IBKR Gateway

Variabili specifiche per la connessione e il mantenimento della sessione con IBKR Gateway. Tutte le variabili con prefisso IBKR possono essere sovrascritte a runtime anche tramite i settings dinamici caricati dal DB.

VariabileDefaultDescrizione
IBKRGW_BASE_URLhttps://localhost:5000URL base del Gateway IBKR. Obbligatorio per il funzionamento del loop di keepalive. Alias: IBKR_BASE_URL.
IBKRGW_SSO_URLhttps://localhost:5000/sso/Dispatcher?hardware_info=...URL del dispatcher SSO di IBKR. Usato per il re-auth automatico in caso di risposta 401.
IBKR_INSECURE_TLSfalseSe true, disabilita la verifica del certificato TLS verso il Gateway. Necessario in ambienti locali con certificati self-signed.

Loop di keepalive

Variabili che controllano la frequenza dei controlli periodici di autenticazione e degli heartbeat verso il Gateway. Possono essere sovrascritte tramite settings dinamici.

VariabileDefaultDescrizione
TICKLE_INTERVAL_MS50000Intervallo in millisecondi tra un POST /v1/api/tickle e il successivo. Il tickle mantiene attiva la sessione IBKR.
AUTH_CHECK_INTERVAL_MS60000Intervallo in millisecondi tra un controllo GET /v1/api/iserver/auth/status e il successivo. Definisce anche la frequenza del loop principale di keepalive.

Pagine dedicate