프로젝트 소개

swf-remote는 Brookhaven National Laboratory의 방화벽 뒤에 호스팅된 PanDA 프로덕션 모니터링 서비스에 대해 외부 오픈 인터넷 접속을 제공하는 Django/Apache 웹 애플리케이션입니다. 이 서비스는 Electron Ion Collider의 ePIC 실험을 지원하며 epic-devcloud.org에서 운영되고 있습니다. 아키텍처: 이 애플리케이션은 autossh 및 systemd로 관리되는 지속적인 SSH 터널을 통해 swf-monitor라는 내부 서비스로부터 렌더링된 전체 HTML 페이지를 프록시합니다. swf-remote는 PanDA 데이터를 로컬에 보유하지 않으며, 모든 데이터는 PanDA 데이터베이스에 직접 액세스할 수 있는 swf-monitor에서 실시간으로 가져옵니다. 프록시는 업스트림 URL을 로컬 /prod/ 경로로 재작성하고, 원래 페이지의 본문과 스타일링은 유지하면서 로컬 인증 제어 기능을 적용합니다. 페이지: 허브는 활동 개요(상태, 사용자, 사이트별 작업/태스크 수), DataTables 필터링이 적용된 작업 목록, 파일 및 오류가 포함된 작업 상세 레코드, JEDI 태스크 목록, 빈도순으로 정렬된 오류 요약, 실패한 작업 진단, 운영 상태 스냅샷, 시스템 상태, MCP 릴레이 엔드포인트 및 API 토큰 관리를 포함한 모니터링 뷰로 연결됩니다. 인증: 익명 방문자는 랜딩 페이지, 로그인 경로 및 정적 자산만 볼 수 있습니다. 계정은 로컬 사용자 이름/비밀번호 또는 GitHub 로그인을 통해 생성됩니다(eic 조직 멤버십은 필요하지 않음). 헤드리스 클라이언트는 사용자별 Bearer 토큰으로 인증합니다. MCP 릴레이: swf-monitor의 MCP 엔드포인트와 전체 도구 세트를 로그인한 사용자의 권한으로 터널을 통해 전달하며, 외부 도구 세트는 정책 파일에 의해 제한됩니다. 스택: Python 3.11 기반의 Django 5.2, Django 내부용 PostgreSQL, mod_wsgi가 포함된 Apache, 업스트림 REST 호출을 위한 httpx, HTTPS를 위한 Let's Encrypt를 사용합니다. 설정에는 SWF_REMOTE_ 접두사가 붙은 환경 변수가 사용됩니다. 자매 프로젝트: swf-monitor(PanDA DB 액세스, REST API, MCP 서버를 갖춘 내부 Django 서비스), swf-testbed(스트리밍 워크플로우 테스트베드 오케스트레이션), swf-common-lib(공유 유틸리티).