Skip to content

Gatez Feature Matrix

Complete feature inventory across all dimensions. Status: Built = shipped and tested.


API Gateway (Layer 1 — APISIX + Lua)

FeatureStatusDetails
HTTP/HTTPS proxyingBuiltAPISIX core, TLS termination via Caddy/cert-manager
Per-tenant rate limitingBuiltRedis-backed Lua plugin, sliding window, rl:{tenant_id}:{route}:{window}
Rate limit hierarchyBuiltGlobal → tenant → route overrides, visual editor in Operator Portal
JWT authenticationBuiltKeycloak OIDC integration, tenant_id extracted from JWT claims
API key authenticationBuiltkey-auth plugin, request → approve → issue workflow
Request loggingBuiltClickHouse via http-logger plugin, async (never blocks request path)
Route managementBuiltAPISIX Admin API CRUD, lifecycle states (draft → published → deprecated → retired)
gRPC proxyingBuiltgrpc-transcode + grpc-web plugins, /grpc/* and /grpc-web/* routes
WebSocket proxyingBuilt/ws/* route, 60s keepalive, enable_websocket flag
Circuit breakerBuiltapi-breaker plugin, configurable thresholds, failure injection for testing
IP restriction per tenantBuiltAPISIX ip-restriction plugin, PUT /api/tenants/:id/ip-allowlist
Active + passive health checksBuiltAll upstreams, exposed in Operator Portal health page
Canary deploymentsBuiltTraffic splitting via upstream weighting (%), blue-green pattern documented
Service discoveryBuiltDNS SRV + Consul + K8s, documented in docs/deployment/service-discovery.md
Cross-layer trace propagationBuiltW3C traceparent/tracestate forwarding L1 → L2 → L3
Grafana dashboardBuiltRequest rate, error rate, P99 latency per tenant
Load testedBuilt479 TPS local dev (target 50k TPS on prod hardware), P99 56ms

AI Gateway (Layer 2 — Custom Rust, axum + tokio)

FeatureStatusDetails
Multi-model routingBuilt13 providers: OpenAI, Anthropic, Gemini, Ollama, Azure, Mistral, Cohere, DeepSeek, Together, Groq, Fireworks, vLLM, Bedrock (stub)
Model passthroughBuiltPrefix-pattern routing — any model ID routed to correct provider, no whitelist
Model aliasingBuiltMODEL_ALIASES=fast=gpt-4o-mini,smart=claude-sonnet env var
P2C load balancingBuiltPower of Two Choices across providers, health scoring (error rate + latency + pending)
Circuit breakerBuilt3 failures → open, 30s recovery, auto half-open
Retry with backoffBuilt2 retries, 100ms initial, max 10s, exponential
Fallback chainsBuiltCircuit breaker open → auto-route to next available provider
Redis exact-match cacheBuiltTenant-scoped keys, cache-hit path: 599 req/s, 18ms avg
Semantic cache (Qdrant)BuiltTwo-tier: Redis exact → Qdrant similarity, hash-based vectors
PII redactionBuiltRegex: SSN, email, credit card, phone, IP — runs BEFORE LLM call
Multi-layer prompt guardsBuiltPipeline: regex (<1ms) → webhook → action (Pass/Reject/Mask)
Token budget enforcementBuiltPer-tenant, pre-request check in Redis, deduct after response
Streaming SSEBuiltZero-copy pass-through, no buffering
ClickHouse loggingBuiltAsync fire-and-forget: model, tokens, latency, cache_hit, pii_detected
Prometheus metricsBuiltRequests, cache, latency, tokens, PII, budget, active requests
Hot config reloadBuiltPOST /admin/reload, RwLock config swap, validates before applying
Provider health APIBuiltGET /v1/providers/health — all provider stats, error rates, latency
OpenAI-compatible APIBuiltDrop-in replacement: /v1/chat/completions, /v1/models
JWT signature validationBuiltIndependent JWKS validation (doesn't trust L1 blindly)
Auth header scrubbingBuiltStrips Authorization/x-api-key before ClickHouse writes
Observability webhooksBuiltBatched LlmEvent export (metadata only, prompts opt-in)
Grafana dashboardBuiltRequest rate, cache hit rate, latency P50/P95/P99, tokens, PII, budget
Load testedBuilt599 req/s cache-hit, 18ms avg latency (local Docker)

Agent Gateway (Layer 3 — Custom Rust, axum + tokio)

FeatureStatusDetails
MCP protocolBuiltServer registry CRUD, tool discovery, JSON-RPC forwarding
A2A protocolBuiltAgent registry, send message, task tracking, HTTP forwarding
Session lifecycleBuiltCreate, list, inspect, terminate — Redis-backed with TTL
Tool allowlistsBuiltDeny by default, per-session, tenant-scoped
CEL expression engineBuilt776-line built-in evaluator, 30 tests, jwt/mcp/tenant/session vars
HITL approval gatesBuiltPer-tenant configurable, pending queue, approve/deny API
Session token budgetsBuiltPer-session limits, budget check before every tool call
Tool poisoning protectionBuiltServer fingerprinting, naming collision detection (409 on conflict)
A2A delegation policiesBuiltCross-tenant block, chain depth limit (max 5), loop detection
MCP elicitationBuilt/v1/elicit + /v1/elicit/:id/respond — structured input via HITL
OpenAPI-to-MCP translationBuiltAuto-convert OpenAPI 3.x specs into MCP tool definitions
Virtual MCP endpointBuiltGET /v1/mcp federates all servers, tool name prefixing
MCP health checksBuiltBackground task, 30s interval, Healthy/Degraded/Unhealthy per server
stdio transportBuiltProcess lifecycle via StdioManager, JSON-RPC over stdin/stdout
SSE transportBuiltHTTP POST fallback for MCP SSE servers
MCP OAuthBuiltRFC 9728 + RFC 8414, gateway proxy pattern, 3 validation modes
JSON schema validationBuiltValidate tool args against MCP input_schema (types, required fields)
Agent registry persistenceBuiltRedis-backed, survives restarts
Cross-layer tracingBuiltOTel + Jaeger, L1 → L2 → L3 span tree
ClickHouse audit trailBuiltTool calls, A2A hops, session events with tenant_id
Prometheus metricsBuiltSessions, tool calls, denied, A2A, HITL, latency, poisoning
Hot config reloadBuiltPOST /admin/reload, health check interval + session TTL
Grafana dashboardBuilt7 panels: sessions, tool calls, A2A, HITL, latency, poisoning

Multi-Tenancy

FeatureStatusDetails
tenant_id on every callBuiltJWT claim extraction, propagated L1 → L2 → L3
Per-tenant rate limitingBuiltIndependent quotas, Redis sliding window, never shared buckets
Per-tenant token budgetsBuiltPre-request check, post-response deduct, alert at 80%
Per-tenant API keysBuiltNamespace-scoped, request → approve → issue workflow
Per-tenant tool allowlistsBuiltDeny by default, CEL rules per tenant
Per-tenant HITL policiesBuiltConfigurable per-tool, per-tenant
Per-tenant brandingBuiltLogo (base64, 100KB), portal title, primary color
Tenant-scoped cacheBuiltRedis: {tenant_id}:cache:*, no cross-tenant sharing
Tenant-scoped analyticsBuiltClickHouse row-level filter, per-tenant dashboards
Tenant-scoped audit trailBuiltEvery log entry includes tenant_id
IP restriction per tenantBuiltCIDR allowlist, 403 on violation
Cross-tenant isolationBuiltSession isolation, key isolation, analytics isolation — tested

Control Plane — Operator Portal

FeatureStatusDetails
Tenant managementBuiltList, create (3-step wizard), edit, suspend, delete
Rate limit editorBuiltVisual hierarchy: global → tenant → route overrides
API catalogueBuiltRoute/service browser, search, filter, plugin badges
OAS 3 Swagger UIBuiltUpload spec, inline try-it console, curl generator
API lifecycleBuiltDraft → published → deprecated → retired
API key managementBuiltCreate, show-once-then-mask, revoke, audit log
Key approval queueBuiltReview tenant requests, approve/deny
Usage analyticsBuiltClickHouse-backed KPI cards, time-series, drill-downs
LLM token analyticsBuiltPrompt vs completion, cost per provider, per-model bars
Health monitoringBuiltUpstream status, dependency map, alert config
Session browserBuiltList, filter, terminate from UI
MCP tool registryBuiltCatalog, enable/disable per tenant
MCP tool playgroundBuiltAuto-generated form, execute, history, curl generator
Trace explorerBuiltCross-layer L1 → L2 → L3 span tree
A2A topology graphBuiltAgent delegation chains, loop detection
HITL approval queueBuiltPending tool calls, approve/modify/deny
Policy editorBuiltVisual tool allowlist + RBAC per tenant
CEL playgroundBuiltExpression editor, context builder, examples, history
Audit logBuiltClickHouse-backed, filters, CSV export
SettingsBuiltPlatform config, notification config, data retention
LLM provider managementBuiltAdd/test/delete providers, secret references, UI tab
User managementBuiltContext-aware: SCIM/SSO/Keycloak/Bootstrap adaptive UI
Service accountsBuiltgtz_sa_ prefixed keys, SHA-256 hashed, show-once modal
Webhook managementBuiltRegister URL + event types, delivery log
IP allowlist editorBuiltPer-tenant CIDR management
Canary deployment sliderBuilt0-100% traffic split per route
NotificationsBuiltBell icon, type-specific icons, polling
Custom brandingBuiltLogo upload, portal title, color per tenant

Control Plane — Developer Portal

FeatureStatusDetails
API discoveryBuiltBrowse published APIs, tenant-scoped
Swagger try-it consoleBuiltInline method selector, headers, body, live response, curl
Key managementBuiltRequest → approval → secure issuance (show-once modal)
My keys dashboardBuiltMasked keys, last-used, request count, revoke
Usage dashboardBuiltRequest volume, error rate, latency, token consumption
Token budget visibilityBuiltRemaining, burn rate, projected exhaustion
Agent session viewerBuiltSessions, tool call timeline, budget gauges
HITL approvalBuiltApprove own sessions, amber banner, countdown timer
Usage drill-downBuiltLLM tokens by model, cache hit rate, cost estimate, error breakdown
Session drill-downBuiltTool call timeline, duration, tokens, status per call
Audit log exportBuiltDate range, action filter, CSV export
NotificationsBuiltBell with unread count, type-specific icons, filter tabs
SettingsBuiltProfile, notification prefs, branding (tenant-admin)
Custom brandingBuiltTenant logo, title, color
Tenant-lockedBuiltCannot see other tenants' data, ever

Security

FeatureStatusDetails
JWT authenticationBuiltKeycloak OIDC, validated at L1 + L2 independently
JWKS cachingBuiltL2: 5-min, L3: 30-min TTL, offline validation
API key authBuiltkey-auth plugin, scoped per tenant
Master key fallbackBuiltService-to-service calls bypass JWT when needed
PII redactionBuiltPre-LLM: SSN, email, credit card, phone, IP
Prompt guardsBuiltRegex + webhook pipeline, Reject/Mask actions
Auth header scrubbingBuiltAuthorization/x-api-key stripped before ClickHouse
Tool allowlistsBuiltDeny by default, CEL expressions, per-tenant
Tool poisoning detectionBuiltFingerprinting, naming collision (409)
HITL gatesBuiltHuman approval for high-risk tool calls
Blast radius controlsBuiltSession budgets, depth limits, loop detection
IP restrictionBuiltPer-tenant CIDR allowlist
SQL injection protectionBuiltParameterized queries, pre-merge scan
XSS protectionBuiltReact escaping, pre-merge scan
Secret managementBuiltKeySource enum: EnvVar, Vault, K8s, AWS SM, Azure KV (stubs)
License key systemBuiltJWT-signed, offline validation, tier gating
TLS everywhereBuiltcert-manager, inter-service TLS, self-signed CA for dev
MCP OAuthBuiltRFC 9728/8414, PKCE, 3 validation modes

Observability

FeatureStatusDetails
Prometheus metricsBuiltAll 3 layers export metrics: requests, latency, errors, cache, tokens
Grafana dashboardsBuiltL1 (4 panels), L2 (10 panels), L3 (7 panels)
Jaeger distributed tracingBuiltCross-layer L1 → L2 → L3 span tree, OTel export
ClickHouse analyticsBuiltrequest_log, ai_request_log, agent_audit_log — partitioned by month
ClickHouse TTLBuilt90d request logs, 365d AI usage, no TTL audit logs
Buffer engineBuiltBuffer → MergeTree for high-write tables
Real-time health monitoringBuiltUpstream status, dependency map, alert config
LLM observability webhooksBuiltBatched metadata export (Langfuse/LangSmith compatible)
Audit trailBuiltEvery tool call, A2A hop, session event logged with tenant_id
CSV exportBuiltrequest_log, ai_request_log, agent_audit_log — ClickHouse FORMAT CSVWithNames

Enterprise & Compliance

FeatureStatusDetails
License key & feature gatesBuiltCommunity / Pro / Enterprise / Trial tiers
SSO federationBuiltOkta, Microsoft Entra ID, Google Workspace via Keycloak OIDC broker
SCIM provisioningBuiltIdentity source detection, role assignment API
Multi-realm KeycloakBuiltDedicated realm per enterprise tenant
HIPAA compliance mappingBuiltdocs/compliance/hipaa-mapping.md, controls → features
Air-gap deploymentBuiltAll services from container images, zero internet dependency
Performance benchmarksBuiltDocumented methodology, L1/L2/L3 numbers
Dependency auditBuiltcargo audit + npm audit clean
Backup/restore runbookBuiltetcd, ClickHouse, Redis — RTO/RPO documented
Disaster recoveryBuiltdocs/operations/disaster-recovery.md
Horizontal autoscalingBuiltHPA for APISIX, AI Gateway, Agent Gateway
Canary deploymentsBuiltTraffic splitting, blue-green documented
Webhook systemBuilt6 event types, retry with backoff, delivery log

Infrastructure & Deployment

FeatureStatusDetails
Docker Compose (local)BuiltAll 15 services, single docker compose up -d
Kubernetes manifestsBuiltNamespace, Deployments, Services, Secrets, Ingress
Helm chartBuiltinfra/helm/gatez/ with configurable values.yaml
TerraformBuiltinfra/terraform/ for cloud provisioning
Caddy reverse proxyBuiltAuto-TLS, subdomain routing template
Environment templatesBuilt.env.local, .env.staging, .env.production
Environment detectionBuiltGATEZ_ENV — refuses default passwords in production
Hot config reloadBuiltL2 + L3 POST /admin/reload, no restart needed
Kong migration toolsBuiltCLI translator, Python parser, plugin map, migration guide
gRPC + WebSocketBuiltAPISIX plugins enabled, routes configured

Testing

FeatureStatusDetails
L2 Rust unit testsBuilt78 tests (PII, cache, semantic cache, config, providers, logging)
L3 Rust unit testsBuilt106 tests (sessions, security, A2A, MCP, audit, CEL)
Cross-layer E2EBuilt16 tests (L1→L2→L3 health, sessions, tools, metrics)
Enterprise test suiteBuilt213 scenarios (isolation, auth, boundary, concurrency)
Playwright UI E2EBuilt208 specs across both portals
Pre-merge gateBuilt10-section security/quality scan (secrets, SQL injection, auth, tenant isolation)
Smoke testBuiltscripts/smoke-test.sh — all services healthy
Full test runnerBuiltscripts/test-all.sh — runs all suites in sequence
Performance benchmarksBuiltwrk/k6 based, documented methodology
Chaos engineeringBuiltService stop/start resilience tests

Not Yet Built (Planned)

FeaturePriorityDetails
Kubernetes Gateway APIMediumGatewayClass, Gateway, HTTPRoute CRDs
Vault secret resolverMediumHTTP API with token auth + cache
K8s Secret resolverMediumkube crate, service account auth
AWS Secrets Manager resolverMediumaws-sdk-secretsmanager crate
Usage metering & billingMediumStripe integration, materialized views
SOC 2 Type IILow3-6 month audit process
L1 response PII scrubbingLowAPISIX body_filter plugin, opt-in per route
Per-tenant provider preferencesLowTenant-specific model routing
Per-tenant guard configurationLowCustom prompt guard rules per tenant
Full stdio bidirectional JSON-RPCLowBackground stdout reader with reconnection
Full SSE streaming with reconnectionLowSession pinning for stateful MCP servers
File watcher config reloadLownotify crate for automatic reload

Enterprise API + AI + Agent Gateway