Uzantınızı belirtme dosyanız (extension.yaml
), uzantınızın meta verilerini içerir, uzantı tarafından oluşturulan kaynakları ve uzantının ihtiyaç duyduğu API'leri ve erişimi tanımlar ve uzantı tarafından sağlanan, kullanıcı tarafından yapılandırılmış tüm parametreleri tanımlar.
Bu sayfadaki tablolarda, extension.yaml
dosyasında kullanılabilen alanlar açıklanmaktadır.
Temel ve kimliği tanımlayabilecek 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 string (zorunlu) |
Uzantının tanımlayıcısıdır. Yalnızca küçük harf, sayı ve kısa çizgi içerebilir. 40 karakterle sınırlıdır. Not: Bu değer, uzantının örnek kimliğini oluşturmak için kullanılır (bu kimlik 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 string (zorunlu) |
Uzantının sürümü. Semver sürümlendirmesine uymalıdır (ör. 1.2.0). |
||||||||
specVersion string (zorunlu) |
Firebase Extensions spesifikasyonunun sürümü. Geçerli değer: |
||||||||
license dize (isteğe bağlı) |
Uzantının lisansı. Uzantınız |
||||||||
billingRequired boolean (isteğe bağlı) |
Uzantı tarafından kullanılan hizmetlerin ücretli katman Firebase faturalandırma hesabı gerektirip gerektirmediği. Her zaman |
||||||||
displayName dize (isteğe bağlı) |
Uzantının kolay görüntülenebilir adı (3-5 kelime). 40 karakterle sınırlıdır. |
||||||||
description dize (isteğe bağlı) |
Uzantınızın gerçekleştirdiği görevin kısa açıklaması (~1 cümle). | ||||||||
icon dize (isteğe bağlı) |
Bu dosya, 512x512 ile 1024x1024 piksel arasında kare bir PNG olmalıdır.
Dosyayı Uzantınıza yönelik bir simge tasarlarken aşağıdaki yönergeleri göz önünde bulundurun:
|
||||||||
tags dize listesi (isteğe bağlı) |
Kullanıcıların uzantınızı keşfetmesine yardımcı olacak etiketler.
Aşağıdaki etiketler, Uzantılar Merkezi'ndeki kategorilerle eşlenir:
marketing ,
messaging ,
payments ,
search ,
shipping ,
social ,
utilities ,
ai
|
||||||||
sourceUrl dize (isteğe bağlı) |
Uzantısı dizininin erişilebildiği herkese açık URL. | ||||||||
releaseNotesUrl dize (isteğe bağlı) |
Uzantının sürüm notlarına erişilebilen herkese açık URL. | ||||||||
author bir yazar nesnesi (isteğe bağlı) |
Uzantının birincil yazarı ve iletişim sorumlusu. 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 string (zorunlu) |
Google API'nin adı Google Cloud API Kitaplığı'ndaki her API'nin genel bakış sayfasında (örnek) listelenen Hizmet adı alanına karşılık gelmelidir. |
reason string (zorunlu) |
Uzantının neden bu API'yi kullanması gerektiğine dair kısa açıklama |
IAM rolleri
Bu alanlar, uzantının gerektirdiği Cloud IAM rollerini belirtir. Uzantı için temel hazırlığı yapılan hizmet hesabına bu roller verilir.
Yalnızca desteklenen rollerden 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
Roller alanları | |
---|---|
role string (zorunlu) |
Uzantının çalışması için gereken IAM rolünün adı Desteklenen rollerden birinde olmalıdır. |
reason string (zorunlu) |
Uzantının bu rol tarafından verilen erişime neden ihtiyaç duyduğuna dair kısa açıklama |
resource dize (isteğe bağlı) |
Rolün kapsamını bu kaynakla sınırlayın. Atlanırsa varsayılan olarak |
Harici hizmetler
Bu alanlar, uzantının kullandığı Firebase ve Google dışı hizmetleri (genellikle REST API'leri) belirtir. Firebase uzantıları platformu, bu hizmetleri otomatik olarak etkinleştirme veya yetkilendirme yapmanın herhangi bir yolunu sağlamaz.
externalServices:
- name: Example API
pricingUri: https://developers.example.com/pricing
- name: Another Example API
pricingUri: https://developers.example.com/pricing
Harici hizmet alanları | |
---|---|
name string (zorunlu) |
Uzantının çalışması için gereken harici hizmetin adı |
pricingUri string (zorunlu) |
Hizmetin fiyatlandırma bilgilerinin URI'si |
Kullanıcı tarafından yapılandırılabilen parametreler
Bu alanlar, uzantının kullanıcıların yapılandırabileceği 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 string (zorunlu) |
Parametrenin adı. Kodda parametre değerine referans vermek için bu adı kullanırsınız. |
label string (zorunlu) |
Parametrenin kısa açıklaması. Parametrenin değeri istendiğinde kullanıcıya gösterilir. |
description dize (isteğe bağlı) |
Parametrenin ayrıntılı açıklaması. Parametrenin değeri istendiğinde kullanıcıya gösterilir. Markdown'u destekler. |
example dize (isteğe bağlı) |
Parametre için örnek değer. |
default dize (isteğe bağlı) |
Kullanıcı parametrenin değerini boş bırakırsa parametrenin varsayılan değeri. |
validationRegex dize (isteğe bağlı) |
Parametrenin kullanıcı tarafından yapılandırılmış değerinin doğrulanması için normal ifade. Google RE2 söz dizimi. |
validationErrorMessage dize (isteğe bağlı) |
Normal ifade doğrulaması başarısız olursa gösterilecek hata mesajı. |
required boolean (isteğe bağlı) |
Kullanıcıdan parametrenin değeri istendiğinde kullanıcının boş bir dize gönderip gönderemeyeceğini belirler. Varsayılan olarak true değerine ayarlanır.
|
immutable boolean (isteğe bağlı) |
Kullanıcının, yükleme sonrasında parametrenin değerini değiştirip değiştiremeyeceğini (ör. uzantıyı yeniden yapılandırırsa) tanımlar. Varsayılan olarak Not: Uzantınızın dağıtılan işlevleri için bir "location" parametresi tanımlarsanız bu alanı |
type dize (isteğe bağlı) |
Parametre türü. Özel parametre türleri için ek şartlar veya farklı kullanıcı arayüzü sunumu olabilir. Aşağıdaki bölümlere bakın. |
Seçilebilir ve çoklu seçim yapılabilir parametreler
Seçilebilir ve çoklu seçilebilir parametreler, kullanıcılardan önceden tanımlanmış seçenekler listesinden seçim yapmalarını ister.
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 dize |
Parametrenin, önceden tanımlanmış bir seçenek grubundan seçilen bir değer ( |
||||||
options seçenekler listesi (zorunlu) |
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 alanı paketi vb.) seçmesini 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 dize |
Parametrenin bir proje kaynağını temsil ettiğini belirtir |
resourceType string (zorunlu) |
Kullanıcıdan seçmesini isteyeceğiniz kaynak türü. Geçerli değerler:
Ancak şu anda yalnızca Cloud Storage paketlerinde seçim kullanıcı arayüzü vardır (diğer kaynak türleri, serbest biçimli metin giriş alanları olarak sunulur). |
Gizli anahtar parametreleri
Kullanıcı tarafından sağlanan gizli değerler (API anahtarları gibi) farklı şekilde ele alınır:
- Gizli anahtar değerleri Cloud Secret Manager kullanılarak depolanır. Yalnızca yetkili istemciler (ör. yüklü bir uzantı örneği) bu değerlere erişebilir.
- Kullanıcılardan bu değerleri sağlamaları istendiğinde, girdikleri değerler gösterilmez.
params:
- param: PARAM_ID
label: Short description of the parameter
description: >-
What is the secret value?
type: secret
Gizli parametre alanları | |
---|---|
type dize |
Parametrenin gizli bir değer olduğunu belirtir |
Cloud Functions kaynakları
Bu alanlar, bir uzantıya dahil edilen Cloud Functions'ı tanımlar. Kaynak beyanı söz dizimi, bir uzantı içinde birlikte bulunabilen 1. nesil ve 2. nesil işlevler arasında biraz farklıdır.
1. nesil Cloud Functions
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 string (zorunlu) |
Dışa aktarılan işlevin kullanıcı dostu adı.
Yayınlanan işlevin nihai adı şu biçimde olacaktır:
|
||||||||||||||||
type string (zorunlu) |
1. nesil işlev kaynağı için:
firebaseextensions.v1beta.function
|
||||||||||||||||
description string (zorunlu) |
İşlevin uzantı için gerçekleştirdiği görevin kısa açıklaması. |
||||||||||||||||
properties (zorunlu) |
1. nesil Cloud Functions mülkleri. En önemli özellikler aşağıda listelenmiştir ancak tam listeyi Cloud İşlevleri referansında bulabilirsiniz.
|
2. nesil Cloud Functions
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 string (zorunlu) |
Dışa aktarılan işlevin kullanıcı dostu adı.
Yayınlanan işlevin nihai adı şu biçimde olacaktır:
|
||||||||||||||||||||||||||||
type string (zorunlu) |
2. nesil işlev kaynağı için:
firebaseextensions.v1beta.v2function
|
||||||||||||||||||||||||||||
description string (zorunlu) |
İşlevin uzantı için gerçekleştirdiği görevin kısa açıklaması. |
||||||||||||||||||||||||||||
properties (zorunlu) |
2. nesil Cloud Functions mülkleri. En önemli özellikler aşağıda listelenmiştir ancak tam listeyi Cloud İşlevleri referansında bulabilirsiniz.
Ayrıca kendi özelliklerine sahip üç nesne türü alanı da vardır:
|
Yaşam döngüsü etkinlikleri
Yaşam döngüsü etkinlikleri, 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ü etkinliklerini işleme başlıklı makaleyi inceleyin.
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ü etkinliği alanları | |||||||
---|---|---|---|---|---|---|---|
onInstall (isteğe bağlı) |
Kullanıcı uzantıyı yüklediğinde çalıştırılacak bir işlevi belirtir.
|
||||||
onUpdate (isteğe bağlı) |
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 bir işlevi belirtir.
|
Özel etkinlikler (Eventarc)
Özel etkinlikler, kullanıcıların uzantınıza kendi mantıklarını eklemelerine olanak tanımak için uzantınızın yayınladığı etkinliklerdir. Bir uzantıya kullanıcı kancaları ekleme başlıklı makalenin Eventarc bölümünü inceleyin.
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 string (zorunlu) |
Etkinliğin tür tanımlayıcısıdır. Tanımlayıcıyı, noktayla ayrılmış 3-4 alandan oluşturun: yayıncı kimliği, uzantı adı ve etkinlik adı alanları zorunludur; 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 string (zorunlu) |
Etkinliğin açıklaması. |