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

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

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

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

يجب أن يتّبع نظام ترقيم الإصدارات semver (مثلاً، 1.2.0).

specVersion
string
(مطلوب)

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

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

license
string
(اختياري)

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

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

billingRequired
القيمة المنطقية
(اختياري)

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

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

displayName
سلسلة
(اختيارية)

اسم معروض سهل للإضافة (من 3 إلى 5 كلمات).

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

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

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

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

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

  • اختَر ألوانًا مناسبة لعلامتك التجارية في الخلفية والأعمال الفنية.
  • يجب أن تكون ألوان الرموز بسيطة، مع استخدام لونَين فقط. يمكن أن تؤدي الألوان المتعدّدة إلى تشويش الرمز بشكل بصري.
  • ولهذا السبب نفسه، لا تستخدِم تدرّجات الألوان في رمزك. يصعب تمييز التدرجات عند استخدام أحجام صغيرة، كما تجعل الرمز معقدًا visually .
  • استخدِم صورًا بسيطة وفريدة تُظهر وظائف الإضافة.
  • إذا كانت شركتك تُنشئ إضافات متعدّدة، لا تستخدِم شعارك كرمز. سيصعب على المستخدمين التمييز بين الإضافات.
  • اجعل العمل الفني رسومًا جريئة. لا تستخدِم رسومات دقيقة أو معقّدة، إذ لن يتم عرضها بشكل جيد بأحجام أصغر.
  • ولا تضمِّن كلمات تشرح ما تفعله الإضافة. يصبح النص غالبًا غير مقروء عند استخدام أحجام أصغر.
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
سلسلة
(اختيارية)
عنوان URL متاح للجميع يمكن من خلاله الوصول إلى معلومات عن المؤلف
contributors
قائمة بكائنات المؤلف
(اختياري)

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

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

اسم المؤلف

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

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

Firebase وGoogle Cloud APIs

تحدِّد هذه الحقول واجهات برمجة تطبيقات 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

يجب أن يتطابق مع حقل اسم الخدمة كما هو مذكور في كلٍّ من صفحة النظرة العامة على واجهة برمجة التطبيقات (مثال) في مكتبة 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
(مطلوب)

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

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

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

حصر نطاق الدور على هذا المورد.

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

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

تحدِّد هذه الحقول الخدمات غير التابعة لشركة Firebase وGoogle التي تستخدمها الإضافة (عادةً واجهات برمجة تطبيقات REST). لا توفّر منصة Firebase Extensions أي وسيلة لتفعيل هذه الخدمات أو تنفيذ التفويض لها تلقائيًا.

externalServices:
  - name: Example API
    pricingUri: https://developers.example.com/pricing
  - name: Another Example API
    pricingUri: https://developers.example.com/pricing
حقول الخدمات الخارجية
name
سلسلة
(مطلوبة)
اسم الخدمة الخارجية اللازمة لتشغيل الإضافة
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
سلسلة
(مطلوبة)
اسم المَعلمة ويمكنك استخدام هذا الاسم للإشارة إلى قيمة المَعلمة في الرمز البرمجي.
label
سلسلة
(مطلوبة)
وصف موجز للمَعلمة يتم عرضها للمستخدم عندما يتم طلب قيمة المَعلمة منه.
description
string
(اختياري)

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

تتوافق مع Markdown.

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

يحدِّد ما إذا كان بإمكان المستخدِم تغيير قيمة المَعلمة بعد التثبيت (مثلاً في حال إعادة ضبط الإضافة). وتكون القيم التلقائية 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
سلسلة

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
سلسلة

selectresource

تُستخدَم لتحديد أنّ المَعلمة تمثّل موردًا للمشروع.

resourceType
string
(مطلوب)

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

قيم صالحة:

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

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

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

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

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

secret

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

موارد وظائف السحابة الإلكترونية

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

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

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

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

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

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

وصف موجز للمهمة التي تؤديها الدالة لإضافة

properties
(مطلوب)

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

المواقع
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 من الجيل الثاني

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 (راجِع المعلومات أدناه)، يجب أن تتطابق هذه القيمة مع اسم الدالة في رمز دوالّك المصدر.

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

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

وصف موجز للمهمة التي تؤديها الدالة لإضافة

properties
(مطلوب)

مواقع الجيل الثاني من 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 لإضافة لمعرفة أنواع الأحداث المتاحة لكل منتج.
eventTrigger.eventFilters
(اختياري)
الفلاتر التي تحدّ بشكل أكبر من الأحداث التي يتم الاستماع إليها على سبيل المثال، يمكنك الاستماع فقط إلى الأحداث التي تتطابق مع نمط مورد معيّن. اطّلِع على مقالة كتابة وظائف سحابة تطبيقات Google لإضافة للحصول على معلومات عن فلترة كل نوع من الأحداث.
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
string
(مطلوب)
رسالة للعرض في وحدة تحكُّم Firebase أثناء تنفيذ المهمة
onUpdate
(اختياري)

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

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

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

يجب الإعلان عن هذه الدالة في القسم resources وأن يكون لديها taskQueue محدّد.

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

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

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

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

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