קובץ המפרט של התוסף (extension.yaml
) מכיל את המטא-נתונים של התוסף, מצהיר על המשאבים שנוצרו על ידי התוסף ועל ממשקי ה-API והגישה שנדרשים לתוסף, ומגדיר את כל הפרמטרים שמוגדרים על ידי המשתמש ומסופקים על ידי התוסף.
בטבלאות שבדף הזה מתוארות השדות הזמינים עבור 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 מחרוזת (חובה) |
מזהה של התוסף. יכול להכיל רק אותיות קטנות, ספרות ומקפים. 40 תווים המוגבלות של המשאבים. הערה: הערך הזה משמש ליצירת מזהה המכונה של התוסף (שמשמשים לאחר מכן ליצירת השמות של חשבון השירות של התוסף והמשאבים הספציפיים לתוסף). |
||||||||
version מחרוזת (חובה) |
גרסת התוסף. חייבת להיות תואמת למערכת semver למתן גרסאות (לדוגמה, 1.2.0). |
||||||||
specVersion מחרוזת (חובה) |
גרסת מפרט התוספים ל-Firebase. הערך הנוכחי: |
||||||||
license מחרוזת (אופציונלי) |
הרישיון של התוסף. נדרש רישיון לשימוש בתוסף שלך באמצעות |
||||||||
billingRequired בוליאני (אופציונלי) |
האם השירותים שהתוסף משתמש בהם מחייבים רמה בתשלום חשבון לחיוב ב-Firebase. תמיד מוגדר ל- |
||||||||
displayName מחרוזת (אופציונלי) |
שם תצוגה ידידותי של התוסף (3-5 מילים). מגבלה של 40 תווים. |
||||||||
description מחרוזת (אופציונלי) |
תיאור קצר של המשימה שהתוסף מבצע (כמשפט אחד). | ||||||||
icon מחרוזת (אופציונלי) |
קובץ שישמש כסמל התוסף ב-
הקובץ צריך להיות בפורמט PNG ריבועי, בגודל שבין 512x512 ל-1,024x1,024 פיקסלים.
צריך לשמור את הקובץ באותה ספרייה כמו כשמתכננים סמל, חשוב לזכור את ההנחיות הבאות סיומת:
|
||||||||
tags רשימת מחרוזות (אופציונלי) |
תגים שעוזרים למשתמשים לגלות את התוסף שלכם.
התגים הבאים ממופים לקטגוריות במרכז התוספים:
marketing ,
messaging ,
payments ,
search ,
shipping ,
social ,
utilities ,
ai
|
||||||||
sourceUrl מחרוזת (אופציונלי) |
כתובת URL ציבורית שבה אפשר לגשת לספריית התוספים. | ||||||||
releaseNotesUrl מחרוזת (אופציונלי) |
כתובת URL ציבורית שבה אפשר לגשת למידע על הגרסה של התוסף. | ||||||||
author אובייקט 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/
|
ממשקי API של Firebase ו-Google Cloud
השדות האלה מציינים את ממשקי ה-API של Firebase ו-Google שבהם התוסף משתמש. כשמשתמשים להתקין את התוסף, הם יכולים להפעיל באופן אוטומטי את ממשקי ה-API האלה את הפרויקט שלהם.
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
שדות API | |
---|---|
apiName מחרוזת (חובה) |
השם של Google API השם צריך להתאים לשדה Service name שמופיע בדף הסקירה הכללית של כל API (דוגמה) בספריית Google Cloud API. |
reason מחרוזת (חובה) |
תיאור קצר של הסיבה לכך שהתוסף צריך להשתמש ב-API הזה |
תפקידי IAM
בשדות האלו מפורטים התפקידים ב-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 מחרוזת (חובה) |
תיאור קצר של הסיבה שבגללה נדרשת לתוסף גישה התפקיד הזה |
resource מחרוזת (אופציונלי) |
צריך להגביל את היקף התפקיד למשאב הזה. אם לא מציינים את הפרמטר הזה, ברירת המחדל היא |
שירותים חיצוניים
בשדות האלה מציינים את השירותים שאינם של Firebase ושירותים שאינם של Google שבהם התוסף משתמש (בדרך כלל ממשקי API ל-REST). פלטפורמת התוספים של Firebase לא מספקת אמצעי להפעלה אוטומטית של השירותים האלה או לביצוע הרשאה עבורם.
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 מחרוזת (חובה) |
שם הפרמטר. אתם משתמשים בשם הזה כדי להפנות לפרמטר בקוד. |
label מחרוזת (חובה) |
תיאור קצר של הפרמטר. יוצגו למשתמש כשהוא בקשה להזין את ערך הפרמטר. |
description מחרוזת (אופציונלי) |
תיאור מפורט של הפרמטר. מוצג למשתמש כשמוצגת לו בקשה להזין את הערך של הפרמטר. תמיכה ב-Markdown. |
example מחרוזת (אופציונלי) |
ערך לדוגמה של הפרמטר. |
default מחרוזת (אופציונלי) |
ערך ברירת המחדל של הפרמטר אם המשתמש משאיר את הערך של הפרמטר ריק. |
validationRegex string (אופציונלי) |
ביטוי רגולרי לאימות של הגדרת המשתמש של הפרמטר עם ערך מסוים. Google RE2 תחביר. |
validationErrorMessage מחרוזת (אופציונלי) |
הודעת השגיאה שתוצג אם אימות הביטוי הרגולרי נכשל. |
required boolean (אופציונלי) |
ההגדרה קובעת אם המשתמש יכול לשלוח מחרוזת ריקה כשמתבקשים להזין את הערך של הפרמטר. ברירת המחדל היא true .
|
immutable boolean (אופציונלי) |
המדיניות קובעת אם המשתמש יכול לשנות את ערך הפרמטר אחרי
(למשל, אם הוא מגדיר מחדש את התוסף). ברירת המחדל היא
הערה: אם מגדירים 'מיקום' הפרמטר של הפריסה
הפונקציות של התוסף, מגדירים את השדה הזה ל- |
type מחרוזת (אופציונלי) |
סוג הפרמטר יכול להיות שיש עוד סוגים של פרמטרים. דרישות שונות או תצוגה שונה של ממשק המשתמש. פרטים נוספים זמינים בקטעים הבאים. |
פרמטרים שניתנים לבחירה ולבחירה מרובה
פרמטרים שניתנים לבחירה ולבחירה מרובה מבקשים מהמשתמשים לבחור מתוך רשימה של לאפשרויות מוגדרות מראש.
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 מחרוזת (חובה) |
סוג המשאב שהמשתמש יתבקש לבחור. הערכים האפשריים:
עם זאת, כרגע רק לקטגוריות של Cloud Storage יש ממשק משתמש לבחירה (סוגי משאבים אחרים מוצגים כשדות להזנת טקסט חופשי). |
פרמטרים של סודות
אופן הטיפול בערכים של סודות שסופקו על ידי המשתמש (כמו מפתחות API) מתבצע באופן שונה:
- הערכים של הסודות מאוחסנים באמצעות Cloud Secret Manager. רק לקוחות מורשים (למשל, מופע מותקן של תוסף) יש גישה לערכים האלה.
- כשהמשתמשים יתבקשו להזין את הערכים האלה, הקלט שלהם לא יוצג.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What is the secret value?
type: secret
שדות של פרמטרים סודיים | |
---|---|
type String (מחרוזת) |
מציינת שהפרמטר הוא ערך סודי |
משאבים של Cloud Functions
בשדות האלה מוצהר על הפונקציות של 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 מחרוזת (חובה) |
שם ידידותי למשתמש לפונקציה שמיוצאת. אם לא מציינים את המאפיין השם הסופי של הפונקציה שפורסה יהיה בפורמט הבא: |
||||||||||||||||
type מחרוזת (חובה) |
למשאב של פונקציה מדור ראשון:
firebaseextensions.v1beta.function
|
||||||||||||||||
description מחרוזת (חובה) |
תיאור קצר של המשימה שהפונקציה מבצעת עבור לתוסף. |
||||||||||||||||
properties (חובה) |
נכסי 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 מחרוזת (חובה) |
שם ידידותי למשתמש לפונקציה שמיוצאת. אם לא מציינים את המאפיין השם הסופי של הפונקציה שפורסה יהיה בפורמט הבא: |
||||||||||||||||||||||||||||
type מחרוזת (חובה) |
למשאב פונקציה מדור שני:
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 במאמר הוספת וו hooks של משתמשים לתוסף.
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 מחרוזת (חובה) |
תיאור האירוע. |