Il file di specifica dell'estensione (extension.yaml
) contiene i metadati dell'estensione, dichiara le risorse create dall'estensione e le API e l'accesso richiesti dall'estensione e definisce tutti 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 identificative
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 | |||||||||
---|---|---|---|---|---|---|---|---|---|
name string (required) |
L'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). |
||||||||
version string (required) |
Versione dell'estensione. Deve seguire il controllo delle versioni semver (ad esempio, 1.2.0). |
||||||||
specVersion string (required) |
Versione della specifica di Firebase Extensions. Valore attuale: |
||||||||
license string (facoltativo) |
Licenza per l'estensione. La tua estensione deve essere concessa in licenza utilizzando |
||||||||
billingRequired boolean (facoltativo) |
Indica se i servizi utilizzati dall'estensione richiedono un account di fatturazione Firebase con piano a pagamento. Sempre impostato su |
||||||||
displayName string (facoltativo) |
Nome visualizzato descrittivo per l'estensione (3-5 parole). Limite di 40 caratteri. |
||||||||
description string (facoltativo) |
Breve descrizione dell'attività svolta dall'estensione (circa una frase). | ||||||||
icon string (facoltativo) |
File da utilizzare come icona dell'estensione su
Questo file deve essere un PNG quadrato di 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:
|
||||||||
tags elenco di stringhe (facoltativo) |
Tag per aiutare gli utenti a scoprire la tua estensione.
I seguenti tag corrispondono alle categorie dell'hub delle estensioni:
marketing ,
messaging ,
payments ,
search ,
shipping ,
social ,
utilities ,
ai
|
||||||||
sourceUrl string (facoltativo) |
URL pubblico in cui è possibile accedere alla directory delle estensioni. | ||||||||
releaseNotesUrl string (facoltativo) |
URL pubblico in cui è possibile accedere alle note di rilascio dell'estensione. | ||||||||
author un oggetto autore (facoltativo) |
Autore principale e punto di contatto per l'estensione. author: authorName: Your Company email: extensions@example.com url: https://example.com/
|
||||||||
contributors elenco di oggetti autore (facoltativo) |
Eventuali autori aggiuntivi 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 Firebase e Google utilizzate dall'estensione. Quando gli utenti installano l'estensione, possono scegliere di attivare 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 | |
---|---|
apiName string (required) |
Nome dell'API Google Deve corrispondere al campo Nome servizio elencato nella pagina di panoramica di ogni API (esempio) nella libreria delle API di Google Cloud. |
reason string (required) |
Breve descrizione del motivo per cui l'estensione deve utilizzare questa API |
Ruoli IAM
Questi campi specificano i ruoli Cloud IAM richiesti dall'estensione. Al service account di cui è stato eseguito il provisioning per l'estensione vengono concessi questi ruoli.
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 ruolo | |
---|---|
role string (required) |
Nome del ruolo IAM necessario per il funzionamento dell'estensione Deve essere uno dei ruoli supportati. |
reason string (required) |
Breve descrizione del motivo per cui l'estensione ha bisogno dell'accesso concesso da questo ruolo |
resource string (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 attivare 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 dei servizi esterni | |
---|---|
name string (required) |
Nome del servizio esterno necessario per il funzionamento dell'estensione |
pricingUri string (required) |
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 | |
---|---|
param string (required) |
Nome del parametro. Utilizzi questo nome per fare riferimento al valore del parametro nel codice. |
label string (required) |
Breve descrizione del parametro. Visualizzato dall'utente quando gli viene richiesto il valore del parametro. |
description string (facoltativo) |
Descrizione dettagliata del parametro. Visualizzato all'utente quando gli viene chiesto il valore del parametro. Supporta Markdown. |
example string (facoltativo) |
Valore di esempio per il parametro. |
default string (facoltativo) |
Valore predefinito del parametro se l'utente lascia il valore del parametro vuoto. |
validationRegex string (facoltativo) |
Espressione regolare per la convalida del valore configurato dall'utente del parametro. Sintassi Google RE2. |
validationErrorMessage string (facoltativo) |
Messaggio di errore da visualizzare se la convalida dell'espressione regolare non va a buon fine. |
required boolean (facoltativo) |
Definisce se l'utente può inviare una stringa vuota quando gli viene
richiesto il valore del parametro. Il valore predefinito è true .
|
immutable boolean (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
implementate della tua estensione, imposta questo campo su |
type string (facoltativo) |
Il tipo di parametro. I tipi di parametri speciali potrebbero avere requisiti aggiuntivi o una presentazione diversa della UI. Consulta le sezioni seguenti. |
Parametri selezionabili e a selezione multipla
I parametri selezionabili e a selezione multipla richiedono agli utenti di 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 | |||||||
---|---|---|---|---|---|---|---|
type stringa |
Specifica che il parametro può essere un valore ( |
||||||
options elenco di opzioni (obbligatorio) |
Le opzioni tra cui l'utente può scegliere
|
Parametri delle risorse selezionabili
I parametri delle risorse selezionabili richiedono agli utenti di selezionare una risorsa (istanza di database, bucket di archiviazione e così via) dal proprio 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 | |
---|---|
type stringa |
Specifica che il parametro rappresenta una risorsa del progetto |
resourceType string (required) |
Il tipo di risorsa da richiedere all'utente di selezionare. Valori validi:
Tuttavia, al momento solo i bucket Cloud Storage hanno un'interfaccia utente di selezione (gli altri tipi di risorse vengono presentati come campi di input 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, l'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 segreti | |
---|---|
type stringa |
Specifica che il parametro è un valore secret |
Risorse Cloud Functions
Questi campi dichiarano le Cloud Functions incluse in un'estensione. La sintassi di dichiarazione delle risorse è leggermente diversa tra le funzioni di 1ª e 2ª gen., che possono coesistere in un'estensione.
Cloud Functions (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 | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name string (required) |
Nome semplice per la funzione esportata. Se non specifichi la proprietà Il nome finale della funzione di cui è stato eseguito il deployment sarà nel seguente formato:
|
||||||||||||||||
type string (required) |
Per una risorsa di funzione di 1ª gen.:
firebaseextensions.v1beta.function
|
||||||||||||||||
description string (required) |
Breve descrizione dell'attività svolta dalla funzione per l'estensione. |
||||||||||||||||
properties (obbligatorio) |
Proprietà di Cloud Functions di 1ª gen. Le proprietà più importanti sono elencate di seguito, ma puoi trovare l'elenco completo nella guida di 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 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name string (required) |
Nome semplice per la funzione esportata. Se non specifichi la proprietà Il nome finale della funzione di cui è stato eseguito il deployment sarà nel seguente formato:
|
||||||||||||||||||||||||||||
type string (required) |
Per una risorsa di funzione di 2ª gen.:
firebaseextensions.v1beta.v2function
|
||||||||||||||||||||||||||||
description string (required) |
Breve descrizione dell'attività svolta dalla funzione per l'estensione. |
||||||||||||||||||||||||||||
properties (obbligatorio) |
Proprietà di Cloud Functions (2nd gen). Le proprietà più importanti sono elencate di seguito, ma puoi trovare l'elenco completo nella guida di 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 eseguita quando un utente installa l'estensione.
|
||||||
onUpdate (facoltativo) |
Specifica una funzione eseguita quando un utente aggiorna l'estensione.
|
||||||
onConfigure (facoltativo) |
Specifica una funzione eseguita quando un utente riconfigura l'estensione.
|
Eventi personalizzati (Eventarc)
Gli eventi personalizzati sono eventi emessi dalla tua estensione per consentire agli utenti di inserire la propria logica nell'estensione. Consulta la sezione Eventarc in Aggiungere 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 evento personalizzati | |
---|---|
type string (required) |
L'identificatore del tipo di evento. Crea l'identificatore da 3-4 campi delimitati da punti: i campi ID publisher, nome dell'estensione e nome dell'evento sono obbligatori; il campo versione è consigliato. Scegli un nome unico e descrittivo per ogni tipo di evento che pubblichi. |
description string (required) |
Descrizione dell'evento. |