From b39bbcdd0a445352b2f5d34a2073da1325c9d125 Mon Sep 17 00:00:00 2001 From: Horux Dev Date: Mon, 3 Aug 2026 04:35:19 +0000 Subject: [PATCH] feat(sat): integra ProxyManager en createSatService MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Usa proxyManager.createNextAgent() para obtener un proxy del pool. - Pasa el agente al HttpsWebClient parcheado. - Log indica si se usa proxy o IP directa. - Comportamiento actual sin cambios si SAT_PROXY_LIST está vacío. --- apps/api/src/services/sat/sat-client.service.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/api/src/services/sat/sat-client.service.ts b/apps/api/src/services/sat/sat-client.service.ts index a58a614..fc1b585 100644 --- a/apps/api/src/services/sat/sat-client.service.ts +++ b/apps/api/src/services/sat/sat-client.service.ts @@ -10,6 +10,7 @@ import { DocumentStatus, ServiceEndpoints, } from '@nodecfdi/sat-ws-descarga-masiva'; +import { proxyManager } from './proxy.service.js'; export interface FielData { cerContent: string; @@ -47,11 +48,20 @@ export function createSatService(fielData: FielData): Service { } // Crear cliente HTTP con timeout explícito para evitar el bug de la librería - // cuando ocurre un timeout de red. + // cuando ocurre un timeout de red. Si hay proxies configurados, se usa uno + // del pool para reducir el riesgo de bloqueo por IP del SAT. + const proxyAgent = proxyManager.createNextAgent(); + if (proxyAgent) { + console.log('[SAT] Usando proxy para la conexión con el SAT'); + } else { + console.log('[SAT] Sin proxy configurado; usando IP directa del servidor'); + } + const webClient = new (HttpsWebClient as any)( undefined, undefined, SAT_WEB_CLIENT_TIMEOUT_MS, + proxyAgent, ); // Crear request builder con la FIEL