bioops-twin / mock_veea_proxy.py
BioOps Team
feat: production deployment + UX polish for hackathon
24e7978
Raw
History Blame Contribute Delete
4.19 kB
"""Veea Lobster Trap — Mock Reverse Proxy Server.
Simulates the Veea Lobster Trap security proxy for development and demo
purposes. All traffic destined for the Google Gemini API is intercepted,
logged with security-inspection messages, and forwarded transparently.
In production, this would be replaced by the real Veea DevKit appliance
performing deep prompt inspection (DPI) for PII/PHI sanitisation and
adversarial prompt detection.
Usage::
python mock_veea_proxy.py
Environment variables:
GEMINI_API_KEY — Forwarded to Google's API as ``x-goog-api-key``.
"""
from __future__ import annotations
import logging
import os
import httpx
import uvicorn
from fastapi import FastAPI, Request, Response
# ---------------------------------------------------------------------------
# Configuration
# ---------------------------------------------------------------------------
app = FastAPI(title="Veea Lobster Trap Mock Proxy")
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s | [VEEA LOBSTER TRAP] | %(message)s",
)
logger = logging.getLogger("veea_proxy")
TARGET_API: str = "https://generativelanguage.googleapis.com"
GEMINI_API_KEY: str = os.environ.get("GEMINI_API_KEY", "")
# ---------------------------------------------------------------------------
# Middleware — Transparent proxy with security logging
# ---------------------------------------------------------------------------
@app.middleware("http")
async def proxy_requests(request: Request, call_next) -> Response: # noqa: ARG001
"""Intercept, inspect, and forward all LLM traffic.
Performs three simulated security checks before forwarding:
1. PII/PHI leak detection (Zero-Trust sanitisation)
2. Anti-prompt-injection heuristic scan
3. Credential exfiltration prevention
Args:
request: The incoming HTTP request from the Gemini SDK.
call_next: FastAPI's next middleware (unused — we forward ourselves).
Returns:
The proxied response from Google's Gemini API.
"""
logger.info("Intercepting LLM traffic: %s %s", request.method, request.url.path)
logger.info("PII/PHI Sanitisation (Zero-Trust) ... PASS")
logger.info("Anti-Prompt-Injection Scan .......... PASS")
logger.info("Credential Exfiltration Check ....... PASS")
# Build target URL
target_url = f"{TARGET_API}{request.url.path}"
if request.url.query:
target_url += f"?{request.url.query}"
# Read original request body
body: bytes = await request.body()
# Prepare headers — inject API key if not already present
headers = dict(request.headers)
headers.pop("host", None)
if GEMINI_API_KEY and "x-goog-api-key" not in headers:
headers["x-goog-api-key"] = GEMINI_API_KEY
# Forward request to Google
async with httpx.AsyncClient() as client:
try:
proxy_response = await client.request(
method=request.method,
url=target_url,
headers=headers,
content=body,
timeout=60.0,
)
logger.info(
"Traffic forwarded to Google Gemini and returned securely (status=%d).",
proxy_response.status_code,
)
return Response(
content=proxy_response.content,
status_code=proxy_response.status_code,
headers=dict(proxy_response.headers),
)
except httpx.RequestError as exc:
logger.error("Connection error to Gemini API: %s", exc)
return Response(
content="Internal proxy error — upstream unreachable.",
status_code=502,
)
# ---------------------------------------------------------------------------
# Entry point
# ---------------------------------------------------------------------------
if __name__ == "__main__":
if not GEMINI_API_KEY:
logger.warning("GEMINI_API_KEY not found in environment. Proxy will forward without authentication.")
logger.info("Veea Lobster Trap Mock Proxy starting on http://0.0.0.0:8080")
uvicorn.run(app, host="0.0.0.0", port=8080)