Il file delle specifiche dell'estensione (extension.yaml
) contiene
metadati, dichiara le risorse create dall'estensione e dalle API
all'accesso richiesto dall'estensione e definisce gli eventuali parametri configurati dall'utente
forniti dall'estensione.
Le tabelle in questa pagina descrivono i campi disponibili per un 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 stringa (obbligatorio) |
Identificatore dell'estensione. Può contenere solo lettere minuscole, numeri e trattini. 40 caratteri limite. Nota: questo valore viene utilizzato per generare il valore-chiave l'ID istanza (che viene quindi utilizzato per generare i nomi l'account di servizio dell'estensione e le risorse specifiche dell'estensione). |
||||||||
version stringa (obbligatorio) |
Versione dell'estensione. Deve seguire il controllo delle versioni di semver (ad esempio, 1.2.0). |
||||||||
specVersion stringa (obbligatorio) |
Versione della specifica Firebase Extensions. Valore attuale: |
||||||||
license stringa (facoltativo) |
Licenza per l'estensione. L'estensione deve essere concessa in licenza utilizzando |
||||||||
billingRequired booleano (facoltativo) |
Indica se i servizi utilizzati dall'estensione richiedono un account di fatturazione Firebase di livello a pagamento. Imposta sempre su |
||||||||
displayName stringa (facoltativo) |
Nome visualizzato semplice per l'estensione (3-5 parole). Puoi utilizzare 40 caratteri al massimo. |
||||||||
description stringa (facoltativo) |
Breve descrizione dell'attività eseguita dall'estensione (~1 frase). | ||||||||
icon stringa (facoltativo) |
File da utilizzare come icona dell'estensione su
Questo file deve essere in formato 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 il tuo estensione:
|
||||||||
tags elenco di stringhe (facoltativo) |
Tag per aiutare gli utenti a scoprire la tua estensione.
I seguenti tag sono mappati alle categorie nell'hub delle estensioni:
marketing ,
messaging ,
payments ,
search ,
shipping ,
social ,
utilities ,
ai
|
||||||||
sourceUrl stringa (facoltativo) |
URL pubblico da cui è possibile accedere alla directory dell'estensione. | ||||||||
releaseNotesUrl stringa (facoltativo) |
URL pubblico a cui è possibile accedere alle note di rilascio dell'estensione. | ||||||||
author un oggetto author (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 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 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 stringa (obbligatorio) |
Nome dell'API di Google Deve corrispondere al campo Nome servizio come indicato su ogni Pagina Panoramica dell'API (esempio) nel Libreria API Google Cloud |
reason stringa (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. Il servizio all'account di cui è stato eseguito il provisioning per l'estensione sono concessi questi ruoli.
Puoi specificare un solo elemento 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 | |
---|---|
role stringa (obbligatorio) |
Nome del ruolo IAM necessario per il funzionamento dell'estensione Deve essere uno dei ruoli supportati |
reason stringa (obbligatorio) |
Breve descrizione del motivo per cui l'estensione richiede l'accesso da parte di questo ruolo |
resource stringa (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 le API REST). La piattaforma Firebase Extensions non fornisce 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 | |
---|---|
name stringa (obbligatorio) |
Nome del servizio esterno necessario per il funzionamento dell'estensione |
pricingUri stringa (obbligatorio) |
URI delle informazioni sui prezzi del servizio |
Parametri configurabili dall'utente
Questi campi definiscono i parametri messi a disposizione degli utenti dall'estensione 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 stringa (obbligatorio) |
Nome del parametro. Utilizza questo nome per fare riferimento al valore del parametro nel codice. |
label stringa (obbligatorio) |
Descrizione breve del parametro. Mostrato all'utente quando viene richiesto il valore del parametro. |
description stringa (facoltativo) |
Descrizione dettagliata del parametro. Viene mostrato all'utente quando viene richiesto il valore del parametro. Supporta Markdown. |
example stringa (facoltativo) |
Valore di esempio per il parametro. |
default stringa (facoltativo) |
Valore predefinito per il parametro se l'utente lascia vuoto il valore del parametro. |
validationRegex stringa (facoltativo) |
Espressione regolare per la convalida del valore configurato dall'utente del parametro. RE2 di Google a riga di comando. |
validationErrorMessage stringa (facoltativo) |
Messaggio di errore da visualizzare se la convalida della regex non va a buon fine. |
required booleano (facoltativo) |
Consente di specificare se l'utente può inviare una stringa vuota quando viene richiesto il valore del parametro. Il valore predefinito è true .
|
immutable boolean (facoltativo) |
Definisce se l'utente può modificare il valore del parametro dopo
(ad esempio se l'estensione viene riconfigurata). Il valore predefinito è
Nota: se definisci una "località" per l'attributo di cui è stato eseguito il deployment
funzioni dell'estensione, imposta questo campo su |
type stringa (facoltativo) |
Il tipo di parametro. I tipi di parametri speciali possono avere o una diversa presentazione dell'interfaccia utente. Consulta le sezioni seguenti. |
Parametri selezionabili e multiselezionabili
I parametri selezionabili e multiselezionabili richiedono agli utenti di scegliere da un elenco di 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 solo 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 (database istanza, 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 della risorsa | |
---|---|
type stringa |
Specifica che il parametro rappresenta una risorsa di progetto |
resourceType stringa (obbligatorio) |
Il tipo di risorsa per richiedere all'utente di selezionare. Valori validi:
Tuttavia, al momento solo i bucket Cloud Storage hanno una UI di selezione (altri tipi di risorse sono presentati come campi di immissione di testo in formato libero). |
Parametri secret
I valori dei secret forniti dall'utente (ad esempio le chiavi API) vengono gestiti in modo diverso:
- I valori dei secret vengono archiviati utilizzando Cloud Secret Manager. Solo i clienti 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 | |
---|---|
type stringa |
Specifica che il parametro è un valore secret |
Risorse della funzione Cloud Functions
Questi campi dichiarano le funzioni Cloud Functions incluse in un'estensione. La risorsa la sintassi della dichiarazione è un po' diversa tra 1a gen. e 2a gen. che possono coesistere in un'estensione.
Cloud Functions di prima generazione
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 stringa (obbligatorio) |
Nome semplice per la funzione esportata. Se non specifichi la proprietà Il nome finale della funzione deployed sarà nella
seguente formato:
|
||||||||||||||||
type stringa (obbligatorio) |
Per una risorsa di funzione di 1a generazione:
firebaseextensions.v1beta.function
|
||||||||||||||||
description stringa (obbligatorio) |
Breve descrizione dell'attività svolta dalla funzione per l'estensione. |
||||||||||||||||
properties (obbligatorio) |
Proprietà Cloud Functions di prima generazione. Le proprietà più importanti sono elencate di seguito, ma puoi trovare l'elenco completo nel documento di riferimento di Cloud Functions.
|
Cloud Functions di seconda generazione
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 stringa (obbligatorio) |
Nome semplice per la funzione esportata. Se non specifichi la proprietà Il nome finale della funzione deployed sarà nella
seguente formato:
|
||||||||||||||||||||||||||||
type stringa (obbligatorio) |
Per una risorsa di funzione di 2a generazione:
firebaseextensions.v1beta.v2function
|
||||||||||||||||||||||||||||
description stringa (obbligatorio) |
Breve descrizione dell'attività svolta dalla funzione per l'estensione. |
||||||||||||||||||||||||||||
properties (obbligatorio) |
Proprietà Cloud Functions di seconda generazione. Le proprietà più importanti sono elencate di seguito, ma puoi trovare l'elenco completo nei Cloud Riferimento per le funzioni.
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 o configurare un'istanza dell'estensione. Consulta Gestire gli eventi del ciclo di vita delle estensioni.
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 .
|
||||||
onUpdate (facoltativo) |
Specifica una funzione che viene eseguita quando un utente aggiorna la .
|
||||||
onConfigure (facoltativo) |
Specifica una funzione che viene eseguita quando un utente riconfigura la .
|
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 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 stringa (obbligatorio) |
L'identificatore del tipo dell'evento. Crea l'identificatore da 3 a 4 Campi delimitati da punti: ID publisher, nome dell'estensione e nome dell'evento i campi sono obbligatori; il campo della versione è consigliato. Scegli un'istanza e un nome descrittivo per ogni tipo di evento che pubblichi. |
description stringa (obbligatorio) |
Descrizione dell'evento. |