Yapılandırma ve güvenlik referansı

Firebase CLI, Firebase projelerinizi yerel, sürüm denetimli bir proje dizininde yönetmenize olanak tanır. Buna, projelerinizdeki Data Connect hizmetler, bu hizmetlerin bağlayıcıları ve her bağlayıcı için şema, sorgu ve mutasyon kaynakları gibi kaynaklar dahildir. KSA, Firebase Data Connect emülatörünü yüklemenize ve çalıştırmanıza da olanak tanır. KSA, Firebase konsolunda çalışmaya verimli bir alternatiftir.

Firebase CLI denemesini yükleme ve Data Connect ile ilgili CLI komutları hakkında talimatlar için CLI referansına bakın.

Bu referans kılavuzunda şu konular ele alınmaktadır:

  • firebase.json projenizin Data Connect'a özel girişleri.
  • dataconnect.yaml ve connector.yaml'de Data Connect yapılandırmaları.
  • Data Connect kullanan projeleriniz için yapılandırmanız gereken IAM rolleri.

Firebase proje yapılandırma dosyaları

firebase.json yapılandırma referansı

Projenizdeki bir veya daha fazla dataconnect hizmeti yapılandırmak için dataconnect tuşlarını kullanın.Data Connect

dataconnect: {
   source: string // Path to the directory containing the dataconnect.yaml service file.
}

dataconnect.yaml yapılandırma referansı

dataconnect.yaml dosyası, uygulama şeması kaynaklarının, bağlayıcı kaynaklarının ve veri kaynağı bağlantı bilgilerinin konumlarıyla ilgili yapılandırma bilgilerini depolar. Bu dosya, Firebase KSA için bir proje dizini tanımlayıcısı olarak da kullanılır.

schemaValidation tuşu, dağıtım sırasında şemalar taşınırken gerçekleştirilen şema doğrulama düzeyini kontrol eder. Değer ayarlanmadığında dataconect:sql:migrate komutu, uyumlu değişiklikleri uygular ve katı değişiklikleri yürütmeden önce size sorar. Bu ayar yapıldığında davranış şu şekilde olur:

  • STRICT modu. Uygulama şemasının dağıtılabilmesi için veritabanı şemasının uygulama şemasıyla tam olarak eşleşmesi gerekir. Data Connect şemanızda kullanılmayan tüm tablolar veya sütunlar veritabanından silinir.
  • COMPATIBLE modu. Uygulama şemasının dağıtılabilmesi için veritabanı şemasının uygulama şemasıyla uyumlu olması gerekir. Diğer tüm değişiklikler isteğe bağlıdır. Uyumlu, şema geçişlerinin yazdığınız uygulama şemasına dayandığı anlamına gelir. Veritabanınızdaki, uygulama şemananız tarafından kullanılmayan öğeler değiştirilmeden bırakılır. Bu nedenle, dağıtımdan sonra arka uçunuzda kullanılmayan şemalar, tablolar ve sütunlar olabilir.

Bu dosyadaki diğer anahtarların değerleri aşağıdaki yorumlarda açıklanmıştır.

# The top-level Firebase Data Connect YAML file.

# The Firebase Data Connect API version to target.
# Optional. Defaults to the latest version.
specVersion: string

# The ID of the Firebase Data Connect service resource.
# Required.
serviceId: string

# The location of the Firebase Data Connect service.
# Required.
location: string

# Required.
schema:
  # Relative path to directory for schema definitions.
  # Recursively loads all .gql files in this directory.
  # Optional. If not present, defaults to ./schema.
  source: string
  # Datasource connection information.
  # Required.
  datasource:
    # Required.
    postgresql:
      # The name of the PostgreSQL database.
      # Required.
      database: string
      cloudSql:
        # The ID of the CloudSQL instance resource.
        # Required.
        instanceId: string
        # Schema validation mode for schema migrations.
        # Defaults to unspecified/commented out, meaning you are prompted to
        # review all changes during migration.
        # If desired, uncomment and indicate one of "STRICT" or "COMPATIBLE".
        schemaValidation: string

# Required.
# Relative paths to directories for connector definitions.
# Recursively loads all .gql files in the listed directories.
# All directories specified MUST contain a connector.yaml file.
connectorDirs: [string]

YAML dosyası, şu varsayılan (ancak yapılandırılabilir) dizin yapısını varsayar:

./(project root)
   /dataconnect
      dataconnect.yaml
      /schema
        *.gql
      /connector
        connector.yaml
        *.gql

connector.yaml yapılandırma referansı

Varsayılan kimlik doğrulama modunu ve SDK oluşturma seçeneklerini yapılandırmak için connector.yaml simgesini kullanın.

# The connector-level YAML file.

# Required. The connector name of the Firebase Data Connect connector resource.
connectorId: string

