আপনার এক্সটেনশনের স্পেসিফিকেশন ফাইল ( extension.yaml
) আপনার এক্সটেনশনের মেটাডেটা ধারণ করে, এক্সটেনশনের দ্বারা তৈরি সংস্থান এবং API এবং এক্সটেনশনের জন্য প্রয়োজনীয় অ্যাক্সেস ঘোষণা করে এবং এক্সটেনশন দ্বারা প্রদত্ত যেকোন ব্যবহারকারী-কনফিগার করা প্যারামিটারগুলিকে সংজ্ঞায়িত করে৷
এই পৃষ্ঠার টেবিলগুলি extension.yaml
ফাইলের জন্য উপলব্ধ ক্ষেত্রগুলি বর্ণনা করে৷
মৌলিক এবং সনাক্তকরণ তথ্য
name: your-extension-name
version: 1.0.0 # Semantic versioning (semver)
specVersion: v1beta # Always "v1beta"
license: Apache-2.0 # Always "Apache-2.0" (required to publish on extensions.dev)
billingRequired: true # Always "true"
displayName: Your extension name
description: >-
Description of the extension. (One or two
sentences.)
icon: icon.png
tags: [tag, anothertag]
sourceUrl: https://github.com/your-org/your-repo # GitHub repo URL
releaseNotesUrl: https://github.com/your-org/your-repo/blob/main/CHANGELOG.md
author:
authorName: Your Company
email: extensions@example.com
url: https://example.com/
contributors:
- authorName: Your Name
- authorName: Another Contributor
email: colleague@example.net
url: https://github.com/their-org/
মৌলিক ক্ষেত্র | |||||||||
---|---|---|---|---|---|---|---|---|---|
name স্ট্রিং (প্রয়োজনীয়) | এক্সটেনশনের জন্য শনাক্তকারী। শুধুমাত্র ছোট হাতের অক্ষর, সংখ্যা এবং ড্যাশ থাকতে পারে; 40 অক্ষর সীমা দ্রষ্টব্য: এই মানটি এক্সটেনশনের ইনস্ট্যান্স আইডি তৈরি করতে ব্যবহৃত হয় (যা পরে এক্সটেনশনের পরিষেবা অ্যাকাউন্টের নাম এবং এক্সটেনশন-নির্দিষ্ট সংস্থানগুলি তৈরি করতে ব্যবহৃত হয়)৷ | ||||||||
version স্ট্রিং (প্রয়োজনীয়) | এক্সটেনশনের সংস্করণ। সেমভার সংস্করণ অনুসরণ করতে হবে (উদাহরণস্বরূপ, 1.2.0)। | ||||||||
specVersion স্ট্রিং (প্রয়োজনীয়) | Firebase এক্সটেনশন স্পেসিফিকেশনের সংস্করণ। বর্তমান মান: | ||||||||
license স্ট্রিং (ঐচ্ছিক) | এক্সটেনশনের জন্য লাইসেন্স। আপনার এক্সটেনশন অবশ্যই | ||||||||
billingRequired বুলিয়ান (ঐচ্ছিক) | এক্সটেনশন দ্বারা ব্যবহৃত পরিষেবাগুলির জন্য একটি প্রদত্ত-স্তরের Firebase বিলিং অ্যাকাউন্টের প্রয়োজন হয় কিনা৷ সর্বদা | ||||||||
displayName স্ট্রিং (ঐচ্ছিক) | এক্সটেনশনের জন্য বন্ধুত্বপূর্ণ প্রদর্শন নাম (3-5 শব্দ)। 40 অক্ষর সীমা | ||||||||
description স্ট্রিং (ঐচ্ছিক) | আপনার এক্সটেনশন যে কাজটি সম্পাদন করে তার সংক্ষিপ্ত বিবরণ (~1 বাক্য)। | ||||||||
icon স্ট্রিং (ঐচ্ছিক) | এই ফাইলটি অবশ্যই 512x512 এবং 1024x1024 পিক্সেলের মধ্যে একটি বর্গাকার PNG হতে হবে৷ ফাইলটিকে আপনার এক্সটেনশনের জন্য একটি আইকন ডিজাইন করার সময় নিম্নলিখিত নির্দেশিকাগুলি মনে রাখবেন:
| ||||||||
tags স্ট্রিং তালিকা (ঐচ্ছিক) | ব্যবহারকারীদের আপনার এক্সটেনশন আবিষ্কার করতে সাহায্য করার জন্য ট্যাগ। নিম্নলিখিত ট্যাগগুলি এক্সটেনশন হাবের বিভাগগুলির মানচিত্র: marketing , messaging , payments , search , shipping , social , utilities , ai | ||||||||
sourceUrl স্ট্রিং (ঐচ্ছিক) | সর্বজনীন URL যেখানে এক্সটেনশন ডিরেক্টরি অ্যাক্সেস করা যেতে পারে। | ||||||||
releaseNotesUrl স্ট্রিং (ঐচ্ছিক) | সর্বজনীন URL যেখানে এক্সটেনশনের জন্য রিলিজ নোটগুলি অ্যাক্সেস করা যেতে পারে৷ | ||||||||
author একজন লেখক বস্তু (ঐচ্ছিক) | এক্সটেনশনের জন্য প্রাথমিক লেখক এবং যোগাযোগের পয়েন্ট। author: authorName: Your Company email: extensions@example.com url: https://example.com/
| ||||||||
contributors লেখক বস্তুর তালিকা (ঐচ্ছিক) | এক্সটেনশনের জন্য কোনো অতিরিক্ত অবদানকারী লেখক। contributors: - authorName: Your Name - authorName: Another Contributor email: colleague@example.net url: https://github.com/their-org/
|
Firebase এবং Google Cloud APIs
এই ক্ষেত্রগুলি এক্সটেনশন ব্যবহার করে Firebase এবং Google APIগুলি নির্দিষ্ট করে৷ যখন ব্যবহারকারীরা এক্সটেনশন ইনস্টল করেন, তখন তারা তাদের প্রকল্পে এই APIগুলি স্বয়ংক্রিয়ভাবে সক্ষম করতে বেছে নিতে পারেন।
apis:
- apiName: apiname.googleapis.com
reason: Explanation of why the extension uses this API
- apiName: anotherapiname.googleapis.com
reason: Explanation of why the extension uses this API
API ক্ষেত্র | |
---|---|
apiName স্ট্রিং (প্রয়োজনীয়) | Google API এর নাম Google ক্লাউড API লাইব্রেরিতে প্রতিটি API-এর ওভারভিউ পৃষ্ঠায় ( উদাহরণ ) তালিকাভুক্ত পরিষেবার নামের ক্ষেত্রের সাথে অবশ্যই মিল থাকতে হবে |
reason স্ট্রিং (প্রয়োজনীয়) | এক্সটেনশন কেন এই API ব্যবহার করতে হবে তার সংক্ষিপ্ত বিবরণ |
IAM ভূমিকা
এই ক্ষেত্রগুলি এক্সটেনশনের জন্য প্রয়োজনীয় ক্লাউড IAM ভূমিকাগুলি নির্দিষ্ট করে৷ এক্সটেনশনের জন্য প্রবিধান পরিষেবা অ্যাকাউন্ট এই ভূমিকা মঞ্জুর করা হয়.
আপনি শুধুমাত্র সমর্থিত ভূমিকাগুলির একটি নির্দিষ্ট করতে পারেন৷
roles:
- role: product.role
reason: Explanation of why the extension needs this level of access
- role: anotherproduct.role
resource: projects/${project_id}/resource_type/*
reason: Explanation of why the extension needs this level of access
ভূমিকা ক্ষেত্র | |
---|---|
role স্ট্রিং (প্রয়োজনীয়) | এক্সটেনশন পরিচালনার জন্য প্রয়োজনীয় IAM ভূমিকার নাম৷ সমর্থিত ভূমিকাগুলির মধ্যে একটি হতে হবে |
reason স্ট্রিং (প্রয়োজনীয়) | কেন এক্সটেনশনের এই ভূমিকা দ্বারা প্রদত্ত অ্যাক্সেসের প্রয়োজন তার সংক্ষিপ্ত বিবরণ৷ |
resource স্ট্রিং (ঐচ্ছিক) | এই সম্পদে ভূমিকার সুযোগ সীমিত করুন। যদি বাদ দেওয়া হয়, |
বাহ্যিক পরিষেবা
এই ক্ষেত্রগুলি নন-ফায়ারবেস এবং নন-Google পরিষেবাগুলি নির্দিষ্ট করে যা এক্সটেনশন ব্যবহার করে (সাধারণত REST API)। Firebase এক্সটেনশন প্ল্যাটফর্ম এই পরিষেবাগুলির জন্য স্বয়ংক্রিয়ভাবে সক্ষম বা অনুমোদন করার কোনো উপায় প্রদান করে না।
externalServices:
- name: Example API
pricingUri: https://developers.example.com/pricing
- name: Another Example API
pricingUri: https://developers.example.com/pricing
বাহ্যিক পরিষেবা ক্ষেত্র | |
---|---|
name স্ট্রিং (প্রয়োজনীয়) | এক্সটেনশনটি পরিচালনা করার জন্য প্রয়োজনীয় বাহ্যিক পরিষেবার নাম৷ |
pricingUri স্ট্রিং (প্রয়োজনীয়) | পরিষেবার জন্য মূল্যের তথ্য থেকে URI |
ব্যবহারকারী-কনফিগারযোগ্য পরামিতি
এই ক্ষেত্রগুলি সেই প্যারামিটারগুলিকে সংজ্ঞায়িত করে যা ব্যবহারকারীদের কনফিগার করার জন্য এক্সটেনশন উপলব্ধ করে৷
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What do you want to set PARAM_ID to?
This is a longer description of the parameter, often phrased as a prompt
to the user.
- param: ANOTHER_PARAM_ID
label: Short description of the parameter
description: >
What do you want to set ANOTHER_PARAM_ID to?
This is a longer description of the parameter.
example: example-input
validationRegex: "^[a-zA-Z][a-zA-Z-]*[a-zA-Z]?$"
validationErrorMessage:
Must be a hyphen-delimited string of alphabetic characters
default: default-value
required: false
immutable: true
পরামিতি ক্ষেত্র | |
---|---|
param স্ট্রিং (প্রয়োজনীয়) | প্যারামিটারের নাম। আপনি কোডে প্যারামিটার মান উল্লেখ করতে এই নামটি ব্যবহার করেন। |
label স্ট্রিং (প্রয়োজনীয়) | প্যারামিটারের জন্য সংক্ষিপ্ত বিবরণ। যখন ব্যবহারকারীকে প্যারামিটারের মানের জন্য অনুরোধ করা হয় তখন তাদের কাছে প্রদর্শিত হয়। |
description স্ট্রিং (ঐচ্ছিক) | প্যারামিটারের জন্য বিশদ বিবরণ। যখন ব্যবহারকারীকে প্যারামিটারের মানের জন্য অনুরোধ করা হয় তখন তাদের কাছে প্রদর্শিত হয়। মার্কডাউন সমর্থন করে। |
example স্ট্রিং (ঐচ্ছিক) | প্যারামিটারের জন্য উদাহরণ মান। |
default স্ট্রিং (ঐচ্ছিক) | যদি ব্যবহারকারী প্যারামিটারের মান ফাঁকা রাখে তাহলে প্যারামিটারের জন্য ডিফল্ট মান। |
validationRegex স্ট্রিং (ঐচ্ছিক) | প্যারামিটারের ব্যবহারকারী-কনফিগার করা মান যাচাই করার জন্য নিয়মিত অভিব্যক্তি। Google RE2 সিনট্যাক্স । |
validationErrorMessage স্ট্রিং (ঐচ্ছিক) | রেজেক্স যাচাইকরণ ব্যর্থ হলে প্রদর্শনের জন্য ত্রুটি বার্তা। |
required বুলিয়ান (ঐচ্ছিক) | প্যারামিটারের মানের জন্য অনুরোধ করা হলে ব্যবহারকারী একটি খালি স্ট্রিং জমা দিতে পারে কিনা তা নির্ধারণ করে। ডিফল্ট থেকে true । |
immutable বুলিয়ান (ঐচ্ছিক) | ব্যবহারকারী ইনস্টলেশনের পরে প্যারামিটারের মান পরিবর্তন করতে পারে কিনা তা নির্ধারণ করে (যেমন তারা এক্সটেনশনটি পুনরায় কনফিগার করলে)। ডিফল্ট থেকে দ্রষ্টব্য: আপনি যদি আপনার এক্সটেনশনের স্থাপন করা ফাংশনগুলির জন্য একটি "অবস্থান" প্যারামিটার সংজ্ঞায়িত করেন, তাহলে এই ক্ষেত্রটিকে |
type স্ট্রিং (ঐচ্ছিক) | পরামিতি প্রকার। বিশেষ পরামিতি প্রকারের অতিরিক্ত প্রয়োজনীয়তা বা ভিন্ন UI উপস্থাপনা থাকতে পারে। নিম্নলিখিত বিভাগ দেখুন. |
নির্বাচনযোগ্য এবং বহু-নির্বাচনযোগ্য পরামিতি
নির্বাচনযোগ্য এবং বহু-নির্বাচনযোগ্য পরামিতি ব্যবহারকারীদের পূর্বনির্ধারিত বিকল্পগুলির একটি তালিকা থেকে বেছে নিতে অনুরোধ করে।
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
Do you want to enable the option?
type: select
options:
- label: Yes
value: true
- label: No
value: false
- param: ANOTHER_PARAM_ID
label: Short description of the parameter
description: >-
Which options do you want to enable?
type: multiselect
options:
- value: red
- value: green
- value: blue
একাধিক পছন্দের প্যারামিটার ক্ষেত্র | |||||||
---|---|---|---|---|---|---|---|
type স্ট্রিং | সুনির্দিষ্ট করে যে প্যারামিটারটি একটি মান ( | ||||||
options বিকল্পের তালিকা (প্রয়োজনীয়) | যে বিকল্পগুলি থেকে ব্যবহারকারী বেছে নিতে পারেন
|
নির্বাচনযোগ্য সম্পদ পরামিতি
নির্বাচনযোগ্য রিসোর্স প্যারামিটার ব্যবহারকারীদের তাদের প্রজেক্ট থেকে একটি রিসোর্স (ডাটাবেস ইনস্ট্যান্স, স্টোরেজ বাকেট, ইত্যাদি) নির্বাচন করতে অনুরোধ করে।
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
Which resource do you want to use?
type: selectresource
resourceType: product.googleapis.com/ResourceType
রিসোর্স প্যারামিটার ক্ষেত্র | |
---|---|
type স্ট্রিং | নির্দিষ্ট করে যে প্যারামিটারটি একটি প্রকল্পের সংস্থানকে প্রতিনিধিত্ব করে |
resourceType স্ট্রিং (প্রয়োজনীয়) | ব্যবহারকারীকে নির্বাচন করতে অনুরোধ করার জন্য সম্পদের ধরন। বৈধ মান:
যাইহোক, শুধুমাত্র ক্লাউড স্টোরেজ বালতিতে বর্তমানে একটি নির্বাচন UI রয়েছে (অন্যান্য সংস্থান প্রকারগুলি বিনামূল্যে-ফর্ম পাঠ্য ইনপুট ক্ষেত্র হিসাবে উপস্থাপন করা হয়)। |
গোপন পরামিতি
ব্যবহারকারী-প্রদত্ত গোপন মান (যেমন API কী) ভিন্নভাবে পরিচালনা করা হয়:
- ক্লাউড সিক্রেট ম্যানেজার ব্যবহার করে গোপন মান সংরক্ষণ করা হয়। শুধুমাত্র অনুমোদিত ক্লায়েন্টরা (যেমন একটি এক্সটেনশনের ইনস্টল করা উদাহরণ) এই মানগুলি অ্যাক্সেস করতে পারে।
- যখন ব্যবহারকারীদের এই মানগুলি প্রদান করার জন্য অনুরোধ করা হয়, তখন তাদের ইনপুট প্রদর্শিত হয় না।
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What is the secret value?
type: secret
গোপন প্যারামিটার ক্ষেত্র | |
---|---|
type স্ট্রিং | নির্দিষ্ট করে যে প্যারামিটারটি একটি গোপন মান |
ক্লাউড ফাংশন সম্পদ
এই ক্ষেত্রগুলি একটি এক্সটেনশনে অন্তর্ভুক্ত ক্লাউড ফাংশনগুলি ঘোষণা করে৷ রিসোর্স ডিক্লেয়ারেশন সিনট্যাক্স 1st-gen এবং 2nd-gen ফাংশনের মধ্যে একটু আলাদা দেখায়, যা একটি এক্সটেনশনে সহাবস্থান করতে পারে।
১ম-জেনার ক্লাউড ফাংশন
resources:
- name: functionName
type: firebaseextensions.v1beta.function
description: >-
Description of what the function does. (One or two
sentences.)
properties:
runtime: runtime-version
eventTrigger:
eventType: google.product.event
resource: projects/_/resource/specifier
সম্পদ ক্ষেত্র | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name স্ট্রিং (প্রয়োজনীয়) | রপ্তানিকৃত ফাংশনের জন্য ব্যবহারকারী-বান্ধব নাম। আপনি যদি স্থাপন করা ফাংশনের চূড়ান্ত নাম নিম্নলিখিত বিন্যাসে হবে: | ||||||||||||||||
type স্ট্রিং (প্রয়োজনীয়) | একটি 1st-gen ফাংশন রিসোর্সের জন্য: firebaseextensions.v1beta.function | ||||||||||||||||
description স্ট্রিং (প্রয়োজনীয়) | এক্সটেনশনের জন্য ফাংশনটি কী কাজ করে তার সংক্ষিপ্ত বিবরণ। | ||||||||||||||||
properties (প্রয়োজনীয়) | 1st-gen ক্লাউড ফাংশন বৈশিষ্ট্য. সবচেয়ে গুরুত্বপূর্ণ বৈশিষ্ট্যগুলি নীচে তালিকাভুক্ত করা হয়েছে, তবে আপনি ক্লাউড ফাংশন রেফারেন্সে সম্পূর্ণ তালিকা খুঁজে পেতে পারেন।
|
২য় প্রজন্মের ক্লাউড ফাংশন
resources:
- name: functionName
type: firebaseextensions.v1beta.v2function
description: >-
Description of what the function does. (One or two
sentences.)
properties:
buildConfig:
runtime: nodejs16
serviceConfig:
availableMemory: 512M
eventTrigger:
eventType: google.firebase.firebasealerts.alerts.v1.published
triggerRegion: global
eventFilters:
- attribute: alerttype
value: crashlytics.newFatalIssue
সম্পদ ক্ষেত্র | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name স্ট্রিং (প্রয়োজনীয়) | রপ্তানিকৃত ফাংশনের জন্য ব্যবহারকারী-বান্ধব নাম। আপনি যদি স্থাপন করা ফাংশনের চূড়ান্ত নাম নিম্নলিখিত বিন্যাসে হবে: | ||||||||||||||||||||||||||||
type স্ট্রিং (প্রয়োজনীয়) | একটি 2nd-gen ফাংশন রিসোর্সের জন্য: firebaseextensions.v1beta.v2function | ||||||||||||||||||||||||||||
description স্ট্রিং (প্রয়োজনীয়) | এক্সটেনশনের জন্য ফাংশনটি কী কাজ করে তার সংক্ষিপ্ত বিবরণ। | ||||||||||||||||||||||||||||
properties (প্রয়োজনীয়) | ২য়-জেন ক্লাউড ফাংশন বৈশিষ্ট্য। সবচেয়ে গুরুত্বপূর্ণ বৈশিষ্ট্যগুলি নীচে তালিকাভুক্ত করা হয়েছে, তবে আপনি ক্লাউড ফাংশন রেফারেন্সে সম্পূর্ণ তালিকা খুঁজে পেতে পারেন।
তাদের নিজস্ব বৈশিষ্ট্য সহ তিনটি অবজেক্ট-টাইপ ক্ষেত্র রয়েছে:
|
জীবনচক্র ইভেন্ট
লাইফসাইকেল ইভেন্টগুলি আপনাকে ফাংশনগুলি নির্দিষ্ট করতে দেয় যেগুলি যখন কোনও ব্যবহারকারী আপনার এক্সটেনশনের একটি উদাহরণ ইনস্টল, আপডেট বা কনফিগার করে তখন চলবে৷ আপনার এক্সটেনশনের জীবনচক্র ইভেন্টগুলি পরিচালনা করুন দেখুন৷
lifecycleEvents:
onInstall:
function: myTaskFunction
processingMessage: Describes the task being completed
onUpdate:
function: myOtherTaskFunction
processingMessage: Describes the task being completed
onConfigure:
function: myOtherTaskFunction
processingMessage: Describes the task being completed
জীবনচক্র ইভেন্ট ক্ষেত্র | |||||||
---|---|---|---|---|---|---|---|
onInstall (ঐচ্ছিক) | একটি ফাংশন নির্দিষ্ট করে যা চলে যখন একজন ব্যবহারকারী এক্সটেনশন ইনস্টল করে।
| ||||||
onUpdate (ঐচ্ছিক) | একটি ফাংশন নির্দিষ্ট করে যা চলে যখন একজন ব্যবহারকারী এক্সটেনশন আপডেট করে।
| ||||||
onConfigure (ঐচ্ছিক) | একটি ফাংশন নির্দিষ্ট করে যা চলে যখন একজন ব্যবহারকারী এক্সটেনশন পুনরায় কনফিগার করে।
|
কাস্টম ইভেন্ট (Eventarc)
কাস্টম ইভেন্ট হল এমন ইভেন্ট যা আপনার এক্সটেনশন ব্যবহারকারীদেরকে আপনার এক্সটেনশনে তাদের নিজস্ব যুক্তি ঢোকানোর অনুমতি দেওয়ার জন্য নির্গত করে। একটি এক্সটেনশনে ব্যবহারকারীর হুক যুক্ত করুন -এ Eventarc বিভাগটি দেখুন।
events:
- type: publisher-id.extension-name.version.event-name
description: Description of the event
- type: publisher-id.extension-name.version.another-event-name
description: Description of the other event
কাস্টম ইভেন্ট ক্ষেত্র | |
---|---|
type স্ট্রিং (প্রয়োজনীয়) | ইভেন্টের ধরন শনাক্তকারী। 3-4টি ডট-ডিলিমিটেড ফিল্ডের মধ্যে আইডেন্টিফায়ার তৈরি করুন: প্রকাশক আইডি, এক্সটেনশনের নাম এবং ইভেন্টের নাম ক্ষেত্র প্রয়োজন; সংস্করণ ক্ষেত্র সুপারিশ করা হয়. আপনার প্রকাশ করা প্রতিটি ইভেন্টের জন্য একটি অনন্য এবং বর্ণনামূলক ইভেন্টের নাম চয়ন করুন। |
description স্ট্রিং (প্রয়োজনীয়) | ঘটনার বিবরণ। |