diff --git a/docs/static/img/marketplace/plugins/couchbase/connection-v2.png b/docs/static/img/marketplace/plugins/couchbase/connection-v2.png new file mode 100644 index 0000000000..14edfac81b Binary files /dev/null and b/docs/static/img/marketplace/plugins/couchbase/connection-v2.png differ diff --git a/docs/static/img/marketplace/plugins/couchbase/create-doc.png b/docs/static/img/marketplace/plugins/couchbase/create-doc.png new file mode 100644 index 0000000000..97a39f959e Binary files /dev/null and b/docs/static/img/marketplace/plugins/couchbase/create-doc.png differ diff --git a/docs/static/img/marketplace/plugins/couchbase/delete-doc.png b/docs/static/img/marketplace/plugins/couchbase/delete-doc.png new file mode 100644 index 0000000000..0b536f4d0f Binary files /dev/null and b/docs/static/img/marketplace/plugins/couchbase/delete-doc.png differ diff --git a/docs/static/img/marketplace/plugins/couchbase/fts-search-v2.png b/docs/static/img/marketplace/plugins/couchbase/fts-search-v2.png new file mode 100644 index 0000000000..84fd2883a4 Binary files /dev/null and b/docs/static/img/marketplace/plugins/couchbase/fts-search-v2.png differ diff --git a/docs/static/img/marketplace/plugins/couchbase/get-doc.png b/docs/static/img/marketplace/plugins/couchbase/get-doc.png new file mode 100644 index 0000000000..080d6dfe97 Binary files /dev/null and b/docs/static/img/marketplace/plugins/couchbase/get-doc.png differ diff --git a/docs/static/img/marketplace/plugins/couchbase/listops.png b/docs/static/img/marketplace/plugins/couchbase/listops.png new file mode 100644 index 0000000000..e75f036cd3 Binary files /dev/null and b/docs/static/img/marketplace/plugins/couchbase/listops.png differ diff --git a/docs/static/img/marketplace/plugins/couchbase/query-v2.png b/docs/static/img/marketplace/plugins/couchbase/query-v2.png new file mode 100644 index 0000000000..a0f956682e Binary files /dev/null and b/docs/static/img/marketplace/plugins/couchbase/query-v2.png differ diff --git a/docs/static/img/marketplace/plugins/couchbase/update-doc.png b/docs/static/img/marketplace/plugins/couchbase/update-doc.png new file mode 100644 index 0000000000..fc9062d3a3 Binary files /dev/null and b/docs/static/img/marketplace/plugins/couchbase/update-doc.png differ diff --git a/docs/versioned_docs/version-3.16.0-LTS/marketplace/marketplace_overview.mdx b/docs/versioned_docs/version-3.16.0-LTS/marketplace/marketplace_overview.mdx index 1b07352ede..b91b1c2149 100644 --- a/docs/versioned_docs/version-3.16.0-LTS/marketplace/marketplace_overview.mdx +++ b/docs/versioned_docs/version-3.16.0-LTS/marketplace/marketplace_overview.mdx @@ -104,6 +104,7 @@ Removing a plugin will delete all queries associated with it from your applicati + diff --git a/docs/versioned_docs/version-3.16.0-LTS/marketplace/plugins/couchbase.md b/docs/versioned_docs/version-3.16.0-LTS/marketplace/plugins/couchbase.md new file mode 100644 index 0000000000..b494cb06c6 --- /dev/null +++ b/docs/versioned_docs/version-3.16.0-LTS/marketplace/plugins/couchbase.md @@ -0,0 +1,262 @@ +--- +id: marketplace-plugin-couchbase +title: Couchbase +--- + +ToolJet integrates with Couchbase to leverage its NoSQL database and advanced vector search capabilities. This enables CRUD document operations, SQL++ queries, and Full-Text Search (FTS) within Couchbase databases. Vector store features support semantic search, hybrid queries, and intelligent application development. + +:::note +Before following this guide, it is assumed that you have already completed the process of **[Using Marketplace plugins](/docs/marketplace/marketplace-overview#using-marketplace-plugins)**. +::: + +## Connection + +To connect with Couchbase, you will need the following credentials. Which you can generate from [Couchbase Console](https://www.couchbase.com/). + +- **Data API Endpoint** +- **Username** +- **Password** + +Configuring Couchbase in ToolJet + +### Connecting to Data API endpoint in ToolJet + +To connect ToolJet with the Couchbase Data API, you must first enable the Data API access and configure authentication properly. + +- **Configure Allowed IP Addresses** +For public connections, you must allow the IP address from which ToolJet will send requests. Add the required IP or CIDR block under Allowed IP Addresses. + +- **Set Up Cluster Access Credentials** +Create or use existing cluster credentials to authenticate Data API requests. + +- **Retrieve the Data API Endpoint URL** +Once enabled, Couchbase displays the Data API endpoint URL, which can be used as the base URL in ToolJet. + + +## Supported Operations + +- **[Get Document](#get-document)** +- **[Create Document](#create-document)** +- **[Update Document](#update-document)** +- **[Delete Document](#delete-document)** +- **[Query](#query)** +- **[FTS Search](#fts-search)** + +Couchbase operations + +### Get Document + +This operation retrieves a specific document by its ID from a Couchbase collection. + +#### Required Parameters + +- **Bucket**: The name of the bucket containing the document +- **Document ID**: The unique identifier of the document to retrieve +- **Scope**: The scope name +- **Collection**: The collection name + +Get Document Operation + +
+**Example Response** + +```json +{ + "id": "user::123", + "name": "John Doe", + "email": "john@example.com", + "age": 30, + "created_at": "2026-02-04T12:15:00Z" +} +``` +
+ +### Create Document + +This operation creates a new document in a Couchbase collection. + +#### Required Parameters + +- **Bucket**: The name of the bucket to create the document in +- **Scope**: The scope name +- **Collection**: The collection name +- **Document ID**: The unique identifier for the new document +- **Document**: The document data as a JSON object + + +Create Document Operation + +
+**Example Response** + +```yaml +Created successfully +``` +
+ +### Update Document + +This operation updates an existing document in a Couchbase collection. + +#### Required Parameters + +- **Bucket**: The name of the bucket containing the document +- **Scope**: The scope name +- **Collection**: The collection name +- **Document ID**: The unique identifier of the document to update +- **Document**: The updated document data as a JSON object + + +Update Document Operation + +
+**Example Response** + +```yaml +Updated successfully +``` +
+ +Note: Update operation replaces the original document with the updated value of the document passed. + +### Delete Document + +This operation deletes a document from a Couchbase collection. + +#### Required Parameters + +- **Bucket**: The name of the bucket containing the document +- **Scope**: The scope name +- **Collection**: The collection name +- **Document ID**: The unique identifier of the document to delete + +Delete Document Operation + +
+**Example Response** + +```yaml +Deleted successfully +``` +
+ +### Query + +This operation executes SQL++ queries against your Couchbase database. + +#### Required Parameters + +- **SQL++ Query**: The SQL++ statement to execute (use `$parameter` placeholders for named parameters) + +#### Optional Parameters + +- **Arguments (Key-Value)**: Key-value object for named parameters that replace `$parameter` placeholders in the query +- **Query Options**: JSON object containing additional query options like `readonly`, `timeout`, etc. + +
+**Example Query** + +```sql +SELECT * FROM `travel-sample`.`inventory`.`airline` WHERE country = $country LIMIT 10 +``` + +**Arguments (Key-Value)**: `{ "$country": "France" }` + +**Query Options**: `{ "readonly": true, "query_context": "travel-sample.inventory" }` + +Refer to the [request paramters](https://docs.couchbase.com/server/current/n1ql-rest-query/index.html#Request) for supported query options. + +
+ +Query Operation + +
+**Example Response** + +```json +{ + "results": [ + { + "airline": { + "id": 137, + "type": "airline", + "name": "Air France", + "iata": "AF", + "icao": "AFR", + "callsign": "AIRFRANS", + "country": "France" + } + } + ], + "status": "success", + "metrics": { + "elapsedTime": "15.2ms", + "executionTime": "14.8ms", + "resultCount": 1, + "resultSize": 234 + } +} +``` +
+ +### FTS Search + +This operation performs Full-Text Search queries against a Couchbase FTS index. + +#### Required Parameters + +- **Bucket**: The name of the bucket to search in +- **Scope**: The scope name +- **Index Name**: The name of the FTS index to search against +- **Search Query**: The FTS search query as a JSON object + +
+**Example Search Query** + +```json +{ + "query": { + "match": "hotel", + "field": "name" + } +} +``` + +
+ +FTS Search Operation + +
+**Example Response** + +```json +{ + "status": { + "total": 1, + "failed": 0, + "successful": 1 + }, + "request": { + "query": { + "match": "hotel", + "field": "name" + } + }, + "hits": [ + { + "index": "hotel-index", + "id": "hotel_123", + "score": 0.8567, + "fields": { + "name": "Grand Hotel", + "city": "Paris", + "country": "France" + } + } + ], + "total_hits": 1, + "max_score": 0.8567, + "took": 12 +} +``` +
\ No newline at end of file diff --git a/docs/versioned_sidebars/version-3.16.0-LTS-sidebars.json b/docs/versioned_sidebars/version-3.16.0-LTS-sidebars.json index b17be798c4..5855c04184 100644 --- a/docs/versioned_sidebars/version-3.16.0-LTS-sidebars.json +++ b/docs/versioned_sidebars/version-3.16.0-LTS-sidebars.json @@ -537,6 +537,7 @@ "marketplace/plugins/marketplace-plugin-azurerepos", "marketplace/plugins/marketplace-plugin-clickup", "marketplace/plugins/marketplace-plugin-cohere", + "marketplace/plugins/marketplace-plugin-couchbase", "marketplace/plugins/marketplace-plugin-easypost", "marketplace/plugins/marketplace-plugin-engagespot", "marketplace/plugins/marketplace-plugin-fedex",