مرجع extension.yaml

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

شناسه برای افزونه.

فقط می‌تواند شامل حروف کوچک، اعداد و خط تیره باشد؛ محدودیت ۴۰ کاراکتری.

نکته: این مقدار برای تولید شناسه نمونه افزونه (که سپس برای تولید نام حساب سرویس افزونه و منابع مختص افزونه استفاده می‌شود) استفاده می‌شود.

version
رشته
(الزامی)

نسخه افزونه.

باید از نسخه‌بندی semver (مثلاً ۱.۲.۰) پیروی کند.

specVersion
رشته
(الزامی)

نسخه‌ای از مشخصات افزونه‌های فایربیس.

مقدار فعلی: v1beta

license
رشته
(اختیاری)

مجوز برای تمدید.

افزونه شما باید با استفاده از Apache-2.0 مجوز بگیرد.

billingRequired
بولی
(اختیاری)

اینکه آیا سرویس‌های مورد استفاده توسط افزونه به حساب پرداخت Firebase نیاز دارند یا خیر.

همیشه روی true تنظیم شود.

displayName
رشته
(اختیاری)

نام نمایشی کاربرپسند برای افزونه (۳ تا ۵ کلمه).

محدودیت ۴۰ کاراکتری.

description
رشته
(اختیاری)
شرح مختصری از وظیفه‌ای که افزونه شما انجام می‌دهد (حدود ۱ جمله).
icon
رشته
(اختیاری)

فایلی که قرار است به عنوان آیکون افزونه شما در extensions.dev و کنسول Firebase استفاده شود.

این فایل باید یک PNG مربعی با ابعاد بین ۵۱۲x۵۱۲ و ۱۰۲۴x۱۰۲۴ پیکسل باشد. فایل را در همان دایرکتوری extension.yaml قرار دهید؛ نمی‌توانید زیرشاخه‌ای برای آن مشخص کنید.

هنگام طراحی آیکون برای افزونه خود، دستورالعمل‌های زیر را در نظر داشته باشید:

  • رنگ‌های پس‌زمینه و آثار هنری را متناسب با برند خود انتخاب کنید.
  • رنگ‌های آیکون خود را ساده نگه دارید و فقط از ۲ رنگ استفاده کنید. رنگ‌های متعدد می‌توانند آیکون شما را از نظر بصری بسیار جذاب کنند.
  • به همین دلیل، از گرادیان در آیکون خود استفاده نکنید. تشخیص گرادیان در اندازه‌های کوچک دشوار است و آیکون را از نظر بصری پیچیده می‌کند.
  • از تصاویر ساده و منحصر به فردی استفاده کنید که عملکرد افزونه شما را به خوبی نشان دهد.
  • اگر شرکت شما چندین افزونه می‌سازد، از لوگوی خود به عنوان آیکون استفاده نکنید. کاربران در تشخیص افزونه‌های شما مشکل خواهند داشت.
  • آثار هنری را گرافیکی و برجسته کنید. از آثار هنری ظریف یا پرجزئیات استفاده نکنید، زیرا در اندازه‌های کوچک‌تر خوب نمایش داده نمی‌شوند.
  • کلماتی که توضیح می‌دهند افزونه شما چه کاری انجام می‌دهد را وارد نکنید. متن اغلب در اندازه‌های کوچک‌تر ناخوانا است.
tags
فهرست رشته‌ها
(اختیاری)
برچسب‌ها برای کمک به کاربران در کشف افزونه شما. برچسب‌ها زیر به دسته‌های موجود در Extensions Hub مرتبط هستند: marketing ، messaging ، payments ، search ، shipping ، social ، utilities ، ai
sourceUrl
رشته
(اختیاری)
URL عمومی که در آن می‌توان به دایرکتوری افزونه دسترسی داشت.
releaseNotesUrl
رشته
(اختیاری)
آدرس اینترنتی عمومی که در آن می‌توان به یادداشت‌های انتشار افزونه دسترسی داشت.
author
یک شیء نویسنده
(اختیاری)

نویسنده اصلی و مسئول تماس برای تمدید.

author:
  authorName: Your Company
  email: extensions@example.com
  url: https://example.com/
فیلدهای نویسنده
authorName
رشته
(الزامی)

نام نویسنده.

می‌تواند یک شخص، شرکت، سازمان و غیره باشد.

email
رشته
(اختیاری)
آدرس ایمیل نویسنده.
url
رشته
(اختیاری)
آدرس اینترنتی عمومی که در آن می‌توان به اطلاعات مربوط به نویسنده دسترسی پیدا کرد.
contributors
فهرست اشیاء نویسنده
(اختیاری)

