সিক্রেট ও এনভায়রনমেন্ট ভেরিয়েবল, চ্যাটে কী পেস্ট না করেই
বেশির ভাগ আসল অ্যাপের অন্তত একটি সিক্রেট লাগে: একটি পেমেন্ট প্রদানকারীর কী, একটি ইমেল সার্ভিসের কী, একটি AI API-র কী। Mythex-এ আপনি সেগুলো প্রম্পটে পেস্ট করেন না। এজেন্টের যখন একটি কী লাগে, সে চ্যাটে একটি secrets request কার্ড দেখায়, আপনি কার্ডের ভেতরে মানটি টাইপ করেন, আর সেটি একটি প্রজেক্ট সিক্রেট হিসেবে সংরক্ষিত হয়, যা আপনার অ্যাপ পড়তে পারে — কথোপকথনে কী না উঠেই।
এটি কী করে
প্রতিটি Mythex প্রজেক্ট environment variables সংরক্ষণ করতে পারে: নামকৃত মান, যেমন STRIPE_SECRET_KEY, যা আপনার অ্যাপ চলার সময় পড়ে, কোডে লিখে রাখার বদলে। সিক্রেট হলো সেই এনভায়রনমেন্ট ভেরিয়েবল, যার মান গোপন রাখতে হবে।
একই মানগুলো দুই জায়গায় পাওয়া যায়:
- স্যান্ডবক্স, যেখানে আপনি কাজ করার সময় এজেন্ট আপনার অ্যাপ বানায় ও চালায়।
- আপনার প্রকাশিত ডিপ্লয়মেন্টগুলো, যেখানে দর্শকেরা এটি ব্যবহার করেন।
এগুলো যোগ করার তিনটি উপায় আছে:
- secrets request কার্ড, যা কোনো কিছু শেষ করতে কী লাগলে এজেন্ট চ্যাটে দেখায়।
- Project settings → Secrets, যেখানে যেকোনো সময় মান যোগ বা সম্পাদনা করতে পারেন।
- চ্যাটে
/secrets, অনুরোধে সিক্রেট যোগ বা আপডেট করতে।
কেন এটি সাহায্য করে
এজেন্টকে কী দেওয়ার সরাসরি উপায় হলো সেটি বার্তায় পেস্ট করা। এতে কাজ হয়, কিন্তু কীটি তখন আপনার চ্যাট ইতিহাসের অংশ হয়ে যায়, সাদা টেক্সটে আপনার বাকি কথার পাশে পড়ে থাকে।
সিক্রেট কার্ড মানটিকে ট্রান্সক্রিপ্টের বাইরে রাখে। আপনি মেসেজ বক্সে নয়, কার্ডের ফিল্ডে লেখেন, আর সেটি প্রজেক্ট সিক্রেট হিসেবে সংরক্ষিত হয়। এজেন্ট স্যান্ডবক্সে কীটি হাতে নিয়ে এগিয়ে যায়।
কোডের বদলে প্রজেক্ট সেটিংসে কী রাখার আরও কিছু সুবিধা আছে:
- কী সোর্স কন্ট্রোলের বাইরে থাকে। আপনার কোড একটি কীকে নাম ধরে উল্লেখ করে; মানটি থাকে প্রজেক্ট সেটিংসে।
- এজেন্ট ও আপনার চালু অ্যাপ একই কনফিগারেশন দেখে। কোনো পুরোনো হয়ে যাওয়া কপি থাকে না।
- কোড না বদলেই কী রোটেট করা যায়। সেটিংসে মান বদলান; কোড এখনও নাম দিয়েই পড়ে।
এনভায়রনমেন্ট ভেরিয়েবল আপনার কাছে নতুন হলে, environment variables ও secrets কী গাইডটি ধারণাটি শুরু থেকে ব্যাখ্যা করে।
সিক্রেট কার্ড কীভাবে ব্যবহার করবেন
- ফিচারটি চান — যেমন, “কেউ সাইন আপ করলে একটি স্বাগতম ইমেল পাঠাও”।
- এজেন্টের কী লাগলে, চ্যাটে একটি secrets request কার্ড আসে, যেখানে কোন মানটি লাগবে তা লেখা থাকে।
- মানটি কার্ডের ফিল্ডে লিখুন, মেসেজ বক্সে নয়।
- নিশ্চিত করুন। মানটি প্রজেক্ট সিক্রেট হিসেবে সংরক্ষিত হয়।
- এজেন্ট এগিয়ে যায়, স্যান্ডবক্সে কীটি হাতে থাকা অবস্থায়।
নিজে কীভাবে সিক্রেট যোগ করবেন
- Project settings খুলুন, তারপর Secrets।
STRIPE_SECRET_KEY,OPENAI_API_KEY, বা আপনার নিজের সার্ভিসের ক্রেডেনশিয়াল যোগ করুন।- এজেন্টকে বলুন আপনার ফ্রেমওয়ার্কের স্ট্যান্ডার্ড উপায়ে সেগুলো পড়তে — যেমন Node অ্যাপে
process.envথেকে। - প্রকাশিত অ্যাপের নতুন মান দরকার হলে আবার প্রকাশ করুন।
আপনি চ্যাটে /secrets টাইপ করেও সেগুলো যোগ বা আপডেট করতে পারেন।
প্রকাশিত অ্যাপে সিক্রেট বদলানো
একটি প্রকাশিত অ্যাপ প্রকাশের সময় সিক্রেট তুলে নেয়। একটি যোগ বা বদলানোর পর লাইভ ডিপ্লয়মেন্ট নতুন মান পেতে আবার প্রকাশ করুন। ততক্ষণ পর্যন্ত দর্শকেরা পুরোনো কনফিগারেশন নিয়েই অ্যাপটি ব্যবহার করছেন।
নিরাপত্তার টিপস
- কোনো সিক্রেট কখনো রিপোজিটরিতে কমিট করবেন না। প্রজেক্ট সেটিংসে রাখুন।
- বিশেষাধিকারের কাজে শুধু-সার্ভার কী ব্যবহার করুন। যে কী কার্ড চার্জ করতে বা ইমেল পাঠাতে পারে, সেটি এমন কোডে থাকা উচিত যা সার্ভারে চলে, দর্শকের ব্রাউজারে ডাউনলোড হওয়া কিছুতে নয়।
- কোনো কী চ্যাট ইতিহাসে এলে সেটি রোটেট করুন। প্রদানকারীর কাছে নতুন কী তৈরি করুন, পুরোনোটি বাতিল করুন, আর প্রজেক্ট সেটিংসে মান আপডেট করুন। চ্যাটে পেস্ট করা যেকোনো কীকে ফাঁস হয়েছে ধরে নিন।
সীমাবদ্ধতা
- কার্ডটি তখনই সাহায্য করে, যখন আপনি সেটি ব্যবহার করেন। মেসেজ বক্সে কী পেস্ট করলে তা ট্রান্সক্রিপ্টে থেকে যায়। প্রদানকারীর কাছে সেটি রোটেট করুন এবং সংরক্ষিত মান আপডেট করুন।
- প্রকাশিত অ্যাপে নতুন বা বদলানো সিক্রেট পেতে আবার প্রকাশ দরকার।
- কী নিরাপদে সংরক্ষণ করলেই তার সব ব্যবহার নিরাপদ হয় না। কোথায় কী ব্যবহার হচ্ছে, সেটিও গুরুত্বপূর্ণ — বিশেষাধিকারের কীগুলো আপনার অ্যাপের সার্ভার অংশে রাখুন।
একটি অ্যাপ শেয়ার করার আগে তা নিরাপদ রাখার আরও তথ্যের জন্য AI-বানানো অ্যাপের নিরাপত্তা চেকলিস্ট দেখুন।
ডকসে বিস্তারিত আছে: Environment variables ও secrets এবং চ্যাটে Secrets।