Il file di specifica dell'estensione (extension.yaml) contiene i metadati dell'estensione, dichiara le risorse create dall'estensione, le API e l'accesso richiesti dall'estensione e definisce i parametri configurati dall'utente forniti dall'estensione.
Le tabelle in questa pagina descrivono i campi disponibili per un file extension.yaml.
Informazioni di base e identitarie
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/
| Campi di base | |||||||||
|---|---|---|---|---|---|---|---|---|---|
namestringa (obbligatorio) |
Identificatore dell'estensione. Può contenere solo lettere minuscole, numeri e trattini; limite di 40 caratteri. Nota: questo valore viene utilizzato per generare l'ID istanza dell'estensione (che viene poi utilizzato per generare i nomi dell'account di servizio dell'estensione e delle risorse specifiche dell'estensione). |
||||||||
versionstringa (obbligatorio) |
Versione dell'estensione. Deve seguire il controllo delle versioni semver (ad esempio, 1.2.0). |
||||||||
specVersionstringa (obbligatorio) |
Versione della specifica di Firebase Extensions. Valore corrente: |
||||||||
licensestringa (facoltativo) |
Licenza per l'estensione. La tua estensione deve essere concessa in licenza utilizzando |
||||||||
billingRequiredboolean (facoltativo) |
Indica se i servizi utilizzati dall'estensione richiedono un account di fatturazione Firebase di livello a pagamento. Impostato sempre su |
||||||||
displayNamestringa (facoltativo) |
Nome visualizzato facile da usare per l'estensione (3-5 parole). Limite di caratteri di 40. |
||||||||
descriptionstringa (facoltativo) |
Breve descrizione dell'attività eseguita dall'estensione (circa 1 frase). | ||||||||
iconstringa (facoltativo) |
File da utilizzare come icona dell'estensione su
Questo file deve essere un file PNG quadrato con dimensioni comprese tra 512 x 512 e 1024 x 1024 pixel.
Inserisci il file nella stessa directory di Tieni presente le seguenti linee guida quando progetti un'icona per la tua estensione:
|
||||||||
tagselenco di stringhe (facoltativo) |
Tag per aiutare gli utenti a scoprire la tua estensione.
I seguenti tag vengono mappati alle categorie nell'hub delle estensioni:
marketing,
messaging,
payments,
search,
shipping,
social,
utilities,
ai
|
||||||||
sourceUrlstringa (facoltativo) |
URL pubblico in cui è possibile accedere alla directory dell'estensione. | ||||||||
releaseNotesUrlstringa (facoltativo) |
URL pubblico in cui è possibile accedere alle note di rilascio dell'estensione. | ||||||||
authorUn oggetto autore (facoltativo) |
Autore principale e punto di contatto per l'estensione. author: authorName: Your Company email: extensions@example.com url: https://example.com/
|
||||||||
contributorsElenco di oggetti autore (facoltativo) |
Eventuali altri autori che hanno contribuito all'estensione. contributors: - authorName: Your Name - authorName: Another Contributor email: colleague@example.net url: https://github.com/their-org/
|
||||||||
API Firebase e Google Cloud
Questi campi specificano le API di Firebase e Google utilizzate dall'estensione. Quando gli utenti installano l'estensione, possono scegliere di abilitare automaticamente queste API nel loro progetto.
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
| Campi API | |
|---|---|
apiNamestringa (obbligatorio) |
Nome dell'API di Google Deve corrispondere al campo Nome servizio elencato nella pagina di riepilogo di ogni API (esempio) nella libreria API di Google Cloud |
reasonstringa (obbligatorio) |
Breve descrizione del motivo per cui l'estensione deve utilizzare questa API |
Ruoli IAM
Questi campi specificano i ruoli Cloud IAM richiesti dall'estensione. Questi ruoli vengono concessi al service account di cui è stato eseguito il provisioning per l'estensione.
Puoi specificare solo uno dei ruoli supportati.
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
| Campi dei ruoli | |
|---|---|
rolestringa (obbligatorio) |
Nome del ruolo IAM necessario per il funzionamento dell'estensione Deve essere uno dei ruoli supportati |
reasonstringa (obbligatorio) |
Breve descrizione del motivo per cui l'estensione richiede l'accesso concesso da questo ruolo |
resourcestringa (facoltativo) |
Limita l'ambito del ruolo a questa risorsa. Se omesso, il valore predefinito è |
Servizi esterni
Questi campi specificano i servizi non Firebase e non Google utilizzati dall'estensione (in genere API REST). La piattaforma Firebase Extensions non fornisce alcun mezzo per abilitare o eseguire automaticamente l'autorizzazione per questi servizi.
externalServices:
- name: Example API
pricingUri: https://developers.example.com/pricing
- name: Another Example API
pricingUri: https://developers.example.com/pricing
| Campi relativi ai servizi esterni | |
|---|---|
namestringa (obbligatorio) |
Nome del servizio esterno necessario per il funzionamento dell'estensione |
pricingUristringa (obbligatorio) |
URI alle informazioni sui prezzi del servizio |
Parametri configurabili dall'utente
Questi campi definiscono i parametri che l'estensione mette a disposizione degli utenti per la configurazione.
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
| Campi dei parametri | |
|---|---|
paramstringa (obbligatorio) |
Nome del parametro. Utilizza questo nome per fare riferimento al valore del parametro nel codice. |
labelstringa (obbligatorio) |
Breve descrizione del parametro. Viene mostrato all'utente quando gli viene richiesto il valore del parametro. |
descriptionstringa (facoltativo) |
Descrizione dettagliata del parametro. Viene mostrato all'utente quando gli viene richiesto il valore del parametro. Supporta Markdown. |
examplestringa (facoltativo) |
Valore di esempio per il parametro. |
defaultstringa (facoltativo) |
Valore predefinito del parametro se l'utente lascia vuoto il valore del parametro. |
validationRegexstringa (facoltativo) |
Espressione regolare per la convalida del valore del parametro configurato dall'utente. Sintassi Google RE2. |
validationErrorMessagestringa (facoltativo) |
Messaggio di errore da visualizzare se la convalida dell'espressione regolare non va a buon fine. |
requiredboolean (facoltativo) |
Definisce se l'utente può inviare una stringa vuota quando gli viene richiesto il valore del parametro. Il valore predefinito è true.
|
immutableboolean (facoltativo) |
Definisce se l'utente può modificare il valore del parametro dopo l'installazione (ad esempio se riconfigura l'estensione). Il valore predefinito è Nota: se definisci un parametro "location" per le funzioni di cui è stato eseguito il deployment della tua estensione, imposta questo campo su |
typestringa (facoltativo) |
Il tipo di parametro. I tipi di parametri speciali potrebbero avere requisiti aggiuntivi o una presentazione dell'interfaccia utente diversa. Consulta le sezioni seguenti. |
Parametri selezionabili e a selezione multipla
I parametri selezionabili e multiselezione invitano gli utenti a scegliere da un elenco di opzioni predefinite.
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
| Campi dei parametri a scelta multipla | |||||||
|---|---|---|---|---|---|---|---|
typestring |
Specifica che il parametro può essere un valore ( |
||||||
optionselenco di opzioni (obbligatorio) |
Le opzioni tra cui l'utente può scegliere
|
||||||
Parametri delle risorse selezionabili
I parametri delle risorse selezionabili chiedono agli utenti di selezionare una risorsa (istanza di database, bucket di archiviazione e così via) dal loro progetto.
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
| Campi dei parametri delle risorse | |
|---|---|
typestring |
Specifica che il parametro rappresenta una risorsa di progetto |
resourceTypestringa (obbligatorio) |
Il tipo di risorsa che l'utente deve selezionare. Valori validi:
Tuttavia, al momento solo i bucket Cloud Storage hanno una UI di selezione (gli altri tipi di risorse vengono presentati come campi di immissione di testo in formato libero). |
Parametri secret
I valori dei secret forniti dall'utente (come le chiavi API) vengono gestiti in modo diverso:
- I valori dei secret vengono archiviati utilizzando Cloud Secret Manager. Solo i client autorizzati (ad esempio un'istanza installata di un'estensione) possono accedere a questi valori.
- Quando agli utenti viene chiesto di fornire questi valori, il loro input non viene visualizzato.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What is the secret value?
type: secret
| Campi dei parametri secret | |
|---|---|
typestring |
Specifica che il parametro è un valore secret |
Risorse Cloud Functions
Questi campi dichiarano le funzioni Cloud Functions incluse in un'estensione. La sintassi della dichiarazione delle risorse è leggermente diversa tra le funzioni di 1ª e 2ª gen., che possono coesistere in un'estensione.
Cloud Functions di 1ª gen.
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
| Campi delle risorse | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
namestringa (obbligatorio) |
Nome facile da usare per la funzione esportata. Se non specifichi la proprietà Il nome finale della funzione di cui è stato eseguito il deployment sarà nel seguente formato: |
||||||||||||||||
typestringa (obbligatorio) |
Per una risorsa della funzione di 1ª gen.:
firebaseextensions.v1beta.function
|
||||||||||||||||
descriptionstringa (obbligatorio) |
Breve descrizione dell'attività eseguita dalla funzione per l'estensione. |
||||||||||||||||
properties(obbligatorio) |
Proprietà di Cloud Functions (1ª gen.). Le proprietà più importanti sono elencate di seguito, ma puoi trovare l'elenco completo nel riferimento di Cloud Functions.
|
||||||||||||||||
Cloud Functions (2ª gen.)
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
| Campi delle risorse | |||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
namestringa (obbligatorio) |
Nome facile da usare per la funzione esportata. Se non specifichi la proprietà Il nome finale della funzione di cui è stato eseguito il deployment sarà nel seguente formato: |
||||||||||||||||||||||||||||
typestringa (obbligatorio) |
Per una risorsa di funzione di 2ª gen.:
firebaseextensions.v1beta.v2function
|
||||||||||||||||||||||||||||
descriptionstringa (obbligatorio) |
Breve descrizione dell'attività eseguita dalla funzione per l'estensione. |
||||||||||||||||||||||||||||
properties(obbligatorio) |
Proprietà di Cloud Functions (2ª gen.). Le proprietà più importanti sono elencate di seguito, ma puoi trovare l'elenco completo nel riferimento di Cloud Functions.
Esistono anche tre campi di tipo oggetto con le proprie proprietà:
|
||||||||||||||||||||||||||||
Eventi del ciclo di vita
Gli eventi del ciclo di vita ti consentono di specificare le funzioni che verranno eseguite quando un utente installa, aggiorna o configura un'istanza della tua estensione. Consulta Gestisci gli eventi del ciclo di vita dell'estensione.
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
| Campi degli eventi del ciclo di vita | |||||||
|---|---|---|---|---|---|---|---|
onInstall(facoltativo) |
Specifica una funzione che viene eseguita quando un utente installa l'estensione.
|
||||||
onUpdate(facoltativo) |
Specifica una funzione che viene eseguita quando un utente aggiorna l'estensione.
|
||||||
onConfigure(facoltativo) |
Specifica una funzione che viene eseguita quando un utente riconfigura l'estensione.
|
||||||
Eventi personalizzati (Eventarc)
Gli eventi personalizzati sono eventi generati dall'estensione per consentire agli utenti di inserire la propria logica nell'estensione. Consulta la sezione Eventarc in Aggiungi hook utente a un'estensione.
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
| Campi degli eventi personalizzati | |
|---|---|
typestringa (obbligatorio) |
L'identificatore del tipo di evento. Crea l'identificatore utilizzando 3-4 campi delimitati da punti: i campi ID publisher, nome dell'estensione e nome dell'evento sono obbligatori; il campo Version è consigliato. Scegli un nome evento univoco e descrittivo per ogni tipo di evento che pubblichi. |
descriptionstringa (obbligatorio) |
Descrizione dell'evento. |