Referencia de configuración y seguridad

La CLI de Firebase te permite administrar tus proyectos de Firebase en un directorio de proyecto local con control de versión. Esto incluye los servicios de Data Connect en tus proyectos, los conectores para esos servicios y recursos como el esquema, las fuentes de consulta y mutación para cada conector. La CLI también te permite instalar y operar el emulador de Firebase Data Connect. La CLI es una alternativa eficiente para trabajar en la consola de Firebase.

Para obtener instrucciones sobre cómo instalar el experimento de la CLI de Firebase para el programa de vista previa privada y los comandos de la CLI relacionados con Data Connect, consulta la referencia de la CLI.

En esta guía de referencia, se documenta lo siguiente:

  • Entradas específicas de Data Connect en el archivo de configuración del proyecto firebase.json
  • Configuraciones de Data Connect en dataconnect.yaml y connector.yaml
  • Son los roles de IAM que deberás configurar para tus proyectos que usan Data Connect.

Archivos de configuración del proyecto de Firebase

Referencia de configuración de firebase.json

Usa las claves dataconnect para configurar uno o más servicios Data Connect en tu proyecto.

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

Referencia de configuración de dataconnect.yaml

El archivo dataconnect.yaml almacena información de configuración sobre las ubicaciones de las fuentes de esquemas de la aplicación, las fuentes de conectores y la información de conexión de la fuente de datos. El archivo también sirve como indicador de directorio de proyecto para la CLI de Firebase.

La clave schemaValidation controla el nivel de validación de esquemas que se realiza cuando se migran los esquemas durante la implementación. Si no se establece ningún valor, el comportamiento del comando dataconect:sql:migrate es aplicar cambios compatibles y solicitarte antes de ejecutar cualquier cambio estricto. Cuando se establece, el comportamiento es el siguiente:

  • Modo STRICT El esquema de la base de datos debe coincidir exactamente con el esquema de la aplicación para que se pueda implementar. Todas las tablas o columnas que no se usen en tu esquema Data Connect se borrarán de la base de datos.
  • Modo COMPATIBLE El esquema de la base de datos debe ser compatible con el esquema de la aplicación para que se pueda implementar. Los cambios adicionales se consideran opcionales. Compatible significa que las migraciones de esquemas se basan en el esquema de la aplicación que escribes. Los elementos de la base de datos que no usa el esquema de tu aplicación no se modifican. Por lo tanto, después de la implementación, es posible que tu backend contenga esquemas, tablas y columnas que no se usen.

Los valores de otras claves de este archivo se explican en los comentarios que aparecen a continuación.

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

El archivo YAML supone una estructura de directorio predeterminada (pero configurable) de la siguiente manera:

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

Referencia de configuración de connector.yaml

Usa connector.yaml para configurar el modo de autenticación predeterminado y las opciones de generación de 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

Configuración de IAM para proyectos de Data Connect

Roles de IAM detallados para Data Connect

Los roles básicos y predefinidos de Firebase se asignan a roles Data Connect de nivel inferior. Consulta la tabla para ver la asignación.

Para administrar asignaciones individuales de roles de IAM para Data Connect en un nivel más detallado, usa la consola de Google Cloud.

Función de IAM Permisos
firebasedataconnect.googleapis.com/admin

Administrador de la API de Firebase Data Connect

Este rol incluye el Visualizador de la API de Firebase Data Connect.
Es equivalente a firebasedataconnect.*.

Los roles de propietario de Cloud, editor de Cloud,
Administrador de Firebase y Administrador de Firebase Develop proporcionan esta información.
Otorga acceso completo a los recursos de la API de Firebase Data Connect, incluidos los datos.

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

Visualizador de la API de Firebase Data Connect

Los roles de propietario, editor y
visualizador de Cloud, administrador de Firebase y visualizador de Firebase,
y administrador y visualizador de Firebase Develop proporcionan este permiso.
Otorga acceso de solo lectura a los recursos de la API de Firebase Data Connect. El rol no otorga acceso a los datos.

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

Administrador de datos de la API de Firebase Data Connect

Los roles de propietario de Cloud, editor de Cloud,
administrador de Firebase y administrador de Firebase Develop proporcionan esta función.
Acceso completo de lectura y escritura a las fuentes de datos.

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

Visualizador de datos de la API de Firebase Data Connect

Los roles de propietario de Cloud, editor de Cloud,
administrador de Firebase y administrador de Firebase Develop proporcionan este permiso.
Otorga acceso de solo lectura a las fuentes de datos.

firebasedataconnect.googleapis.com/services.executeGraphqlRead