Uzantınızın spesifikasyon dosyası (extension.yaml
), uzantınızın meta verilerini içerir, uzantı tarafından oluşturulan kaynakları ve uzantı tarafından gereken API'leri ve erişimi bildirir 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ı için kullanılabilen alanlar açıklanmaktadı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 string (zorunlu) |
Uzantının tanımlayıcısı. Yalnızca küçük harf, rakam ve tire içerebilir. 40 karakter sınırı vardı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üm oluşturma (ör. 1.2.0) kullanılmalıdır. |
||||||||
specVersion string (zorunlu) |
Firebase Extensions spesifikasyonunun sürümü. Mevcut 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 anlaşılır görünen 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ız için simge tasarlarken aşağıdaki kuralları 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ı Merkezi'ndeki kategorilerle eşlenir:
marketing ,
messaging ,
payments ,
search ,
shipping ,
social ,
utilities ,
ai
|
||||||||
sourceUrl dize (isteğe bağlı) |
Uzantı dizinine erişilebilen 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 one author object (optional) |
Uzantının birincil yazarı ve iletişim sorumlusu. author: authorName: Your Company email: extensions@example.com url: https://example.com/
|
||||||||
contributors list of author objects (optional) |
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üklediklerinde projelerinde bu API'leri otomatik olarak etkinleştirmeyi seçebilir.
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'sinin adı Google Cloud API Kitaplığı'ndaki her API'nin genel bakış sayfasında listelenen Hizmet adı alanıyla eşleşmelidir (örnek). |
reason string (zorunlu) |
Uzantının bu API'yi neden kullanması gerektiğine dair kısa açıklama |
IAM rolleri
Bu alanlar, uzantının gerektirdiği Cloud IAM rollerini belirtir. Uzantı için sağlanan 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
Rol alanları | |
---|---|
role string (zorunlu) |
Uzantının çalışması için gereken IAM rolünün adı Desteklenen rollerden biri olmalıdır. |
reason string (zorunlu) |
Uzantının bu rol tarafından verilen erişime neden ihtiyaç duyduğunun kısa açıklaması |
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 dışı ve Google dışı hizmetleri (genellikle REST API'leri) belirtir. Firebase Uzantıları platformu, bu hizmetler için yetkilendirmeyi otomatik olarak etkinleştirme veya gerçekleştirme olanağı sunmaz.
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ırabilmesi için 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 string (zorunlu) |
Parametrenin adı. Bu adı, kodda parametre değerine referans vermek için kullanırsınız. |
label string (zorunlu) |
Parametrenin kısa açıklaması. Parametre değeri istendiğinde kullanıcıya gösterilir. |
description dize (isteğe bağlı) |
Parametrenin ayrıntılı açıklaması. Kullanıcıya, parametrenin değeri istendiğinde gösterilir. Markdown'ı 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ılan 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ının, parametre değeri istendiğinde boş bir dize gönderip gönderemeyeceğini tanımlar. Varsayılan olarak true değerine ayarlanır.
|
immutable boolean (isteğe bağlı) |
Kullanıcının, yüklemeden sonra parametrenin değerini değiştirip değiştiremeyeceğini (ör. uzantıyı yeniden yapılandırıp yapılandıramayacağını) 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ü sunumları gerekebilir. Aşağıdaki bölümlere bakın. |
Seçilebilir ve çoklu seçilebilir 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 tek bir değer ( |
||||||
options seçenek listesi (zorunlu) |
Kullanıcının seçebileceği seçenekler
|
Seçilebilir kaynak parametreleri
Seçilebilir kaynak parametreleri, kullanıcılardan projelerindeki bir kaynağı (veritabanı örneği, depolama paketi 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 dize |
Parametrenin bir proje kaynağını temsil ettiğini belirtir. |
resourceType string (zorunlu) |
Kullanıcıdan seçmesini istemek için kullanılacak kaynak türü. Geçerli değerler:
Ancak şu anda yalnızca Cloud Storage paketlerinde seçim kullanıcı arayüzü bulunur (diğer kaynak türleri serbest biçimli metin girişi alanları olarak sunulur). |
Gizli parametreler
Kullanıcı tarafından sağlanan gizli değerler (ör. API anahtarları) farklı şekilde işlenir:
- Gizli anahtar değerleri Cloud Secret Manager kullanılarak depolanır. Bu değerlere yalnızca yetkili istemciler (ör. yüklenmiş bir uzantı örneği) erişebilir.
- Kullanıcılardan bu değerleri sağlamaları istendiğinde girdileri 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'ı bildirir. Kaynak bildirimi söz dizimi, 1. nesil ve 2. nesil işlevler arasında biraz farklı görünür. Bu işlevler bir uzantıda birlikte bulunabilir.
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şlev için kullanıcı dostu ad.
Dağıtılan işlevin son adı şu biçimde olur:
|
||||||||||||||||
type string (zorunlu) |
1. nesil işlev kaynağı için:
firebaseextensions.v1beta.function
|
||||||||||||||||
description string (zorunlu) |
İşlevin uzantı için hangi görevi gerçekleştirdiğine dair kısa açıklama. |
||||||||||||||||
properties (zorunlu) |
1. nesil Cloud Functions özellikleri. En önemli özellikler aşağıda listelenmiştir ancak özelliklerin tam listesini Cloud Functions 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şlev için kullanıcı dostu ad.
Dağıtılan işlevin son adı şu biçimde olur:
|
||||||||||||||||||||||||||||
type string (zorunlu) |
2. nesil işlev kaynağı için:
firebaseextensions.v1beta.v2function
|
||||||||||||||||||||||||||||
description string (zorunlu) |
İşlevin uzantı için hangi görevi gerçekleştirdiğine dair kısa açıklama. |
||||||||||||||||||||||||||||
properties (zorunlu) |
2. nesil Cloud Functions özellikleri. En önemli özellikler aşağıda listelenmiştir ancak özelliklerin tam listesini Cloud Functions 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ü etkinliklerini yönetme 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ü olay alanları | |||||||
---|---|---|---|---|---|---|---|
onInstall (isteğe bağlı) |
Kullanıcı uzantıyı yüklediğinde çalışacak bir işlev belirtir.
|
||||||
onUpdate (isteğe bağlı) |
Kullanıcı uzantıyı güncellediğinde çalıştırılacak bir işlevi belirtir.
|
||||||
onConfigure (isteğe bağlı) |
Kullanıcı uzantıyı yeniden yapılandırdığında çalıştırılacak bir işlevi belirtir.
|
Özel etkinlikler (Eventarc)
Özel etkinlikler, kullanıcıların kendi mantıklarını uzantınıza eklemesine olanak tanımak için uzantınızın yayınladığı etkinliklerdir. Uzantıya kullanıcı kancaları ekleme başlıklı makaledeki 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 string (zorunlu) |
Etkinliğin tür tanımlayıcısı. Tanımlayıcıyı nokta ile 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ı. |