Sobre el proyecto
swf-remote es una aplicación web Django/Apache que proporciona acceso externo a través de internet abierta a los servicios de monitoreo de producción de PanDA alojados detrás del firewall del Brookhaven National Laboratory. Sirve al experimento ePIC en el Electron Ion Collider y está disponible en epic-devcloud.org.
Arquitectura: La aplicación actúa como proxy de páginas HTML renderizadas completas desde un servicio interno llamado swf-monitor a través de un túnel SSH persistente gestionado por autossh y systemd. swf-remote no almacena datos de PanDA localmente; todos los datos se obtienen en tiempo real desde swf-monitor, que tiene acceso directo a la base de datos de PanDA. El proxy reescribe las URLs upstream a rutas locales /prod/ e intercambia los controles de autenticación locales mientras preserva el cuerpo y el estilo originales de la página.
Páginas: El centro enlaza a vistas de monitoreo que incluyen el resumen de actividad (recuentos de trabajos/tareas por estado, usuario, sitio), listas de trabajos con filtrado de DataTables, registros detallados de trabajos con archivos y errores, listas de tareas JEDI, resúmenes de errores clasificados por frecuencia, diagnósticos de trabajos fallidos, instantáneas del estado operativo, salud del sistema, un endpoint de relay MCP y gestión de tokens de API.
Autenticación: Los visitantes anónimos solo ven una página de inicio, la ruta de inicio de sesión y activos estáticos. Las cuentas se crean mediante nombre de usuario/contraseña local o inicio de sesión con GitHub (no se requiere membresía de la organización eic). Los clientes headless se autentican con tokens Bearer por usuario.
Relay MCP: Reenvía el endpoint MCP de swf-monitor y su conjunto completo de herramientas a través del túnel como el usuario autenticado, con el conjunto de herramientas externas limitado por un archivo de política.
Stack: Django 5.2 con Python 3.11, PostgreSQL solo para internos de Django, Apache con mod_wsgi, httpx para llamadas REST upstream y Let's Encrypt para HTTPS. La configuración utiliza variables de entorno con el prefijo SWF_REMOTE_.
Proyectos hermanos: swf-monitor (el servicio Django interno con acceso a la DB de PanDA, API REST, servidor MCP), swf-testbed (orquestación de testbed de flujo de trabajo streaming) y swf-common-lib (utilidades compartidas).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.