هر نویسنده‌ی مشارکت‌کننده‌ی دیگری برای این افزونه.

contributors:
  - authorName: Your Name
  - authorName: Another Contributor
    email: colleague@example.net
    url: https://github.com/their-org/
فیلدهای نویسنده
authorName
رشته
(الزامی)

نام نویسنده.

می‌تواند یک شخص، شرکت، سازمان و غیره باشد.

email
رشته
(اختیاری)
آدرس ایمیل نویسنده.
url
رشته
(اختیاری)
آدرس اینترنتی عمومی که در آن می‌توان به اطلاعات مربوط به نویسنده دسترسی پیدا کرد.

رابط‌های برنامه‌نویسی کاربردی فایربیس و گوگل کلود

این فیلدها APIهای Firebase و Google مورد استفاده افزونه را مشخص می‌کنند. وقتی کاربران افزونه را نصب می‌کنند، می‌توانند انتخاب کنند که این 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
رشته
(الزامی)

نام 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
رشته
(اختیاری)

دامنه نقش را به این منبع محدود کنید.

در صورت حذف، پیش‌فرض projects/${project_id} است. به بخش کاهش دامنه نقش‌ها مراجعه کنید.

خدمات خارجی

این فیلدها سرویس‌های غیر فایربیس و غیر گوگلی که افزونه از آنها استفاده می‌کند (معمولاً REST APIها) را مشخص می‌کنند. پلتفرم افزونه‌های فایربیس هیچ راهی برای فعال‌سازی یا انجام خودکار مجوز برای این سرویس‌ها ارائه نمی‌دهد.

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
رشته
(اختیاری)
پیام خطایی که در صورت عدم موفقیت اعتبارسنجی regex نمایش داده می‌شود.
required
بولی
(اختیاری)
تعریف می‌کند که آیا کاربر می‌تواند هنگام درخواست مقدار پارامتر، یک رشته خالی ارسال کند یا خیر. مقدار پیش‌فرض true است.
immutable
بولی
(اختیاری)

تعریف می‌کند که آیا کاربر می‌تواند مقدار پارامتر را پس از نصب تغییر دهد یا خیر (مثلاً اگر افزونه را دوباره پیکربندی کند). مقدار پیش‌فرض false است.

نکته: اگر برای توابع پیاده‌سازی‌شده‌ی افزونه‌ی خود پارامتر «مکان» تعریف می‌کنید، این فیلد را روی true تنظیم کنید.

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
رشته

select یا multiSelect

مشخص می‌کند که پارامتر می‌تواند یک مقدار ( select ) یا چندین مقدار ( multiSelect ) باشد که از مجموعه‌ای از گزینه‌های از پیش تعریف شده انتخاب شده‌اند.

options
فهرست گزینه‌ها
(الزامی)

گزینه‌هایی که کاربر می‌تواند از بین آنها انتخاب کند

فیلدهای گزینه
value
رشته
(الزامی)
یکی از مقادیری که کاربر می‌تواند انتخاب کند. این مقداری است که هنگام خواندن مقدار پارامتر در کد دریافت می‌کنید.
label
رشته
(اختیاری)
شرح مختصری از گزینه قابل انتخاب. در صورت حذف، به طور پیش‌فرض value را در نظر می‌گیرد.

پارامترهای منبع قابل انتخاب

پارامترهای منبع قابل انتخاب، کاربران را ترغیب می‌کنند تا یک منبع (نمونه پایگاه داده، مخزن ذخیره‌سازی و غیره) را از پروژه خود انتخاب کنند.

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
رشته

selectresource

مشخص می‌کند که پارامتر نشان دهنده یک منبع پروژه است

resourceType
رشته
(الزامی)

نوع منبعی که کاربر را به انتخاب آن ترغیب می‌کند.

مقادیر معتبر:

  • storage.googleapis.com/Bucket
  • firestore.googleapis.com/Database
  • firebasedatabase.googleapis.com/DatabaseInstance

با این حال، فقط سطل‌های ذخیره‌سازی ابری در حال حاضر رابط کاربری انتخاب دارند (سایر انواع منابع به صورت فیلدهای ورودی متن با فرم آزاد ارائه می‌شوند).

پارامترهای مخفی

مقادیر مخفی ارائه شده توسط کاربر (مانند کلیدهای API) به طور متفاوتی مدیریت می‌شوند:

  • مقادیر مخفی با استفاده از Cloud Secret Manager ذخیره می‌شوند. فقط کلاینت‌های مجاز (مانند یک نمونه نصب‌شده از یک افزونه) می‌توانند به این مقادیر دسترسی داشته باشند.
  • وقتی از کاربران خواسته می‌شود این مقادیر را ارائه دهند، ورودی آنها نمایش داده نمی‌شود.
