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

Com a CLI Firebase, é possível gerenciar seus projetos do Firebase em um diretório local com controle de versão. Isso inclui serviços Data Connect nos seus projetos, conectores para esses serviços e recursos como esquema, origens de consulta e 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 prévia particular e comandos da CLI relacionados ao Data Connect, consulte a referência da CLI.

Este guia de referência documenta:

  • Entradas específicas do 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 seu 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 das fontes de esquema de aplicativo, fontes 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 realizada 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 pedir sua confirmação antes de executar mudanças estritas. Quando definido, o comportamento é o seguinte:

  • Modo STRICT O esquema do banco de dados precisa corresponder exatamente ao esquema do aplicativo antes que ele 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 ele 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ê escreve. Os elementos do seu banco de dados que não são usados pelo esquema do aplicativo permanecem inalterados. Portanto, depois da implantação, seu back-end pode conter esquemas, tabelas e colunas não utilizados.

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 pressupõe 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 connector.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 de nível inferior do Data Connect. Consulte a tabela para ver o mapeamento.

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

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

Administrador da API Firebase Data Connect

Essa função 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

É fornecido pelas funções de proprietário, editor,
leitor, administrador e leitor do Firebase,
administrador 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

Fornecido pelas funções de proprietário do Cloud, editor do Cloud,
administrador do Firebase e administrador de desenvolvimento do Firebase.
Acesso completo de leitura e gravação às origens de dados.

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

Leitor de dados da API Firebase Data Connect

Fornecido pelas funções de proprietário do Cloud, editor do Cloud,
administrador do Firebase e administrador de desenvolvimento do Firebase.
Acesso somente leitura a origens de dados.

firebasedataconnect.googleapis.com/services.executeGraphqlRead