Get desktop application:
View/edit binary Protocol Buffers messages
Firebase Data Connect provides means to deploy a set of predefined GraphQL operations (queries and mutations) as a Connector. Firebase developers can build mobile and web apps that uses Connectors to access Data Sources directly. Connectors allow operations without admin credentials and help Firebase customers control the API exposure. Note: `ConnectorService` doesn't check IAM permissions and instead developers must define auth policies on each pre-defined operation to secure this connector. The auth policies typically define rules on the Firebase Auth token.
Execute a predefined mutation in a Connector.
The ExecuteMutation request to Firebase Data Connect.
The resource name of the connector to find the predefined mutation, in the format: ``` projects/{project}/locations/{location}/services/{service}/connectors/{connector} ```
The name of the GraphQL operation name. Required because all Connector operations must be named. See https://graphql.org/learn/queries/#operation-name. (-- api-linter: core::0122::name-suffix=disabled aip.dev/not-precedent: Must conform to GraphQL HTTP spec standard. --)
Values for GraphQL variables provided in this request.
The ExecuteMutation response from Firebase Data Connect.
The result of executing the requested operation.
Errors of this response.
Additional response information.
Execute a predefined query in a Connector.
The ExecuteQuery request to Firebase Data Connect.
The resource name of the connector to find the predefined query, in the format: ``` projects/{project}/locations/{location}/services/{service}/connectors/{connector} ```
The name of the GraphQL operation name. Required because all Connector operations must be named. See https://graphql.org/learn/queries/#operation-name. (-- api-linter: core::0122::name-suffix=disabled aip.dev/not-precedent: Must conform to GraphQL HTTP spec standard. --)
Values for GraphQL variables provided in this request.
The ExecuteQuery response from Firebase Data Connect.
The result of executing the requested operation.
Errors of this response.
Additional response information.
ConnectorStreamService provides bi-directional streaming APIs to use with Firebase Data Connect connectors.
Connect establishes a bi-directional connection to the server. The client can send new requests, resume requests, and receive realtime updates. The connection may last for hours, the Data Connect SDK should refresh Firebase auth token to avoid revoked query subscriptions. (-- api-linter: core::0136::verb-noun=disabled aip.dev/not-precedent: Connect is a general purpose streaming API. --)
StreamRequest defines the request of Data Connect's bi-directional streaming API. It supports 4 different request kinds: - Subscribe: Subscribe to the result of a Data Connect query. - Execute: Execute a Data Connect query or mutation. - Resume: Resume a query or part of it. - Cancel: Signal that the client is no longer interested in the result of this operation.
The resource name of the connector to find the predefined query, in the format: ``` projects/{project}/locations/{location}/services/{service}/connectors/{connector} ``` Only needed for the first request of rpc Stream.
The HTTP headers to use for the request. (-- See go/fdc-realtime-headers --)
The request id used to identify a request within the stream. It only needs to be unique within the stream, commonly a monotonically increasing sequence number per stream. (-- api-linter: core::0155::request-id-format=disabled aip.dev/not-precedent: request_id is only unique within the stream. --)
The kind of request.
Subscribe to the result of a Data Connect query. Watch for any subsequent changes until it’s cancelled by either client or backend. Must provide a new stream request id.
Execute a Data Connect query or mutation. Must provide a new stream request id.
Resume a query or part of it. Prefer an existing stream request id. Though it can send a new request if the connection was interrupted.
Signal that the client is no longer interested in the result of this operation.
A server-provided ETag for the data payload. To save bandwidth, include this ETag in subsequent requests to prevent the server from resending data that has not changed.
StreamResponse defines the response of Data Connect's bi-directional streaming API.
Identify which request this response is for. (-- api-linter: core::0155::request-id-format=disabled aip.dev/not-precedent: request_id is only unique within the stream. --)
The result of executing the requested operation.
The backend may return a data_etag, computed based on the data JSON payload. To save bandwidth, the Data Connect SDK should include data_etag of cached data in subsequent requests, so the backend can avoid sending redundant data already in SDK cache.
Errors of this response.
The backend can no longer serve this operation. For example, it may become invalid after schema change.
Additional response information.
Action indicates the operation type on the entity.
Used in:
Data Connect specific properties for a path under response.data. (-- Design doc: http://go/fdc-caching-wire-protocol --)
Used in:
The path under response.data where the rest of the fields apply. Each element may be a string (field name) or number (array index). The root of response.data is denoted by the empty list `[]`. (-- To simplify client logic, the server should never set this to null. i.e. Use `[]` if the properties below apply to everything in data. --)
A single Entity ID. Set if the path points to a single entity.
A list of Entity IDs. Set if the path points to an array of entities. An ID is present for each element of the array at the corresponding index.
Indicates the action performed on the entity in this path.
The server-suggested duration before data under path is considered stale. (-- Right now, this field is never set. For future plans, see http://go/fdc-sdk-caching-config#heading=h.rmvncy2rao3g --)
ExecuteRequest defines the request to execute a Data Connect query or mutation.
Used in:
The name of the GraphQL operation name. Required because all connector operations must be named. See https://graphql.org/learn/queries/#operation-name. (-- api-linter: core::0122::name-suffix=disabled aip.dev/not-precedent: Must conform to GraphQL HTTP spec standard. --)
Values for GraphQL variables provided in this request.
GraphqlError conforms to the GraphQL error spec. https://spec.graphql.org/draft/#sec-Errors Firebase Data Connect API surfaces `GraphqlError` in various APIs: - Upon compile error, `UpdateSchema` and `UpdateConnector` return Code.Invalid_Argument with a list of `GraphqlError` in error details. - Upon query compile error, `ExecuteGraphql`, `ExecuteGraphqlRead` and `IntrospectGraphql` return Code.OK with a list of `GraphqlError` in response body. - Upon query execution error, `ExecuteGraphql`, `ExecuteGraphqlRead`, `ExecuteMutation`, `ExecuteQuery`, `IntrospectGraphql`, `ImpersonateQuery` and `ImpersonateMutation` all return Code.OK with a list of `GraphqlError` in response body.
Used in: , ,
The detailed error message. The message should help developer understand the underlying problem without leaking internal data.
The source locations where the error occurred. Locations should help developers and toolings identify the source of error quickly. Included in admin endpoints (`ExecuteGraphql`, `ExecuteGraphqlRead`, `IntrospectGraphql`, `ImpersonateQuery`, `ImpersonateMutation`, `UpdateSchema` and `UpdateConnector`) to reference the provided GraphQL GQL document. Omitted in `ExecuteMutation` and `ExecuteQuery` since the caller shouldn't have access access the underlying GQL source.
The result field which could not be populated due to error. Clients can use path to identify whether a null result is intentional or caused by a runtime error. It should be a list of string or index from the root of GraphQL query document.
Additional error information.
GraphqlErrorExtensions contains additional information of `GraphqlError`.
Used in:
The source file name where the error occurred. Included only for `UpdateSchema` and `UpdateConnector`, it corresponds to `File.path` of the provided `Source`.
Maps to canonical gRPC codes. If not specified, it represents `Code.INTERNAL`.
More detailed error message to assist debugging. It contains application business logic that are inappropriate to leak publicly. In the emulator, Data Connect API always includes it to assist local development and debugging. In the backend, ConnectorService always hides it. GraphqlService without impersonation always include it. GraphqlService with impersonation includes it only if explicitly opted-in with `include_debug_details` in `GraphqlRequestExtensions`.
Distinguish which schema or connector the error originates from. It should be set on errors from control plane APIs (e.g. `UpdateSchema`, `UpdateConnector`).
Warning level describes the severity and required action to suppress this warning when Firebase CLI run into it.
Workarounds provide suggestions to address warnings.
GraphqlResponseExtensions contains additional information of `GraphqlResponse` or `ExecuteQueryResponse`.
Used in: , ,
Data Connect specific GraphQL extension, a list of paths and properties. (-- Future fields should go inside to avoid name conflicts with other GQL extensions in the wild unless we're implementing a common 3P pattern in extensions such as versioning and telemetry. --)
ResumeRequest defines the request to resume a query or part of it.
Used in:
(message has no fields)
SourceLocation references a location in a GraphQL source.
Used in:
Line number starting at 1.
Column number starting at 1.
WarningLevel describes the severity and required action to suppress this warning when Firebase CLI run into it.
Used in:
Warning level is not specified.
Display a warning without action needed.
Request a confirmation in interactive deployment flow.
Require an explicit confirmation in all deployment flows.
Require --force in all deployment flows.
Workaround provides suggestions to address errors and warnings.
Used in:
Description of this workaround.
Why would this workaround address the error and warning.
A suggested code snippet to fix the error and warning.