# SaveUrl (FTP → URLs → SQL Server) Este proyecto **lee listados de archivos desde un FTP**, **construye URLs** por archivo y **guarda nuevas URLs en SQL Server** (tabla `URL_FTP`). La ejecución genera **logs “estructurados” en Kafka** y envía **notificación por webhook** ante errores. La documentación completa vive en la carpeta [`documentacion/`](documentacion/). Si solo necesitas “por dónde empezar”, usa los links por rol de abajo. ## Inicio rápido (por rol) - **Operación / soporte**: [`documentacion/07_RUNBOOK_OPERACION.md`](documentacion/07_RUNBOOK_OPERACION.md) y [`documentacion/08_TROUBLESHOOTING.md`](documentacion/08_TROUBLESHOOTING.md) - **Despliegue en Airflow**: [`documentacion/04_DESPLIEGUE_AIRFLOW.md`](documentacion/04_DESPLIEGUE_AIRFLOW.md) y [`documentacion/03_CONFIGURACION_VARIABLES.md`](documentacion/03_CONFIGURACION_VARIABLES.md) - **Desarrollo / mantenimiento**: [`documentacion/02_INSTALACION_LOCAL.md`](documentacion/02_INSTALACION_LOCAL.md), [`documentacion/05_FLUJO_Y_ARQUITECTURA.md`](documentacion/05_FLUJO_Y_ARQUITECTURA.md) y [`documentacion/06_REFERENCIA_TECNICA_SAVEURL.md`](documentacion/06_REFERENCIA_TECNICA_SAVEURL.md) - **Seguridad**: [`documentacion/09_SEGURIDAD_Y_SECRETS.md`](documentacion/09_SEGURIDAD_Y_SECRETS.md) - **Índice completo**: [`documentacion/00_INDICE.md`](documentacion/00_INDICE.md) ## Cómo se ejecuta (dos caminos) ### 1) Desarrollo local (usa `.env`) Para desarrollo/pruebas locales se usa `.env` para que cada desarrollador pueda **cambiar credenciales** y reproducir casos rápidamente. - **Plantilla**: copiar `.env.example` → `.env` y completar valores (nunca subir `.env` al repo). - **Guía**: ver [`documentacion/02_INSTALACION_LOCAL.md`](documentacion/02_INSTALACION_LOCAL.md) y [`documentacion/03_CONFIGURACION_VARIABLES.md`](documentacion/03_CONFIGURACION_VARIABLES.md) Comandos típicos en Windows: ```powershell python -m venv env .\env\Scripts\Activate.ps1 python SaveUrl.py ``` ### 2) En Airflow (usa Airflow Variables) En el entorno Airflow, la configuración se lee desde **Airflow Variables** (no desde `.env`). - **Despliegue**: ver [`documentacion/04_DESPLIEGUE_AIRFLOW.md`](documentacion/04_DESPLIEGUE_AIRFLOW.md) - **Variables requeridas**: ver [`documentacion/03_CONFIGURACION_VARIABLES.md`](documentacion/03_CONFIGURACION_VARIABLES.md) > Nota: el DAG importa `SaveUrl.py` desde una ruta esperada dentro del contenedor (detalles en la guía de despliegue). ## Componentes principales - `SaveUrl.py`: lógica de negocio (entrypoint `run_save_url`). - `dag_save_url_ftp.py`: DAG que ejecuta `run_save_url` en Airflow. - `documentacion/`: documentación de operación, despliegue y referencia técnica. ## Configuración - **Lista completa de variables (local y Airflow)**: [`documentacion/03_CONFIGURACION_VARIABLES.md`](documentacion/03_CONFIGURACION_VARIABLES.md) - **Seguridad de secretos**: [`documentacion/09_SEGURIDAD_Y_SECRETS.md`](documentacion/09_SEGURIDAD_Y_SECRETS.md) ## Troubleshooting Si ves errores de conexión a FTP/SQL Server, problemas de SSL/SASL de Kafka o fallos de webhook, empieza por: - [`documentacion/08_TROUBLESHOOTING.md`](documentacion/08_TROUBLESHOOTING.md) - [`documentacion/07_RUNBOOK_OPERACION.md`](documentacion/07_RUNBOOK_OPERACION.md)