Справочник по настройке и безопасности

Интерфейс командной строки Firebase позволяет управлять проектами Firebase в локальном каталоге проектов с контролем версий. Сюда входят службы Data Connect в ваших проектах, коннекторы для этих служб и ресурсы, такие как схемы, запросы и источники мутаций для каждого коннектора. Интерфейс командной строки также позволяет установить и использовать эмулятор Firebase Data Connect . CLI — это эффективная альтернатива работе в консоли Firebase .

Инструкции по установке эксперимента Firebase CLI для программы Private Preview, а также команды CLI, связанные с Data Connect , см. в справочнике по CLI .

В этом справочном руководстве представлены:

  • Записи, специфичные для Data Connect в файле конфигурации проекта firebase.json .
  • Конфигурации Data Connect в dataconnect.yaml и connector.yaml .
  • Роли IAM, которые вам необходимо настроить для своих проектов, использующих Data Connect .

Файлы конфигурации проекта Firebase

Справочник конфигурации firebase.json

Используйте ключи dataconnect для настройки одной или нескольких служб Data Connect в вашем проекте.

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

Справочник по конфигурации dataconnect.yaml

Файл dataconnect.yaml хранит информацию о расположении источников схемы приложения, источников коннекторов и информацию о подключении к источникам данных. Этот файл также служит идентификатором каталога проекта для Firebase CLI.

Ключ schemaValidation управляет уровнем проверки схемы, выполняемой при миграции схем во время развертывания. Если значение не задано, команда dataconect:sql:migrate применяет совместимые изменения и выводит запрос перед выполнением любых строгих изменений. Если значение задано, поведение выглядит следующим образом:

  • Режим STRICT . Схема базы данных должна полностью соответствовать схеме приложения, прежде чем схема приложения будет развернута. Все таблицы или столбцы, не используемые в схеме Data Connect будут удалены из базы данных.
  • Режим COMPATIBLE . Схема базы данных должна быть совместима со схемой приложения до её развёртывания; любые дополнительные изменения считаются необязательными. Совместимость означает, что миграция схемы выполняется на основе написанной вами схемы приложения. Элементы в базе данных, не используемые схемой приложения, остаются без изменений. Поэтому после развёртывания ваша серверная часть может содержать неиспользуемые схемы, таблицы и столбцы.

Значения других ключей в этом файле поясняются в комментариях ниже.

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

Файл YAML предполагает следующую структуру каталогов по умолчанию (но ее можно настраивать):

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

Справочник по конфигурации connector.yaml

Используйте connector.yaml для настройки режима аутентификации по умолчанию и параметров генерации 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

Конфигурация IAM для проектов Data Connect

Детализированные роли IAM для Data Connect

Базовые и предопределённые роли Firebase сопоставляются с ролями Data Connect более низкого уровня. Сопоставление см. в таблице.

Для управления назначениями отдельных ролей IAM для Data Connect на более детальном уровне используйте консоль Google Cloud .

роль IAM Разрешения
firebasedataconnect.googleapis.com/admin

Администратор API Firebase Data Connect

Эта роль включает в себя просмотрщик API Firebase Data Connect.
Эквивалентно firebasedataconnect.* .

Это предоставлено владельцем облака, редактором облака,
Роли администратора Firebase и администратора разработки Firebase.
Полный доступ к ресурсам API Firebase Data Connect, включая данные.

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

Средство просмотра API Firebase Data Connect

Это предоставлено владельцем облака, редактором облака,
Cloud Viewer, Firebase Admin, Firebase Viewer,
Роли администратора разработки Firebase и наблюдателя разработки Firebase.
Доступ только для чтения к ресурсам API Firebase Data Connect. Роль не предоставляет доступ к данным.

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

Администрирование данных API Firebase Data Connect

Это предоставлено владельцем облака, редактором облака,
Роли администратора Firebase и администратора разработки Firebase.
Полный доступ на чтение и запись к источникам данных.

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

Средство просмотра данных API Firebase Data Connect

Это предоставлено владельцем облака, редактором облака,
Роли администратора Firebase и администратора разработки Firebase.
Доступ к источникам данных только для чтения.

firebasedataconnect.googleapis.com/services.executeGraphqlRead
,

