192 lines
5.4 KiB
Markdown
192 lines
5.4 KiB
Markdown
# Guia de Configuracion
|
|||
|
|
|
||
|
|
## config.json
|
||
|
|
|
||
|
|
Archivo de configuracion principal con credenciales y rutas. **No commitear este archivo al repositorio.**
|
||
|
|
|
||
|
|
### Estructura completa
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"hana": {
|
||
|
|
"server": "IP_DEL_SERVIDOR",
|
||
|
|
"port": 30015,
|
||
|
|
"user": "USUARIO_HANA",
|
||
|
|
"password": "CONTRASENA_HANA"
|
||
|
|
},
|
||
|
|
"outlook": {
|
||
|
|
"client_id": "CLIENT_ID_AZURE_AD",
|
||
|
|
"client_secret": "CLIENT_SECRET_AZURE_AD",
|
||
|
|
"tenant_id": "TENANT_ID_AZURE_AD",
|
||
|
|
"download_folder": "./adjuntos",
|
||
|
|
"verify_ssl": false,
|
||
|
|
"ca_bundle": null
|
||
|
|
},
|
||
|
|
"smb": {
|
||
|
|
"server": "IP_SERVIDOR_SMB",
|
||
|
|
"username": "USUARIO_SMB",
|
||
|
|
"password": "CONTRASENA_SMB",
|
||
|
|
"share": "NOMBRE_DEL_SHARE",
|
||
|
|
"mount_points": {
|
||
|
|
"windows": "S:",
|
||
|
|
"linux": "/mnt/FileSAP",
|
||
|
|
"mac": "/Users/usuario/FileSAP",
|
||
|
|
"docker": "/mnt/FileSAP"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"mails": [
|
||
|
|
{
|
||
|
|
"email": "correo@empresa.com",
|
||
|
|
"ruta_descarga": "./adjuntos/empresa",
|
||
|
|
"ruta_final": "./resultado/empresa",
|
||
|
|
"base_datos": "SBO_EMPRESA_XX",
|
||
|
|
"usuario": "manager",
|
||
|
|
"password": "CONTRASENA_SAP",
|
||
|
|
"smb_folder": "/COMPRAS/EMPRESA/ADJUNTOS_CORREOS/2025-03"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### Secciones
|
||
|
|
|
||
|
|
#### hana
|
||
|
|
Conexion a SAP HANA Database para consultas de datos de negocio.
|
||
|
|
|
||
|
|
| Campo | Descripcion |
|
||
|
|
|-------|-------------|
|
||
|
|
| `server` | IP o hostname del servidor HANA |
|
||
|
|
| `port` | Puerto (por defecto 30015) |
|
||
|
|
| `user` | Usuario de conexion |
|
||
|
|
| `password` | Contrasena |
|
||
|
|
|
||
|
|
#### outlook
|
||
|
|
Credenciales de la aplicacion registrada en Azure AD para Microsoft Graph API.
|
||
|
|
|
||
|
|
| Campo | Descripcion |
|
||
|
|
|-------|-------------|
|
||
|
|
| `client_id` | ID de la aplicacion en Azure AD |
|
||
|
|
| `client_secret` | Secreto de la aplicacion |
|
||
|
|
| `tenant_id` | ID del tenant de Azure AD |
|
||
|
|
| `download_folder` | Carpeta temporal para descarga de adjuntos |
|
||
|
|
| `verify_ssl` | `true` para verificar certificados SSL, `false` para omitir |
|
||
|
|
| `ca_bundle` | Ruta a bundle CA personalizado, `null` para usar el del sistema |
|
||
|
|
|
||
|
|
**Como obtener credenciales de Outlook:**
|
||
|
|
|
||
|
|
1. Ir a [Azure Portal](https://portal.azure.com) > Azure Active Directory > App registrations
|
||
|
|
2. Crear una nueva aplicacion o usar una existente
|
||
|
|
3. Configurar permisos de Microsoft Graph: `Mail.Read` (delegated)
|
||
|
|
4. Copiar el Application (client) ID, Directory (tenant) ID, y crear un Client Secret
|
||
|
|
|
||
|
|
#### smb
|
||
|
|
Configuracion del servidor de archivos compartidos SMB/CIFS.
|
||
|
|
|
||
|
|
| Campo | Descripcion |
|
||
|
|
|-------|-------------|
|
||
|
|
| `server` | IP o hostname del servidor SMB |
|
||
|
|
| `username` | Usuario de autenticacion |
|
||
|
|
| `password` | Contrasena |
|
||
|
|
| `share` | Nombre del recurso compartido |
|
||
|
|
| `mount_points` | Puntos de montaje segun el sistema operativo |
|
||
|
|
|
||
|
|
Los `mount_points` se usan automaticamente segun donde se ejecute:
|
||
|
|
- `docker` se usa cuando corre en contenedor
|
||
|
|
- `linux`, `mac`, `windows` para ejecucion local
|
||
|
|
|
||
|
|
#### mails
|
||
|
|
Lista de buzones de correo a monitorear. Cada entrada es un buzón independiente.
|
||
|
|
|
||
|
|
| Campo | Descripcion |
|
||
|
|
|-------|-------------|
|
||
|
|
| `email` | Direccion del buzón de correo |
|
||
|
|
| `ruta_descarga` | Carpeta temporal para descargar adjuntos de este buzón |
|
||
|
|
| `ruta_final` | Carpeta donde se mueven los archivos procesados |
|
||
|
|
| `base_datos` | Codigo de base de datos SAP Business One |
|
||
|
|
| `usuario` | Usuario de SAP Business One |
|
||
|
|
| `password` | Contrasena de SAP Business One |
|
||
|
|
| `smb_folder` | Ruta destino en el share SMB para sincronizar |
|
||
|
|
|
||
|
|
Se pueden configurar multiples buzones en el array `mails`.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## scheduler.json
|
||
|
|
|
||
|
|
Define los horarios de operacion del daemon.
|
||
|
|
|
||
|
|
### Estructura
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"HORARIOS": [
|
||
|
|
[6, 30, 13, 15, 300, "rapido"],
|
||
|
|
[13, 15, 14, 0, 3600, "full"],
|
||
|
|
[14, 0, 17, 30, 300, "rapido"],
|
||
|
|
[17, 30, 21, 30, 3600, "full"]
|
||
|
|
],
|
||
|
|
"DIAS_ACTIVOS": [0, 1, 2, 3, 4]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### HORARIOS
|
||
|
|
|
||
|
|
Cada entrada es un array con 6 valores:
|
||
|
|
|
||
|
|
```
|
||
|
|
[hora_inicio, minuto_inicio, hora_fin, minuto_fin, intervalo_segundos, modo]
|
||
|
|
```
|
||
|
|
|
||
|
|
| Indice | Descripcion |
|
||
|
|
|--------|-------------|
|
||
|
|
| 0 | Hora de inicio (0-23) |
|
||
|
|
| 1 | Minuto de inicio (0-59) |
|
||
|
|
| 2 | Hora de fin (0-23) |
|
||
|
|
| 3 | Minuto de fin (0-59) |
|
||
|
|
| 4 | Intervalo entre ciclos en segundos |
|
||
|
|
| 5 | Modo de operacion (`rapido` o `full`) |
|
||
|
|
|
||
|
|
**Ejemplo:** `[6, 30, 13, 15, 300, "rapido"]` significa:
|
||
|
|
- Activo desde las 06:30 hasta las 13:15
|
||
|
|
- Cada 300 segundos (5 minutos)
|
||
|
|
- Modo rapido
|
||
|
|
|
||
|
|
### DIAS_ACTIVOS
|
||
|
|
|
||
|
|
Array con los dias de la semana en formato numerico:
|
||
|
|
|
||
|
|
| Valor | Dia |
|
||
|
|
|-------|-----|
|
||
|
|
| 0 | Lunes |
|
||
|
|
| 1 | Martes |
|
||
|
|
| 2 | Miercoles |
|
||
|
|
| 3 | Jueves |
|
||
|
|
| 4 | Viernes |
|
||
|
|
| 5 | Sabado |
|
||
|
|
| 6 | Domingo |
|
||
|
|
|
||
|
|
**Ejemplo:** `[0, 1, 2, 3, 4]` = Lunes a Viernes
|
||
|
|
|
||
|
|
### Modos de operacion
|
||
|
|
|
||
|
|
- **rapido**: Busca correos con frecuencia alta (cada 5 min). Indicado para horas pico.
|
||
|
|
- **full**: Busca correos con frecuencia baja (cada 1 hora). Indicado para horas de baja actividad.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Variables de Entorno
|
||
|
|
|
||
|
|
| Variable | Valor | Descripcion |
|
||
|
|
|----------|-------|-------------|
|
||
|
|
| `PYTHONUNBUFFERED` | `1` | Desactiva buffering de Python para logs en tiempo real |
|
||
|
|
| `TZ` | `America/Lima` | Zona horaria del contenedor |
|
||
|
|
|
||
|
|
Estas se configuran en el `Dockerfile` y `docker-compose.yml`.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Seguridad
|
||
|
|
|
||
|
|
- **Nunca commitear** `config.json` al repositorio (ya esta en `.gitignore`)
|
||
|
|
- Usar volumenes Docker montados como solo lectura (`:ro`) para archivos sensibles
|
||
|
|
- En produccion, considerar usar Docker secrets o variables de entorno en vez de archivos JSON
|