مرجع الإضافة.yaml

يحتوي ملف مواصفات الإضافة (extension.yaml) على البيانات الوصفية الخاصة بالإضافة، ويحدّد الموارد التي أنشأتها الإضافة وواجهات برمجة التطبيقات وإذن الوصول الذي تتطلبه الإضافة، كما يحدّد أي مَعلمات يضبطها المستخدم وتوفّرها الإضافة.

توضّح الجداول في هذه الصفحة الحقول المتاحة لملف 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
string
(مطلوب)

معرّف الإضافة

لا يمكن أن يحتوي إلا على أحرف صغيرة وأرقام وشرطات، ويجب ألا يتجاوز 40 حرفًا.

ملاحظة: تُستخدَم هذه القيمة لإنشاء معرّف مثيل الإضافة (الذي يُستخدَم بعد ذلك لإنشاء أسماء حساب خدمة الإضافة والموارد الخاصة بالإضافة).

version
string
(مطلوب)

إصدار الإضافة

يجب أن يتّبع نظام الترقيم الدلالي (على سبيل المثال، 1.2.0).

specVersion
string
(مطلوب)

إصدار مواصفات "إضافات Firebase"

القيمة الحالية: v1beta

license
string
(اختياري)

ترخيص الإضافة

يجب أن تكون إضافتك مرخّصة باستخدام Apache-2.0.

billingRequired
boolean
(اختياري)

تحديد ما إذا كانت الخدمات التي تستخدمها الإضافة تتطلّب حساب فوترة على Firebase ضمن فئة مدفوعة

يجب ضبطها دائمًا على true.

displayName
string
(اختياري)

اسم العرض السهل للاستخدام الخاص بالامتداد (من 3 إلى 5 كلمات).

عدد الأحرف المسموح به هو 40.

description
string
(اختياري)
وصف موجز للمهمة التي تنفّذها الإضافة (جملة واحدة تقريبًا)
icon
string
(اختياري)

الملف الذي سيتم استخدامه كرمز للإضافة على extensions.dev ووحدة تحكّم Firebase

يجب أن يكون هذا الملف بتنسيق PNG مربعًا ويتراوح حجمه بين 512×512 و1024×1024 بكسل. ضَع الملف في الدليل نفسه الذي يتضمّن extension.yaml، ولا يمكنك تحديد دليل فرعي.

يُرجى مراعاة الإرشادات التالية عند تصميم رمز للإضافة:

  • اختَر ألوان الخلفية والأعمال الفنية المناسبة لعلامتك التجارية.
  • اجعل ألوان الرمز بسيطة، واستخدِم لونين فقط. قد يؤدي استخدام ألوان متعددة إلى إرباك المستخدمين بصريًا.
  • لهذا السبب نفسه، لا تستخدِم تدرّجات الألوان في الرمز. يصعب تمييز التدرجات اللونية عند الأحجام الصغيرة، كما أنّها تزيد من تعقيد الرمز بصريًا.
  • استخدِم صورًا بسيطة وفريدة توضّح وظائف الإضافة.
  • إذا كانت شركتك تنشئ إضافات متعدّدة، لا تستخدِم شعارك كرمز. سيواجه المستخدمون صعوبة في التمييز بين إضافاتك.
  • يجب أن تكون الأعمال الفنية غرافيكية وواضحة. لا تستخدِم أعمالًا فنية دقيقة أو معقّدة، لأنّها لن تظهر بشكل جيد عند عرضها بأحجام أصغر.
  • لا تُدرِج كلمات تشرح وظيفة الإضافة. وغالبًا ما يكون النص غير مقروء عند تصغير حجمه.
