একটি Firebase Extension তার নির্দিষ্ট কাজগুলো সম্পাদন করার জন্য, Firebase একটি সার্ভিস অ্যাকাউন্টের মাধ্যমে ইনস্টল করা এক্সটেনশনের প্রতিটি ইনস্ট্যান্সকে আপনার প্রজেক্ট এবং ডেটাতে সীমিত অ্যাক্সেস প্রদান করে।
সার্ভিস অ্যাকাউন্ট বলতে কী বোঝায়?
সার্ভিস অ্যাকাউন্ট হলো এক বিশেষ ধরনের গুগল ইউজার অ্যাকাউন্ট। এটি এমন একজন অ-মানব ব্যবহারকারীকে বোঝায়, যিনি গুগল এপিআই (API) ব্যবহার করে ডেটা অ্যাক্সেস করার জন্য অনুমোদিত।
একটি এক্সটেনশন ইনস্টল করার সময়, ফায়ারবেস আপনার প্রোজেক্টে একটি সার্ভিস অ্যাকাউন্ট তৈরি করে। এক্সটেনশনের প্রতিটি ইনস্টল করা ইনস্ট্যান্সের নিজস্ব সার্ভিস অ্যাকাউন্ট থাকে।
ফায়ারবেস একটি এক্সটেনশনের সার্ভিস অ্যাকাউন্টকে নির্দিষ্ট রোল (পারমিশনের সমষ্টি) বরাদ্দ করার মাধ্যমে আপনার প্রজেক্ট এবং ডেটাতে অ্যাক্সেস সীমিত করে। একটি এক্সটেনশন পরিচালনার জন্য প্রয়োজনীয় রোলগুলো এক্সটেনশন তৈরির সময় ফায়ারবেস দ্বারা নির্ধারিত হয়। ইনস্টলেশনের সময়, ফায়ারবেস এই রোলগুলো একটি এক্সটেনশনের সার্ভিস অ্যাকাউন্টে বরাদ্দ করে দেয়, এবং আপনার এই বরাদ্দকৃত রোলগুলোর কোনোটিই পরিবর্তন, সংযোজন বা মুছে ফেলা উচিত নয় (অন্যথায় আপনার ইনস্টল করা এক্সটেনশনটি প্রত্যাশিতভাবে কাজ করবে না)। তবে, আপনি এক্সটেনশনটি আনইনস্টল করতে পারেন, যা সার্ভিস অ্যাকাউন্টটি (এবং এর অ্যাক্সেস) সম্পূর্ণরূপে মুছে ফেলে।
এক্সটেনশনগুলির জন্য তৈরি পরিষেবা অ্যাকাউন্টগুলি নিম্নলিখিত বিন্যাসে থাকে:ext- extension-instance-id @ project-id .iam.gserviceaccount.com .
আপনার Firebase প্রোজেক্টের সাথে যুক্ত সমস্ত সার্ভিস অ্যাকাউন্ট আপনি আপনার সার্ভিস অ্যাকাউন্টস ট্যাবে দেখতে পারেন।
অনুমতি এবং ভূমিকা
একটি এক্সটেনশন তৈরির সময়, সেটি পরিচালনার জন্য কী ধরনের অ্যাক্সেস প্রয়োজন, তা ফায়ারবেস নির্ধারণ করে।
এক্সটেনশন ইনস্টলেশনের সময় Firebase এক্সটেনশনটির সার্ভিস অ্যাকাউন্টে যে রোলগুলো (অনুমতির সমষ্টি) বরাদ্দ করবে, সেগুলোকে স্পষ্টভাবে তালিকাভুক্ত করার মাধ্যমে এই অ্যাক্সেসের স্তরটি নির্ধারণ করে।
প্রতিটি রোল (এবং এর অন্তর্নিহিত অনুমতিসমূহ) একটি নির্দিষ্ট পণ্য বা পরিষেবার উপর ভিত্তি করে তৈরি হয়। রোলের উদাহরণ হলো firebasehosting.admin , bigquery.dataEditor , এবং firebasedatabase.admin । Firebase একটি এক্সটেনশনের স্পেসিফিকেশন ফাইলে ( extension.yaml ফাইলে ) সেই এক্সটেনশনের জন্য প্রয়োজনীয় রোলগুলোর তালিকা দিয়ে থাকে।
অফিসিয়াল Firebase এক্সটেনশনগুলির জন্য, ফায়ারবেস এই রোলের তালিকাটি পুঙ্খানুপুঙ্খভাবে পর্যালোচনা করে, যাতে একটি এক্সটেনশনের অ্যাক্সেস কঠোরভাবে শুধুমাত্র তার কাজের পরিধির মধ্যেই সীমাবদ্ধ থাকে। আপনি Firebase Extensions ড্যাশবোর্ডে এক্সটেনশনটির ডিটেইলস পেজ দেখে অথবা এর README ফাইলটি দেখেও, এক্সটেনশনটিকে দেওয়া অ্যাক্সেস নিজে পর্যালোচনা ও নিশ্চিত করতে পারেন।
প্রতিটি রোলের অন্তর্ভুক্ত অনুমতিগুলো সম্পর্কে জানুন:
আমি একটি এক্সটেনশন আনইনস্টল করলে কী হয়?
যখন আপনি আপনার প্রজেক্ট থেকে কোনো এক্সটেনশন আনইনস্টল করেন , তখন Firebase এক্সটেনশনটির সেই ইনস্ট্যান্সের জন্য তৈরি করা সার্ভিস অ্যাকাউন্টটি মুছে দেয়। সার্ভিস অ্যাকাউন্টটি মুছে ফেলার পর, এক্সটেনশনটি আপনার প্রজেক্টে আর চলতে পারে না, কারণ আপনার প্রজেক্ট বা ডেটাতে এটির আর কোনো অ্যাক্সেস রাইটস থাকে না।