🧩 Caso 09: 🐍 Python -> 🌉 n8n -> ⚡ FastAPI Gateway#
Este eje tecnológico representa la cúspide de la integración del laboratorio: un emisor en Python publica hacia n8n, el cual aplica guardrails avanzados y reenvía la solicitud a un Integration Gateway en FastAPI protegido por X-API-Key.
🏗️ Arquitectura del Flujo#
- 📤 Origen:
bot.py(Python 3.11) - Emisor operativo. - 🌉 Puente: n8n (Webhook + Guardrails + Reenvío Autenticado)
- 📥 Destino: FastAPI Gateway (Integration Hub)
- 📁 Persistencia: DuckDB (OLAP In-Process Database)
🔒 Seguridad y Configuración#
Importante
El Gateway requiere autenticación obligatoria. Asegúrate de configurar tus secretos antes de iniciar.
INTEGRATION_API_KEY: Clave obligatoria para el acceso al Gateway (no se aceptan valores demo embebidos).GITHUB_TOKEN: Opcional, habilita el modo de proveedor real para publicaciones.GATEWAY_WEBHOOK_RATE_LIMIT(default30/minute): throttling por IP enPOST /webhook(P-02).GATEWAY_ERRORS_RATE_LIMIT(default60/minute): throttling por IP enPOST /errors(P-02).
🛡️ Controles de seguridad (v4.4.0)#
- Rate limiting (
slowapi): cada endpoint está protegido por límite de peticiones por IP; el excedente devuelve HTTP 429. Contiene el agotamiento de la cuota de la GitHub API y el abuso de unaX-API-Keyfiltrada. - Whitelist de
owner: el campoownerdeRequestParamsDTOse valida contra el patrón de usuario de GitHub (^[A-Za-z0-9](?:[A-Za-z0-9-]{0,37}[A-Za-z0-9])?$) en el borde (pydantic → 422), como defensa en profundidad sobre el value objectOwnerdel dominio. Rechaza barras,@y encodings que pudieran redirigir la llamada saliente. - Dependencias con hash SHA:
requirements.txtse genera desderequirements.inconpip-compile --generate-hashes(P-01).
🚀 Ejecución en Laboratorio#
Para un arranque rápido y seguro del Caso 09:
bash
# 1. Preparar entorno
cp .env.demo.example .env
# 2. Levantar servicios
make up
# 3. Ejecutar demo de integración
make demo09🚦 Verificación y Dashboards#
- 🌐 Gateway Dashboard: http://localhost:8089
- ⚙️ API Docs (Swagger):
http://localhost:8089/docs - 🦆 Data Analysis: DuckDB permite realizar consultas analíticas sobre el histórico de posts con latencia casi nula.
Desarrollado como parte del Social Bot Scheduler — controles de seguridad al día en v4.4.0