Konfigurations- und Sicherheitsreferenz

Mit der Firebase CLI können Sie Ihre Firebase-Projekte in einem lokalen, versionskontrollierbaren Projektverzeichnis verwalten. Dazu gehören Data Connect-Dienste in Ihren Projekten, Connectors für diese Dienste und Ressourcen wie Schema-, Abfrage- und Mutationsquellen für jeden Connector. Mit der CLI können Sie auch den Firebase Data Connect-Emulator installieren und ausführen. Die Befehlszeile ist eine effiziente Alternative zur Arbeit in der Firebase-Konsole.

Eine Anleitung zum Installieren des Firebase-CLI-Experiments für das Private Preview-Programm und Data Connect-bezogene CLI-Befehle finden Sie in der CLI-Referenz.

In diesem Referenzleitfaden wird Folgendes dokumentiert:

  • Data Connect-spezifische Einträge in der Konfigurationsdatei des firebase.json-Projekts.
  • Data Connect-Konfigurationen in dataconnect.yaml und connector.yaml
  • IAM-Rollen, die Sie für Ihre Projekte konfigurieren müssen, in denen Data Connect verwendet wird.

Firebase-Projektkonfigurationsdateien

firebase.json-Konfigurationsreferenz

Verwenden Sie die dataconnect-Schlüssel, um einen oder mehrere Data Connect-Dienste in Ihrem Projekt zu konfigurieren.

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

Konfigurationsreferenz für dataconnect.yaml

In der Datei dataconnect.yaml werden Konfigurationsinformationen zu den Speicherorten von Anwendungschemas, Connector-Quellen und Informationen zur Verbindung der Datenquelle gespeichert. Die Datei dient auch als Kennzeichen für das Projektverzeichnis für die Firebase-Befehlszeile.

Mit dem Schlüssel schemaValidation wird der Grad der Schemavalidierung gesteuert, die beim Migrieren von Schemas während der Bereitstellung durchgeführt wird. Wenn kein Wert festgelegt ist, werden mit dem Befehl dataconect:sql:migrate kompatible Änderungen angewendet und Sie werden vor der Ausführung strenger Änderungen aufgefordert, diese zu bestätigen. Wenn diese Option aktiviert ist, gilt Folgendes:

  • STRICT-Mode. Das Datenbankschema muss genau mit dem Anwendungsschema übereinstimmen, bevor das Anwendungsschema bereitgestellt werden kann. Alle Tabellen oder Spalten, die nicht in Ihrem Data Connect-Schema verwendet werden, werden aus der Datenbank gelöscht.
  • COMPATIBLE-Mode. Das Datenbankschema muss mit dem Anwendungsschema kompatibel sein, bevor das Anwendungsschema bereitgestellt werden kann. Alle zusätzlichen Änderungen sind optional. Kompatibel bedeutet, dass Schemamigrationen auf dem von Ihnen geschriebenen Anwendungsschema basieren. Elemente in Ihrer Datenbank, die nicht von Ihrem Anwendungsschema verwendet werden, bleiben unverändert. Daher kann Ihr Backend nach der Bereitstellung ungenutzte Schemas, Tabellen und Spalten enthalten.

Werte für andere Schlüssel in dieser Datei werden in den Kommentaren unten erläutert.

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

Die YAML-Datei geht von einer Standardverzeichnisstruktur aus, die jedoch konfiguriert werden kann:

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

Konfigurationsreferenz für connector.yaml

Verwenden Sie connector.yaml, um den Standardauthentifizierungsmodus und die Optionen für die SDK-Generierung zu konfigurieren.

# 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

IAM-Konfiguration für Data Connect-Projekte

Detaillierte IAM-Rollen für Data Connect

Einfache Firebase-Rollen und vordefinierte Rollen werden Data Connect-Rollen auf niedrigerer Ebene zugeordnet. Die Zuordnung finden Sie in der Tabelle.

Wenn Sie einzelne IAM-Rollenzuweisungen für Data Connect detaillierter verwalten möchten, verwenden Sie die Google Cloud-Konsole.

IAM-Rolle Berechtigungen
firebasedataconnect.googleapis.com/admin

Firebase Data Connect API Admin

Diese Rolle umfasst „Firebase Data Connect API Viewer“.
Dies entspricht firebasedataconnect.*.

Diese Berechtigung wird durch die Rollen „Cloud Owner“, „Cloud Editor“,
„Firebase Admin“ und „Firebase Develop Admin“ bereitgestellt.
Vollzugriff auf Ressourcen der Firebase Data Connect API, einschließlich Daten.

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

Diese Rolle wird vom Cloud-Inhaber, Cloud-Bearbeiter,
Cloud-Betrachter, Firebase-Administrator, Firebase-Betrachter,
Firebase Develop-Administrator und Firebase Develop-Betrachter bereitgestellt.
Lesezugriff auf Ressourcen der Firebase Data Connect API. Die Rolle gewährt keinen Zugriff auf Daten.

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

Diese Rolle wird von den Rollen „Cloud Owner“, „Cloud Editor“,
„Firebase Admin“ und „Firebase Develop Admin“ bereitgestellt.
Vollständiger Lese- und Schreibzugriff auf Datenquellen.

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

Firebase Data Connect API Data Viewer

Diese Rolle wird vom Cloud-Inhaber, Cloud-Bearbeiter,
Firebase-Administrator und Firebase Develop-Administrator bereitgestellt.
Lesezugriff auf Datenquellen.

firebasedataconnect.googleapis.com/services.executeGraphqlRead