The Couchbase connector lets you connect to a Couchbase database instance and perform the supported database operations.
Couchbase Server versions 4.0 and up (Enterprise Edition or Community Edition).
Couchbase Capella
Before using the Couchbase connector, do the following tasks:
roles/secretmanager.viewerroles/secretmanager.secretAccessorA service account is a special type of Google account intended to represent a non-human user that needs to authenticate and be authorized to access data in Google APIs. If you don't have a service account, you must create a service account. The connector and the service account must belong to the same project. For more information, see Creating a service account.
secretmanager.googleapis.com (Secret Manager API)connectors.googleapis.com (Connectors API)To understand how to enable services, see Enabling services.
If these services or permissions have not been enabled for your project previously, you are prompted to enable them when configuring the connector.
A connection is specific to a data source. It means that if you have many data sources, you must create a separate connection for each data source. To create a connection, do the following:
For the list of all the supported regions, see Locations.
Connection names must meet the following criteria:
Error.
A node is a unit (or replica) of a connection that processes transactions. More nodes are required to process more transactions for a connection and conversely, fewer nodes are required to process fewer transactions. To understand how the nodes affect your connector pricing, see Pricing for connection nodes. If you don't enter any values, by default the minimum nodes are set to 2 (for better availability) and the maximum nodes are set to 50.
If you want to establish a private connection to your backend system, do the following:
If you want to establish a public connection to your backend systems with additional security, you can consider configuring static outbound IP addresses for your connections, and then configure your firewall rules to allowlist only the specific static IP addresses.
To enter additional destinations, click +ADD DESTINATION.
The following authentication types are supported by the Couchbase connection:
To understand how to configure these authentication types, see Configure authentication.
Enter the details based on the authentication you want to use.
Direct or Cloud. For Cloud, SSL is mandatory. For more information,
see Secure connections with TLS.8.8.8.8.This section lists the sample values for the various fields that you configure when creating the Couchbase Connector.
| Field Name | Details |
|---|---|
| Region | us-central1 |
| Connector | Couchbase |
| Connector Version | 1 |
| Connector Name | Couchbase-basic-auth-conn |
| Service Account | NAME-compute@developer.gserviceaccount.com |
| Verbosity Level | 5 |
| Connection node settings: Min/Max number of nodes | 2/50 |
| SSL Configuration Enable SSL | True |
| Trust Store | Private |
| Custom Trust Store | A full PEM Certificate (-----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE-----) |
| Secret version | 1 |
| Host Address | xx.1HOST_NAME.cloud.couchbase.com:18xxx |
| Authentication | User Password |
| Username | username | Password | password |
| versions | 1 |
| vConnection Mode | Cloud |
| DNS Server | 192.0.2.0 |
| OAuth scheme | Basic |
| Field Name | Details |
|---|---|
| Region | us-central1 |
| Connector | Couchbase |
| Connector Version | 1 |
| Connector Name | Couchbase-basic-auth-Analytics-conn |
| Service Account | NAME-compute@developer.gserviceaccount.com |
| Analytics Port | 18095 |
| Couchbase Service | Analytics |
| Verbosity Level | 5 |
| Connection node settings: Min/Max number of nodes | 2/50 |
| Host Address | xx.1HOST_NAME.cloud.couchbase.com:18095 |
| Authentication | User Password |
| Username | username |
| Password | password |
| versions | 1 |
| vConnection Mode | Cloud |
| DNS Server | 192.0.2.0 |
| OAuth scheme | Basic |
All the Integration Connectors provide a layer of abstraction for the objects of the connected application. You can access an application's objects only through this abstraction. The abstraction is exposed to you as entities, operations, and actions.
However, it is possible that a connector doesn't support or have any entities, in which case the
Entities list will be empty.
Selecting an entity from the available list, generates a list of
operations available for the entity. For a detailed description of the operations, see the Connectors task's
entity operations.
However, if a connector doesn't support any of the entity operations, such unsupported
operations aren't listed in the Operations list.
Actions list will be empty.
This connector supports execution of the following actions:
Actions column of the Configure connector task dialog.To create a custom query, follow these steps:
Default value: 180 seconds.
Default value: 25.
You can use a question mark (?) in a SQL statement to represent a single parameter that must be specified in the query parameters list. For example, the following SQL query selects all rows from the Employees table that matches the values specified for the LastName column:
SELECT * FROM Employees where LastName=?
To add query parameters, do the following:
The Execute custom query action does not support array variables.
The Couchbase connector can process 25 transactions per second, per node, and throttles any transactions beyond this limit. By default, Integration Connectors allocates 2 nodes (for better availability) for a connection.
For information on the limits applicable to Integration Connectors, see Limits.
This section lists the actions supported by the connector. To understand how to configure the actions, see Action examples.
This action add documets in couchbase.
| Parameter Name | Data Type | Required | Description |
|---|---|---|---|
| BucketName | String | Yes | The bucket to insert the document into. |
| SourceTable | Object | No | The name of the temp table containing ID and Document columns. Required if no ID is specified. |
| ID | String | No | The primary key to insert the document under. Required if no SourceTable is specified. |
| Document | String | No | The JSON text of the document to insert. Required if not SourceTable is specified. |
This action returns the status 200 (OK) if the action is successful.
For example on how to configure the AddDocument action,
see Action examples.
This action creates a collection in an existing scope.
| Parameter Name | Data Type | Required | Description |
|---|---|---|---|
| Bucket | String | Yes | The name of the bucket containing the collection. |
| Scope | String | Yes | The name of the scope containing the collection. |
| Name | String | Yes | The name of the collection to create. |
This action returns the status 200 (OK) if the action is successful.
For example on how to configure the CreateCollection action,
see Action examples.
This action deletes a collection in an existing scope.
| Parameter Name | Data Type | Required | Description |
|---|---|---|---|
| Bucket | string | True | The name of the bucket containing the collection. |
| Scope | String | True | The name of the scope containing the collection. |
| Name | string | True | The name of the collection to delete. |
This action returns the status 200 (OK) if the action is successful.
For example on how to configure the DeleteCollection action,
see Action examples.
This action creates a scope in an existing bucket.
| Parameter Name | Data Type | Required | Description |
|---|---|---|---|
| Bucket | String | Yes | The name of the bucket containing the scope |
| Name | String | Yes | The name of the scope to create. |
This action returns the status 200 (OK) if the action is successful.
For example on how to configure the CreateScope action,
see Action examples.
This action deletes a scope and all its collections.
| Parameter Name | Data Type | Required | Description |
|---|---|---|---|
| Bucket | String | Yes | The name of the bucket containing the scope. |
| Name | String | Yes | The name of the scope to delete. |
This action returns the status 200 (OK) if the action is successful.
For example on how to configure the DeleteScope action,
see Action examples.
This action lists all indices available in Couchbase.
This action returns the status 200 (OK) if the action is successful.
For example on how to configure the ListIndices action,
see Action examples.
This action creates or drops an index in a bucket.
| Parameter Name | Data Type | Required | Description |
|---|---|---|---|
| BucketName | String | Yes | The target bucket to create or drop the index from. |
| ScopeName | object | No | The target scope to create or drop the index from (Couchbase version 7 and later) |
| CollectionName | String | No | The target collection to create or drop the index from (Couchbase version 7 and later) |
| Action | String | Yes | Specifies which action to perform on the index, can be Create or Drop. |
| Expressions | String | No | A list of expressions or functions, encoded as JSON, that the index will be based off of. At least one is required if IsPrimary is set to false and the action is Create. |
| Name | String | No | The name of the index to create or drop, required if IsPrimary is set to false. |
| IsPrimary | String | No | Specifies if the index should be a primary index.The default value is true. |
| Filters | String | No | A list of filters, encoded as JSON, to apply on the index. |
| IndexType | String | No | The type of index to create, can be GSI or View, only used if the action is Create. The default value is GSI. |
| ViewName | String | No | Deprecated, included for compatibility only. Does nothing. |
| Nodes | String | No | A list, encoded as JSON, of nodes to contain the index, must contain the port. Only used if the action is Create. |
| NumReplica | String | No | How many replicas to create among the index nodes in the cluster. |
This action returns the status 200 (OK) if the action is successful.
For example on how to configure the ManageIndices action,
see Action examples.
This action lets you execute a custom query.
To create a custom query, follow these steps:
Default value: 180 seconds.
Default value: 25.
You can use a question mark (?) in a SQL statement to represent a single parameter that must be specified in the query parameters list. For example, the following SQL query selects all rows from the Employees table that matches the values specified for the LastName column:
SELECT * FROM Employees where LastName=?
To add query parameters, do the following:
The Execute custom query action does not support array variables.
On successful execution, this action returns the status 200 (OK) with a response body that has the query results.
This section describes how to perform some of the actions in this connector.
This example adds a document in a Couchbase bucket.
Configure connector task dialog, click Actions.AddDocument action, and then click Done.connectorInputPayload and then enter a value similar to the following in the
Default Value field:
{ "Document": "{\"ID\":10,\"Name\":\"TestDoc\"}", "BucketName": "CouchbaseTestBucket", "ID": "Test" }
If the action is successful, the
AddDocument task's connectorOutputPayload response
parameter will have a value similar to the following:
[{ "RowsAffected": "1" }]
This example creates a collection.
Configure connector task dialog, click Actions.CreateCollection action, and then click Done.connectorInputPayload and then enter a value similar to the following in the
Default Value field:
{ "bucket": "CouchbaseTestBucket", "scope": "TestScope", "name": "CollectionFromGoogleCloud" }
This example creates a collection under the TestScope. If the action is successful, the
CreateCollection task's connectorOutputPayload response
parameter will have a value similar to the following:
[{ "Success": true, "scope": null, "uid": null, "collection": null, "collections.uid": null, "maxTTL": null, "history": null }]
This example deletes a collection.
Configure connector task dialog, click Actions.DeleteCollection action, and then click Done.connectorInputPayload and then enter a value similar to the following in the
Default Value field:
{ "bucket": "CouchbaseTestBucket", "scope": "TestScope", "name": "CollectionFromGoogleCloud" }
This example deletes a collection under the TestScope. If the action is successful, the
CreateCollection task's connectorOutputPayload response
parameter will have a value similar to the following:
[{ "Success": true, "uid": "12" }]
This example creates a scope.
Configure connector task dialog, click Actions.CreateScope action, and then click Done.connectorInputPayload and then enter a value similar to the following in the
Default Value field:
{ "bucket": "CouchbaseTestBucket", "name": "ScopeFromGoogleCloud" }
This example creates a scope under CouchbaseTestBucket. If the action is successful, the
CreateScope task's connectorOutputPayload response
parameter will have a value similar to the following:
[{ "Success": true, "name": null, "uid": null, "collections": null, "collections.name": null, "collections.uid": null, "collections.maxTTL": null, "collections.history": null }]
This example deletes a scope.
Configure connector task dialog, click Actions.DeleteScope action, and then click Done.connectorInputPayload and then enter a value similar to the following in the
Default Value field:
{ "bucket": "CouchbaseTestBucket", "name": "ScopeFromGoogleCloud" }
This example deletes the ScopeFromGoogleCloud scope. If the action is successful, the
DeleteScope task's connectorOutputPayload response
parameter will have a value similar to the following:
[{ "Success": true, "uid": "10" }]
This example lists all indices available in Couchbase.
Configure connector task dialog, click Actions.ListIndices action, and then click Done.connectorInputPayload and then enter a value similar to the following in the
Default Value field:
{ }
If the action is successful, the ListIndices task's connectorOutputPayload response
parameter will have a value similar to the following:
[{ "id": "3d8a78cd2e302ac2", "datastore_id": "http://127.0.0.1:8091", "namespace_id": "default", "bucket_id": null, "scope_id": null, "keyspace_id": "CouchbaseTestBucket", "index_key": "", "condition": null, "is_primary": "false", "name": "test", "state": "online", "using": "gsi" }, { "id": "d6ce8c103b97a00d", "datastore_id": "http://127.0.0.1:8091", "namespace_id": "default", "bucket_id": "CouchbaseTestBucket", "scope_id": "TestScope", "keyspace_id": "CouchBaseDatatypes", "index_key": "", "condition": null, "is_primary": "true", "name": "#primary", "state": "online", "using": "gsi" }, { "id": "58c25aef49dd32b3", "datastore_id": "http://127.0.0.1:8091", "namespace_id": "default", "bucket_id": "CouchbaseTestBucket", "scope_id": "TestScope", "keyspace_id": "TestCollection", "index_key": "", "condition": null, "is_primary": "false", "name": "SearchIndexTest_1", "state": "online", "using": "fts" }]
This example deletes an index in the specified bucket.
Configure connector task dialog, click Actions.ManageIndices action, and then click Done.connectorInputPayload and then enter a value similar to the following in the
Default Value field:
{ "BucketName": "CouchbaseTestBucket", "Action": "DROP", "Name": "CouchBaseTestIndex" }
If the action is successful, the
ManageIndices task's connectorOutputPayload response
parameter will have a value similar to the following:
[{ "Success": "true" }]
This section shows how to perform some of the entity operations in this connector.
This example lists all the records in the TestCollection entity.
Configure connector task dialog, click Entities.TestCollection from the Entity list.List operation, and then click
Done.This example gets a record with the specified ID from the TestCollection entity.
Configure connector task dialog, click Entities.TestCollection from the Entity list.Get operation, and then click
Done.120 in the Default Value field.
Here, 120 is a unique record ID in the TestCollection entity.
This example updates a record in the TestCollection entity.
Configure connector task dialog, click Entities.TestCollection from the Entity list.Update operation, and then click Done.connectorInputPayload and then enter a value similar to the following in the
Default Value field:
{ "COL_TEXT": "CouchBase Update" }
120 in the Default Value field.
If the integration is successful, your connector task's connectorOutputPayload field will have a
value similar to the following:
[{ "Document.Id": "120" }]
This example deletes the record with the specified ID in the TestCollection entity.
Configure connector task dialog, click Entities.TestCollection from the Entity list.Delete operation, and then click Done.20 in the Default Value field.
The create operation on entities isn't supported.
You can use the Terraform resource to create a new connection.
To learn how to apply or remove a Terraform configuration, see Basic Terraform commands.
To view a sample terraform template for connection creation, see sample template.
When creating this connection by using Terraform, you must set the following variables in your Terraform configuration file:
| Parameter name | Data type | Required | Description |
|---|---|---|---|
| allow_jsonparameters | BOOLEAN | False | Allows raw JSON to be used in parameters when QueryPassthrough is enabled. |
| analytics_port | STRING | False | The port for connecting to the Couchbase Analytics Endpoint. |
| child_separator | STRING | False | The character or characters used to denote child tables. |
| couchbase_service | ENUM | False | Determines the Couchbase service to connect to. Default is N1QL. Available options are N1QL and Analytics. Supported values are: N1QL, Analytics |
| create_table_ram_quota | STRING | False | The default RAM quota, in megabytes, to use when inserting buckets via the CREATE TABLE syntax. |
| dataverse_separator | STRING | False | The character or characters used to denote Analytics dataverses and scopes/collections. |
| flavor_separator | STRING | False | The character or characters used to denote flavors. |
| n1_qlport | STRING | False | The port for connecting to the Couchbase N1QL Endpoint. |
| periods_separator | STRING | False | The character or characters used to denote hierarchy. |
| query_execution_timeout | STRING | False | This sets the server-side timeout for the query, which governs how long Couchbase will execute the query before returning a timeout error. |
| strict_comparison | STRING | False | Adjusts how precisely to translate filters on SQL input queries into Couchbase queries. This can be set to a comma-separated list of values, where each value can be one of: date, number, boolean, or string. |
| transaction_durability | STRING | False | Specifies how a document must be stored for a transaction to succeed. Specifies whether to use N1QL transactions when executing queries. |
| transaction_timeout | STRING | False | This sets the amount of time a transaction may execute before it is timed out by Couchbase. |
| use_collections_for_ddl | BOOLEAN | False | Whether to assume that CREATE TABLE statements use collections instead of flavors. Only takes effect when connecting to Couchbase v7+ and GenerateSchemaFiles is set to OnCreate. |
| use_transactions | STRING | False | Specifies whether to use N1QL transactions when executing queries. |
| validate_jsonparameters | BOOLEAN | False | Allows the provider to validate that string parameters are valid JSON before sending the query to Couchbase. |
| proxy_enabled | BOOLEAN | False | Select this checkbox to configure a proxy server for the connection. |
| proxy_auth_scheme | ENUM | False | The authentication type to use to authenticate to the ProxyServer proxy. Supported values are: BASIC, DIGEST, NONE |
| proxy_user | STRING | False | A user name to be used to authenticate to the ProxyServer proxy. |
| proxy_password | SECRET | False | A password to be used to authenticate to the ProxyServer proxy. |
| proxy_ssltype | ENUM | False | The SSL type to use when connecting to the ProxyServer proxy. Supported values are: AUTO, ALWAYS, NEVER, TUNNEL |
| verbosity | STRING | False | Verbosity level for connection, varies from 1-5. Higher verbosity level will log all the communication details (request,response & ssl certificates). |
After you create the connection, it becomes available in both Apigee Integration and Application Integration. You can use the connection in an integration through the Connectors task.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-06-09 UTC.