Référence sur la configuration et la sécurité

La CLI Firebase vous permet de gérer vos projets Firebase dans un répertoire de projet local, contrôlé par version. Cela inclut Data Connect des services dans vos projets, des connecteurs pour ces services et des ressources comme des sources de schéma, de requête et de mutation pour chaque connecteur. La CLI vous permet également d'installer et d'utiliser l'émulateur Firebase Data Connect. La CLI est une alternative efficace à la console Firebase.

Pour savoir comment installer le test de la CLI Firebase pour le programme Preview privé et les commandes CLI associées à Data Connect, consultez la documentation de référence de la CLI.

Ce guide de référence décrit les éléments suivants :

  • Entrées spécifiques à Data Connect dans votre projet firebase.json fichier de configuration.
  • Configurations Data Connect dans dataconnect.yaml et connector.yaml
  • Rôles IAM que vous devrez configurer pour vos projets qui utilisent Data Connect.

Fichiers de configuration de projet Firebase

Documentation de référence sur la configuration firebase.json

Utilisez les clés dataconnect pour configurer un ou plusieurs services Data Connect dans votre projet.

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

Documentation de référence sur la configuration dataconnect.yaml

Le fichier dataconnect.yaml stocke les informations de configuration concernant les emplacements. sources de schéma d'application, sources de connecteurs et connexions aux sources de données des informations. Le fichier sert également de servant de répertoire de projet pour CLI Firebase.

La clé schemaValidation contrôle le niveau de validation des schémas effectué lors de la migration des schémas lors du déploiement. Si aucune valeur n'est définie, le comportement de la commande dataconect:sql:migrate consiste à appliquer les modifications compatibles et à vous inviter à exécuter les modifications strictes. Une fois défini, le comportement est le suivant:

  • Mode STRICT. Le schéma de la base de données doit correspondre exactement au schéma d'application avant de pouvoir le déployer. N'importe quelle valeur de tables ou de colonnes qui ne sont pas utilisées dans votre schéma Data Connect sont supprimés de la base de données.
  • Mode COMPATIBLE. Le schéma de base de données doit être compatible avec le schéma d'application avant de pouvoir le déployer. tout d'autres modifications sont considérées comme facultatives. "Compatible" signifie que le schéma les migrations sont basées sur le schéma d'application que vous écrivez. Les éléments de votre base de données qui ne sont pas utilisés par le schéma de votre application ne sont pas modifiés. Par conséquent, après le déploiement, votre backend peut contenir des schémas, des tables et des colonnes inutilisés.

Les valeurs des autres clés de ce fichier sont expliquées dans les commentaires ci-dessous.

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

Le fichier YAML suppose une structure de répertoire par défaut (mais configurable) de:

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

Documentation de référence sur la configuration connector.yaml

Utilisez connector.yaml pour configurer le mode d'authentification par défaut et les options de génération du 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

Configuration IAM pour les projets Data Connect

Rôles IAM précis pour Data Connect

Les rôles de base et les rôles prédéfinis Firebase correspondent à des rôles de niveau inférieur Data Connect rôles. Reportez-vous au tableau pour le mappage.

Pour gérer les attributions de rôles IAM individuelles pour Data Connect de manière plus précise, utilisez la console Google Cloud.

Rôle IAM Autorisations
firebasedataconnect.googleapis.com/admin

Administrateur de l'API Firebase Data Connect

Ce rôle inclut le lecteur de l'API Firebase Data Connect.
Elle équivaut à firebasedataconnect.*.

Ces informations sont fournies par le propriétaire du cloud, l'éditeur Cloud,
Administrateur Firebase et Administrateur de développement Firebase.
Accès complet aux ressources de l'API Firebase Data Connect, y compris les données.

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

Lecteur de l'API Firebase Data Connect

Ce rôle est attribué par les rôles de propriétaire, éditeur, lecteur et administrateur Cloud, administrateur et lecteur Firebase Develop.
Accès en lecture seule aux ressources de l'API Firebase Data Connect. Ce rôle ne permet pas d'accéder aux données.

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

Administrateur des données de l'API Firebase Data Connect

Ce rôle est attribué par les rôles Propriétaire Cloud, Éditeur Cloud,
Administrateur Firebase et Administrateur de développement Firebase.
Accès complet en lecture et en écriture aux sources de données.

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

Lecteur de données de l'API Firebase Data Connect

Il est fourni par les rôles Propriétaire Cloud, Éditeur Cloud,
Administrateur Firebase et Administrateur de développement Firebase.
Accès en lecture seule aux sources de données.

firebasedataconnect.googleapis.com/services.executeGraphqlRead