Интерфейс командной строки Firebase позволяет управлять проектами Firebase в локальном каталоге проектов с контролем версий. Сюда входят службы Data Connect в ваших проектах, коннекторы для этих служб и ресурсы, такие как схемы, запросы и источники мутаций для каждого коннектора. Интерфейс командной строки также позволяет установить и использовать эмулятор Firebase Data Connect . CLI — это эффективная альтернатива работе в консоли Firebase .

Инструкции по установке эксперимента Firebase CLI для программы Private Preview, а также команды CLI, связанные с Data Connect , см. в справочнике по CLI .

В этом справочном руководстве представлены:

  • Записи, специфичные для Data Connect в файле конфигурации проекта firebase.json .
  • Конфигурации Data Connect в dataconnect.yaml и connector.yaml .
  • Роли IAM, которые вам необходимо настроить для своих проектов, использующих Data Connect .

Файлы конфигурации проекта Firebase

Справочник конфигурации firebase.json

Используйте ключи dataconnect для настройки одной или нескольких служб Data Connect в вашем проекте.

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

Справочник по конфигурации dataconnect.yaml

Файл dataconnect.yaml хранит информацию о расположении источников схемы приложения, источников коннекторов и информацию о подключении к источникам данных. Этот файл также служит идентификатором каталога проекта для Firebase CLI.

Ключ schemaValidation управляет уровнем проверки схемы, выполняемой при миграции схем во время развертывания. Если значение не задано, команда dataconect:sql:migrate применяет совместимые изменения и выводит запрос перед выполнением любых строгих изменений. Если значение задано, поведение выглядит следующим образом:

  • Режим STRICT . Схема базы данных должна полностью соответствовать схеме приложения, прежде чем схема приложения будет развернута. Все таблицы или столбцы, не используемые в схеме Data Connect будут удалены из базы данных.
  • Режим COMPATIBLE . Схема базы данных должна быть совместима со схемой приложения до её развёртывания; любые дополнительные изменения считаются необязательными. Совместимость означает, что миграция схемы выполняется на основе написанной вами схемы приложения. Элементы в базе данных, не используемые схемой приложения, остаются без изменений. Поэтому после развёртывания ваша серверная часть может содержать неиспользуемые схемы, таблицы и столбцы.

Значения других ключей в этом файле поясняются в комментариях ниже.

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

Файл YAML предполагает следующую структуру каталогов по умолчанию (но ее можно настраивать):

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

Справочник по конфигурации connector.yaml

Используйте connector.yaml для настройки режима аутентификации по умолчанию и параметров генерации 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

Конфигурация IAM для проектов Data Connect

Детализированные роли IAM для Data Connect

Базовые и предопределённые роли Firebase сопоставляются с ролями Data Connect более низкого уровня. Сопоставление см. в таблице.

Для управления назначениями отдельных ролей IAM для Data Connect на более детальном уровне используйте консоль Google Cloud .

роль IAM Разрешения
firebasedataconnect.googleapis.com/admin

Администратор API Firebase Data Connect

Эта роль включает в себя просмотрщик API Firebase Data Connect.
Эквивалентно firebasedataconnect.* .

Это предоставлено владельцем облака, редактором облака,
Роли администратора Firebase и администратора разработки Firebase.
Полный доступ к ресурсам API Firebase Data Connect, включая данные.

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

Средство просмотра API Firebase Data Connect

Это предоставлено владельцем облака, редактором облака,
Cloud Viewer, Firebase Admin, Firebase Viewer,
Роли администратора разработки Firebase и наблюдателя разработки Firebase.
Доступ только для чтения к ресурсам API Firebase Data Connect. Роль не предоставляет доступ к данным.

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

Администрирование данных API Firebase Data Connect

Это предоставлено владельцем облака, редактором облака,
Роли администратора Firebase и администратора разработки Firebase.
Полный доступ на чтение и запись к источникам данных.

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

Средство просмотра данных API Firebase Data Connect

Это предоставлено владельцем облака, редактором облака,
Роли администратора Firebase и администратора разработки Firebase.
Доступ к источникам данных только для чтения.

firebasedataconnect.googleapis.com/services.executeGraphqlRead