params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      What is the secret value?
    type: secret
فیلدهای پارامتر مخفی
type
رشته

secret

مشخص می‌کند که پارامتر یک مقدار مخفی است

منابع عملکرد ابری

این فیلدها توابع ابری موجود در یک افزونه را اعلام می‌کنند. سینتکس اعلام منابع بین توابع نسل اول و نسل دوم که می‌توانند همزمان در یک افزونه وجود داشته باشند، کمی متفاوت به نظر می‌رسد.

توابع ابری نسل اول

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
رشته
(الزامی)

نام کاربرپسند برای تابع خروجی گرفته شده.

اگر ویژگی entryPoint را مشخص نکنید (به پایین مراجعه کنید)، این مقدار باید با نام تابع در کد منبع توابع شما مطابقت داشته باشد.

نام نهایی تابع مستقر شده به شکل زیر خواهد بود: ext- extension-instance-id - name .

type
رشته
(الزامی)
برای یک منبع تابع نسل اول: firebaseextensions.v1beta.function
description
رشته
(الزامی)

شرح مختصری از وظیفه‌ای که تابع برای افزونه انجام می‌دهد.

properties
(الزامی)

ویژگی‌های توابع ابری نسل اول. مهم‌ترین ویژگی‌ها در زیر فهرست شده‌اند، اما می‌توانید لیست کامل را در مرجع توابع ابری پیدا کنید.

خواص
location
(اختیاری)

مکانی که تابع در آن مستقر می‌شود. پیش‌فرض‌ها us-central1

entryPoint
(اختیاری)
نام تابع اکسپورت شده در کد منبع توابع شما که افزونه باید به دنبال آن بگردد. مقدار پیش‌فرض name در بالا است.
sourceDirectory
(اختیاری)

دایرکتوری که package.json شما در ریشه آن قرار دارد. فایل مربوط به کد منبع توابع شما باید در این دایرکتوری باشد. پیش‌فرض‌ها روی functions

نکته: فیلد main package.json فایل مربوط به کد منبع توابع شما (مانند index.js ) را مشخص می‌کند.

timeout
(اختیاری)

حداکثر زمان اجرای تابع.

  • پیش‌فرض: 60s
  • حداکثر مقدار: 540s
availableMemoryMb
(اختیاری)

مقدار حافظه موجود برای عملکرد (برحسب مگابایت).

  • پیش‌فرض: 256
  • مقادیر معتبر: 128 ، 256 ، 512 ، 1024 و 2048
runtime
(توصیه می‌شود)

محیط زمان اجرا برای تابع.

httpsTrigger
یا
eventTrigger
یا
scheduleTrigger
یا
taskQueueTrigger
(یکی از این انواع ماشه تابع مورد نیاز است)
برای اطلاعات خاص در مورد هر نوع تریگر، به بخش «توابع ابری نوشتن» مراجعه کنید.

توابع ابری نسل دوم

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
رشته
(الزامی)

نام کاربرپسند برای تابع خروجی گرفته شده.

اگر ویژگی entryPoint را مشخص نکنید (به پایین مراجعه کنید)، این مقدار باید با نام تابع در کد منبع توابع شما مطابقت داشته باشد.

نام نهایی تابع مستقر شده به شکل زیر خواهد بود: ext- extension-instance-id - name .

type
رشته
(الزامی)
برای یک منبع تابع نسل دوم: firebaseextensions.v1beta.v2function
description
رشته
(الزامی)

شرح مختصری از وظیفه‌ای که تابع برای افزونه انجام می‌دهد.

properties
(الزامی)

ویژگی‌های توابع ابری نسل دوم. مهم‌ترین ویژگی‌ها در زیر فهرست شده‌اند، اما می‌توانید لیست کامل را در مرجع توابع ابری پیدا کنید.

خواص
location
(اختیاری)

مکانی که تابع در آن مستقر می‌شود. پیش‌فرض‌ها us-central1

sourceDirectory
(اختیاری)

دایرکتوری که package.json شما در ریشه آن قرار دارد. فایل مربوط به کد منبع توابع شما باید در این دایرکتوری باشد. پیش‌فرض‌ها روی functions

نکته: فیلد main package.json فایل مربوط به کد منبع توابع شما (مانند index.js ) را مشخص می‌کند.

همچنین سه فیلد از نوع شیء با ویژگی‌های خاص خود وجود دارد:

ویژگی‌های buildConfig
buildConfig.runtime
(توصیه می‌شود)

محیط زمان اجرا برای تابع.

