Riferimento per configurazione e sicurezza

L'interfaccia a riga di comando Firebase ti consente di gestire i progetti Firebase in una directory di progetto locale con controllo della versione. Sono inclusi i Data Connect servizi nei tuoi progetti, i connettori per questi servizi e risorse come le origini schema, query e mutazione per ogni connettore. L'interfaccia a riga di comando ti consente anche di installare e utilizzare l'emulatore Firebase Data Connect. L'interfaccia a riga di comando è un'alternativa efficiente al lavoro nella console Firebase.

Per istruzioni sull'installazione dell'esperimento dell'interfaccia a riga di comando Firebase per il programma Anteprima privata e dei comandi dell'interfaccia a riga di comando correlati a Data Connect, consulta la documentazione sull'interfaccia a riga di comando.

Questa guida di riferimento illustra:

  • voci specifiche di Data Connect nel file di configurazione del progetto firebase.json.
  • Configurazioni di Data Connect in dataconnect.yaml e connector.yaml.
  • Ruoli IAM che dovrai configurare per i tuoi progetti che utilizzano Data Connect.

File di configurazione del progetto Firebase

Riferimento per la configurazione di firebase.json

Utilizza i tasti dataconnect per configurare uno o più servizi Data Connect nel progetto.

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

Riferimento alla configurazione di dataconnect.yaml

Il file dataconnect.yaml archivia le informazioni di configurazione relative alle località delle origini dello schema dell'applicazione, delle origini connettore e delle informazioni sulla connessione dell'origine dati. Il file funge anche da indicatore della directory del progetto per l'interfaccia a riga di comando Firebase.

La chiave schemaValidation controlla il livello di convalida dello schema eseguito quando viene eseguita la migrazione degli schemi durante il deployment. Se non viene impostato alcun valore, il comportamento del comando dataconect:sql:migrate è applicare modifiche compatibili e richiedere conferma prima di eseguire modifiche rigorose. Se impostato, il comportamento è il seguente:

  • Modalità STRICT. Lo schema del database deve corrispondere esattamente allo schema dell'applicazione prima che quest'ultimo possa essere implementato. Tutte le tabelle o le colonne non utilizzate nello schema Data Connect verranno eliminate dal database.
  • Modalità COMPATIBLE. Lo schema del database deve essere compatibile con lo schema dell'applicazione prima che quest'ultimo possa essere implementato. Eventuali modifiche aggiuntive sono considerate facoltative. Con compatibile si intende che le migrazioni dello schema si basano sullo schema dell'applicazione che scrivi. Gli elementi del database che non vengono utilizzati dallo schema dell'applicazione vengono lasciati invariati. Pertanto, dopo il deployment, il backend potrebbe contenere schemi, tabelle e colonne inutilizzati.

I valori per le altre chiavi in questo file sono spiegati nei commenti di seguito.

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

Il file YAML presuppone una struttura di directory predefinita (ma configurabile) di:

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

Riferimento alla configurazione di connector.yaml

Utilizza connector.yaml per configurare la modalità di autenticazione predefinita e le opzioni di generazione dell'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

Configurazione IAM per i progetti Data Connect

Ruoli IAM granulari per Data Connect

I ruoli di base e predefiniti di Firebase vengono mappati ai ruoliData Connect di livello inferiore. Fai riferimento alla tabella per la mappatura.

Per gestire le singole assegnazioni dei ruoli IAM per Data Connect a un livello più granulare, utilizza la console Google Cloud.

Ruolo IAM Autorizzazioni
firebasedataconnect.googleapis.com/admin

Amministratore dell'API Firebase Data Connect

Questo ruolo include Firebase Data Connect API Viewer.
È equivalente a firebasedataconnect.*.

Questa operazione è fornita dai ruoli Proprietario Cloud, Editor Cloud,
Amministratore Firebase e Firebase Develop Admin.
Accesso completo alle risorse dell'API Firebase Data Connect, inclusi i dati.

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

Visualizzatore API Firebase Data Connect

Questo ruolo è fornito dai ruoli Proprietario cloud, Editor cloud,
Visualizzatore cloud, Firebase Admin, Firebase Viewer,
Firebase Develop Admin e Firebase Develop Viewer.
Accesso di sola lettura alle risorse dell'API Firebase Data Connect. Il ruolo non concede l'accesso ai dati.

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

Amministratore dati dell'API Firebase Data Connect

Fornito dai ruoli Proprietario Cloud, Editor Cloud,
Amministratore Firebase e Amministratore sviluppo Firebase.
Accesso completo in lettura e scrittura alle origini dati.

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

Visualizzatore dei dati dell'API Firebase Data Connect

Questo ruolo è fornito dai ruoli Proprietario cloud, Editor cloud,
Amministratore Firebase e Amministratore sviluppo Firebase.
Accesso di sola lettura alle origini dati.

firebasedataconnect.googleapis.com/services.executeGraphqlRead