Aller au contenu principal

Modes du Gateway

STOA Gateway supporte 4 modes de déploiement (définis dans ADR-024), chacun optimisé pour un pattern d'intégration différent. Sélectionnez le mode via la variable d'environnement STOA_GATEWAY_MODE.

Vue d'Ensemble des Modes

ModePortSupport MCPCas d'UsageStatut
edge-mcp8080OuiGateway MCP autonome avec support complet du protocoleProduction
sidecar8081NonApplication des politiques aux côtés des gateways existantsT2 2026
proxy8082NonTransformation inline des requêtes/réponsesT3 2026
shadow8083NonCapture passive du trafic et génération UACT4 2026

Capacités par Mode

Capacitéedge-mcpsidecarproxyshadow
Protocole MCP (SSE)OuiNonNonNon
Découverte/invocation d'outilsOuiNonNonNon
Authentification JWTOuiOuiOuiNon
Limitation de débitOuiOuiOuiNon
DisjoncteurOuiNonOuiNon
Transformation des requêtesNonNonOuiNon
Capture de traficNonNonNonOui
Génération UACNonNonNonOui
Nécessite un upstreamNonNonOuiOui
Passif (lecture seule)NonNonNonOui

Mode Edge-MCP (Production)

Le mode de production par défaut et principal. Implémente le protocole MCP complet avec transport SSE, découverte OAuth 2.1, gestion des outils et gestion des sessions.

Configuration

# Variables d'environnement
STOA_GATEWAY_MODE=edge-mcp

# Paramètres spécifiques edge-MCP
STOA_SSE_KEEPALIVE=true
STOA_SSE_KEEPALIVE_INTERVAL_SECS=30
STOA_MAX_SESSIONS=10000
STOA_SESSION_TIMEOUT_SECS=3600

Valeurs Helm

stoaGateway:
mode: edge-mcp
edgeMcp:
sseKeepalive: true
sseKeepaliveIntervalSecs: 30
maxSessions: 10000
sessionTimeoutSecs: 3600

Routes Exposées

