عن المشروع

swf-remote هو تطبيق ويب مبني على Django/Apache يوفر وصولاً خارجياً عبر الإنترنت المفتوح إلى خدمات مراقبة إنتاج PanDA المستضافة خلف جدار الحماية الخاص بمختبر Brookhaven الوطني. يخدم التطبيق تجربة ePIC في مصادم الأيونات الإلكتروني (Electron Ion Collider) وهو متاح حالياً على epic-devcloud.org. البنية التحتية: يقوم التطبيق بعمل وكيل (proxy) لصفحات HTML الكاملة والمصيرة من خدمة داخلية تسمى swf-monitor من خلال نفق SSH مستمر يتم إدارته بواسطة autossh و systemd. لا يحتفظ swf-remote بأي بيانات PanDA محلياً؛ حيث يتم جلب جميع البيانات في الوقت الفعلي من swf-monitor، التي تمتلك وصولاً مباشراً إلى قاعدة بيانات PanDA. يقوم الوكيل بإعادة كتابة عناوين URL المصدر إلى مسارات /prod/ محلية ويستبدل ضوابط المصادقة المحلية مع الحفاظ على جسم الصفحة الأصلي وتنسيقها. الصفحات: يربط المركز بآراء المراقبة بما في ذلك نظرة عامة على النشاط (أعداد الوظائف/المهام حسب الحالة والمستخدم والموقع)، وقوائم الوظائف مع تصفية DataTables، وسجلات تفاصيل الوظائف مع الملفات والأخطاء، وقوائم مهام JEDI، وملخصات الأخطاء المصنفة حسب التكرار، وتشخيصات الوظائف الفاشلة، ولقطات الحالة التشغيلية، وصحة النظام، ونقطة نهاية MCP relay، وإدارة رموز API. المصادقة: يرى الزوار المجهولون فقط صفحة الهبوط ومسار تسجيل الدخول والأصول الثابتة. يتم إنشاء الحسابات عبر اسم مستخدم/كلمة مرور محلية أو تسجيل الدخول عبر GitHub (عضوية منظمة eic ليست مطلوبة). وتتم مصادقة العملاء بدون واجهة (Headless clients) باستخدام رموز Bearer لكل مستخدم. MCP relay: يقوم بتوجيه نقطة نهاية 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 (أدوات مشتركة).