Yapılandırma ve güvenlik referansı

Firebase CLI, Firebase projelerinizi yerel ve sürüm kontrol edilebilir bir proje dizininde yönetmenize olanak tanır. Buna, projelerinizdeki Data Connecthizmetler, bu hizmetler için bağlayıcılar ve her bağlayıcının şeması, sorgusu ve mutasyon kaynakları gibi kaynaklar dahildir. 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.

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

Bu başvuru kılavuzu belgeleri:

  • firebase.json proje yapılandırma dosyanızdaki Data Connect'ye özgü girişler
  • dataconnect.yaml ve connector.yaml'deki 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ı

Projenizde bir veya daha fazla Data Connect hizmetini yapılandırmak için dataconnect anahtarlarını kullanın.

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ı bilgileri konumlarıyla ilgili yapılandırma bilgilerini depolar. Dosya, Firebase KSA için proje dizini işaretçisi olarak da kullanılır.

schemaValidation anahtarı, şemaların dağıtım sırasında taşınması sırasında gerçekleştirilen şema doğrulama düzeyini kontrol eder. Değer ayarlanmadığında dataconect:sql:migrate komutunun davranışı, uyumlu değişiklikleri uygulamak ve katı değişiklikler gerçekleştirmeden önce size istem göstermektir. Ayarlandığında davranış aşağıdaki gibidir:

  • STRICT moduna geçin. Uygulama şemasının dağıtılabilmesi için veritabanı şeması uygulama şemasıyla tam olarak eşleşmelidir. Data Connect şemanızda kullanılmayan tüm tablolar veya sütunlar veritabanından silinir.
  • COMPATIBLE modu. Uygulama şeması dağıtılabilmesi için veritabanı şeması uygulama şemasıyla uyumlu olmalıdır. Diğer tüm değişiklikler isteğe bağlıdır. Uyumlu, şema taşıma işlemlerinin yazdığınız uygulama şemasına dayalı olduğu anlamına gelir. Veritabanınıza uygulama şemanız tarafından kullanılmayan öğeler değiştirilmeden bırakılır. Bu nedenle, dağıtım sonrasında arka uçunuzda kullanılmayan şemalar, tablolar ve sütunlar bulunabilir.

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ı, aşağıdaki 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 öğesini 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

Data Connect projeleri için IAM yapılandırması

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

Firebase temel rolleri ve önceden tanımlanmış roller, alt düzey Data Connect rollerine eşlenir. Eşleme için tabloya bakın.

Data Connect için 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ğer.

Bu izinler 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üleyicisi rolleri tarafından sağlanır.
Firebase Data Connect API kaynaklarına salt okuma erişimi. Rol, verilere erişim izni vermez.

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üleyicisi

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