يحتوي ملف مواصفات الإضافة (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
سلسلة(مطلوب) |
إصدار مواصفات إضافات Firebase القيمة الحالية: |
||||||||
license
سلسلة(اختياري) |
ترخيص الإضافة يجب أن تكون الإضافة مرخّصة باستخدام |
||||||||
billingRequired منطقي (اختياري) |
ما إذا كانت الخدمات التي تستخدمها الإضافة تتطلّب حساب فوترة في Firebase لإصدار مدفوع يتم ضبطها دائمًا على |
||||||||
displayName
سلسلة(اختياري) |
يجب أن يكون الاسم المعروض للإضافة سهل الاستخدام (من 3 إلى 5 كلمات). عدد الأحرف المسموح به هو 40. |
||||||||
description
سلسلة(اختياري) |
وصف موجز للمهمة التي تؤديها الإضافة (جملة واحدة تقريبًا) | ||||||||
icon string (اختياري) |
الملف لاستخدامه كرمز للإضافة على
يجب أن يكون هذا الملف بتنسيق PNG مربعًا بحجم يتراوح بين 512×512 و1024×1024 بكسل.
ضَع الملف في الدليل نفسه الذي يتضمّن يُرجى مراعاة الإرشادات التالية عند تصميم رمز لإضافة Chrome:
|
||||||||
tags
قائمة بالسلاسل(اختياري) |
علامات لمساعدة المستخدمين في العثور على إضافتك
يتم ربط العلامات التالية بالفئات في "مركز الإضافات":
marketing ،
messaging ,
payments ,
search ,
shipping ,
social ,
utilities ,
ai
|
||||||||
sourceUrl string (اختياري) |
عنوان 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 و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
سلسلة(مطلوب) |
وصف موجز لسبب حاجة الإضافة إلى استخدام واجهة برمجة التطبيقات هذه |
أدوار إدارة الهوية وإمكانية الوصول
تحدِّد هذه الحقول أدوار 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
سلسلة(مطلوب) |
اسم دور "إدارة الهوية وإمكانية الوصول" المطلوب لتشغيل الإضافة يجب أن يكون أحد الأدوار المتوافقة |
reason
سلسلة(مطلوب) |
وصف موجز لسبب احتياج الإضافة إلى إذن الوصول الممنوح من هذا الدور |
resource string (اختياري) |
يمكنك حصر نطاق الدور بهذا المورد. وفي حال حذفها، يتم ضبط الإعدادات التلقائية على |
الخدمات الخارجية
تحدِّد هذه الحقول الخدمات غير التابعة لشركة 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
سلسلة(مطلوب) |
معرّف الموارد المنتظم (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
سلسلة(اختياري) |
القيمة التلقائية للمَعلمة إذا ترك المستخدم قيمة المَعلمة فارغ. |
validationRegex
سلسلة(اختياري) |
تعبير عادي للتحقق من صحة ضبط المستخدم للمعلَمة بنية Google RE2 |
validationErrorMessage string (اختياري) |
رسالة خطأ تظهر في حال تعذُّر التحقّق من صحة التعبير العادي. |
required منطقي (اختياري) |
تحدِّد هذه السياسة ما إذا كان يمكن للمستخدم إرسال سلسلة فارغة عندما
المطلوبة لقيمة المعلمة. الإعداد التلقائي هو true .
|
immutable منطقي (اختياري) |
يحدِّد ما إذا كان بإمكان المستخدِم تغيير قيمة المَعلمة بعد
التثبيت (مثلاً في حال إعادة ضبط الإضافة). الإعداد التلقائي هو
ملاحظة: في حال تحديد "موقع جغرافي" معلَمة عملية النشر
وظائف الإضافة، عيِّن هذا الحقل على |
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 سلسلة |
تُستخدَم لتحديد أنّ المَعلمة يمكن أن تكون قيمة واحدة ( |
||||||
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 string (مطلوب) |
نوع المورد الذي سيطلب من المستخدم اختياره. قيم صالحة:
ومع ذلك، لا تتوفّر حاليًا واجهة مستخدم للاختيار إلا في حِزم Cloud Storage (يتم عرض أنواع الموارد الأخرى كحقول إدخال نص بتنسيق حر). |
المَعلمات السرية
يتم التعامل مع القيم السرية المقدَّمة من المستخدِم (مثل مفاتيح واجهة برمجة التطبيقات) بشكلٍ مختلف:
- يتم تخزين القيم السرية باستخدام Cloud Secret Manager. لا يمكن الوصول إلى هذه القيم إلا من خلال العملاء المعتمَدين (مثل نسخة مثبَّتة من إضافة).
- وعندما يُطلب من المستخدمين تقديم هذه القيم، لا يتم عرض بياناتهم.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What is the secret value?
type: secret
حقول المَعلمات السرية | |
---|---|
type سلسلة |
لتحديد أن المعلمة هي قيمة سرية |
موارد Cloud Function
توضّح هذه الحقول دوال السحابة الإلكترونية المضمَّنة في إحدى الإضافات. المورد بنية نموذج البيان تبدو مختلفة قليلاً بين الجيل الأول والجيل الثاني الدوال، والتي يمكن أن تتوفر معًا في امتداد معيّن.
وظائف السحابة الإلكترونية من الجيل الأول
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
سلسلة(مطلوب) |
اسم سهل الاستخدام للدالة التي تم تصديرها. في حال عدم تحديد سمة سيكون الاسم النهائي للدالة deployed في
التنسيق التالي:
|
||||||||||||||||
type string (مطلوب) |
لمورد دالة من الجيل الأول:
firebaseextensions.v1beta.function
|
||||||||||||||||
description string (مطلوب) |
وصف موجز للمهمة التي تؤديها الدالة لإضافة |
||||||||||||||||
properties
(مطلوب)
|
مواقع Cloud Functions من الجيل الأول أهم الخصائص مدرجة أدناه، ولكن يمكنك العثور على القائمة الكاملة في السحابة الإلكترونية مرجع الدوال
|
وظائف 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
سلسلة(مطلوب) |
اسم سهل الاستخدام للدالة التي تم تصديرها. في حال عدم تحديد سمة سيكون الاسم النهائي للدالة deployed في
التنسيق التالي:
|
||||||||||||||||||||||||||||
type string (مطلوب) |
بالنسبة إلى مورد دالة من الجيل الثاني:
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
سلسلة(مطلوب) |
وصف الحدث |