Il file delle specifiche della tua estensione ( extension.yaml
) contiene i metadati della tua estensione, dichiara le risorse create dall'estensione e le API e l'accesso richiesto 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 corda (necessario) | 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 quindi utilizzato per generare i nomi dell'account di servizio dell'estensione e delle risorse specifiche dell'estensione). | ||||||||
version corda (necessario) | Versione dell'estensione. Deve seguire il controllo delle versioni semver (ad esempio, 1.2.0). | ||||||||
specVersion corda (necessario) | Versione della specifica delle estensioni Firebase. Valore attuale: | ||||||||
license corda (opzionale) | Licenza per l'estensione. La tua estensione deve essere concessa in licenza utilizzando | ||||||||
billingRequired booleano (opzionale) | Indica se i servizi utilizzati dall'estensione richiedono un account di fatturazione Firebase di livello a pagamento. Impostato sempre su | ||||||||
displayName corda (opzionale) | Nome visualizzato descrittivo per l'estensione (3-5 parole). Limite di 40 caratteri. | ||||||||
description corda (opzionale) | Breve descrizione dell'attività eseguita dall'estensione (~1 frase). | ||||||||
icon corda (opzionale) | File da utilizzare come icona della tua estensione su Questo file deve essere un PNG quadrato tra 512x512 e 1024x1024 pixel. Inserisci il file nella stessa directory di Tieni a mente le seguenti linee guida quando progetti un'icona per la tua estensione:
| ||||||||
tags elenco di stringhe (opzionale) | Tag per aiutare gli utenti a scoprire la tua estensione. I seguenti tag corrispondono alle categorie su Extensions Hub: marketing , messaging , payments , search , shipping , social , utilities , ai | ||||||||
sourceUrl corda (opzionale) | URL pubblico da cui è possibile accedere alla directory dell'estensione. | ||||||||
releaseNotesUrl corda (opzionale) | URL pubblico in cui è possibile accedere alle note sulla versione dell'estensione. | ||||||||
author un oggetto autore (opzionale) | Autore principale e punto di contatto per l'estensione. author: authorName: Your Company email: extensions@example.com url: https://example.com/
| ||||||||
contributors elenco degli oggetti dell'autore (opzionale) | Eventuali autori aggiuntivi che contribuiscono 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 abilitare automaticamente queste API nel proprio 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 corda (necessario) | Nome dell'API di Google Deve corrispondere al campo Nome servizio elencato nella pagina di panoramica di ciascuna API ( esempio ) nella libreria API di Google Cloud |
reason corda (necessario) | Breve descrizione del motivo per cui l'estensione deve utilizzare questa API |
Ruoli IAM
Questi campi specificano i ruoli Cloud IAM richiesti dall'estensione. All'account di servizio fornito per l'estensione vengono concessi questi ruoli.
È possibile 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 di ruolo | |
---|---|
role corda (necessario) | Nome del ruolo IAM necessario per il funzionamento dell'estensione Deve essere uno dei ruoli supportati |
reason corda (necessario) | Breve descrizione del motivo per cui l'interno necessita dell'accesso concesso da questo ruolo |
resource corda (opzionale) | 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
Settori dei servizi esterni | |
---|---|
name corda (necessario) | Nome del servizio esterno necessario per il funzionamento dell'estensione |
pricingUri corda (necessario) | URI per le informazioni sui prezzi del servizio |
Parametri configurabili dall'utente
Questi campi definiscono i parametri che l'estensione rende disponibili per la configurazione da parte degli utenti.
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 corda (necessario) | Nome del parametro. Si utilizza questo nome per fare riferimento al valore del parametro nel codice. |
label corda (necessario) | Breve descrizione del parametro. Visualizzato all'utente quando gli viene richiesto il valore del parametro. |
description corda (opzionale) | Descrizione dettagliata del parametro. Visualizzato all'utente quando gli viene richiesto il valore del parametro. Supporta il ribasso. |
example corda (opzionale) | Valore di esempio per il parametro. |
default corda (opzionale) | Valore predefinito per il parametro se l'utente lascia vuoto il valore del parametro. |
validationRegex corda (opzionale) | Espressione regolare per la convalida del valore configurato dall'utente del parametro. Sintassi Google RE2 . |
validationErrorMessage corda (opzionale) | Messaggio di errore da visualizzare se la convalida dell'espressione regolare non riesce. |
required booleano (opzionale) | Definisce se l'utente può inviare una stringa vuota quando gli viene richiesto il valore del parametro. Il valore predefinito è true . |
immutable booleano (opzionale) | 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 "posizione" per le funzioni distribuite della tua estensione, imposta questo campo su |
type corda (opzionale) | Il tipo di parametro. I tipi di parametri speciali potrebbero avere requisiti aggiuntivi o una presentazione dell'interfaccia utente diversa. Vedere le sezioni seguenti. |
Parametri selezionabili e multi-selezionabili
I parametri selezionabili e multi-selezionabili spingono 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 | |||||||
---|---|---|---|---|---|---|---|
type corda | Specifica che il parametro può essere un valore ( | ||||||
options elenco di opzioni (necessario) | 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 del database, bucket di archiviazione, ecc.) 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 corda | Specifica che il parametro rappresenta una risorsa di progetto |
resourceType corda (necessario) | Il tipo di risorsa da richiedere all'utente di selezionare. Valori validi:
Tuttavia, solo i bucket Cloud Storage attualmente dispongono di un'interfaccia utente di selezione (altri tipi di risorse vengono presentati come campi di input di testo in formato libero). |
Parametri segreti
I valori segreti forniti dall'utente (come le chiavi API) vengono gestiti in modo diverso:
- I valori segreti vengono archiviati utilizzando Cloud Secret Manager. Solo i client autorizzati (come un'istanza installata di un'estensione) possono accedere a questi valori.
- Quando agli utenti viene richiesto 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 segreti | |
---|---|
type corda | Specifica che il parametro è un valore segreto |
Risorse della funzione cloud
Questi campi dichiarano le Cloud Functions incluse in un'estensione. La sintassi della dichiarazione delle risorse appare leggermente diversa tra le funzioni di prima e seconda generazione, che possono coesistere in un'estensione.
Funzioni cloud 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 corda (necessario) | Nome descrittivo per la funzione esportata. Se non specifichi la proprietà Il nome finale della funzione distribuita sarà nel seguente formato: | ||||||||||||||||
type corda (necessario) | Per una risorsa funzione di prima generazione: firebaseextensions.v1beta.function | ||||||||||||||||
description corda (necessario) | Breve descrizione del compito svolto dalla funzione per l'estensione. | ||||||||||||||||
properties (necessario) | Proprietà Cloud Functions di prima generazione. Le proprietà più importanti sono elencate di seguito, ma puoi trovare l'elenco completo nel riferimento Cloud Functions .
|
Funzioni cloud 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 corda (necessario) | Nome descrittivo per la funzione esportata. Se non specifichi la proprietà Il nome finale della funzione distribuita sarà nel seguente formato: | ||||||||||||||||||||||||||||
type corda (necessario) | Per una risorsa funzione di seconda generazione: firebaseextensions.v1beta.v2function | ||||||||||||||||||||||||||||
description corda (necessario) | Breve descrizione del compito svolto dalla funzione per l'estensione. | ||||||||||||||||||||||||||||
properties (necessario) | Proprietà Cloud Functions di seconda generazione. Le proprietà più importanti sono elencate di seguito, ma puoi trovare l'elenco completo nel riferimento 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 Gestire gli eventi del ciclo di vita della tua 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 (opzionale) | Specifica una funzione che viene eseguita quando un utente installa l'estensione.
| ||||||
onUpdate (opzionale) | Specifica una funzione che viene eseguita quando un utente aggiorna l'estensione.
| ||||||
onConfigure (opzionale) | Specifica una funzione che viene 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 nella tua 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 corda (necessario) | L'identificatore del tipo dell'evento. Costruisci l'identificatore utilizzando 3-4 campi delimitati da punti: i campi ID editore, nome estensione e nome evento sono obbligatori; si consiglia il campo versione. Scegli un nome evento univoco e descrittivo per ogni tipo di evento che pubblichi. |
description corda (necessario) | Descrizione dell'evento. |