Aller au contenu principal

Vue d'Ensemble de l'Architecture

« Deux architectures, une vision » — Implémentation actuelle + État cible pour v1.0

La plateforme STOA est conçue comme une plateforme de gateway cloud-native et multi-tenant, construite pour les APIs traditionnelles et les agents IA. Ce document maintient deux vues distinctes :

  1. Live — Ce qui est effectivement déployé et en production
  2. Cible — L'architecture vers laquelle nous convergeons (v1.0 Q3 2026)

Dernière mise à jour : 2 février 2026 — Post Cycle 5 (CAB-668)


Architecture Live (Février 2026)

Ce qui tourne en production sur *.stoa.cab-i.com

Services Live — Statut 02/02/2026

ServiceURLStatutStack
Portalportal.stoa.cab-i.com✅ LiveReact
Control Plane APIapi.stoa.cab-i.com✅ LiveFastAPI (Python)
Consoleconsole.stoa.cab-i.com✅ LiveReact
MCP Gatewaymcp.stoa.cab-i.com✅ LiveFastAPI (Python)
Keycloakkeycloak.stoa.cab-i.com✅ LiveKeycloak (OIDC)
Grafanagrafana.stoa.cab-i.com✅ LiveGrafana + Loki
OpenSearchopensearch.stoa.cab-i.com✅ LiveOpenSearch
Docsdocs.gostoa.dev✅ LiveDocusaurus (Vercel)
Kafka BridgeInterne uniquement✅ LiveFastAPI (CAB-485)
Error Snapshot ConsumerInterne uniquement✅ LivePython (CAB-485)

Fonctionnalités Live — Implémentées (Post Cycle 5)

  • Auth : Keycloak OIDC + TOTP 2FA + RBAC multi-tenant
  • Abonnements : Outil → Utilisateur → Tenant avec clés API (Vault)
  • MCP Gateway : list_tools, call_tool, list_resources — intégration Claude.ai corrigée (bugs JSON-RPC résolus)
  • Découverte d'outils Multi-Tenant : Outils limités au tenant avec injection du contexte JWT
  • GitOps Multi-Gateway : ArgoCD + Patron Adaptateur de Gateway (STOA, Kong, Gravitee, webMethods)
  • Foundation ArgoCD : Déploiement continu GitOps pour stoa-system
  • Error Snapshots : Capture → Kafka → MinIO → Récupération via API (CAB-397 + CAB-485)
  • Observabilité : Prometheus + Grafana + Loki centralisés
  • Recherche : Catalogue OpenSearch + piste d'audit
  • Webhooks : Notifications subscription.created/renewed/revoked
  • Sécurité : Gestion des secrets Vault, RBAC Keycloak, socle mTLS

Dépôts Git

DépôtHébergementObjectif
stoa-platform/stoaGitHub (public)Code principal de la plateforme (Apache 2.0)
stoa-platform/stoa-docsGitHub (public)Site de documentation
stoa-platform/stoa-webGitHub (public)Page d'accueil (gostoa.dev)
stoa-platform/stoa-helmGitHub (public)Charts Helm
PotoMitan/stoa-gitopsGitLab (privé)Applications ArgoCD, playbooks Ansible, infra
PotoMitan/stoa-catalogGitLab (privé)Définitions d'APIs tenant, configs webMethods
PotoMitan/stoa-opsGitLab (privé)Terraform, scripts opérationnels

Flux de Déploiement (Live)

Important

Le flux de déploiement n'est PAS piloté par Kafka. Le Control Plane API orchestre la synchronisation des gateways directement via le Patron Adaptateur de Gateway (ADR-035).

Kafka est utilisé exclusivement pour le streaming d'événements internes (snapshots d'erreurs, metering), jamais pour l'orchestration du déploiement. Voir ADR-017 : Kafka Interne Uniquement.

Namespace Kubernetes

Tous les composants s'exécutent dans le namespace stoa-system sur EKS :

kubectl get pods -n stoa-system

Architecture Cible (v1.0 — Q3 2026)

Vision : natif eBPF, CLI-first, prêt pour l'IA

Différences Live → Cible

