fix(ai): confine benchmark requests
CI and Deploy / test (pull_request) Successful in 5m17s
CI and Deploy / deploy (pull_request) Has been skipped

Disable proxy discovery and redirect following so validated Ollama origins cannot escape the approved network boundary. Run the standard-library safety suite in CI.
This commit is contained in:
cesnimda
2026-08-15 19:31:49 +02:00
parent f7312f4ba6
commit c0e190d5b5
3 changed files with 32 additions and 2 deletions
+18 -2
View File
@@ -40,6 +40,22 @@ TASK_INSTRUCTIONS = {
}
class NoRedirectHandler(urllib.request.HTTPRedirectHandler):
"""Keep a validated Ollama origin from redirecting a request elsewhere."""
def redirect_request(self, req, fp, code, msg, headers, newurl): # noqa: ANN001
return None
def build_http_opener() -> urllib.request.OpenerDirector:
# Do not inherit HTTP(S)_PROXY from the operator shell and never follow redirects. The
# explicitly validated loopback/private origin is the only network boundary this tool may use.
return urllib.request.build_opener(urllib.request.ProxyHandler({}), NoRedirectHandler())
HTTP_OPENER = build_http_opener()
def sha256_text(value: str) -> str:
return hashlib.sha256(value.encode("utf-8")).hexdigest()
@@ -115,7 +131,7 @@ def request_json(base_url: str, path: str, payload: dict[str, Any] | None = None
headers={"Content-Type": "application/json"},
method="GET" if data is None else "POST",
)
with urllib.request.urlopen(request, timeout=timeout) as response:
with HTTP_OPENER.open(request, timeout=timeout) as response:
return json.loads(response.read().decode("utf-8"))
@@ -130,7 +146,7 @@ def stream_generate(base_url: str, payload: dict[str, Any], timeout: float) -> t
first_token_at: float | None = None
parts: list[str] = []
final: dict[str, Any] = {}
with urllib.request.urlopen(request, timeout=timeout) as response:
with HTTP_OPENER.open(request, timeout=timeout) as response:
for raw_line in response:
if not raw_line.strip():
continue