فایل مشخصات برنامه افزودنی شما ( 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رشته (الزامی) | نسخه افزونه. باید نسخه semver را دنبال کند (به عنوان مثال، 1.2.0). | ||||||||
specVersionرشته (الزامی) | نسخه مشخصات Firebase Extensions. مقدار فعلی: | ||||||||
licenseرشته (اختیاری) | مجوز برای تمدید. برنامه افزودنی شما باید با استفاده از | ||||||||
billingRequiredبولی (اختیاری) | آیا خدمات مورد استفاده توسط برنامه افزودنی نیاز به یک حساب صورتحساب Firebase سطح پولی دارد. همیشه روی | ||||||||
displayNameرشته (اختیاری) | نام نمایشی دوستانه برای پسوند (3-5 کلمه). محدودیت 40 کاراکتر | ||||||||
descriptionرشته (اختیاری) | شرح مختصری از کاری که برنامه افزودنی شما انجام می دهد (~1 جمله). | ||||||||
iconرشته (اختیاری) | فایلی برای استفاده به عنوان نماد برنامه افزودنی خود در این فایل باید یک PNG مربع بین 512x512 و 1024x1024 پیکسل باشد. فایل را در همان دایرکتوری هنگام طراحی نماد برای برنامه افزودنی خود، دستورالعمل های زیر را در نظر داشته باشید:
| ||||||||
tagsلیست رشته ها (اختیاری) | برچسب هایی برای کمک به کاربران برای کشف افزونه شما. برچسبهای زیر به دستههای موجود در Extensions Hub نگاشت میشوند: 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 و APIهای Google Cloud
این فیلدها 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 باید مطابق با قسمت نام سرویس همانطور که در صفحه نمای کلی هر API ( مثال ) در کتابخانه Google Cloud API فهرست شده است، مطابقت داشته باشد. |
reasonرشته (الزامی) | توضیح مختصری در مورد اینکه چرا افزونه باید از این API استفاده کند |
نقش های IAM
این فیلدها نقشهای Cloud 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رشته (اختیاری) | دامنه نقش را به این منبع محدود کنید. اگر حذف شود، به طور پیشفرض روی |
خدمات خارجی
این فیلدها خدمات غیر Firebase و غیر Google را که برنامه افزودنی استفاده می کند (معمولا REST API) مشخص می کند. پلت فرم Firebase Extensions هیچ وسیله ای برای فعال کردن یا اجرای خودکار مجوز برای این خدمات ارائه نمی دهد.
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رشته (اختیاری) | توضیحات دقیق برای پارامتر هنگامی که از کاربر برای مقدار پارامتر خواسته می شود به کاربر نمایش داده می شود. از Markdown پشتیبانی می کند. |
exampleرشته (اختیاری) | مقدار مثال برای پارامتر. |
defaultرشته (اختیاری) | اگر کاربر مقدار پارامتر را خالی بگذارد، مقدار پیشفرض برای پارامتر. |
validationRegexرشته (اختیاری) | عبارت منظم برای اعتبارسنجی مقدار پیکربندی شده توسط کاربر پارامتر. نحو گوگل RE2 |
validationErrorMessageرشته (اختیاری) | در صورت عدم موفقیت در تأیید اعتبار regex، پیام خطا نمایش داده می شود. |
requiredبولی (اختیاری) | تعیین می کند که آیا کاربر می تواند یک رشته خالی را زمانی که از او برای مقدار پارامتر خواسته می شود ارسال کند یا خیر. پیش فرض ها به true |
immutableبولی (اختیاری) | تعیین می کند که آیا کاربر می تواند مقدار پارامتر را پس از نصب تغییر دهد (مثلاً اگر برنامه افزودنی را دوباره پیکربندی کند). پیش فرض ها به توجه: اگر یک پارامتر "مکان" برای توابع مستقر در برنامه افزودنی خود تعریف می کنید، این فیلد را روی |
typeرشته (اختیاری) | نوع پارامتر انواع پارامترهای خاص ممکن است الزامات اضافی یا ارائه رابط کاربری متفاوتی داشته باشند. بخش های زیر را ببینید. |
پارامترهای قابل انتخاب و چند انتخابی
پارامترهای قابل انتخاب و چند انتخابی، کاربران را به انتخاب از بین یک لیست از گزینه های از پیش تعریف شده ترغیب می کند.
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رشته (الزامی) | نوع منبعی که کاربر را وادار به انتخاب می کند. مقادیر معتبر:
با این حال، در حال حاضر تنها سطلهای ذخیرهسازی ابری دارای رابط کاربری انتخابی هستند (سایر انواع منابع به عنوان فیلدهای ورودی متن آزاد ارائه میشوند). |
پارامترهای مخفی
مقادیر مخفی ارائه شده توسط کاربر (مانند کلیدهای API) به طور متفاوتی مدیریت می شوند:
- مقادیر مخفی با استفاده از Cloud Secret Manager ذخیره می شوند. فقط مشتریان مجاز (مانند یک نمونه نصب شده از یک برنامه افزودنی) می توانند به این مقادیر دسترسی داشته باشند.
- هنگامی که از کاربران خواسته می شود این مقادیر را ارائه کنند، ورودی آنها نمایش داده نمی شود.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What is the secret value?
type: secret
| فیلدهای پارامتر مخفی | |
|---|---|
typeرشته | مشخص می کند که پارامتر یک مقدار مخفی است |
منابع تابع ابر
این فیلدها توابع Cloud را که در یک برنامه افزودنی گنجانده شده است، اعلام می کنند. نحو اعلان منبع بین توابع نسل اول و نسل دوم کمی متفاوت به نظر می رسد که می توانند در یک پسوند همزیستی داشته باشند.
توابع ابری نسل اول
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رشته (الزامی) | برای یک منبع تابع نسل اول: firebaseextensions.v1beta.function | ||||||||||||||||
descriptionرشته (الزامی) | شرح مختصری از وظایفی که تابع برای برنامه افزودنی انجام می دهد. | ||||||||||||||||
properties(الزامی) | ویژگیهای عملکردهای ابری نسل اول. مهمترین ویژگیها در زیر فهرست شدهاند، اما میتوانید فهرست کامل را در مرجع Cloud Functions پیدا کنید.
| ||||||||||||||||
توابع ابری نسل دوم
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رشته (الزامی) | برای یک منبع تابع نسل دوم: firebaseextensions.v1beta.v2function | ||||||||||||||||||||||||||||
descriptionرشته (الزامی) | شرح مختصری از وظایفی که تابع برای برنامه افزودنی انجام می دهد. | ||||||||||||||||||||||||||||
properties(الزامی) | ویژگیهای عملکردهای ابری نسل دوم. مهمترین ویژگیها در زیر فهرست شدهاند، اما میتوانید فهرست کامل را در مرجع Cloud Functions پیدا کنید.
همچنین سه فیلد از نوع شی با ویژگی های خاص خود وجود دارد:
| ||||||||||||||||||||||||||||
رویدادهای چرخه حیات
رویدادهای چرخه حیات به شما امکان میدهند توابعی را مشخص کنید که هنگام نصب، بهروزرسانی یا پیکربندی نمونه برنامه افزودنی توسط کاربر اجرا شوند. به مدیریت رویدادهای چرخه عمر برنامه افزودنی خود مراجعه کنید.
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رشته (الزامی) | شرح رویداد. |