buildConfig.entryPoint
(اختیاری)
نام تابع اکسپورت شده در کد منبع توابع شما که افزونه باید به دنبال آن بگردد. مقدار پیش‌فرض name در بالا است.
ویژگی‌های serviceConfig
serviceConfig.timeoutSeconds
(اختیاری)

حداکثر زمان اجرای تابع.

  • پیش‌فرض: 60
  • حداکثر مقدار: 540
serviceConfig.availableMemory
(اختیاری)
مقدار حافظه موجود برای یک تابع. مقدار پیش‌فرض 256M است. واحدهای پشتیبانی‌شده عبارتند از k ، M ، G ، Mi ، Gi . اگر هیچ واحدی ارائه نشود، مقدار به صورت بایت تفسیر می‌شود.
ویژگی‌های eventTrigger
eventTrigger.eventType
(الزامی)
نوع رویدادی که باید به آن گوش داد. برای مشاهده‌ی افزونه‌ای در مورد انواع رویدادهای موجود برای هر محصول، به بخش «توابع ابری بنویس» مراجعه کنید.
eventTrigger.eventFilters
(اختیاری)
فیلترهایی که رویدادهایی را که باید به آنها گوش دهید، محدودتر می‌کنند. برای مثال، فقط می‌توانید به رویدادهایی که با یک الگوی منبع خاص مطابقت دارند گوش دهید. برای اطلاعات بیشتر در مورد فیلتر کردن هر نوع رویداد، به «توابع ابری را بنویسید» برای افزونه مراجعه کنید.
eventTrigger.channel
(اختیاری)
نام کانال مرتبط با تریگر در قالب projects/{project}/locations/{location}/channels/{channel} . اگر این ویژگی را حذف کنید، تابع به رویدادهای کانال پیش‌فرض پروژه گوش می‌دهد.
eventTrigger.triggerRegion
(اختیاری)
تریگر فقط رویدادهایی را که از این منطقه سرچشمه می‌گیرند، دریافت می‌کند. این منطقه می‌تواند همان منطقه تابع، یک منطقه متفاوت یا چند منطقه یا منطقه سراسری باشد. اگر مشخص نشده باشد، به طور پیش‌فرض همان منطقه تابع است.

رویدادهای چرخه حیات

رویدادهای چرخه عمر به شما امکان می‌دهند توابعی را مشخص کنید که هنگام نصب، به‌روزرسانی یا پیکربندی نمونه‌ای از افزونه شما توسط کاربر، اجرا شوند. به بخش مدیریت رویدادهای چرخه عمر افزونه خود مراجعه کنید.

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
(اختیاری)

تابعی را مشخص می‌کند که هنگام نصب افزونه توسط کاربر اجرا می‌شود.

مشخصات عملکرد
function
رشته
(الزامی)

نام تابع فعال‌شده در صف وظایف که رویداد را مدیریت خواهد کرد.

این تابع باید در بخش resources تعریف شود و دارای taskQueue تعریف شده است.

processingMessage
رشته
(الزامی)
پیامی که هنگام انجام وظیفه در کنسول Firebase نمایش داده می‌شود.
onUpdate
(اختیاری)

تابعی را مشخص می‌کند که هنگام به‌روزرسانی افزونه توسط کاربر اجرا می‌شود.

مشخصات عملکرد
function
رشته
(الزامی)

نام تابع فعال‌شده در صف وظایف که رویداد را مدیریت خواهد کرد.

این تابع باید در بخش resources تعریف شود و دارای taskQueue تعریف شده است.

processingMessage
رشته
(الزامی)
پیامی که هنگام انجام وظیفه در کنسول Firebase نمایش داده می‌شود.
onConfigure
(اختیاری)

تابعی را مشخص می‌کند که هنگام پیکربندی مجدد افزونه توسط کاربر، اجرا می‌شود.

مشخصات عملکرد
function
رشته
(الزامی)

نام تابع فعال‌شده در صف وظایف که رویداد را مدیریت خواهد کرد.

این تابع باید در بخش resources تعریف شود و دارای taskQueue تعریف شده است.

processingMessage
رشته
(الزامی)
پیامی که هنگام انجام وظیفه در کنسول Firebase نمایش داده می‌شود.

رویدادهای سفارشی (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
رشته
(الزامی)
شناسه نوع رویداد. شناسه را از ۳-۴ فیلد جدا شده با نقطه بسازید: فیلدهای شناسه ناشر، نام افزونه و نام رویداد الزامی هستند؛ فیلد نسخه توصیه می‌شود. برای هر نوع رویدادی که منتشر می‌کنید، یک نام رویداد منحصر به فرد و توصیفی انتخاب کنید.
description
رشته
(الزامی)
شرح رویداد.