Tài liệu tham khảo về cấu hình và bảo mật

Giao diện dòng lệnh (CLI) Firebase cho phép bạn quản lý các dự án Firebase trong một thư mục dự án cục bộ, có thể kiểm soát phiên bản. Điều này bao gồm các dịch vụ Data Connect trong dự án, trình kết nối cho các dịch vụ đó và các tài nguyên như giản đồ, truy vấn và nguồn đột biến cho mỗi trình kết nối. CLI cũng cho phép bạn cài đặt và vận hành trình mô phỏng Firebase Data Connect. CLI là một giải pháp thay thế hiệu quả cho việc làm việc trong bảng điều khiển Firebase.

Để biết hướng dẫn cài đặt thử nghiệm CLI Firebase cho chương trình Xem trước riêng tư và các lệnh CLI liên quan đến Data Connect, hãy xem tài liệu tham khảo về CLI.

Hướng dẫn tham khảo này ghi lại:

  • Các mục dành riêng cho Data Connect trong tệp cấu hình dự án firebase.json.
  • Cấu hình Data Connect trong dataconnect.yamlconnector.yaml.
  • Các vai trò IAM mà bạn cần định cấu hình cho các dự án sử dụng Data Connect.

Tệp cấu hình dự án Firebase

Tài liệu tham khảo về cấu hình firebase.json

Sử dụng các khoá dataconnect để định cấu hình một hoặc nhiều dịch vụ Data Connect trong dự án.

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

Tài liệu tham khảo về cấu hình dataconnect.yaml

Tệp dataconnect.yaml lưu trữ thông tin cấu hình về vị trí của nguồn giản đồ ứng dụng, nguồn trình kết nối và thông tin kết nối nguồn dữ liệu. Tệp này cũng đóng vai trò là chỉ báo thư mục dự án cho CLI Firebase.

Khoá schemaValidation kiểm soát mức độ xác thực giản đồ được thực hiện khi di chuyển giản đồ trong quá trình triển khai. Khi không đặt giá trị, hành vi của lệnh dataconect:sql:migrate là áp dụng các thay đổi tương thích và nhắc bạn trước khi thực thi bất kỳ thay đổi nghiêm ngặt nào. Khi được đặt, hành vi sẽ như sau:

  • Chế độ STRICT. Giản đồ cơ sở dữ liệu phải khớp chính xác với giản đồ ứng dụng trước khi có thể triển khai giản đồ ứng dụng. Mọi bảng hoặc cột không được sử dụng trong giản đồ Data Connect sẽ bị xoá khỏi cơ sở dữ liệu.
  • Chế độ COMPATIBLE. Giản đồ cơ sở dữ liệu phải tương thích với giản đồ ứng dụng trước khi có thể triển khai giản đồ ứng dụng; mọi thay đổi bổ sung đều được coi là không bắt buộc. Tương thích có nghĩa là quá trình di chuyển giản đồ dựa trên giản đồ ứng dụng mà bạn viết. Các phần tử trong cơ sở dữ liệu mà giản đồ ứng dụng không sử dụng sẽ không được sửa đổi. Do đó, sau khi triển khai, phần phụ trợ của bạn có thể chứa các giản đồ, bảng và cột không dùng đến.

Giá trị của các khoá khác trong tệp này được giải thích trong phần nhận xét bên dưới.

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

Tệp YAML giả định cấu trúc thư mục mặc định (nhưng có thể định cấu hình) như sau:

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

tài liệu tham khảo về cấu hình connector.yaml

Sử dụng connector.yaml để định cấu hình chế độ xác thực mặc định và các tuỳ chọn tạo 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

Cấu hình IAM cho các dự án Data Connect

Vai trò IAM chi tiết cho Data Connect

Các vai trò cơ bản và vai trò được xác định trước trong Firebase liên kết với các vai trò Data Connect cấp thấp hơn. Hãy tham khảo bảng để biết mối liên kết.

Để quản lý các lượt chỉ định vai trò IAM riêng lẻ cho Data Connect ở cấp chi tiết hơn, hãy sử dụng bảng điều khiển Google Cloud.

Vai trò IAM Quyền
firebasedataconnect.googleapis.com/admin

Quản trị viên API Firebase Data Connect

Vai trò này bao gồm cả Người xem API Firebase Data Connect.
Tương đương với firebasedataconnect.*.

Vai trò Chủ sở hữu trên đám mây, Người chỉnh sửa trên đám mây,
Quản trị viên Firebase và Quản trị viên phát triển Firebase cung cấp quyền này.
Toàn quyền truy cập vào các tài nguyên của API Firebase Data Connect, bao gồm cả dữ liệu.

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

Người xem API Firebase Data Connect

Vai trò này do các vai trò Chủ sở hữu trên đám mây, Người chỉnh sửa trên đám mây,
Người xem trên đám mây, Quản trị viên Firebase, Người xem Firebase,
Quản trị viên Firebase Develop và Người xem Firebase Develop cung cấp.
Quyền chỉ đọc đối với tài nguyên API Firebase Data Connect. Vai trò không cấp quyền truy cập vào dữ liệu.

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

Quản trị viên dữ liệu API Firebase Data Connect

Vai trò này do các vai trò Chủ sở hữu trên đám mây, Người chỉnh sửa trên đám mây,
Quản trị viên Firebase và Quản trị viên phát triển Firebase cung cấp.
Có toàn quyền đọc và ghi vào nguồn dữ liệu.

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

Trình xem dữ liệu API Firebase Data Connect

Vai trò Chủ sở hữu trên đám mây, Người chỉnh sửa trên đám mây,
Quản trị viên Firebase và Quản trị viên Firebase Develop cung cấp quyền này.
Quyền chỉ đọc đối với nguồn dữ liệu.

firebasedataconnect.googleapis.com/services.executeGraphqlRead