فایل مشخصات برنامه افزودنی شما ( 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 رشته (الزامی) | شرح رویداد. |