# Despliegue Cloud — Cierres Talento Humano

Este paquete deja los cierres corriendo fuera de la Mac, apuntando a la base remota:

```text
Base de Datos Historicos Talento Humano
schema public
```

La guia operativa completa para instalar el job en el servidor original de la
API esta en:

```text
deploy/INSTALACION_JOB_SERVIDOR_API.md
```

Incluye arquitectura, seguridad, permisos PostgreSQL, zona horaria,
instalacion, pruebas sin escritura, corte desde la Mac, certificacion,
operacion, recuperacion y reversa.

Si en vez de un servidor Linux con `cron` se va a usar un **Mac mini
dedicado con launchd**, ver en su lugar:

```text
deploy/mac-mini/README.md
deploy/mac-mini/INSTALACION_MAC_MINI.md
```

## Variables requeridas

Configurar como Secrets del runner/servidor o en un `.env` privado del servidor:

```text
DATABASE_URL=
PG_SCHEMA=public
NOMINA_API_KEY=
PYG_API_KEY=
APP_VERIFY_SSL=true
APP_DEBUG_ERRORS=false
```

`DATABASE_URL` debe apuntar a la base `Base de Datos Historicos Talento Humano`, no a la base comercial.

## Pruebas sin escritura

Desde la carpeta del proyecto:

```bash
deploy/install-cloud-cron.sh --dry-run
```

## Programacion

Usar el instalador para validar e instalar las entradas sin pisar otros cron jobs:

```bash
deploy/install-cloud-cron.sh --install
```

El script instala las entradas entre marcadores `BIA_TALENTO_HUMANO_CLOUD_CRON`.
`deploy/crontab-talento-humano.example` queda como referencia manual.

Horarios:

- Dia 1 5:00 AM: empleados activos desde `GET /rrhh/empleados-activos-detalle`.
- Dias 5 y 7 5:00 AM: cierre conservador de empleados e IR.
- Dias 1, 5 y 7 5:30 AM: carga Nomina + P&G.

## Validacion posterior

Despues de cada ejecucion:

```sql
SELECT MAX(fecha) FROM historico_empleados;
SELECT MAX(periodo) FROM historico_ir;
SELECT MAX(periodo) FROM historico_nomina_pyg WHERE fuente = 'nomina';
```

No imprimir cedulas, nombres, sueldos ni respuestas crudas de APIs en logs de soporte.
