Uzantınızın spesifikasyon dosyası (extension.yaml
) uzantınızın
meta veriler, uzantı ve API'ler tarafından oluşturulan kaynakları tanımlar ve
ve kullanıcı tarafından yapılandırılan tüm parametreleri tanımlar.
uzantı tarafından sağlanır.
Bu sayfadaki tablolarda, extension.yaml
için kullanılabilen alanlar açıklanmaktadır
dosyası olarak kaydedebilirsiniz.
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 dize (zorunlu) |
Uzantının tanımlayıcısı. Yalnızca küçük harf, sayı ve tire içerebilir; 40 karakter limit. Not: Bu değer, uzantının Bu örnek kimliği (daha sonra bu kimlikle oluşturulan örnek dosya adlarını oluşturmak için kullanılır) uzantının hizmet hesabını ve uzantıya özgü kaynakları) kontrol edin. |
||||||||
version dize (zorunlu) |
Uzantının sürümü. Semver sürümü kullanılmalıdır (örneğin, 1.2.0). |
||||||||
specVersion dize (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 boole (isteğe bağlı) |
Uzantının kullandığı hizmetlerin ücretli katman gerektirip gerektirmediği Firebase faturalandırma hesabı. Her zaman |
||||||||
displayName dize (isteğe bağlı) |
Uzantının kolayca 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ı) |
Uzantınızın simgesi olarak kullanılacak dosya
Bu dosya, 512x512 ila 1024x1024 piksel arasında kare bir PNG dosyası olmalıdır.
Dosyayı Sizin için bir simge tasarlarken aşağıdaki kuralları göz önünde bulundurun: uzantı:
|
||||||||
tags dize listesi (isteğe bağlı) |
Kullanıcıların uzantınızı keşfetmesine yardımcı olan etiketler.
Aşağıdaki etiketler, Extensions Hub'daki kategorilerle eşlenir:
marketing ,
messaging ,
payments ,
search ,
shipping ,
social ,
utilities ,
ai
|
||||||||
sourceUrl dize (isteğe bağlı) |
Uzantı dizinine erişilebileceği herkese açık URL. | ||||||||
releaseNotesUrl dize (isteğe bağlı) |
Uzantının sürüm notlarına erişilebileceği herkese açık URL. | ||||||||
author bir yazar nesnesi (isteğe bağlı) |
Uzantının asıl yazarı ve ilgili kişisi. author: authorName: Your Company email: extensions@example.com url: https://example.com/
|
||||||||
contributors yazar nesneleri 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üklediklerinde, bu API'leri otomatik olarak takip etmesi gerekir.
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 dize (zorunlu) |
Google API'nin adı Her birinde listelenen Hizmet adı alanına karşılık gelmelidir API'ye genel bakış sayfası (örnek) Google Cloud API Kitaplığı |
reason dize (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. Hizmet uzantı için sağlanan hesaba bu roller verilir.
Yalnızca şunlardan birini belirtebilirsiniz: desteklenen roller hakkında daha fazla bilgi edinin.
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 dize (zorunlu) |
Uzantının çalışması için gereken IAM rolünün adı Aşağıdakilerden biri olmalıdır: desteklenen roller |
reason dize (zorunlu) |
Uzantının neden tarafından verilen erişime ihtiyacı olduğuna dair kısa açıklama bu rolün |
resource dize (isteğe bağlı) |
Rolün kapsamını bu kaynakla sınırlandırın. Atlanırsa varsayılan olarak |
Harici hizmetler
Bu alanlar, uzantının kullandığı Firebase ve Google dışı hizmetleri belirtir (genellikle REST API'ler). Firebase Extensions platformu, bu hizmetler için otomatik olarak yetkilendirme veya yetkilendirme yöntemleri kullanır.
externalServices:
- name: Example API
pricingUri: https://developers.example.com/pricing
- name: Another Example API
pricingUri: https://developers.example.com/pricing
Harici hizmet alanları | |
---|---|
name dize (zorunlu) |
Uzantının çalışması için gereken harici hizmetin adı |
pricingUri dize (zorunlu) |
Hizmete ilişkin fiyatlandırma bilgilerinin URI'si |
Kullanıcı tarafından yapılandırılabilen parametreler
Bu alanlar, uzantının kullanıcılara sunduğu parametreleri tanımlar tıklayın.
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 dize (zorunlu) |
Parametrenin adı. Parametreye referans vermek için bu adı kullanmanız gerekir. koddaki değere bakın. |
label dize (zorunlu) |
Parametrenin kısa açıklaması. Kullanıcıya şu işlem sırasında gösterilir: parametrenin değeri sorulur. |
description dize (isteğe bağlı) |
Parametrenin ayrıntılı açıklaması. Şu durumda kullanıcıya gösterilir: parametrenin değerini girmeleri istenir. Markdown'ı destekler. |
example dize (isteğe bağlı) |
Parametre için örnek değer. |
default dize (isteğe bağlı) |
Kullanıcı parametrenin değerinden ayrılırsa varsayılan parametre değeri boş. |
validationRegex dize (isteğe bağlı) |
Parametrenin kullanıcı tarafından yapılandırılan doğrulamasının doğrulanması için normal ifade değer. Google RE2 söz dizimi. |
validationErrorMessage dize (isteğe bağlı) |
Normal ifade doğrulaması başarısız olursa görüntülenecek hata mesajı. |
required boole (isteğe bağlı) |
Kullanıcının boş dize gönderip gönderemeyeceğini tanımlar
parametrenin değeri sorulur. Varsayılan olarak true değerine ayarlanır.
|
immutable boole (isteğe bağlı) |
Kullanıcının parametrenin değerini
(uzantıyı yeniden yapılandırdıklarında) gibi. Varsayılan değer:
Not: Bir "konum" tanımlarsanız parametresinden
işlevleri için bu alanı |
type dize (isteğe bağlı) |
Parametre türü. Özel parametre türlerinde ek kullanıcı arayüzü sunumları için harika bir yol olabilir. Aşağıdaki bölümleri inceleyin. |
Seçilebilir ve çoklu seçilebilir parametreler
Seçilebilir ve çoklu seçilebilir parametreler, kullanıcılardan önceden tanımlanmış seçeneklerdir.
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 bir değer ( |
||||||
options seçenek listesi (zorunlu) |
Kullanıcının belirleyebileceği seçenekler
|
Seçilebilir kaynak parametreleri
Seçilebilir kaynak parametreleri, kullanıcılardan bir kaynak (veritabanı) seçmesini ister depolama paketi vb.) ayırmalarını isteyebilir.
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 dize (zorunlu) |
Kullanıcının seçmesini istenecek kaynağın türü. Geçerli değerler:
Ancak şu anda yalnızca Cloud Storage paketlerinde seçili kullanıcı arayüzü mevcuttur (diğer kaynak türleri, serbest biçimli metin giriş alanları olarak sunulur). |
Gizli anahtar parametreleri
Kullanıcı tarafından sağlanan gizli anahtar değerleri (ör. API anahtarları) farklı şekilde ele alınır:
- Gizli anahtar değerleri, Cloud Secret Manager kullanılarak depolanır. Yalnızca yetkili müşteriler (bir uzantının yüklü örneği gibi) bu değerlere erişebilir.
- Kullanıcılardan bu değerleri girmeleri istendiğinde, girişleri 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 bir gizli anahtar değeri olduğunu belirtir |
Cloud Functions işlevi kaynakları
Bu alanlar, bir uzantıya dahil olan Cloud Functions işlevlerini bildirir. Kaynak beyan söz dizimi 1. nesil ile 2. nesil arasında biraz farklı görünüyor bir uzantıda bir arada bulunabilen işlevleri ifade eder.
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 dize (zorunlu) |
Dışa aktarılan işlevin kullanıcı dostu adı.
Dağıtılan işlevinin son adı şurada yer alır:
şu biçimdedir:
|
||||||||||||||||
type dize (zorunlu) |
1. nesil işlev kaynağı için:
firebaseextensions.v1beta.function
|
||||||||||||||||
description dize (zorunlu) |
İşlevin uzantısına sahip olur. |
||||||||||||||||
properties (zorunlu) |
1. nesil Cloud Functions özellikleri. En önemli özellikleri aşağıda listelenmiştir, ancak tam listeyi Bulut İşlevler referansı.
|
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 dize (zorunlu) |
Dışa aktarılan işlevin kullanıcı dostu adı.
Dağıtılan işlevinin son adı şurada yer alır:
şu biçimdedir:
|
||||||||||||||||||||||||||||
type dize (zorunlu) |
2. nesil işlev kaynağı için:
firebaseextensions.v1beta.v2function
|
||||||||||||||||||||||||||||
description dize (zorunlu) |
İşlevin uzantısına sahip olur. |
||||||||||||||||||||||||||||
properties (zorunlu) |
2. nesil Cloud Functions özellikleri. En önemli özellikleri aşağıda listelenmiştir, ancak tam listeyi Bulut İşlevler referansı.
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ı bir web sitesini kurduğunda çalışacak ve veya uzantınızın bir örneğini yapılandırın. Uzantınızın yaşam döngüsü olaylarını yönetme bölümüne göz atı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ü etkinliği alanları | |||||||
---|---|---|---|---|---|---|---|
onInstall (isteğe bağlı) |
Kullanıcı uzantısına sahip olur.
|
||||||
onUpdate (isteğe bağlı) |
Bir kullanıcı uzantısına sahip olur.
|
||||||
onConfigure (isteğe bağlı) |
Bir kullanıcı uzantısına sahip olur.
|
Özel etkinlikler (Eventarc)
Özel etkinlikler, uzantınızın kullanıcıların kendi mantığını kullanmanız gerekir. Şuradan Eventarc'ı ziyaret edin: Uzantılara kullanıcı kancaları ekleyin.
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 dize (zorunlu) |
Etkinliğin tür tanımlayıcısı. 3-4 sayıdan tanımlayıcıyı oluşturun noktayla ayrılmış alanlar: yayıncı kimliği, uzantı adı ve etkinlik adı alanların doldurulması zorunludur; sürüm alanının doldurulması önerilir. Benzersiz bir ve yayınladığınız her etkinlik türü için açıklayıcı etkinlik adı ekleyin. |
description dize (zorunlu) |
Etkinliğin açıklaması. |