Referência de configuração e segurança

A CLI Firebase permite gerenciar seus projetos do Firebase em um diretório de projeto local controlável por versão. Isso inclui serviços Data Connect nos seus projetos, conectores para esses serviços e recursos como esquemas, consultas e fontes de mutação para cada conector. A CLI também permite instalar e operar o emulador Firebase Data Connect. A CLI é uma alternativa eficiente para trabalhar no console Firebase.

Para instruções sobre como instalar o experimento da CLI Firebase para o programa de visualização privada e comandos da CLI relacionados a Data Connect, consulte a referência da CLI.

Este guia de referência documenta:

  • Entradas específicas de Data Connect no arquivo de configuração do projeto firebase.json.
  • Configurações de Data Connect em dataconnect.yaml e connector.yaml.
  • Papéis do IAM que você precisa configurar para seus projetos que usam Data Connect.

Arquivos de configuração do projeto do Firebase

Referência de configuração do firebase.json

Use as chaves dataconnect para configurar um ou mais serviços Data Connect no projeto.

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

Referência de configuração do dataconnect.yaml

O arquivo dataconnect.yaml armazena informações de configuração sobre os locais de origens de esquema de aplicativo, origens de conector e informações de conexão da fonte de dados. O arquivo também serve como um indicador de diretório de projeto para a CLI Firebase.

A chave schemaValidation controla o nível de validação de esquema realizado quando os esquemas são migrados durante a implantação. Sem um valor definido, o comportamento do comando dataconect:sql:migrate é aplicar mudanças compatíveis e solicitar a você antes de executar qualquer mudança rígida. Quando definido, o comportamento é o seguinte:

  • Modo STRICT O esquema do banco de dados precisa corresponder exatamente ao esquema do aplicativo antes que o esquema do aplicativo possa ser implantado. Todas as tabelas ou colunas que não forem usadas no esquema Data Connect serão excluídas do banco de dados.
  • Modo COMPATIBLE O esquema do banco de dados precisa ser compatível com o esquema do aplicativo antes que o esquema do aplicativo possa ser implantado. Todas as mudanças adicionais são consideradas opcionais. Compatível significa que as migrações de esquema são baseadas no esquema do aplicativo que você cria. Os elementos no seu banco de dados que não são usados pelo esquema do aplicativo não são modificados. Portanto, após a implantação, o back-end pode conter esquemas, tabelas e colunas não usados.

Os valores de outras chaves neste arquivo são explicados nos comentários abaixo.

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

O arquivo YAML assume uma estrutura de diretório padrão (mas configurável) de:

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

Referência de configuração do conector.yaml

Use connector.yaml para configurar o modo de autenticação padrão e as opções de geração do 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

Configuração do IAM para projetos do Data Connect

Papéis granulares do IAM para Data Connect

Os papéis básicos e predefinidos do Firebase são mapeados para papéis Data Connect de nível inferior. Consulte a tabela para conferir o mapeamento.

Para gerenciar atribuições de papel do IAM individuais para Data Connect em um nível mais detalhado, use o console Google Cloud.

Papel do IAM Permissões
firebasedataconnect.googleapis.com/admin

Administrador da API Firebase Data Connect

Esse papel inclui o leitor da API Firebase Data Connect.
É equivalente a firebasedataconnect.*.

Isso é fornecido pelas funções de proprietário do Cloud, editor do Cloud,
administrador do Firebase e administrador do Firebase Develop.
Acesso completo aos recursos da API Firebase Data Connect, inclusive dados.

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

Leitor da API Firebase Data Connect

Isso é fornecido pelos papéis de proprietário do Cloud, editor do Cloud,
leitor do Cloud, administrador do Firebase, leitor do Firebase,
administrador do Firebase Develop e leitor do Firebase Develop.
Acesso somente leitura aos recursos da API Firebase Data Connect. O papel não concede acesso aos dados.

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 dados da API Firebase Data Connect

Isso é fornecido pelas funções de proprietário do Cloud, editor do Cloud,
administrador do Firebase e administrador do Firebase Develop.
Acesso completo de leitura e gravação a fontes de dados.

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

Leitor de dados da API Firebase Data Connect

Isso é fornecido pelos papéis de proprietário do Cloud, editor do Cloud,
administrador do Firebase e administrador de desenvolvimento do Firebase.
Acesso somente leitura a fontes de dados.

firebasedataconnect.googleapis.com/services.executeGraphqlRead