Bot Descarga API (infraestructura IPSExtractor)
Microservicio FastAPI de control remoto de bots. Corre en Docker;
las PCs de bot no exponen puertos — solo el agent en bots/bot_descarga.
Persistencia: PostgreSQL compartido (DATABASE_URL), tablas
download_workers, download_jobs, download_job_events + tasks (type=downloads).
Layout MinIO (pys-cuentas-medicas)
uploads/{download_job_id}/input.xlsx
downloads/{download_job_id}/{nit}/{radicado}.pdf
Arranque (compose)
Servicio bot-descarga en el docker-compose.yml raíz.
Gateway: /bot-descarga/* → este servicio :8200.
Variables
BOT_API_TOKEN=dev-token-change-me
DATABASE_URL=postgresql+psycopg://ipsextractor:ipsextractor@database:5432/ipsextractor
MINIO_ENDPOINT=https://s3.builker.xyz
MINIO_BUCKET=pys-cuentas-medicas
MINIO_ANONYMOUS=1
Worker en PCs (bots/bot_descarga)
cd bots/bot_descarga
python -m bot_descarga.worker.run \
--api-url http://GATEWAY:8189/bot-descarga \
--worker-id PC-01 \
--token $BOT_API_TOKEN
O con GUI: python run_gui.py. Ver README del agent.
El agent queda idle hasta que el usuario cree un job desde el desktop
(enviando job_id del Job IPSExtractor).
Tests (API)
cd services/bot_descarga
pytest -q