F3 — HTTP-Bind default 0.0.0.0 ohne Auth-Sanity-Check
Datei: ~/source/mcps/mcp-replicate-hosted/src/mcp_replicate_hosted/main.py
Patch-Skizze
In run() einen Warn-Log ergaenzen wenn HOST=0.0.0.0 UND nicht in ECS (heuristik via AWS_EXECUTION_ENV-Env-Var, die AWS Fargate immer setzt).
def run() -> None:
import os
import uvicorn
from starlette.middleware import Middleware
s = get_settings()
setup_audit_logging(level=s.log_level)
# Bind-Sanity-Warn fuer lokales Debug — in ECS Fargate immer 0.0.0.0
# (CF-Tunnel-Sidecar verbindet via Container-loopback, egress-only SG
# verhindert externen Ingress). Lokal: Bind auf 0.0.0.0 ohne Override
# ist ein Hygiene-Hinweis.
if s.host == "0.0.0.0" and not os.environ.get("AWS_EXECUTION_ENV"):
log.warning({
"event": "bind_sanity_warning",
"host": s.host,
"port": s.port,
"hint": (
"Binding to 0.0.0.0 outside ECS. Fuer lokales Debug: HOST=127.0.0.1 "
"setzen damit der Service nicht im WLAN/Tailscale sichtbar ist. "
"ScalekitProvider blockt zwar Auth-Requests, aber Health-Endpoint "
"(/health) ist auth-frei + dokumentiert die Service-Existenz."
),
})
app = build_app()
log.info({
"event": "server_starting",
"host": s.host,
"port": s.port,
"public_base_url": str(s.public_base_url),
})
# ... rest unveraendertTest
Optional. Wenn drin, dann via captured-log:
def test_bind_sanity_warn_emitted_locally(monkeypatch, caplog):
monkeypatch.delenv("AWS_EXECUTION_ENV", raising=False)
monkeypatch.setenv("HOST", "0.0.0.0")
# ... import run() ohne tatsaechlichen uvicorn-Start (mock uvicorn.run)
# ... assert "bind_sanity_warning" in caplogAufwand fuer Test ist hoeher als der Patch selbst — fuer F3 als reine Hygiene reicht der Code-Change, Test optional.
Aufwand
~10 Zeilen Code. <5 Min.
Side-Effects
Keine. In Production (Fargate) ist AWS_EXECUTION_ENV immer gesetzt → keine Warn-Spam in CloudWatch.