Referensi konfigurasi dan keamanan

CLI Firebase memungkinkan Anda mengelola project Firebase di direktori project lokal yang dapat dikontrol versinya. Hal ini mencakup layanan Data Connect di project Anda, konektor untuk layanan tersebut, dan resource seperti skema, sumber kueri, dan mutasi untuk setiap konektor. CLI juga memungkinkan Anda menginstal dan mengoperasikan emulator Firebase Data Connect. CLI adalah alternatif yang efisien untuk bekerja di konsol Firebase.

Untuk petunjuk cara menginstal eksperimen Firebase CLI untuk program Pratinjau Pribadi, dan perintah CLI terkait Data Connect, lihat referensi CLI.

Panduan referensi ini mendokumentasikan:

  • Entri khusus Data Connect dalam file konfigurasi project firebase.json Anda.
  • Konfigurasi Data Connect di dataconnect.yaml dan connector.yaml.
  • Peran IAM yang perlu Anda konfigurasi untuk project yang menggunakan Data Connect.

File konfigurasi project Firebase

Referensi konfigurasi firebase.json

Gunakan tombol dataconnect untuk mengonfigurasi satu atau beberapa layanan Data Connect di project Anda.

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

Referensi konfigurasi dataconnect.yaml

File dataconnect.yaml menyimpan informasi konfigurasi tentang lokasi sumber skema aplikasi, sumber konektor, dan informasi koneksi sumber data. File ini juga berfungsi sebagai penanda direktori project untuk Firebase CLI.

Kunci schemaValidation mengontrol tingkat validasi skema yang dilakukan saat skema dimigrasikan selama deployment. Tanpa nilai yang ditetapkan, perilaku perintah dataconect:sql:migrate adalah menerapkan perubahan yang kompatibel dan meminta Anda sebelum menjalankan perubahan ketat apa pun. Jika ditetapkan, perilakunya adalah sebagai berikut:

  • Mode STRICT. Skema database harus sama persis dengan skema aplikasi sebelum skema aplikasi dapat di-deploy. Semua tabel atau kolom yang tidak digunakan dalam skema Data Connect Anda akan dihapus dari database.
  • Mode COMPATIBLE. Skema database harus kompatibel dengan skema aplikasi sebelum skema aplikasi dapat di-deploy; perubahan tambahan apa pun dianggap opsional. Kompatibel berarti migrasi skema didasarkan pada skema aplikasi yang Anda tulis. Elemen dalam database yang tidak digunakan oleh skema aplikasi Anda tidak akan diubah. Oleh karena itu, setelah deployment, backend Anda mungkin berisi skema, tabel, dan kolom yang tidak digunakan.

Nilai untuk kunci lain dalam file ini dijelaskan dalam komentar di bawah.

# 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]

File YAML mengasumsikan struktur direktori default (tetapi dapat dikonfigurasi) dari:

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

Referensi konfigurasi connector.yaml

Gunakan connector.yaml untuk mengonfigurasi mode autentikasi default dan opsi pembuatan SDK.

# 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

Konfigurasi IAM untuk project Data Connect

Peran IAM terperinci untuk Data Connect

Peran dasar dan peran bawaan Firebase dipetakan ke peran Data Connect tingkat lebih rendah. Lihat tabel untuk pemetaan.

Untuk mengelola setiap penetapan peran IAM untuk Data Connect di tingkat yang lebih terperinci, gunakan konsol Google Cloud.

Peran IAM Izin
firebasedataconnect.googleapis.com/admin

Firebase Data Connect API Admin

Peran ini mencakup Firebase Data Connect API Viewer.
Setara dengan firebasedataconnect.*.

Hal ini disediakan oleh peran Cloud Owner, Cloud Editor,
Firebase Admin, dan Firebase Develop Admin.
Akses penuh ke resource Firebase Data Connect API, termasuk data.

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 Viewer

Peran ini diberikan oleh peran Cloud Owner, Cloud Editor,
Cloud Viewer, Firebase Admin, Firebase Viewer,
Firebase Develop Admin, dan Firebase Develop Viewer.
Akses baca saja ke resource Firebase Data Connect API. Peran tidak memberikan akses ke data.

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 Data Admin

Peran ini diberikan oleh peran Cloud Owner, Cloud Editor,
Firebase Admin, dan Firebase Develop Admin.
Akses baca dan tulis penuh ke sumber data.

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

Pelihat Data Firebase Data Connect API

Peran ini diberikan oleh peran Cloud Owner, Cloud Editor,
Firebase Admin, dan Firebase Develop Admin.
Akses baca saja ke sumber data.

firebasedataconnect.googleapis.com/services.executeGraphqlRead