Le fichier de spécification de votre extension (extension.yaml
) contient les métadonnées de votre extension, déclare les ressources créées par l'extension, ainsi que les API et l'accès requis par l'extension, et définit les paramètres configurés par l'utilisateur fournis par l'extension.
Les tableaux de cette page décrivent les champs disponibles pour un fichier extension.yaml
.
Informations de base et d'identification
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/
Champs de base | |||||||||
---|---|---|---|---|---|---|---|---|---|
name chaîne (obligatoire) |
Identifiant de l'extension. Il ne peut contenir que des lettres minuscules, des chiffres et des tirets. La limite est de 40 caractères. Remarque:Cette valeur permet de générer l'ID d'instance de l'extension (qui est ensuite utilisé pour générer les noms du compte de service de l'extension et des ressources spécifiques à l'extension). |
||||||||
version chaîne (obligatoire) |
Version de l'extension. Doit respecter la version sémantique (par exemple, 1.2.0). |
||||||||
specVersion chaîne (obligatoire) |
Version de la spécification des extensions Firebase. Valeur actuelle: |
||||||||
license chaîne (facultatif) |
Licence de l'extension. Votre extension doit être concédée sous licence à l'aide de |
||||||||
billingRequired booléen (facultatif) |
Indique si les services utilisés par l'extension nécessitent un compte de facturation Firebase payant. Toujours défini sur |
||||||||
displayName chaîne (facultatif) |
Nom à afficher convivial pour l'extension (3 à 5 mots). 40 caractères maximum. |
||||||||
description chaîne (facultatif) |
Brève description de la tâche effectuée par votre extension (environ une phrase). | ||||||||
icon chaîne (facultatif) |
Fichier à utiliser comme icône de votre extension sur Ce fichier doit être un fichier PNG carré de 512 x 512 à 1 024 x 1 024 pixels.
Placez le fichier dans le même répertoire que Tenez compte des consignes suivantes lorsque vous concevez une icône pour votre extension:
|
||||||||
tags liste de chaînes (facultatif) |
Tags pour aider les utilisateurs à découvrir votre extension
Les balises suivantes correspondent à des catégories dans le hub Extensions :
marketing ,
messaging ,
payments ,
search ,
shipping ,
social ,
utilities ,
ai
|
||||||||
sourceUrl chaîne (facultatif) |
URL publique permettant d'accéder au répertoire des extensions. | ||||||||
releaseNotesUrl chaîne (facultatif) |
URL publique permettant d'accéder aux notes de version de l'extension. | ||||||||
author un objet auteur (facultatif) |
Auteur principal et point de contact de l'extension. author: authorName: Your Company email: extensions@example.com url: https://example.com/
|
||||||||
contributors liste d'objets auteur (facultatif) |
Tout autre auteur ayant contribué à l'extension. contributors: - authorName: Your Name - authorName: Another Contributor email: colleague@example.net url: https://github.com/their-org/
|
API Firebase et Google Cloud
Ces champs spécifient les API Firebase et Google utilisées par l'extension. Lorsque les utilisateurs installent l'extension, ils peuvent choisir d'activer automatiquement ces API dans leur projet.
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
Champs de l'API | |
---|---|
apiName chaîne (obligatoire) |
Nom de l'API Google Doit correspondre au champ Nom du service indiqué sur la page de présentation de chaque API (exemple) dans la bibliothèque d'API Google Cloud. |
reason chaîne (obligatoire) |
Brève description des raisons pour lesquelles l'extension doit utiliser cette API |
Rôles IAM
Ces champs spécifient les rôles Cloud IAM requis par l'extension. Le compte de service provisionné pour l'extension se voit attribuer ces rôles.
Vous ne pouvez spécifier qu'un seul des rôles acceptés.
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
Champs de rôle | |
---|---|
role chaîne (obligatoire) |
Nom du rôle IAM requis pour que l'extension fonctionne Doit correspondre à l'un des rôles compatibles |
reason chaîne (obligatoire) |
Brève description de la raison pour laquelle l'extension a besoin de l'accès accordé par ce rôle |
resource chaîne (facultatif) |
Limitez la portée du rôle à cette ressource. Si aucune valeur n'est spécifiée, la valeur par défaut est |
Services externes
Ces champs spécifient les services autres que Firebase et Google utilisés par l'extension (généralement des API REST). La plate-forme Firebase Extensions ne fournit aucun moyen d'activer automatiquement ces services ni d'effectuer l'autorisation.
externalServices:
- name: Example API
pricingUri: https://developers.example.com/pricing
- name: Another Example API
pricingUri: https://developers.example.com/pricing
Champs des services externes | |
---|---|
name chaîne (obligatoire) |
Nom du service externe nécessaire au fonctionnement de l'extension |
pricingUri chaîne (obligatoire) |
URI des informations tarifaires du service |
Paramètres configurables par l'utilisateur
Ces champs définissent les paramètres que l'extension met à la disposition des utilisateurs pour qu'ils puissent les configurer.
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
Champs de paramètre | |
---|---|
param chaîne (obligatoire) |
Nom du paramètre. Vous utiliserez ce nom pour faire référence à la valeur du paramètre dans le code. |
label chaîne (obligatoire) |
Brève description du paramètre. Affichée à l'utilisateur lorsqu'il est invité à saisir la valeur du paramètre. |
description chaîne (facultatif) |
Description détaillée du paramètre. S'affiche lorsque l'utilisateur est invité à saisir la valeur du paramètre. Compatible avec Markdown. |
example chaîne (facultatif) |
Exemple de valeur pour le paramètre. |
default chaîne (facultatif) |
Valeur par défaut du paramètre si l'utilisateur laisse la valeur du paramètre vide. |
validationRegex chaîne (facultatif) |
Expression régulière pour la validation de la valeur configurée par l'utilisateur du paramètre. Syntaxe Google RE2 |
validationErrorMessage chaîne (facultatif) |
Message d'erreur à afficher en cas d'échec de la validation par expression régulière. |
required booléen (facultatif) |
Indique si l'utilisateur peut envoyer une chaîne vide lorsqu'il est invité à fournir la valeur du paramètre. La valeur par défaut est true .
|
immutable booléen (facultatif) |
Indique si l'utilisateur peut modifier la valeur du paramètre après l'installation (par exemple, s'il reconfigure l'extension). La valeur par défaut est Remarque:Si vous définissez un paramètre "location" pour les fonctions déployées de votre extension, définissez ce champ sur |
type chaîne (facultatif) |
Type de paramètre. Les types de paramètres spéciaux peuvent avoir des exigences supplémentaires ou une présentation de l'UI différente. Consultez les sections suivantes. |
Paramètres sélectionnables et à sélection multiple
Les paramètres sélectionnables et à sélection multiple invitent les utilisateurs à choisir parmi une liste d'options prédéfinies.
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
Champs de paramètres à choix multiples | |||||||
---|---|---|---|---|---|---|---|
type Chaîne |
Indique que le paramètre peut être une valeur ( |
||||||
options liste d'options (obligatoire) |
Options parmi lesquelles l'utilisateur peut choisir
|
Paramètres de ressources sélectionnables
Les paramètres de ressources sélectionnables invitent les utilisateurs à sélectionner une ressource (instance de base de données, bucket de stockage, etc.) dans leur projet.
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
Champs de paramètres de ressources | |
---|---|
type Chaîne |
Indique que le paramètre représente une ressource de projet |
resourceType chaîne (obligatoire) |
Type de ressource que l'utilisateur doit sélectionner. Valeurs correctes :
Cependant, seuls les buckets Cloud Storage disposent actuellement d'une UI de sélection (les autres types de ressources sont présentés sous forme de champs de saisie de texte libre). |
Paramètres secrets
Les valeurs secrètes fournies par l'utilisateur (telles que les clés API) sont traitées différemment:
- Les valeurs du secret sont stockées à l'aide de Cloud Secret Manager. Seuls les clients autorisés (tels qu'une instance installée d'une extension) peuvent accéder à ces valeurs.
- Lorsque les utilisateurs sont invités à fournir ces valeurs, leur saisie n'est pas affichée.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What is the secret value?
type: secret
Champs de paramètres secrets | |
---|---|
type Chaîne |
Indique que le paramètre est une valeur secrète. |
Ressources Cloud Functions
Ces champs déclarent les fonctions Cloud Functions incluses dans une extension. La syntaxe de déclaration de ressources est légèrement différente entre les fonctions de première et de deuxième génération, qui peuvent coexister dans une extension.
Cloud Functions (1re génération)
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
Champs de ressources | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name chaîne (obligatoire) |
Nom convivial de la fonction exportée. Si vous ne spécifiez pas la propriété Le nom final de la fonction déployée sera au format suivant : |
||||||||||||||||
type chaîne (obligatoire) |
Pour une ressource de fonction de 1re génération :
firebaseextensions.v1beta.function
|
||||||||||||||||
description chaîne (obligatoire) |
Brève description de la tâche effectuée par la fonction pour l'extension. |
||||||||||||||||
properties (obligatoire) |
Propriétés Cloud Functions (1re génération) Les propriétés les plus importantes sont listées ci-dessous, mais vous trouverez la liste complète dans la documentation de référence sur Cloud Functions.
|
Cloud Functions (2nd 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
Champs de ressources | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name chaîne (obligatoire) |
Nom convivial de la fonction exportée. Si vous ne spécifiez pas la propriété Le nom final de la fonction déployée sera au format suivant : |
||||||||||||||||||||||||||||
type chaîne (obligatoire) |
Pour une ressource de fonction de 2e génération :
firebaseextensions.v1beta.v2function
|
||||||||||||||||||||||||||||
description chaîne (obligatoire) |
Brève description de la tâche effectuée par la fonction pour l'extension. |
||||||||||||||||||||||||||||
properties (obligatoire) |
Propriétés Cloud Functions (2e génération) Les propriétés les plus importantes sont listées ci-dessous, mais vous trouverez la liste complète dans la documentation de référence sur Cloud Functions.
Il existe également trois champs de type d'objet avec leurs propres propriétés:
|
Événements liés au cycle de vie
Les événements de cycle de vie vous permettent de spécifier les fonctions qui s'exécutent lorsqu'un utilisateur installe, met à jour ou configure une instance de votre extension. Consultez Gérer les événements de cycle de vie de votre extension.
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
Champs d'événements de cycle de vie | |||||||
---|---|---|---|---|---|---|---|
onInstall (facultatif) |
Spécifie une fonction qui s'exécute lorsqu'un utilisateur installe l'extension.
|
||||||
onUpdate (facultatif) |
Spécifie une fonction qui s'exécute lorsqu'un utilisateur met à jour l'extension.
|
||||||
onConfigure (facultatif) |
Spécifie une fonction qui s'exécute lorsqu'un utilisateur reconfigure l'extension.
|
Événements personnalisés (Eventarc)
Les événements personnalisés sont des événements émis par votre extension pour permettre aux utilisateurs d'insérer leur propre logique dans votre extension. Consultez la section "Eventarc" dans Ajouter des hooks utilisateur à une extension.
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
Champs d'événement personnalisés | |
---|---|
type chaîne (obligatoire) |
Identifiant de type de l'événement. Créez l'identifiant à partir de trois à quatre champs séparés par des points: les champs ID de l'éditeur, nom de l'extension et nom de l'événement sont obligatoires, et le champ de version est recommandé. Choisissez un nom d'événement unique et descriptif pour chaque type d'événement que vous publiez. |
description chaîne (obligatoire) |
Description de l'événement. |