নিবন্ধিত পরিচয়
প্রতিটি এজেন্ট একটি রেকর্ড: স্থিতিশীল agent_id, ভূমিকা, Ed25519 কী বাইন্ডিং, তৈরির তারিখ। আর অনুমান করার কোনো প্রয়োজন নেই যে কোন প্রক্রিয়া কী করেছে — রেজিস্ট্রি হলো কে বিদ্যমান তার সত্য উৎস।
২০২৭ সালের মধ্যে এটি কেবল ফ্লিট নয় — এবং বেনামী প্রক্রিয়াগুলির একটি ফ্লিট একটি দায়বদ্ধতা। LeanCTX প্রতিটি এজেন্টকে একটি নিবন্ধিত পরিচয় করে তোলে: অনন্য, একজন মানুষের মালিকানাধীন, লাইফসাইকেল-পরিচালিত, প্রত্যয়িত এবং প্রত্যাহারযোগ্য — প্রতিটি পরিবর্তনে অপরিবর্তনীয় অডিট ট্রেইলে।
ভূমিকাগুলি থাকে পুনঃব্যবহারযোগ্য অনুমতি প্রোফাইল হিসাবে। পরিচয় তার উপরে জবাবদিহিতা যুক্ত করে: agent_id, owner, status, key binding, attestation, heartbeat। চারটি বৈশিষ্ট্য একটি ফ্লিটকে পরিচালনাযোগ্য করে তোলে।
প্রতিটি এজেন্ট একটি রেকর্ড: স্থিতিশীল agent_id, ভূমিকা, Ed25519 কী বাইন্ডিং, তৈরির তারিখ। আর অনুমান করার কোনো প্রয়োজন নেই যে কোন প্রক্রিয়া কী করেছে — রেজিস্ট্রি হলো কে বিদ্যমান তার সত্য উৎস।
একজন মানব মালিক ছাড়া নিবন্ধন প্রত্যাখ্যান করা হয়। জবাবদিহিতা কাঠামোগত: প্রতিটি অডিট এন্ট্রি, প্রতিটি লাইফসাইকেল ইভেন্ট, প্রতিটি প্রমাণ বান্ডিল একজন ব্যক্তির কাছে ট্র্যাক করে যিনি এজেন্টের জন্য উত্তর দেন।
একটি এজেন্ট স্থগিত করুন, অথবা একজন মালিককে অফবোর্ড এবং তাদের পুরো ফ্লিটটি অ্যাটমিকভাবে স্থগিত করুন — প্রতিটি স্থগিতকরণ স্বতন্ত্রভাবে নিরীক্ষিত হয়। কমিশনিং চূড়ান্ত এবং অডিট-সমাপনী এন্ট্রি লেখে।
নিবন্ধনের সময় এবং প্রতিটি হার্টবিটে বাইনারি এবং ভূমিকা-কনফিগারেশন হ্যাশ। বিচ্যুতি অবিলম্বে দৃশ্যমান হয় (exit code 3) — আপগ্রেড, কনফিগ সম্পাদনা বা কারসাজি। আমরা নথিভুক্ত করি এটি কী রক্ষা করে না।
সবকিছুই CLI-প্রথম এবং এক্সিট-কোড সৎ, তাই আপনার পাইপলাইন এবং আপনার মনিটরিং এটিতে কাজ করতে পারে।
$ lean-ctx agent register --id ci-reviewer-1 --role reviewer --owner alice@org registered: ci-reviewer-1 (role reviewer, owner alice@org) spiffe id: spiffe://org.example/agent/reviewer/ci-reviewer-1 $ lean-ctx agent heartbeat ci-reviewer-1 # liveness + drift; exit 3 on drift $ lean-ctx agent offboard-owner alice@org --reason "left company" suspended 2 agent(s): ci-coder-1, ci-reviewer-1 $ lean-ctx agent check ci-reviewer-1 # enforce-path decision point ci-reviewer-1: DENIED — suspended: left company # exit 1
প্রতিটি ট্রানজিশন একটি টেম্পার-প্রুফ অডিট এন্ট্রি লেখে — রেজিস্টার্ড, সাসপেন্ডেড, রেজুমড, ডিকমিশনিড হলো স্ট্যান্ডার্ডাইজড ইভেন্ট টাইপ (OCP Part 4), তাই আইডেন্টিটির ইতিহাস স্বয়ংক্রিয়ভাবে আপনার এভিডেন্স বান্ডেলে জমা হয়। সম্পূর্ণ মডেল এবং থ্রেট মডেল: agent-identity docs।
"কারো চলে গেলে কী হয়?"
তাদের এজেন্টগুলো বন্ধ হয়ে যায়। যান্ত্রিকভাবে। মালিকের অফবোর্ডিং প্রক্রিয়া সেই মালিকের প্রতিটি সক্রিয় এজেন্টের সাসপেন্ড করে একটি লক করা ট্রানজাকশনে — যা আপনার SCIM ডিপ্রোভিশনিং ফ্লোতে ওয়্যার করা যেতে পারে বা লিভার চেক্লিস্ট থেকে চালানো যায়। অনাথ এজেন্টরা হলো এজেন্ট যুগের ভুলে যাওয়া সার্ভিস অ্যাকাউন্ট; LeanCTX সেগুলোকে কাঠামোগতভাবে অসম্ভব করে তোলে।
একটি রোল বলে দেয় যে একটি প্রক্রিয়া কী করতে পারে; একটি আইডেন্টিটি বলে দেয় যে এর জন্য কে জবাবদিহি করবে। ফ্লিটগুলোর ক্ষেত্রে, গুরুত্বপূর্ণ প্রশ্নগুলো অপারেশনাল: এই এজেন্ট কার মালিকানাধীন, এটি শেষ কবে সক্রিয় ছিল, কে এটিকে বন্ধ করেছে এবং কেন, যখন এর মালিক চলে যায় তখন এর অনুমতিগুলো কী হয়? রেজিস্ট্রি যান্ত্রিকভাবে উত্তর দেয় — আইডেন্টিটি (কে) রোল (কী) থেকে আলাদা থাকে, তাই রোলগুলি পুনরায় ব্যবহারযোগ্য প্রোফাইল হিসাবে থাকে।
একটি এজেন্ট যার মানব মালিক কোম্পানি ছেড়ে চলে গেছে কিন্তু যা তার ক্রেডেনশিয়াল দিয়ে চলতে থাকে — এটি ভুলে যাওয়া সার্ভিস অ্যাকাউন্টের এজেন্ট-যুগের সংস্করণ, তবে এটি কোড পড়ে এবং কমান্ড চালায়। LeanCTX এটিকে কাঠামোগতভাবে বন্ধ করে: রেজিস্ট্রেশনের সময় মালিক বাধ্যতামূলক, এবং একটি কমান্ড (বা আপনার SCIM ডিপ্রোভিশনিং ফ্লো) একটি একক লক করা ট্রানজাকশনে মালিকের পুরো সক্রিয় ফ্লিট সাসপেন্ড করে, প্রতিটি সাসপেনশন অডিট করা হয়।
active → suspended ⇄ active → decommissioned। সাসপেনশন একটি কারণ বহন করে এবং এটি বিপরীতমুখী; ডিকমিশনিং ডিজাইন অনুযায়ী চূড়ান্ত — রেকর্ডটি কখনও মুছে ফেলা হয় না এবং কখনও সক্রিয় করা হয় না, কারণ আইডেন্টিটিটি অডিট ইতিহাসের অংশ। প্রতিটি ট্রানজিশন স্ট্যান্ডার্ডাইজড ইভেন্ট টাইপ ব্যবহার করে একটি টেম্পার-প্রুফ অডিট এন্ট্রি লেখে (agent_registered, agent_suspended, agent_resumed, agent_decommissioned — OCP Part 4), তাই আইডেন্টিটির পরিবর্তনগুলো স্বয়ংক্রিয়ভাবে এভিডেন্স বান্ডেলে দেখা যায়।
রেজিস্ট্রেশন এবং প্রতিটি হার্টবিট রানিং বাইনারি এবং সক্রিয় রোল ফাইলকে হ্যাশ করে। একটি পরিবর্তিত হ্যাশ মানে কিছু পরিবর্তন হয়েছে — একটি আপগ্রেড, একটি কনফিগারেশন এডিট, বা টেম্পারিং — এবং এটি ড্রिफ्ट হিসাবে দেখা যায় যার জন্য আপনার মনিটরিং একটি নন-জিরো এক্সিট কোডে অ্যালার্ট করতে পারে। এটি হলো ড্রফট ডিটেকশন, রিমোট অ্যাটেস্টেশন নয়: সম্পূর্ণ হোস্ট নিয়ন্ত্রণ সহ একজন আক্রমণকারী হ্যাশ জাল করতে পারে, এবং আমাদের থ্রেট মডেল তা স্পষ্টভাবে বলে। এটি হোস্ট হার্ডেনিং এবং কোড সাইনিংকে পরিপূরক করে, প্রতিস্থাপন করে না।
তিনটি হুক। SPIFFE: প্রতিটি রেকর্ড spiffe://<trust-domain>/agent/<role>/<agent_id> এ ম্যাপ করে, তাই K8s ওয়ার্কলোড আইডেন্টিটি (SPIRE) এবং LeanCTX আইডেন্টিটি একই নাম। SCIM: আপনার ডিপ্রোভিশনিং ফ্লোকে মালিকের অফবোর্ডিং কলের সাথে ওয়্যার করুন। এনফোর্স মোড: চেক API হলো একটি একক সিদ্ধান্ত বিন্দু — অনিবন্ধিত বা সাসপেন্ডেড এজেন্টদের অস্বীকার করা হয়; মনিটর মোডে শুরু করুন, যখন ফ্লিটটি রেজিস্টার হবে তখন এনফোর্স-এ পরিবর্তন করুন।
এক মিনিটে, স্থানীয়ভাবে এবং বিনামূল্যে আপনার প্রথম এজেন্ট নিবন্ধন করুন — অথবা SCIM এবং SPIFFE সহ ফ্লিট রোলআউটের বিষয়ে আমাদের সাথে কথা বলুন।