Files

52 lines
1.3 KiB
Markdown

# 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`](../../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`)
```bash
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](../../bots/bot_descarga/README.md).
El agent queda idle hasta que el usuario cree un job desde el desktop
(enviando `job_id` del Job IPSExtractor).
## Tests (API)
```bash
cd services/bot_descarga
pytest -q
```