يحتوي ملف مواصفات الإضافة (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" القيمة الحالية: |
||||||||
license string (اختياري) |
ترخيص الإضافة يجب أن تكون إضافتك مرخّصة باستخدام |
||||||||
billingRequired boolean (اختياري) |
تحديد ما إذا كانت الخدمات التي تستخدمها الإضافة تتطلّب حساب فوترة على Firebase ضمن فئة مدفوعة يجب ضبطها دائمًا على |
||||||||
displayName string (اختياري) |
اسم العرض السهل للاستخدام الخاص بالامتداد (من 3 إلى 5 كلمات). عدد الأحرف المسموح به هو 40. |
||||||||
description string (اختياري) |
وصف موجز للمهمة التي تنفّذها الإضافة (جملة واحدة تقريبًا) | ||||||||
icon string (اختياري) |
الملف الذي سيتم استخدامه كرمز للإضافة على يجب أن يكون هذا الملف بتنسيق 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
تحدّد هذه الحقول واجهات برمجة التطبيقات من 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 (اختياري) |
يجب أن يقتصر نطاق الدور على هذا المرجع. وفي حال عدم تحديدها، يتم ضبط القيمة التلقائية على |
الخدمات الخارجية
تحدّد هذه الحقول الخدمات غير التابعة لـ 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 (اختياري) |
تحدّد هذه السمة ما إذا كان بإمكان المستخدم تغيير قيمة المَعلمة بعد التثبيت (مثلاً، إذا أعاد ضبط إعدادات الإضافة). القيمة التلقائية هي ملاحظة: إذا حدّدت مَعلمة "الموقع الجغرافي" للدوال التي تم نشرها في إضافتك، اضبط هذا الحقل على |
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 |
تحدّد هذه السمة أنّ المَعلمة يمكن أن تكون قيمة واحدة ( |
||||||
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 string |
تحدّد هذه السمة أنّ المَعلمة تمثّل مورد مشروع |
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 string |
تحدّد أنّ المَعلمة هي قيمة سرية |
موارد 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 (مطلوب) |
اسم سهل الاستخدام للدالة التي تم تصديرها. إذا لم تحدّد السمة سيكون الاسم النهائي للدالة المنشورة بالتنسيق التالي:
|
||||||||||||||||
type string (مطلوب) |
بالنسبة إلى مورد دالة من الجيل الأول:
firebaseextensions.v1beta.function
|
||||||||||||||||
description string (مطلوب) |
وصف موجز للمهمة التي تنفّذها الدالة في الإضافة |
||||||||||||||||
properties (مطلوب) |
خصائص الجيل الأول من Cloud Functions تم إدراج أهم الخصائص أدناه، ولكن يمكنك العثور على القائمة الكاملة في مرجع 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 (مطلوب) |
اسم سهل الاستخدام للدالة التي تم تصديرها. إذا لم تحدّد السمة سيكون الاسم النهائي للدالة المنشورة بالتنسيق التالي:
|
||||||||||||||||||||||||||||
type string (مطلوب) |
بالنسبة إلى مرجع دالة من الجيل الثاني:
firebaseextensions.v1beta.v2function
|
||||||||||||||||||||||||||||
description string (مطلوب) |
وصف موجز للمهمة التي تنفّذها الدالة في الإضافة |
||||||||||||||||||||||||||||
properties (مطلوب) |
خصائص الجيل الثاني من Cloud Functions تم إدراج أهم الخصائص أدناه، ولكن يمكنك العثور على القائمة الكاملة في مرجع 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 string (مطلوب) |
المعرّف الخاص بنوع الحدث. أنشئ المعرّف من 3 إلى 4 حقول مفصولة بنقاط، ويجب ملء حقول معرّف الناشر واسم الإضافة واسم الحدث، ويُنصح بملء حقل الإصدار. اختَر اسمًا فريدًا ووصفيًا للحدث لكل نوع من أنواع الأحداث التي تنشرها. |
description string (مطلوب) |
وصف الحدث |