ComposantLive (Fév. 2026)Cible (Q3 2026)Cycle
GatewaywebMethods (Java)stoa-proxy (Rust)Cycle 15
Rate LimitingUser-space (slowapi)XDP/eBPF (noyau)Cycle 15
Control PlaneFastAPI (Python)stoa-api (Go)Cycle 15
CLIstoa-cli (Go)Cycle 15
Operatorstoa-operator (Go)Cycle 15
GitOpsArgoCD + Gateway AdaptersArgo CD + RolloutsCAB-483
CacheEn mémoireRedis distribuéCAB-306
Protocoles B2BREST uniquementEDI/SWIFT/Euro Num.Cycle 13
AI GatewayMCP de baseCache sémantique + routageCycle 17

CRDs — Feuille de Route v1.0

Non Encore Déployé

Les Custom Resource Definitions suivantes sont prévues pour v1.0 et ne sont pas encore déployées. Elles seront gérées par le stoa-operator :

# FEUILLE DE ROUTE - Non déployé encore
apiVersion: stoa.io/v1alpha1
kind: Tool
metadata:
name: billing-api
namespace: tenant-acme
spec:
protocol: rest
upstream: https://api.acme.com/billing
auth:
type: oauth2
issuer: https://keycloak.stoa.cab-i.com/realms/acme
---
apiVersion: stoa.io/v1alpha1
kind: ToolSet
metadata:
name: acme-tools
namespace: tenant-acme
spec:
tools:
- billing-api
- inventory-api
policies:
rateLimit: 1000/min
auth: required

Feuille de Route de Migration

Jan 2026       Fév 2026       Mar 2026       Q2 2026        Q3 2026
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐ ┌───────┐
│v0.1.0 │ │v0.2.0 │ │v0.3.0 │ │v0.5.0 │ │v1.0.0 │
│MVP │────►│Demo │────►│Proxy │────►│eBPF │────►│GA │
│ │ │ │ │ │ │ │ │ │
│Arch │ │+Claude│ │+Rust │ │+eBPF │ │Cible │
│Live │ │ .ai │ │Proxy │ │ │ │Finale │
└───────┘ └───────┘ └───────┘ └───────┘ └───────┘
│ │
└──────────── Période Hybride ───────────────────────────┘
(webMethods + stoa-proxy coexistent avec bascule de trafic)

Stack Technologique

CoucheLive (Fév. 2026)Cible (v1.0)
GatewaywebMethods (Java)Rust, Tokio, Hyper
MCP GatewayPython, FastAPIRust (intégré dans stoa-proxy)
Control Plane APIPython, FastAPIGo
FrontendReact, TypeScript, TailwindReact, TypeScript, Tailwind
Base de donnéesPostgreSQLPostgreSQL
Event StreamingRedpanda (API Kafka)Redpanda (API Kafka)
RechercheOpenSearchOpenSearch
Stockage objetMinIOMinIO / S3
CacheEn mémoireRedis
AuthKeycloakKeycloak
SecretsHashiCorp VaultHashiCorp Vault
ObservabilitéPrometheus, Grafana, LokiPrometheus, Grafana, Loki
GitOpsArgoCD + Gateway AdaptersArgoCD + Argo Rollouts
InfrastructureKubernetes (EKS), HelmKubernetes, Helm, Terraform

Zones de Sécurité

ZoneNiveau de ConfianceComposants
ExterneNon fiableClients API, Claude.ai, Console Web
DMZSemi-fiableIngress Traefik, API Gateway, MCP Gateway
InterneFiableControl Plane, Keycloak, Couche Données

Principes de sécurité clés :

  • Kafka/Redpanda : zéro exposition externe (ADR-017)
  • Isolation multi-tenant via contexte JWT (ADR-016)
  • GitOps avec Argo CD pour la config déclarative (ADR-015)
  • Tous les secrets gérés via HashiCorp Vault

Flux du MCP Gateway

Isolation des Outils Multi-Tenant

Chaque tenant ne voit que ses propres outils :

TenantOutils PlateformeOutils Tenant
Parzival (IOI)stoa_*ioi:billing:*, ioi:inventory:*
Sorrento (Gregarious)stoa_*greg:oasis:*, greg:sixers:*
Halliday (Admin)Visibilité complète cross-tenantTous les outils

Documents Associés


Journal des Modifications

DateVersionModifications
2026-02-022.1Alignement CAB-668 : terminologie Phase→Cycle, actualisation Fév. 2026, fonctionnalités post-Cycle 5
2026-01-182.0Séparation Live vs Cible, corrections d'URLs
2026-01-151.9Ajout CAB-485 (Error Snapshots)
2026-01-111.8Intégration OPA MCP Gateway

Référence : CAB-668 — STOA Platform