Uzantınızın belirtim dosyası ( extension.yaml
) uzantınızın meta verilerini içerir, uzantı tarafından oluşturulan kaynakları, API'leri ve uzantının gerektirdiği erişimi bildirir ve uzantı tarafından sağlanan kullanıcı tarafından yapılandırılan parametreleri tanımlar.
Bu sayfadaki tablolar extension.yaml
dosyası için mevcut alanları açıklamaktadır.
Temel ve tanımlayıcı bilgiler
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/
Temel alanlar | |||||||||
---|---|---|---|---|---|---|---|---|---|
name sicim (gerekli) | Uzantının tanımlayıcısı. Yalnızca küçük harfler, sayılar ve kısa çizgiler içerebilir; 40 karakter sınırı. Not: Bu değer, uzantının örnek kimliğini oluşturmak için kullanılır (bu daha sonra uzantının hizmet hesabının ve uzantıya özgü kaynakların adlarını oluşturmak için kullanılır). | ||||||||
version sicim (gerekli) | Uzantının sürümü. Semver versiyonlamasına uyulmalıdır (örneğin, 1.2.0). | ||||||||
specVersion sicim (gerekli) | Firebase Uzantıları spesifikasyonunun sürümü. Mevcut değer: | ||||||||
license sicim (isteğe bağlı) | Uzantı için lisans. Uzantınızın | ||||||||
billingRequired boolean (isteğe bağlı) | Uzantı tarafından kullanılan hizmetlerin ücretli katmanlı bir Firebase faturalandırma hesabı gerektirip gerektirmediği. Her zaman | ||||||||
displayName sicim (isteğe bağlı) | Uzantı için kolay görünen ad (3-5 kelime). 40 karakter sınırı. | ||||||||
description sicim (isteğe bağlı) | Uzantınızın gerçekleştirdiği görevin kısa açıklaması (~1 cümle). | ||||||||
icon sicim (isteğe bağlı) | Bu dosya 512x512 ile 1024x1024 piksel arasında kare PNG olmalıdır. Dosyayı Uzantınız için bir simge tasarlarken aşağıdaki yönergeleri aklınızda bulundurun:
| ||||||||
tags dizelerin listesi (isteğe bağlı) | Kullanıcıların uzantınızı keşfetmesine yardımcı olacak etiketler. Şu etiketler Extensions Hub'daki kategorilerle eşleşir: marketing , messaging , payments , search , shipping , social , utilities , ai | ||||||||
sourceUrl sicim (isteğe bağlı) | Uzantı dizinine erişilebileceği genel URL. | ||||||||
releaseNotesUrl sicim (isteğe bağlı) | Uzantının sürüm notlarına erişilebileceği genel URL. | ||||||||
author bir yazar nesnesi (isteğe bağlı) | Uzantının birincil yazarı ve iletişim noktası. author: authorName: Your Company email: extensions@example.com url: https://example.com/
| ||||||||
contributors yazar nesnelerinin listesi (isteğe bağlı) | Uzantıya katkıda bulunan diğer yazarlar. contributors: - authorName: Your Name - authorName: Another Contributor email: colleague@example.net url: https://github.com/their-org/
|
Firebase ve Google Cloud API'leri
Bu alanlar, uzantının kullandığı Firebase ve Google API'lerini belirtir. Kullanıcılar uzantıyı yüklediğinde bu API'leri projelerinde otomatik olarak etkinleştirmeyi seçebilirler.
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
API alanları | |
---|---|
apiName sicim (gerekli) | Google API'sinin adı Google Cloud API Kitaplığı'ndaki her API'nin genel bakış sayfasında ( örnek ) listelenen Hizmet adı alanına karşılık gelmelidir |
reason sicim (gerekli) | Uzantının neden bu API'yi kullanması gerektiğinin kısa açıklaması |
IAM rolleri
Bu alanlar, uzantının gerektirdiği Cloud IAM rollerini belirtir. Uzantı için sağlanan hizmet hesabına bu roller verilir.
Desteklenen rollerden yalnızca birini belirtebilirsiniz.
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
Rol alanları | |
---|---|
role sicim (gerekli) | Uzantının çalışması için gereken IAM rolünün adı Desteklenen rollerden biri olmalıdır |
reason sicim (gerekli) | Uzantının neden bu rol tarafından verilen erişime ihtiyaç duyduğunun kısa açıklaması |
resource sicim (isteğe bağlı) | Rolün kapsamını bu kaynakla sınırlayın. Atlanırsa, varsayılan olarak |
Dış Hizmetler
Bu alanlar, uzantının kullandığı Firebase dışı ve Google dışı hizmetleri (genellikle REST API'leri) belirtir. Firebase Extensions platformu, bu hizmetleri otomatik olarak etkinleştirmeye veya yetkilendirmeyi gerçekleştirmeye yönelik herhangi bir araç sağlamaz.
externalServices:
- name: Example API
pricingUri: https://developers.example.com/pricing
- name: Another Example API
pricingUri: https://developers.example.com/pricing
Dış hizmet alanları | |
---|---|
name sicim (gerekli) | Uzantının çalışması için gereken harici hizmetin adı |
pricingUri sicim (gerekli) | Hizmetin fiyatlandırma bilgilerine yönelik URI |
Kullanıcı tarafından yapılandırılabilen parametreler
Bu alanlar, uzantının kullanıcıların yapılandırmasına sunduğu parametreleri tanımlar.
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
Parametre alanları | |
---|---|
param sicim (gerekli) | Parametrenin adı. Bu adı koddaki parametre değerine başvurmak için kullanırsınız. |
label sicim (gerekli) | Parametrenin kısa açıklaması. Parametrenin değeri istendiğinde kullanıcıya görüntülenir. |
description sicim (isteğe bağlı) | Parametrenin ayrıntılı açıklaması. Parametrenin değeri istendiğinde kullanıcıya görüntülenir. Markdown'ı destekler. |
example sicim (isteğe bağlı) | Parametre için örnek değer. |
default sicim (isteğe bağlı) | Kullanıcı parametre değerini boş bırakırsa parametrenin varsayılan değeri. |
validationRegex sicim (isteğe bağlı) | Parametrenin kullanıcı tarafından yapılandırılan değerinin doğrulanması için normal ifade. Google RE2 sözdizimi . |
validationErrorMessage sicim (isteğe bağlı) | Normal ifade doğrulaması başarısız olursa görüntülenecek hata mesajı. |
required boolean (isteğe bağlı) | Kullanıcının parametre değeri istendiğinde boş bir dize gönderip gönderemeyeceğini tanımlar. Varsayılan olarak true . |
immutable boolean (isteğe bağlı) | Kullanıcının kurulumdan sonra parametrenin değerini değiştirip değiştiremeyeceğini (örneğin, uzantıyı yeniden yapılandırıp yapılandırmayacağını) tanımlar. Varsayılan olarak Not: Uzantınızın dağıtılan işlevleri için bir "konum" parametresi tanımlarsanız bu alanı |
type sicim (isteğe bağlı) | Parametre türü. Özel parametre türlerinin ek gereksinimleri veya farklı kullanıcı arayüzü sunumları olabilir. Aşağıdaki bölümlere bakın. |
Seçilebilir ve çoklu seçilebilir parametreler
Seçilebilir ve çoklu seçilebilir parametreler, kullanıcıları önceden tanımlanmış seçenekler listesinden seçim yapmaya yönlendirir.
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
Çoktan seçmeli parametre alanları | |||||||
---|---|---|---|---|---|---|---|
type sicim | Parametrenin önceden tanımlanmış bir dizi seçenek arasından seçilen bir değer ( | ||||||
options seçenekler listesi (gerekli) | Kullanıcının seçebileceği seçenekler
|
Seçilebilir kaynak parametreleri
Seçilebilir kaynak parametreleri, kullanıcılardan projelerinden bir kaynak (veritabanı örneği, depolama grubu vb.) seçmelerini ister.
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
Kaynak parametresi alanları | |
---|---|
type sicim | Parametrenin bir proje kaynağını temsil ettiğini belirtir |
resourceType sicim (gerekli) | Kullanıcının seçmesi istenecek kaynak türü. Geçerli değerler:
Ancak şu anda yalnızca Cloud Storage paketleri bir seçim kullanıcı arayüzüne sahiptir (diğer kaynak türleri serbest biçimli metin giriş alanları olarak sunulur). |
Gizli parametreler
Kullanıcı tarafından sağlanan gizli değerler (API anahtarları gibi) farklı şekilde işlenir:
- Gizli değerler Cloud Secret Manager kullanılarak depolanır. Yalnızca yetkili istemciler (bir uzantının yüklü örneği gibi) bu değerlere erişebilir.
- Kullanıcılardan bu değerleri sağlamaları istendiğinde girişleri görüntülenmez.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What is the secret value?
type: secret
Gizli parametre alanları | |
---|---|
type sicim | Parametrenin gizli bir değer olduğunu belirtir |
Bulut İşlevi kaynakları
Bu alanlar, bir uzantıya dahil edilen Bulut İşlevlerini bildirir. Kaynak bildirimi sözdizimi, bir uzantıda bir arada bulunabilen 1. nesil ve 2. nesil işlevler arasında biraz farklı görünür.
1. Nesil Bulut İşlevleri
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
Kaynak alanları | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name sicim (gerekli) | Dışa aktarılan işlev için kullanıcı dostu ad. Dağıtılan işlevin son adı aşağıdaki biçimde olacaktır: | ||||||||||||||||
type sicim (gerekli) | 1. nesil işlev kaynağı için: firebaseextensions.v1beta.function | ||||||||||||||||
description sicim (gerekli) | İşlevin uzantı için hangi görevi gerçekleştirdiğinin kısa açıklaması. | ||||||||||||||||
properties (gerekli) | 1. nesil Bulut İşlevleri özellikleri. En önemli özellikler aşağıda listelenmiştir ancak tam listeyi Bulut İşlevleri referansında bulabilirsiniz.
|
2. Nesil Bulut İşlevleri
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
Kaynak alanları | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name sicim (gerekli) | Dışa aktarılan işlevin kullanıcı dostu adı. Dağıtılan işlevin son adı aşağıdaki biçimde olacaktır: | ||||||||||||||||||||||||||||
type sicim (gerekli) | 2. nesil işlev kaynağı için: firebaseextensions.v1beta.v2function | ||||||||||||||||||||||||||||
description sicim (gerekli) | İşlevin uzantı için hangi görevi gerçekleştirdiğinin kısa açıklaması. | ||||||||||||||||||||||||||||
properties (gerekli) | 2. nesil Cloud Functions özellikleri. En önemli özellikler aşağıda listelenmiştir ancak tam listeyi Bulut İşlevleri referansında bulabilirsiniz.
Ayrıca kendi özelliklerine sahip üç nesne türü alanı vardır:
|
Yaşam döngüsü etkinlikleri
Yaşam döngüsü etkinlikleri, bir kullanıcı uzantınızın bir örneğini yüklediğinde, güncellediğinde veya yapılandırdığında çalışacak işlevleri belirtmenize olanak tanır. Uzantınızın yaşam döngüsü olaylarını yönetme konusuna bakın.
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
Yaşam döngüsü olay alanları | |||||||
---|---|---|---|---|---|---|---|
onInstall (isteğe bağlı) | Kullanıcı uzantıyı yüklediğinde çalışan işlevi belirtir.
| ||||||
onUpdate (isteğe bağlı) | Bir kullanıcı uzantıyı güncellediğinde çalışan bir işlevi belirtir.
| ||||||
onConfigure (isteğe bağlı) | Kullanıcı uzantıyı yeniden yapılandırdığında çalışan işlevi belirtir.
|
Özel etkinlikler (Eventarc)
Özel etkinlikler, kullanıcıların uzantınıza kendi mantıklarını eklemelerine olanak sağlamak için uzantınızın yayınladığı etkinliklerdir. Bir uzantıya kullanıcı kancaları ekleme bölümündeki Eventarc bölümüne bakın.
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
Özel etkinlik alanları | |
---|---|
type sicim (gerekli) | Olayın tür tanımlayıcısı. Tanımlayıcıyı 3-4 noktayla ayrılmış alandan oluşturun: yayıncı kimliği, uzantı adı ve etkinlik adı alanları gereklidir; sürüm alanı önerilir. Yayınladığınız her etkinlik türü için benzersiz ve açıklayıcı bir etkinlik adı seçin. |
description sicim (gerekli) | Etkinliğin açıklaması. |