يحتوي ملف مواصفات الإضافة (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 القيمة الحالية: |
||||||||
license string (اختياري) |
ترخيص الإضافة يجب أن تكون الإضافة مرخّصة باستخدام |
||||||||
billingRequired القيمة المنطقية (اختياري) |
ما إذا كانت الخدمات التي تستخدمها الإضافة تتطلّب حساب فوترة على Firebase ذي مستوى مدفوع. يتم ضبطه دائمًا على |
||||||||
displayName سلسلة (اختيارية) |
اسم معروض سهل للإضافة (من 3 إلى 5 كلمات). عدد الأحرف المسموح به هو 40. |
||||||||
description string (اختياري) |
وصف موجز للمهمة التي تؤديها الإضافة (جملة واحدة تقريبًا) | ||||||||
icon سلسلة (اختيارية) |
ملف لاستخدامه كرمز الإضافة على
يجب أن يكون هذا الملف بتنسيق PNG مربّعًا بحجم يتراوح بين 512×512 و1024×1024 بكسل.
ضَع الملف في الدليل نفسه الذي يتضمّن عليك مراعاة الإرشادات التالية عند تصميم رمز للإضافة:
|
||||||||
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/
|
||||||||
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 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 سلسلة (اختيارية) |
حصر نطاق الدور على هذا المورد. وإذا تم حذفها، يتم ضبطها تلقائيًا على " |
الخدمات الخارجية
تحدِّد هذه الحقول الخدمات غير التابعة لشركة 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 القيمة المنطقية (اختياري) |
يحدِّد ما إذا كان بإمكان المستخدِم تغيير قيمة المَعلمة بعد
التثبيت (مثلاً في حال إعادة ضبط الإضافة). وتكون القيم التلقائية
ملاحظة: في حال تحديد مَعلمة "الموقع الجغرافي" للدوالّ
التي تم نشرها في الإضافة، اضبط هذا الحقل على |
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 (يتم عرض أنواع الموارد الأخرى كحقول إدخال نص بتنسيق حر). |
المَعلمات السرية
يتم التعامل مع القيم السرية التي يقدّمها المستخدم (مثل مفاتيح واجهة برمجة التطبيقات) بشكل مختلف:
- يتم تخزين القيم السرية باستخدام أداة "إدارة الأسرار في السحابة الإلكترونية". لا يمكن الوصول إلى هذه القيم إلا من خلال العملاء المعتمَدين (مثل نسخة مثبَّتة من إضافة).
- عندما يُطلب من المستخدمين تقديم هذه القيم، لا يتم عرض البيانات التي أدخلوها.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What is the secret value?
type: secret
حقول المَعلمات السرية | |
---|---|
سلسلة
type |
لتحديد أن المعلمة هي قيمة سرية |
موارد وظائف السحابة الإلكترونية
تُعرِض هذه الحقول وظائف 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 (مطلوب) |
اسم سهل الاستخدام للدالة التي تم تصديرها في حال عدم تحديد سمة سيكون الاسم النهائي للدالة deployed بالتنسيق التالي:
|
||||||||||||||||
type سلسلة (مطلوبة) |
لمورد دالة من الجيل الأول:
firebaseextensions.v1beta.function
|
||||||||||||||||
description string (مطلوب) |
وصف موجز للمهمة التي تؤديها الدالة لإضافة |
||||||||||||||||
properties (مطلوب) |
مواقع Cloud Functions من الجيل الأول تم إدراج أهم السمات أدناه، ولكن يمكنك العثور على القائمة الكاملة في مرجع دوال Cloud.
|
وظائف 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 (مطلوب) |
اسم سهل الاستخدام للدالة التي تم تصديرها في حال عدم تحديد سمة سيكون الاسم النهائي للدالة deployed بالتنسيق التالي:
|
||||||||||||||||||||||||||||
type string (مطلوب) |
للحصول على مرجع للدوالّ من الجيل الثاني:
firebaseextensions.v1beta.v2function
|
||||||||||||||||||||||||||||
description string (مطلوب) |
وصف موجز للمهمة التي تؤديها الدالة لإضافة |
||||||||||||||||||||||||||||
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 string (مطلوب) |
وصف الحدث |