প্রকল্প সম্পর্কে
Overflow একটি চলমান সার্ভিস হিসেবে overflow.nitjsefni.eu-তে উপলব্ধ। ব্যবহারকারীরা GitHub-এর মাধ্যমে সাইন-ইন করেন; হোস্ট করা ইনস্ট্যান্সটি ব্যবহার করার জন্য কোনো ডেপ্লয়মেন্টের প্রয়োজন নেই। রিপোজিটরির সেটআপ নির্দেশাবলীগুলো ডেভেলপমেন্ট এনভায়রনমেন্ট চালানোর জন্য, সার্ভিসটি ব্যবহার করার জন্য নয়।
একটি নিবন্ধিত পাবলিক GitHub রিপোজিটরিতে একটি ওপেনিং ক্যাটালগ এবং একটি অ্যাকচুয়াল ক্যাটালগ থাকে। রেজিস্ট্রেশন রিপোজিটরিতে ক্যাটালগ লেবেল তৈরি করে এবং একটি ওয়েবহুক ইনস্টল করে। স্পনসররা একটি ইস্যু-তে ওপেনিং লেবেল প্রয়োগ করেন; ক্লোজিং পুল রিকোয়েস্টের ফাইনাল কমিটের পর এবং মার্জ করার আগে, তারা একটি অ্যাকচুয়াল-ক্যাটালগ লেবেল প্রয়োগ করেন এবং সেই লেবেলের নাম উল্লেখ করে একটি কমেন্ট পোস্ট করেন। সেটেলড ক্রেডিট ট্রান্সফারগুলো অডিটেবল প্রুফসহ রেকর্ড করা হয়; ক্যাটালগের পরিবর্তনগুলো ভার্সন করা হয় এবং ইতিমধ্যে সেটেল হওয়া কাজের মূল্য পুনরায় নির্ধারণ করে না।
সাইন-ইন করা সদস্যরা Ledger, Issues, Settlements, Register a repository, Calibration এবং Rules পেজগুলো পড়তে পারেন। লেজারটি Overflow-প্রদত্ত API টোকেনের মাধ্যমে প্রোগ্রাম্যাটিক রিপোজিটরি রেজিস্ট্রেশন সমর্থন করে। অ্যাকাউন্টগুলো এখনও ব্রাউজার GitHub সাইন-ইন-এর মাধ্যমে ম্যানুয়ালি রেজিস্টার করা হয়। Register a repository পেজে একটি টোকেন জেনারেট হয়, যা কেবল একবার দেখানো হয়, হ্যাশ হিসেবে সংরক্ষিত থাকে এবং পুনরায় জেনারেট করা যেতে পারে, যা আগের টোকেনটিকে বাতিল করে দেয়। POST /api/tokens একটি সেম-অরিজিন সেশন কুকি ব্যবহার করে টোকেন মিন্ট করে; এর জন্য APP_URL-এর সাথে মিল থাকা একটি Origin হেডার এবং হয় কোনো বডি না থাকা অথবা Content-Type application/json প্রয়োজন। POST /api/repositories একটি বেয়ারার টোকেন এবং repositoryUrl, openingName, actualName, openingLabels এবং actualLabels সহ JSON গ্রহণ করে; অ্যাকচুয়াল ক্যাটালগে ১ থেকে ১০ পয়েন্ট কভার করে ঠিক দশটি এন্ট্রি থাকতে হবে। ত্রুটিগুলোর জন্য কোড এবং মেসেজ সহ একটি JSON এরর এনভেলাপ ব্যবহৃত হয়। PATCH /api/repositories একটি নতুন ক্যাটালগ ভার্সন যুক্ত করে; এই ভার্সনটি পরিবর্তনের মুহূর্ত থেকে কার্যকর হয়, তাই আগের এভিডেন্স উইন্ডো তাদের রেকর্ড করা ফিগারগুলো ধরে রাখে।
রিড এন্ডপয়েন্টগুলো সেই একই JSON রিটার্ন করে যা পেজগুলো রেন্ডার করে: GET /api/dashboard, ঐচ্ছিক রিপোজিটরি, openingLabel এবং claimState ফিল্টারসহ GET /api/issues, GET /api/settlements, GET /api/settlements/id এবং GET /api/calibration। এগুলো বেয়ারার ovf_ টোকেন বা ব্রাউজার কুকি ব্যবহার করে; রিড-এর ক্ষেত্রে কোনো অরিজিন চেক নেই এবং কোনো রিকোয়েস্ট বডি নেওয়া হয় না। রেসপন্সগুলো অথেন্টিকেটেড অ্যাকাউন্টের সাথে সীমাবদ্ধ; সেটেলমেন্ট প্রুফ কেবল সেই সেটেলমেন্টের সংশ্লিষ্ট পক্ষের জন্য উপলব্ধ। রিড ব্যর্থ হলে কিছু ফিল্ড null হয়ে যায় এবং লিস্ট রিডগুলো সাম্প্রতিক ২০০টি রো-তে সীমাবদ্ধ।
এজেন্ট হারনেসগুলোর জন্য API-টি POST /api/mcp-এর মাধ্যমে MCP টুলস হিসেবে এক্সপোজ করা হয়েছে। অথেন্টিকেশনে একই ovf_ টোকেন ব্যবহৃত হয়। ট্রান্সপোর্টটি স্টেটলেস স্ট্রিমযোগ্য HTTP: প্রতি POST-এ একটি JSON-RPC রিকোয়েস্ট, কলগুলোর মধ্যে কোনো সেশন স্টেট নেই, প্রোটোকল ভার্সন 2025-06-18 ইনিশিয়ালাইজ করে এবং নোটিফিকেশনগুলো একটি খালি HTTP 202 গ্রহণ করে। MCP-এর মাধ্যমে কুকি-অথেন্টিকেটেড রাইট প্রত্যাখ্যান করা হয় কারণ সিন্থেসাইজড ইন্টারনাল কলগুলোতে সেম-অরিজিন গার্ডের জন্য Origin হেডার থাকে না।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.