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 webMethodsshadow → sidecar → edge-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​