# Optional. If not specified, no generated libraries (i.e. type-safe SDKs) will be generated.
generate:
    # Optional.
    javascriptSdk:
        # Path to the directory that will be updated with the latest generated
        # web SDK.
        # Required.
      - outputDir: string
        # Path to your package.json directory. If specified, the new generated sdk will be installed in this path.
        # Optional. If not provided, the package will not be auto-installed for you.
      - packageJsonDir: string
        # Name of the package to be created.
        # Optional. Defaults to @firebasegen/<connectorID>
      - package: string
        <option>: string
    # Optional.
    swiftSdk:
        # Path to the directory that will be updated with the latest generated
        # iOS Swift SDK.
        # Required.
      - outputDir: string
        # Name of the package to be created.
      - package: string
        <option>: string
    # Optional.
    kotlinSdk:
        # Path to the directory that will be updated with the latest generated
        # Android SDK.
        # Required.
      - outputDir: string
        # Name of the package to be created.
      - package: string
        <option>: string

Veri Bağlantısı projeleri için IAM yapılandırması

Data Connect için ayrıntılı IAM rolleri

Firebase temel rolleri ve önceden tanımlanmış rolleri, daha düşük düzeydeki Data Connect rollerle eşlenir. Eşleme için tabloya bakın.

Data Connect için ayrı IAM rolü atamalarını daha ayrıntılı bir düzeyde yönetmek istiyorsanız Google Cloud konsolunu kullanın.

IAM rolü İzinler
firebasedataconnect.googleapis.com/admin

Firebase Data Connect API Yöneticisi

Bu rol, Firebase Data Connect API Görüntüleyicisi'ni içerir.
firebasedataconnect.* etiketine eş değerdir.

Bu izin, Cloud Sahibi, Cloud Düzenleyici,
Firebase Yöneticisi ve Firebase Develop Yöneticisi rolleri tarafından sağlanır.
Veriler dahil olmak üzere Firebase Data Connect API kaynaklarına tam erişim.

firebasedataconnect.googleapis.com/operations.delete
firebasedataconnect.googleapis.com/operations.cancel
firebasedataconnect.googleapis.com/services.create
firebasedataconnect.googleapis.com/services.update
firebasedataconnect.googleapis.com/services.delete
firebasedataconnect.googleapis.com/services.executeGraphql
firebasedataconnect.googleapis.com/services.executeGraphqlRead
firebasedataconnect.googleapis.com/schemas.create
firebasedataconnect.googleapis.com/schemas.update
firebasedataconnect.googleapis.com/schemas.delete
firebasedataconnect.googleapis.com/schemaRevisions.create
firebasedataconnect.googleapis.com/schemaRevisions.delete
firebasedataconnect.googleapis.com/connectors.create
firebasedataconnect.googleapis.com/connectors.update
firebasedataconnect.googleapis.com/connectors.delete
firebasedataconnect.googleapis.com/connectorRevisions.create
firebasedataconnect.googleapis.com/connectorRevisions.delete
firebasedataconnect.googleapis.com/viewer

Firebase Data Connect API Görüntüleyicisi

Bu rol, Cloud Sahibi, Cloud Düzenleyici,
Cloud Görüntüleyici, Firebase Yöneticisi, Firebase Görüntüleyici,
Firebase Develop Yöneticisi ve Firebase Develop Görüntüleyici rolleri tarafından sağlanır.
Firebase Data Connect API kaynaklarına salt okuma erişimi. Rol, verilere erişim izni vermiyor.

cloudresourcemanager.googleapis.com/projects.list
cloudresourcemanager.googleapis.com/projects.get

firebasedataconnect.googleapis.com/operations.list
firebasedataconnect.googleapis.com/operations.get
firebasedataconnect.googleapis.com/locations.list
firebasedataconnect.googleapis.com/locations.get
firebasedataconnect.googleapis.com/services.list
firebasedataconnect.googleapis.com/services.get
firebasedataconnect.googleapis.com/schemas.list
firebasedataconnect.googleapis.com/schemas.get
firebasedataconnect.googleapis.com/schemaRevisions.list
firebasedataconnect.googleapis.com/schemaRevisions.get
firebasedataconnect.googleapis.com/connectors.list
firebasedataconnect.googleapis.com/connectors.get
firebasedataconnect.googleapis.com/connectorRevisions.list
firebasedataconnect.googleapis.com/connectorRevisions.get
firebasedataconnect.googleapis.com/dataAdmin

Firebase Data Connect API Veri Yöneticisi

Bu rol, Cloud Sahibi, Cloud Düzenleyici,
Firebase Yöneticisi ve Firebase Develop Yöneticisi rolleri tarafından sağlanır.
Veri kaynaklarına tam okuma ve yazma erişimi.

firebasedataconnect.googleapis.com/services.executeGraphql
firebasedataconnect.googleapis.com/services.executeGraphqlRead
firebasedataconnect.googleapis.com/dataViewer

Firebase Data Connect API Veri Görüntüleyici

Bu rol, Cloud Sahibi, Cloud Düzenleyici,
Firebase Yöneticisi ve Firebase Develop Yöneticisi rolleri tarafından sağlanır.
Veri kaynaklarına salt okuma erişimi.

firebasedataconnect.googleapis.com/services.executeGraphqlRead