tags
قائمة السلاسل
(اختياري)
علامات لمساعدة المستخدمين في العثور على الإضافة تتطابق العلامات التالية مع الفئات في "مركز الإضافات": marketing، messaging، payments، search، shipping، social، utilities، ai
sourceUrl
string
(اختياري)
عنوان URL عام يمكن من خلاله الوصول إلى دليل الإضافة
releaseNotesUrl
string
(اختياري)
عنوان URL العلني الذي يمكن من خلاله الوصول إلى ملاحظات إصدار الإضافة.
author
عنصر مؤلّف واحد
(اختياري)

المؤلف الأساسي وجهة الاتصال بشأن الإضافة

author:
  authorName: Your Company
  email: extensions@example.com
  url: https://example.com/
حقول المؤلف
authorName
string
(مطلوب)

تمثّل هذه السمة اسم المؤلف.

يمكن أن يكون شخصًا أو شركة أو مؤسسة أو غير ذلك.

email
string
(اختياري)
تمثّل هذه السمة عنوان البريد الإلكتروني للمؤلف.
url
string
(اختياري)
تمثّل هذه السمة عنوان URL متاحًا للجميع يمكن من خلاله الوصول إلى معلومات عن المؤلّف.
contributors
قائمة بعناصر المؤلفين
(اختيارية)

أي مؤلفين إضافيين ساهموا في إنشاء الإضافة

contributors:
  - authorName: Your Name
  - authorName: Another Contributor
    email: colleague@example.net
    url: https://github.com/their-org/
حقول المؤلف
authorName
string
(مطلوب)

تمثّل هذه السمة اسم المؤلف.

يمكن أن يكون شخصًا أو شركة أو مؤسسة أو غير ذلك.

email
string
(اختياري)
تمثّل هذه السمة عنوان البريد الإلكتروني للمؤلف.
url
string
(اختياري)
تمثّل هذه السمة عنوان URL متاحًا للجميع يمكن من خلاله الوصول إلى معلومات عن المؤلّف.

واجهات برمجة التطبيقات في Firebase وGoogle Cloud

تحدّد هذه الحقول واجهات برمجة التطبيقات من Firebase وGoogle التي يستخدمها الامتداد. عندما يثبّت المستخدمون الإضافة، يمكنهم اختيار تفعيل واجهات برمجة التطبيقات هذه تلقائيًا في مشاريعهم.

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
حقول واجهة برمجة التطبيقات
apiName
string
(مطلوب)

اسم Google API

يجب أن يتطابق مع حقل اسم الخدمة كما هو مدرَج في صفحة النظرة العامة لكل واجهة برمجة تطبيقات (مثال) في مكتبة Google Cloud API

reason
string
(مطلوب)
وصف موجز لسبب حاجة الإضافة إلى استخدام واجهة برمجة التطبيقات هذه

أدوار "إدارة الهوية وإمكانية الوصول"

تحدّد هذه الحقول أدوار 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
string
(مطلوب)

اسم دور إدارة الهوية وإمكانية الوصول (IAM) المطلوب لتشغيل الإضافة

يجب أن يكون أحد الأدوار المتوافقة

reason
string
(مطلوب)
وصف موجز لسبب احتياج الإضافة إلى إذن الوصول الذي يوفّره هذا الدور
resource
string
(اختياري)

يجب أن يقتصر نطاق الدور على هذا المرجع.

وفي حال عدم تحديدها، يتم ضبط القيمة التلقائية على projects/${project_id}. اطّلِع على تقليل نطاق الأدوار.

الخدمات الخارجية

