fix(security): stop httpx from logging GNEWS_API_KEY in plaintext #13

Merged
chemavx merged 1 commits from fix/redact-gnews-token-logs into main 2026-06-26 15:15:44 +00:00
Owner

Problema

httpx loguea la URL completa de cada request a nivel INFO. La URL de búsqueda de GNews lleva la API key como query param ?token=..., así que GNEWS_API_KEY quedaba escrita en texto plano en los logs del pod en cada consulta de noticias. Cualquier lectura de logs exponía la credencial.

Fix

Subir los loggers httpx/httpcore a WARNING justo tras basicConfig en bot/main.py, para que las URLs de request nunca lleguen a INFO. Cobertura genérica: protege también cualquier credencial futura en URLs, no solo GNews.

Las líneas de log propias del bot (bot/data/news.py) solo imprimen la query saneada de _build_query, nunca el token, así que no se ven afectadas.

Validación tras deploy

kubectl logs -n polymarket-bot deploy/bot --tail=100 | grep -i "token="

No debe aparecer ninguna línea con el token de GNews.

Tests: 66 passed.

🤖 Generated with Claude Code

## Problema httpx loguea la URL completa de cada request a nivel INFO. La URL de búsqueda de GNews lleva la API key como query param `?token=...`, así que `GNEWS_API_KEY` quedaba escrita en texto plano en los logs del pod en cada consulta de noticias. Cualquier lectura de logs exponía la credencial. ## Fix Subir los loggers `httpx`/`httpcore` a `WARNING` justo tras `basicConfig` en `bot/main.py`, para que las URLs de request nunca lleguen a INFO. Cobertura genérica: protege también cualquier credencial futura en URLs, no solo GNews. Las líneas de log propias del bot (`bot/data/news.py`) solo imprimen la query saneada de `_build_query`, nunca el token, así que no se ven afectadas. ## Validación tras deploy ``` kubectl logs -n polymarket-bot deploy/bot --tail=100 | grep -i "token=" ``` No debe aparecer ninguna línea con el token de GNews. Tests: 66 passed. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
chemavx added 1 commit 2026-06-26 15:13:54 +00:00
httpx logs every request URL at INFO level, and the GNews search URL
carries the API key as a `?token=` query param, so GNEWS_API_KEY was
written in plaintext into the pod logs on every news query. Raise the
httpx/httpcore loggers to WARNING so request URLs never reach INFO.

The bot's own GNews log lines only print the sanitised keyword query
(NewsClient._build_query), never the token, so they are unaffected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
chemavx merged commit 9e21ecac21 into main 2026-06-26 15:15:44 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chemavx/polymarket-bot#13