The Firebase CLI lets you manage your Firebase projects in a local, version-controllable project directory. This includes Data Connect services in your projects, connectors for those services, and resources like schema, query and mutation sources for each connector. The CLI also lets you install and operate the Firebase Data Connect emulator. The CLI is an efficient alternative to working in the Firebase console.
For instructions on installing the Firebase CLI experiment for Private Preview program, and Data Connect-related CLI commands, see the CLI reference.
This reference guide documents:
- Data Connect-specific entries in your
firebase.json
project configuration file. - Data Connect configurations in
dataconnect.yaml
andconnector.yaml
. - IAM roles you'll need to configure for your projects that use Data Connect.
Firebase project configuration files
firebase.json configuration reference
Use the dataconnect
keys to configure one or more Data Connect
services in your project.
dataconnect: {
source: string // Path to the directory containing the dataconnect.yaml service file.
}
dataconnect.yaml configuration reference
The dataconnect.yaml
file stores configuration information about the locations
of application schema sources, connector sources, and data source connection
information. The file also serves as a project directory signifier for the
Firebase CLI.
The schemaValidation
key controls the level of schema validation performed
when schemas are migrated during deployment. With no value set, the behavior of
the dataconect:sql:migrate
command is to apply compatible changes and prompt
you before executing any strict changes. When set, the behavior is as follows:
STRICT
mode. The database schema must exactly match the application schema before the application schema can be deployed. Any tables or columns that are not used in your Data Connect schema will be deleted from the database.COMPATIBLE
mode. The database schema must be compatible with the application schema before the application schema can be deployed; any additional changes are considered optional. Compatible means that schema migrations are based on the application schema you write. Elements in your database that are not used by your application schema are left unmodified. Therefore, after deployment, your backend may contain unused schemas, tables, and columns.
Values for other keys in this file are explained in the comments below.
# 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]
The YAML file assumes a default (but configurable) directory structure of:
./(project root)
/dataconnect
dataconnect.yaml
/schema
*.gql
/connector
connector.yaml
*.gql
connector.yaml configuration reference
Use connector.yaml
to configure default authentication mode and SDK generation
options.
# 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 configuration for Data Connect projects
Granular IAM roles for Data Connect
Firebase basic roles and predefined roles map to lower-level Data Connect roles. Refer to the table for the mapping.
To manage individual IAM role assignments for Data Connect at a more granular level, use the Google Cloud console.
IAM role | Permissions |
---|---|
firebasedataconnect.googleapis.com/admin Firebase Data Connect API Admin This role includes Firebase Data Connect API Viewer. It is equivalent to firebasedataconnect.* .This is provided by the Cloud Owner, Cloud Editor, Firebase Admin and Firebase Develop Admin roles. |
Full access to Firebase Data Connect API resources, including data.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 Firebase Data Connect API Viewer This is provided by the Cloud Owner, Cloud Editor, Cloud Viewer, Firebase Admin, Firebase Viewer, Firebase Develop Admin and Firebase Develop Viewer roles. |
Read-only access to Firebase Data Connect API resources. Role does not
grant access to data.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 Firebase Data Connect API Data Admin This is provided by the Cloud Owner, Cloud Editor, Firebase Admin and Firebase Develop Admin roles. |
Full read and write access to data sources.firebasedataconnect.googleapis.com/services.executeGraphql firebasedataconnect.googleapis.com/services.executeGraphqlRead
|
firebasedataconnect.googleapis.com/dataViewer Firebase Data Connect API Data Viewer This is provided by the Cloud Owner, Cloud Editor, Firebase Admin and Firebase Develop Admin roles. |
Read-only access to data sources.firebasedataconnect.googleapis.com/services.executeGraphqlRead
|