প্রকল্প সম্পর্কে

swf-remote হলো একটি Django/Apache ওয়েব অ্যাপ্লিকেশন যা Brookhaven National Laboratory-র ফায়ারওয়ালের পেছনে হোস্ট করা PanDA প্রোডাকশন মনিটরিং পরিষেবাগুলোতে এক্সটারনাল, ওপেন-ইন্টারনেট অ্যাক্সেস প্রদান করে। এটি Electron Ion Collider-এর ePIC এক্সপেরিমেন্টের জন্য ব্যবহৃত হয় এবং epic-devcloud.org-এ লাইভ রয়েছে। আর্কিটেকচার: এই অ্যাপ্লিকেশনটি autossh এবং systemd দ্বারা পরিচালিত একটি পারসিস্টেন্ট SSH টানেলের মাধ্যমে swf-monitor নামক একটি ইন্টারনাল সার্ভিস থেকে সম্পূর্ণ রেন্ডার করা HTML পেজগুলো প্রক্সি করে। swf-remote স্থানীয়ভাবে কোনো PanDA ডেটা সংরক্ষণ করে না; সমস্ত ডেটা রিয়েল-টাইমে swf-monitor থেকে সংগ্রহ করা হয়, যার PanDA ডেটাবেসে সরাসরি অ্যাক্সেস রয়েছে। এই প্রক্সিটি আপস্ট্রিম 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 (শেয়ারড ইউটিলিটি)।