5.4 KiB
Guia de Configuracion
config.json
Archivo de configuracion principal con credenciales y rutas. No commitear este archivo al repositorio.
Estructura completa
{
"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:
- Ir a Azure Portal > Azure Active Directory > App registrations
- Crear una nueva aplicacion o usar una existente
- Configurar permisos de Microsoft Graph:
Mail.Read(delegated) - 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:
dockerse usa cuando corre en contenedorlinux,mac,windowspara 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
{
"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.jsonal 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