تحدّد هذه الحقول الخدمات غير التابعة لـ Firebase وغير التابعة لـ 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
string
(مطلوب)
اسم الخدمة الخارجية اللازمة لتشغيل الإضافة
pricingUri
string
(مطلوب)
معرّف الموارد المنتظم (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
string
(مطلوب)
اسم المَعلمة يمكنك استخدام هذا الاسم للإشارة إلى قيمة المَعلمة في الرمز.
label
string
(مطلوب)
وصف موجز للمَعلمة. يتم عرضها للمستخدم عندما يُطلب منه إدخال قيمة المَعلمة.
description
string
(اختياري)

وصف مفصّل للمَعلمة يتم عرضها للمستخدم عندما يُطلب منه إدخال قيمة المَعلمة.

يتوافق مع Markdown.

example
string
(اختياري)
مثال على قيمة المَعلمة
default
string
(اختياري)
القيمة التلقائية للمَعلمة إذا ترك المستخدم قيمة المَعلمة فارغة.
validationRegex
string
(اختياري)
التعبير العادي للتحقّق من صحة قيمة المَعلمة التي يضبطها المستخدم. بنية Google RE2
validationErrorMessage
string
(اختياري)
رسالة الخطأ التي سيتم عرضها في حال تعذُّر التحقّق من صحة التعبير العادي.
required
boolean
(اختياري)
تحدّد هذه السمة ما إذا كان بإمكان المستخدم إدخال سلسلة فارغة عند المطالبة بقيمة المَعلمة. القيمة التلقائية هي true.
immutable
boolean
(اختياري)

تحدّد هذه السمة ما إذا كان بإمكان المستخدم تغيير قيمة المَعلمة بعد التثبيت (مثلاً، إذا أعاد ضبط إعدادات الإضافة). القيمة التلقائية هي false.

ملاحظة: إذا حدّدت مَعلمة "الموقع الجغرافي" للدوال التي تم نشرها في إضافتك، اضبط هذا الحقل على true.

type
string
(اختياري)
نوع المَعلمة قد تتضمّن أنواع المَعلمات الخاصة متطلبات إضافية أو طريقة عرض مختلفة لواجهة المستخدم. راجِع الأقسام التالية.

المَعلمات القابلة للاختيار والمَعلمات المتعددة القابلة للاختيار

تطلب المَعلمات القابلة للتحديد والمَعلمات المتعددة الخيارات من المستخدمين الاختيار من قائمة خيارات محدّدة مسبقًا.

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
string

select أو multiSelect

تحدّد هذه السمة أنّ المَعلمة يمكن أن تكون قيمة واحدة (select) أو عدّة قيم (multiSelect) يتم اختيارها من مجموعة من الخيارات المحدّدة مسبقًا.

options
قائمة الخيارات
(مطلوبة)

الخيارات التي يمكن للمستخدم الاختيار من بينها

حقول الخيارات
value
string
(مطلوب)
إحدى القيم التي يمكن للمستخدم اختيارها. هذه هي القيمة التي تحصل عليها عند قراءة قيمة المَعلمة في الرمز.
label
string
(اختياري)
وصف موجز للخيار الذي يمكن تحديده وفي حال عدم تحديدها، يتم ضبط القيمة التلقائية على 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
string

selectresource

تحدّد هذه السمة أنّ المَعلمة تمثّل مورد مشروع

resourceType
string
(مطلوب)

نوع المورد الذي سيُطلب من المستخدم اختياره.

قيم صالحة:

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

ومع ذلك، لا تتضمّن سوى حِزم Cloud Storage حاليًا واجهة مستخدم للاختيار (يتم عرض أنواع الموارد الأخرى كحقول إدخال نصية حرة).

المَعلمات السرية

يتم التعامل بشكل مختلف مع قيم الأسرار المقدَّمة من المستخدم (مثل مفاتيح واجهة برمجة التطبيقات):

  • يتم تخزين القيم السرية باستخدام Cloud Secret Manager. يمكن للعملاء المفوّضين فقط (مثل نسخة مثبَّتة من إضافة) الوصول إلى هذه القيم.
  • عندما يُطلب من المستخدمين تقديم هذه القيم، لا يتم عرض ما يدخلونه.
params:
  - param: PARAM_ID
    label: Short description of the parameter
    description: >-
      What is the secret value?
    type: secret
حقول المعلَمات السرية
type
string

secret

تحدّد أنّ المَعلمة هي قيمة سرية

موارد Cloud Function

تحدّد هذه الحقول دوال Cloud Functions المضمّنة في إحدى الإضافات. تختلف بنية تعريف الموارد قليلاً بين الجيل الأول والجيل الثاني من الدوال، ويمكن أن تتعايش الدوال من الجيلين في إضافة واحدة.

الجيل الأول من Cloud Functions

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
string
(مطلوب)

اسم سهل الاستخدام للدالة التي تم تصديرها.

إذا لم تحدّد السمة entryPoint (راجِع القسم أدناه)، يجب أن تتطابق هذه القيمة مع اسم الدالة في الرمز المصدري للدوال.

سيكون الاسم النهائي للدالة المنشورة بالتنسيق التالي: ext-extension-instance-id-name.

type
string
(مطلوب)
بالنسبة إلى مورد دالة من الجيل الأول: firebaseextensions.v1beta.function
description
string
(مطلوب)

وصف موجز للمهمة التي تنفّذها الدالة في الإضافة

properties
(مطلوب)

خصائص الجيل الأول من Cloud Functions تم إدراج أهم الخصائص أدناه، ولكن يمكنك العثور على القائمة الكاملة في مرجع Cloud Functions.

المواقع
location
(اختياري)

الموقع الجغرافي الذي سيتم نشر الدالة فيه القيمة التلقائية هي us-central1

entryPoint
(اختياري)
اسم الدالة التي تم تصديرها ضمن رمز المصدر الخاص بالدوال التي يجب أن يبحث عنها الامتداد. القيمة التلقائية هي قيمة name المذكورة أعلاه.
sourceDirectory
(اختياري)

الدليل الذي يحتوي على package.json في جذرها يجب أن يكون ملف رمز المصدر الخاص بالدوال في هذا الدليل. القيمة التلقائية هي functions

ملاحظة: يحدّد الحقل main في package.json الملف الذي يتضمّن رمز المصدر الخاص بالدوال (مثل index.js).

timeout
(اختياري)

الحدّ الأقصى لوقت تنفيذ الدالة

  • عناوين URL التلقائية: 60s
  • الحد الأقصى للقيمة: 540s
availableMemoryMb
(اختياري)

مقدار الذاكرة بالميغابايت المتاحة للدالة.

  • عناوين URL التلقائية: 256
  • القيم الصالحة: 128 و256 و512 و1024 و2048
runtime
(مُقترَحة)

بيئة وقت التشغيل للدالة

httpsTrigger
أو
eventTrigger
أو
scheduleTrigger
أو
taskQueueTrigger
(يجب توفّر أحد أنواع مشغّلات الدوال هذه)
راجِع كتابة دوال Cloud Functions لإحدى الإضافات للحصول على معلومات محدّدة حول كل نوع من أنواع المشغِّلات.

الجيل الثاني من 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
string
(مطلوب)

اسم سهل الاستخدام للدالة التي تم تصديرها.

إذا لم تحدّد السمة entryPoint (راجِع القسم أدناه)، يجب أن تتطابق هذه القيمة مع اسم الدالة في الرمز المصدري للدوال.

سيكون الاسم النهائي للدالة المنشورة بالتنسيق التالي: ext-extension-instance-id-name.

type
string
(مطلوب)
بالنسبة إلى مرجع دالة من الجيل الثاني: firebaseextensions.v1beta.v2function
description
string
(مطلوب)

وصف موجز للمهمة التي تنفّذها الدالة في الإضافة

properties
(مطلوب)

خصائص الجيل الثاني من Cloud Functions تم إدراج أهم الخصائص أدناه، ولكن يمكنك العثور على القائمة الكاملة في مرجع Cloud Functions.

المواقع
location
(اختياري)

الموقع الجغرافي الذي سيتم نشر الدالة فيه القيمة التلقائية هي us-central1

sourceDirectory
(اختياري)

الدليل الذي يحتوي على package.json في جذرها يجب أن يكون ملف رمز المصدر الخاص بالدوال في هذا الدليل. القيمة التلقائية هي functions

ملاحظة: يحدّد الحقل main في package.json الملف الذي يتضمّن رمز المصدر الخاص بالدوال (مثل index.js).

هناك أيضًا ثلاثة حقول من نوع العنصر تتضمّن خصائصها الخاصة:

سمات buildConfig
buildConfig.runtime
(مُقترَحة)

بيئة وقت التشغيل للدالة

buildConfig.entryPoint
(اختياري)
اسم الدالة التي تم تصديرها ضمن رمز المصدر الخاص بالدوال التي يجب أن يبحث عنها الامتداد. القيمة التلقائية هي قيمة name المذكورة أعلاه.
سمات serviceConfig
serviceConfig.timeoutSeconds
(اختياري)

الحدّ الأقصى لوقت تنفيذ الدالة

  • عناوين URL التلقائية: 60
  • الحد الأقصى للقيمة: 540
serviceConfig.availableMemory
(اختياري)
مقدار الذاكرة المتاحة للدالة. القيمة التلقائية هي 256M. الوحدات المسموح بها هي k وM وG وMi وGi. إذا لم يتم توفير وحدة، سيتم تفسير القيمة على أنّها بايت.
سمات eventTrigger
eventTrigger.eventType
(مطلوب)
نوع الحدث الذي سيتم الاستماع إليه. راجِع مقالة كتابة دوال Cloud Functions لإحدى الإضافات للاطّلاع على أنواع الأحداث المتاحة لكل منتج.
eventTrigger.eventFilters
(اختياري)
فلاتر تحدّ بشكل أكبر من الأحداث التي يجب الاستماع إليها. على سبيل المثال، يمكنك الاستماع إلى الأحداث التي تتطابق مع نمط موارد معيّن فقط. راجِع مقالة كتابة دوال Cloud Functions لإحدى الإضافات للحصول على معلومات حول فلترة كل نوع من أنواع الأحداث.
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
string
(مطلوب)

اسم الدالة التي يتم تشغيلها من خلال قائمة انتظار المهام والتي ستتعامل مع الحدث.

يجب تعريف هذه الدالة في القسم resources ويجب أن تتضمّن taskQueue.

processingMessage
string
(مطلوب)
رسالة يتم عرضها في وحدة تحكّم Firebase أثناء تنفيذ المهمة.
onUpdate
(اختياري)

تحدّد هذه السمة دالة يتم تنفيذها عندما يحدّث المستخدم الإضافة.

مواصفات الدالة
function
string
(مطلوب)

اسم الدالة التي يتم تشغيلها من خلال قائمة انتظار المهام والتي ستتعامل مع الحدث.

يجب تعريف هذه الدالة في القسم resources ويجب أن تتضمّن taskQueue.

processingMessage
string
(مطلوب)
رسالة يتم عرضها في وحدة تحكّم Firebase أثناء تنفيذ المهمة.
onConfigure
(اختياري)

تحدّد هذه السمة دالة يتم تنفيذها عندما يعيد المستخدم ضبط الإضافة.

مواصفات الدالة
function
string
(مطلوب)

اسم الدالة التي يتم تشغيلها من خلال قائمة انتظار المهام والتي ستتعامل مع الحدث.

يجب تعريف هذه الدالة في القسم resources ويجب أن تتضمّن taskQueue.

processingMessage
string
(مطلوب)
رسالة يتم عرضها في وحدة تحكّم 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
string
(مطلوب)
المعرّف الخاص بنوع الحدث. أنشئ المعرّف من 3 إلى 4 حقول مفصولة بنقاط، ويجب ملء حقول معرّف الناشر واسم الإضافة واسم الحدث، ويُنصح بملء حقل الإصدار. اختَر اسمًا فريدًا ووصفيًا للحدث لكل نوع من أنواع الأحداث التي تنشرها.
description
string
(مطلوب)
وصف الحدث