CheminMéthodeObjectif
/.well-known/oauth-authorization-serverGETDécouverte OAuth 2.1
/.well-known/oauth-protected-resourceGETMétadonnées de ressource protégée
/mcp/sseGETEndpoint de transport SSE
/mcp/messagesPOSTEndpoint de messages JSON-RPC
/oauth/authorizeGETProxy OIDC (vers Keycloak)
/oauth/tokenPOSTProxy de tokens (vers Keycloak)
/oauth/registerPOSTEnregistrement dynamique de clients
/admin/*DiversAPI Admin (22 endpoints)
/healthGETContrôle de santé
/metricsGETMétriques Prometheus

Quand Utiliser

  • Déploiement gateway MCP autonome
  • Intégration d'agents AI (Claude, GPT, agents personnalisés)
  • Gestion complète des APIs avec limitation de débit, quotas et disjoncteurs
  • Charges de production nécessitant le transport SSE

Mode Sidecar

Se déploie aux côtés d'un gateway API existant (Kong, webMethods, Envoy) pour ajouter l'application des politiques STOA sans remplacer le gateway principal.

Configuration

STOA_GATEWAY_MODE=sidecar

# Paramètres spécifiques sidecar
STOA_UPSTREAM_TYPE=generic # Options : generic, webmethods, kong, envoy, apigee
STOA_USER_INFO_HEADER=X-User-Info
STOA_TENANT_ID_HEADER=X-Tenant-ID
STOA_DECISION_FORMAT=StatusCode # Options : StatusCode, JsonBody, EnvoyExtAuthz, KongPlugin

Format de Décision

Le sidecar répond aux vérifications d'auth/politiques dans un format compatible avec le gateway hôte :

FormatCompatible AvecRéponse
StatusCodeN'importe quel gateway200 (autoriser) ou 403 (refuser)
JsonBodyIntégrations personnaliséesJSON avec allowed: true/false et reason
EnvoyExtAuthzEnvoy, IstioRéponse gRPC/HTTP ext_authz
KongPluginKongRéponse compatible plugin Kong

Routes Exposées

CheminMéthodeObjectif
/authzPOSTEndpoint de décision d'autorisation
/healthGETContrôle de santé
/metricsGETMétriques Prometheus

Quand Utiliser

  • Ajout du RBAC/limitation de débit STOA à un déploiement Kong ou Envoy existant
  • Migration progressive depuis un gateway legacy
  • Environnements où le remplacement du gateway n'est pas faisable

Mode Proxy

Se positionne en ligne dans le chemin des requêtes, transformant les requêtes et les réponses entre les clients et les backends. Supporte l'injection d'en-têtes, la transformation de corps et le passthrough WebSocket.

Configuration

STOA_GATEWAY_MODE=proxy

# Paramètres spécifiques proxy
STOA_TRANSFORM_REQUEST=false
STOA_TRANSFORM_RESPONSE=false
STOA_INJECT_HEADERS=true
STOA_WEBSOCKET_PASSTHROUGH=false
STOA_CONNECTION_POOL_SIZE=100

Capacités

FonctionnalitéDéfautDescription
Transformation des requêtesDésactivéModifier les en-têtes/corps avant transmission
Transformation des réponsesDésactivéModifier les en-têtes/corps avant retour
Injection d'en-têtesActivéAjouter des en-têtes de tenant, trace et corrélation
Passthrough WebSocketDésactivéTransmettre les connexions WebSocket
Pool de connexions100Taille du pool de connexions upstream

Quand Utiliser

  • Transformation requête/réponse entre clients et backends
  • Ajout d'en-têtes d'observabilité au trafic API existant
  • Proxying WebSocket avec application de politiques
  • Environnements nécessitant une manipulation inline du trafic

Mode Shadow

Capture passif le trafic pour analyse et génération automatique d'UAC (Universal API Contract). Ne modifie ni ne bloque aucune requête.

Configuration

STOA_GATEWAY_MODE=shadow

# Paramètres spécifiques shadow
STOA_CAPTURE_METHOD=Inline # Options : EnvoyTap, PortMirror, Inline, KafkaReplay
STOA_UAC_OUTPUT_DIR=/var/stoa/uac
STOA_AUTO_CREATE_MR=false
STOA_MIN_REQUESTS_FOR_UAC=100
STOA_ANALYSIS_WINDOW_HOURS=168 # 7 jours

Méthodes de Capture

MéthodeDescriptionInfrastructure
InlineSTOA capture le trafic directementPas d'infra supplémentaire
EnvoyTapLe filtre tap d'Envoy transmet des copiesSidecar Envoy
PortMirrorMise en miroir du trafic au niveau réseauConfig switch/routeur
KafkaReplayRejeu depuis un topic KafkaRedpanda/Kafka

Génération d'UAC

Après avoir collecté min_requests_for_uac requêtes sur analysis_window_hours, le mode shadow génère un Universal API Contract :

1. Capturer le trafic (requêtes + réponses)
2. Analyser les patterns (endpoints, schémas, codes d'erreur)
3. Générer la spec OpenAPI + annotations UAC STOA
4. Sortie vers UAC_OUTPUT_DIR (ou auto-création MR si configuré)

Routes Exposées

CheminMéthodeObjectif
/shadow/statusGETStatistiques de capture
/shadow/generatePOSTDéclencher la génération UAC
/healthGETContrôle de santé
/metricsGETMétriques Prometheus

Quand Utiliser

  • Découverte d'APIs non documentées dans les environnements legacy
  • Génération automatique de contrats API depuis le trafic en direct
  • Analyse pré-migration avant passage à STOA
  • Audit de conformité des patterns de trafic API

Guide de Sélection du Mode

ScénarioMode Recommandé
Déploiement MCP greenfieldedge-mcp
Ajout de politiques à Kong existantsidecar
Couche de transformation APIproxy
Découverte d'API legacyshadow → puis edge-mcp
Migration progressive depuis webMethodsshadowsidecaredge-mcp

Configuration à l'Exécution

Définissez le mode via une variable d'environnement ou les valeurs Helm :

# Variable d'environnement (priorité la plus haute)
export STOA_GATEWAY_MODE=edge-mcp

# Valeurs Helm
stoaGateway:
mode: edge-mcp

Le mode est journalisé au démarrage :

INFO Starting STOA Gateway version=2.0.0 mode=edge-mcp

Le gateway écoute sur le port par défaut du mode (8080-8083) sauf si surchargé.

Dépannage

ProblèmeCauseSolution
"Unknown mode" au démarrageValeur STOA_GATEWAY_MODE invalideUtilisez : edge-mcp, sidecar, proxy, ou shadow
Les endpoints MCP retournent 404Mauvais mode sélectionnéSeul edge-mcp sert les routes MCP
Sidecar n'applique pas les politiquesIncompatibilité du format de décisionFaites correspondre STOA_DECISION_FORMAT au gateway hôte
Shadow ne capture pas le traficLa méthode de capture nécessite une infraUtilisez Inline si pas d'Envoy/Kafka disponible
Proxy abandonne le WebSocketPassthrough désactivéDéfinissez STOA_WEBSOCKET_PASSTHROUGH=true

Voir Aussi