Об этом проекте

swf-remote — это веб-приложение на базе Django/Apache, которое предоставляет внешний доступ через открытый интернет к сервисам мониторинга PanDA, размещенным за брандмауэром Brookhaven National Laboratory. Оно обслуживает эксперимент ePIC в Electron Ion Collider и доступно по адресу epic-devcloud.org. Архитектура: Приложение проксирует полностью отрендеренные HTML-страницы из внутреннего сервиса swf-monitor через постоянный SSH-туннель, управляемый autossh и systemd. swf-remote не хранит данные PanDA локально; все данные извлекаются в режиме реального времени из swf-monitor, который имеет прямой доступ к базе данных PanDA. Прокси перезаписывает URL-адреса вышестоящего сервера на локальные пути /prod/ и заменяет их локальными средствами аутентификации, сохраняя при этом исходное тело и стили страницы. Страницы: Хаб содержит ссылки на представления мониторинга, включая обзор активности (количество заданий/задач по статусу, пользователю, сайту), списки заданий с фильтрацией DataTables, записи с деталями заданий, файлами и ошибками, списки задач JEDI, сводки ошибок, ранжированные по частоте, диагностику неудачных заданий, снимки операционного состояния, состояние системы, конечную точку реле MCP и управление API-токенами. Аутентификация: Анонимные посетители видят только целевую страницу, путь входа и статические ресурсы. Аккаунты создаются с помощью локального имени пользователя/пароля или через вход в GitHub (членство в организации eic не требуется). Безголовые клиенты аутентифицируются с помощью пользовательских Bearer-токенов. Реле MCP: Пересылает конечную точку MCP swf-monitor и весь ее набор инструментов через туннель от имени авторизованного пользователя, при этом внешний набор инструментов ограничен файлом политики. Стек: Django 5.2 с Python 3.11, PostgreSQL только для внутренних нужд Django, Apache с mod_wsgi, httpx для REST-вызовов к вышестоящему серверу и Let's Encrypt для HTTPS. Конфигурация использует переменные окружения с префиксом SWF_REMOTE_. Смежные проекты: swf-monitor (внутренний сервис Django с доступом к БД PanDA, REST API, MCP-сервером), swf-testbed (оркестрация тестовой среды потоковых рабочих процессов) и swf-common-lib (общие утилиты).