chore(sat): prepara entorno para proxies

- Agrega dependencia https-proxy-agent.
- Documenta variables SAT_PROXY_LIST, SAT_PROXY_STRATEGY y SAT_PROXY_FALLBACK_DIRECT en .env.example.
- Actualiza pnpm-lock.yaml.
This commit is contained in:
Horux Dev
2026-08-03 03:58:29 +00:00
parent 284c7620a9
commit 3f31e25ae7
3 changed files with 44 additions and 0 deletions

View File

@@ -91,3 +91,13 @@ METABASE_PG_PASSWORD=
# ----- SAT Playwright headless toggle (debug temporal) ----------------------
# SAT_HEADLESS=false # solo dev — muestra browser para debug de scrapers
# ----- Proxies SAT (opcional) ------------------------------------------------
# Lista de proxies HTTP/HTTPS para descargas masivas del SAT. Formato:
# http://user:pass@host:port,http://user:pass@host:port,...
# Si se deja vacío, el sistema usa la IP pública del servidor (comportamiento actual).
SAT_PROXY_LIST=
# Estrategia de rotación: round-robin | random (default: round-robin)
SAT_PROXY_STRATEGY=round-robin
# Si es true, cuando todos los proxies fallan se intenta con la IP directa del servidor.
SAT_PROXY_FALLBACK_DIRECT=true

View File

@@ -35,6 +35,7 @@
"facturapi": "^4.14.2",
"fast-xml-parser": "^5.3.3",
"helmet": "^8.0.0",
"https-proxy-agent": "^7.0.6",
"jsonwebtoken": "^9.0.2",
"mercadopago": "^2.12.0",
"node-cron": "^4.2.1",

33
pnpm-lock.yaml generated
View File

@@ -70,6 +70,9 @@ importers:
helmet:
specifier: ^8.0.0
version: 8.1.0
https-proxy-agent:
specifier: ^7.0.6
version: 7.0.6
jsonwebtoken:
specifier: ^9.0.2
version: 9.0.3
@@ -1378,6 +1381,10 @@ packages:
resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==}
engines: {node: '>=12.0'}
agent-base@7.1.4:
resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
engines: {node: '>= 14'}
any-promise@1.3.0:
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
@@ -1663,6 +1670,15 @@ packages:
supports-color:
optional: true
debug@4.4.3:
resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
decimal.js-light@2.5.1:
resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==}
@@ -1931,6 +1947,10 @@ packages:
resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==}
engines: {node: '>= 0.8'}
https-proxy-agent@7.0.6:
resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
engines: {node: '>= 14'}
iconv-lite@0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'}
@@ -3767,6 +3787,8 @@ snapshots:
adm-zip@0.5.16: {}
agent-base@7.1.4: {}
any-promise@1.3.0: {}
anymatch@3.1.3:
@@ -4076,6 +4098,10 @@ snapshots:
dependencies:
ms: 2.0.0
debug@4.4.3:
dependencies:
ms: 2.1.3
decimal.js-light@2.5.1: {}
delayed-stream@1.0.0: {}
@@ -4398,6 +4424,13 @@ snapshots:
statuses: 2.0.2
toidentifier: 1.0.1
https-proxy-agent@7.0.6:
dependencies:
agent-base: 7.1.4
debug: 4.4.3
transitivePeerDependencies:
- supports-color
iconv-lite@0.4.24:
dependencies:
safer-buffer: 2.1.2