diff --git a/sqlite-cloud/connect-cluster.mdx b/sqlite-cloud/connect-cluster.mdx
index 6fa8f72..ef7b444 100644
--- a/sqlite-cloud/connect-cluster.mdx
+++ b/sqlite-cloud/connect-cluster.mdx
@@ -10,6 +10,10 @@ SQLite databases in SQLite Cloud are distributed across a cluster of nodes. Each
Click "Connect" in the bottom left-hand corner of your dashboard to get your connection string to use with a SQLite Cloud client library.
+
+---
+
+
## Connecting with JavaScript
Here's an example of how you can connect to your cluster using the `@sqlitecloud/drivers` JavaScript client library:
@@ -33,6 +37,8 @@ fetchAlbums().then((albums) => console.log(albums));
// [{ Title: 'For Those About To Rock We Salute You', ... }, ...]
```
+---
+
## Connecting with Python
Install the Python client library:
@@ -59,6 +65,8 @@ conn.close()
# (1, 'For Those About To Rock We Salute You', 1)
```
+---
+
## Next Steps
- [Creating a database](/docs/create-database)
- [Writing data](/docs/write-data)
diff --git a/sqlite-cloud/create-database.mdx b/sqlite-cloud/create-database.mdx
index 852f8f4..f98e205 100644
--- a/sqlite-cloud/create-database.mdx
+++ b/sqlite-cloud/create-database.mdx
@@ -6,8 +6,14 @@ status: publish
slug: create-database
---
+import VideoPlayer from '@commons-components/Video/VideoPlayer.astro';
+import uploadDb from '@docs-website-assets/introduction/video/dashboard_upload_db.mp4';
+import createDb from '@docs-website-assets/introduction/video/dashboard_create_db.mp4';
+
You can import an existing SQLite databases, or create new databases using the SQLite Cloud UI, API, or client libraries.
+---
+
## Uploading an existing SQLite Database
### Via HTTP API
You can upload an existing SQLite database to your cluster using the SQLite Cloud UI or the Weblite API.
@@ -26,17 +32,21 @@ To upload a local SQLite database via the SQLite Cloud UI, navigate to the Datab
### Via Dashboard UI
To import a database from the UI, navigate to the Databases tab and click the "Upload Database" button.
-
Select the database file you want to upload, and click "Upload Database". The database will be available in your cluster within a few minutes.
+
+
+---
+
## Creating a new database
### From the Dashboard
To create a new database from the SQLite Cloud UI, navigate to the Databases tab and click the "Create Database" button.
-
The default encoding is set to UTF-8, and the default page size is 4096KB.
+
+
### From the API
To create a new database or upload an existing database via [Weblite](/docs/weblite), our REST API, you can make a request with the following parameters:
diff --git a/sqlite-cloud/platform/analyzer.mdx b/sqlite-cloud/platform/analyzer.mdx
index e3b830a..9338584 100644
--- a/sqlite-cloud/platform/analyzer.mdx
+++ b/sqlite-cloud/platform/analyzer.mdx
@@ -5,25 +5,32 @@ category: platform
status: publish
slug: analyzer
---
+import VideoPlayer from '@commons-components/Video/VideoPlayer.astro';
+import enableAnalyzer from '@docs-website-assets/introduction/video/dashboard_enable_query_analyzer.mp4';
+import applyAnalyzer from '@docs-website-assets/introduction/video/dashboard_analyzer_apply_suggestion.mp4';
+
The Analyzer panel is a powerful tool that collects and categorizes all the queries executed on your cluster based on their execution time. It allows for intelligent and proactive analysis, and provides recommendations on which indexes to use to optimize frequently used queries.
-
+---
+
+## Getting Started
By default, the Analyzer is turned off to avoid a small performance penalty. However, you can enable it by accessing the Settings button and setting the `query_analyzer_enabled` flag to 1, then pressing Save. You can also adjust the `query_analyzer_threshold` flag to set the minimum threshold query time (in milliseconds) that triggers a query to be included in the Analyzer. If the default value is too low, it's recommended to increase it to avoid having too many queries included in the panel.
+
+
-
+----
+## Testing the Analyzer
+To test the Analyzer, we can go to the `Studio -> chinook.sqlite -> SQL Console` section and perform a query that filters the non-indexed Composer column of the Track table with the following statement: `SELECT * FROM Tracks WHERE Composer = 'AC/DC'`;
+
-To test the Analyzer, we can go to the `Databases -> Chinook.sqlite -> Console` section and perform a query that filters the non-indexed Composer column of the Track table with the following statement: `SELECT * FROM Tracks WHERE Composer = 'AC/DC'`;
-
-Once we have executed this query, we can go back to the Analyzer panel and see that it has been successfully analyzed by the **nemtfenosk** node.
+Once we have executed this query, we can go back to the Analyzer panel and see that it has been successfully analyzed by the **nxidiwbuhz** node.
-
By selecting **Details** and **Plan**, we can get more in-depth information about the execution of this query over time. However, what we're most interested in is the intelligent recommendation, which can be found by selecting **Suggest**. In the Indexes field, we can find the optimal index to apply to our database, which will speed up all queries on the Track table filtered by the Composer column.
-
To apply the recommended index(es), simply select **Apply** and they will be automatically written and distributed in the `Chinook.sqlite` database.
diff --git a/sqlite-cloud/platform/apikey.mdx b/sqlite-cloud/platform/apikey.mdx
index ee08944..87a5a97 100644
--- a/sqlite-cloud/platform/apikey.mdx
+++ b/sqlite-cloud/platform/apikey.mdx
@@ -16,5 +16,5 @@ To create an API key for a user, click on the **Create API KEY** button.

-The resulting table will display all the API keys associated with each user, along with their name and restrictions.
+The resulting table will display all the API keys associated with each user, along with their name.

diff --git a/sqlite-cloud/platform/backups.mdx b/sqlite-cloud/platform/backups.mdx
index 969d7e1..73aebb9 100644
--- a/sqlite-cloud/platform/backups.mdx
+++ b/sqlite-cloud/platform/backups.mdx
@@ -6,11 +6,16 @@ status: publish
slug: backups
---
-## Overview
-Backups provide a robust solution for mitigating data loss and resolving data corruption issues. Backups are available for databases in all [Pro and Scale](https://www.sqlitecloud.io/pricing) projects.
+import VideoPlayer from '@commons-components/Video/VideoPlayer.astro';
+import enableDisableBackup from '@docs-website-assets/introduction/video/dashboard_enable_disable_backup.mp4';
+import restoreBackup from '@docs-website-assets/introduction/video/dashboard_restore_backup.mp4';
+
+Backups provide a robust solution for mitigating data loss and resolving data corruption issues. Backups are available for databases in all [Dev, Pro and Startup](https://www.sqlitecloud.io/pricing) projects.
SQLite Cloud creates a full snapshot backup of your data once a day, and stores incremental changes once per second, on commodity object storage.
+----
+
## Features
#### Automated Backups
@@ -20,21 +25,17 @@ SQLite Cloud creates a full snapshot backup of your data once a day, and stores
- **Easy Restoration Process**: Restoring from a backup automatically overwrites the existing database, seamlessly reverting it to the desired state without additional configuration.
- **Consistency and Reliability**: After restoration, the database functions as it did at the chosen point in time, ensuring operational continuity.
-## Getting Started
-Setting up and managing backups in SQLite Cloud is designed to be straightforward, allowing you to implement robust data protection strategies effortlessly.
-
-First, navigate to the backups section.
-
+---
-Then, click on settings to see a list of your databases. From here, you can enable backups for each database.
-
+## Getting Started
+Setting up and managing backups in SQLite Cloud is designed to be straightforward, allowing you to implement robust data protection strategies effortlessly.
-Click save, and your database backups will appear below.
-
+
-### Restoring from a Backup
+---
+## Restoring from a Backup
Click on a backup to begin the restore process. Select Yes to confirm the restoration, and your database will be restored to the selected point in time.
-
+
diff --git a/sqlite-cloud/platform/edge-functions.mdx b/sqlite-cloud/platform/edge-functions.mdx
index 5f2def1..9525f23 100644
--- a/sqlite-cloud/platform/edge-functions.mdx
+++ b/sqlite-cloud/platform/edge-functions.mdx
@@ -5,6 +5,10 @@ category: platform
status: publish
slug: edge-functions
---
+import VideoPlayer from '@commons-components/Video/VideoPlayer.astro';
+import edgeFunctions from '@docs-website-assets/introduction/video/dashboard_edge_functions.mp4';
+
+import Callout from "@commons-components/Information/Callout.astro";
Edge functions let you define custom logic to run on the same nodes as your database files for ultra-fast performance.
@@ -14,12 +18,16 @@ Edge functions can be called remotely over HTTP or Websockets via API, or trigge
Turning on linearizable reads ensures strong consistency, but may introduce some latency. When eventual consistency is sufficient, we recommend leaving linearizable reads off.
+---
+
## Getting Started
-1. Navigate to the Edge Functions page from your dashboard.
-2. Under "Development", select "Edge Function", then click the "Create" button.
-3. Write and test your function.
- 1. Select the database you want to access and an API key if necessary
- 2. When you're finished, click deploy.
+
+Use the **Edge Functions panel** to effortlessly create, deploy, and test Edge Functions directly in the SQLite Cloud dashboard.
+The editor allows you to choose the language of your function — **JavaScript**, **TypeScript**, or **SQL** — and connect it to the database of your choice.
+
+Once deployed, the function can be tested immediately in the dashboard or invoked externally through its Function URL.
+
+
#### Note:
Functions should return a JSON-serializable object with a data field:
@@ -31,10 +39,29 @@ return {
}
```
+
+
+
+Enabling **linearizable reads** guarantees strong consistency but may introduce additional latency.
+For most cases, we recommend keeping it disabled to benefit from lower response times.
+
+
+
+### Function Details
+
+In the **Details** tab you will find key information about your function, including:
+
+- The **last deployment date and time**
+- The **Function URL**, which you can use to call the function from external applications
+
+
+
+
+
### Authorization
-Edge functions that access your SQLite databases must be authorized via API key. You can automatically authorize an edge function on every call by assigning it an API key via the "API KEY" dropdown.
+Edge functions that access your SQLite databases must be authorized via API key.
-If no API key is assigned, an API key must be sent in the request url as a query parameter (`?apikey=YOUR_API_KEY`) or as an attribute in the request body (`{ apikey: YOUR_API_KEY }`).
+An API key must be sent in the request url as a query parameter (`?apikey=YOUR_API_KEY`) or as an attribute in the request body (`{ apikey: YOUR_API_KEY }`).
### Execution
@@ -42,12 +69,7 @@ Edge functions can be called via HTTP GET and POST methods. You can pass additio
- Query parameters: Accessible via `request.params`
- Request body: Accessible via `request.data`
-### Testing
-You may test the execution of edge functions by clicking the "Test" command.
-
-You are not required to supply an API key when testing your edge function in the console. The function will run using the dashboard user privileges.
-
-
+---
## Guides
### Interacting with your Database
@@ -83,6 +105,9 @@ You can also add environment variables in the UI by navigating to the "Environme
### Handling Errors
In case of error we return an HTTP error code and a JSON with the error message. Manually throwing an error in your code results in a 500 response. You may also return an error.
+
+---
+
## Examples
### Assigning and Notifying a Support Rep on User Sign up
diff --git a/sqlite-cloud/platform/offsync.mdx b/sqlite-cloud/platform/offsync.mdx
index 2924156..410d83b 100644
--- a/sqlite-cloud/platform/offsync.mdx
+++ b/sqlite-cloud/platform/offsync.mdx
@@ -6,12 +6,20 @@ status: publish
slug: offsync
---
+import VideoPlayer from '@commons-components/Video/VideoPlayer.astro';
+import enableSync from '@docs-website-assets/introduction/video/dashboard_sqlite_sync_enabling.mp4';
+import connectionUrlSync from '@docs-website-assets/introduction/video/dashboard_sync_connection_url.mp4';
+import devicesSync from '@docs-website-assets/introduction/video/dashboard_sync_devices.mp4';
+
import Callout from "@commons-components/Information/Callout.astro";
OffSync is a powerful SQLite Cloud feature that enables true **local-first** data synchronization for your applications. Powered by the [SQLite Sync](https://github.com/sqliteai/sqlite-sync) extension, it allows you to build robust, offline-capable applications where data is stored and processed on edge devices and seamlessly synchronized with a central SQLite Cloud database.
This architecture is ideal for mobile apps, IoT devices, and any application requiring high availability and low latency, even with intermittent network connectivity. By leveraging Conflict-free Replicated Data Types (CRDTs), OffSync ensures that changes made offline are merged automatically and without conflicts when the device reconnects.
+
+---
+
## How It Works
OffSync extends standard SQLite tables with built-in support for offline work and automatic synchronization. This allows multiple devices to operate independently and then seamlessly merge their changes.
@@ -22,18 +30,33 @@ OffSync extends standard SQLite tables with built-in support for offline work an
When combined with [Row-Level Security (RLS)](/docs/rls), OffSync allows you to build secure, multi-tenant applications where each user's data is safely isolated, both on the edge and in the cloud.
+
+---
+
## Configuring OffSync
-You can enable and manage OffSync for your databases directly from the SQLite Cloud dashboard.
+You can enable and manage OffSync for your databases directly from the SQLite Cloud dashboard.
+Below are the main steps:
+
+### Enable Tables for Synchronization
+From the **Sync Tables** tab, select which tables in your database you want to keep synchronized.
+Once enabled, all changes to those tables will automatically sync with connected devices.
+
+
+
+
+### Get the Connection String
+In the **Configuration** tab, copy the connection string.
+Use this in your application to initialize OffSync and connect your local SQLite database with SQLite Cloud.
-1. **Navigate to the Databases Page**: From the main dashboard, go to the "Databases" page.
-2. **Select the Offsync Column**: In the list of your databases, click on the button in the "Offsync" column for the desired database.
+
- 
-3. **Enable Tables for Synchronization**: On the Offsync settings page, you will see a list of all tables in your database. Toggle the switch next to each table you want to enable for synchronization.
+### Manage Connected Devices
+In the **Devices** tab, you can view all devices currently connected to your database.
+Here you can check their sync status and remove devices if needed.
- 
+
For OffSync to work correctly, the list of tables configured for synchronization—and their corresponding schemas—must be identical in both your local SQLite database and your SQLite Cloud database.
diff --git a/sqlite-cloud/platform/rls.mdx b/sqlite-cloud/platform/rls.mdx
index 6f24472..0d229bb 100644
--- a/sqlite-cloud/platform/rls.mdx
+++ b/sqlite-cloud/platform/rls.mdx
@@ -6,6 +6,10 @@ status: publish
slug: rls
---
+import VideoPlayer from '@commons-components/Video/VideoPlayer.astro';
+import rlsEnable from '@docs-website-assets/introduction/video/dashboard_rls_enable.mp4';
+import rlsTest from '@docs-website-assets/introduction/video/dashboard_rls_test.mp4';
+
import Callout from "@commons-components/Information/Callout.astro";
Row-Level Security (RLS) allows you to define fine-grained access control policies that determine which rows in a table a user can access. This ensures that users can only view or modify data they are authorized to see, enhancing data security and privacy.
@@ -18,6 +22,8 @@ RLS is a powerful feature for building secure, multi-tenant applications. When c
This architecture simplifies development by allowing your application to interact with a local database while SQLite Cloud [OffSync](/docs/offsync) transparently handles the synchronization with a central database. RLS ensures that each user's data is securely isolated during this process. The centralized database can then be used for powerful business analytics and reporting across all tenants, without compromising individual data privacy.
+---
+
## Policy Enforcement
RLS in SQLite Cloud operates based on the following principles:
@@ -34,18 +40,18 @@ To make data accessible to token-authenticated users, you must both enable RLS f
Otherwise, they will be blocked from accessing any rows.
+---
+
## Configuring RLS
You can configure RLS policies for your databases through the SQLite Cloud dashboard.
+
+
1. **Navigate to the Databases Page**: From the main dashboard, go to the "Databases" page.
2. **Select the RLS Column**: In the list of your databases, click on the button in the "RLS" column for the desired database.
-
- 
-
3. **Configure RLS Settings**: On the RLS settings page, you can define the policies for each table.
- 
For each table, you can specify the following RLS policies:
@@ -79,6 +85,39 @@ Your RLS policies for `INSERT`, `UPDATE`, and `DELETE` operations can reference
| `UPDATE` | The value of the row *before* the update. | The value of the row *after* the update. |
| `DELETE` | The value of the row being deleted. | Not available |
+---
+
+## Testing RLS
+
+
+
+To verify that your Row-Level Security (RLS) policies work as expected, you can use the **Test RLS** feature in the dashboard:
+
+1. **Open the Test Panel**
+ On the RLS policies page, click **Test** to open the dedicated testing panel.
+
+2. **Generate an Access Token**
+ - Go to the **Weblite page** and use the `POST /v2/tokens` endpoint.
+ - Provide a request body with a `userId`, a `name`, and any attributes required by your RLS policies (for example: `role`, `enabled`, etc.).
+ - Execute the request and copy the `token` value from the response.
+
+3. **Authenticate in the Test Panel**
+ - Paste the generated token into the **Enter Access Token** field and click **Authorize**.
+ - The dashboard will now simulate queries to the database as if they were executed by the user identified in the token.
+
+4. **View Filtered Data**
+ - Once authenticated, you can navigate through the database tables directly from the test panel.
+ - Only the rows allowed by your RLS rules will be displayed (for example, activities tied to the `user_id` in the token or accessible with the `coach` role).
+
+5. **Compare with Full Data**
+ - By switching back to **Database Studio**, you can see all rows in the table without RLS filters.
+ - This allows you to compare the filtered view (via token) with the complete dataset and confirm that your policies are correctly enforced.
+
+
+
+
+---
+
## Example
Suppose you have a `tasks` table with the following schema:
@@ -216,7 +255,10 @@ OLD.status <> 'paid'
**Explanation:**
This policy uses the `OLD` reference to check the value of the `status` column *before* the update is applied. If the status is already `'paid'`, the condition `OLD.status <> 'paid'` will be false, and the `UPDATE` operation will be denied. This effectively makes paid invoices read-only.
-### Advanced: RLS and SQLite Sync
+
+---
+
+## Advanced: RLS and SQLite Sync
When using RLS in conjunction with [SQLite Sync](https://github.com/sqliteai/sqlite-sync), it's important to understand how they interact. The Sync protocol applies changes on a column-by-column basis, which can affect how `INSERT` and `UPDATE` policies are evaluated.
diff --git a/sqlite-cloud/platform/security.mdx b/sqlite-cloud/platform/security.mdx
index 3cd63e5..57a6a3e 100644
--- a/sqlite-cloud/platform/security.mdx
+++ b/sqlite-cloud/platform/security.mdx
@@ -15,6 +15,8 @@ To add new users to your cluster, simply click on the **Create User** button.
Once a user is successfully created, you can assign one or more roles to them to determine their level of access to the system.
+---
+
## Roles
In SQLite Cloud, a role is a set of permissions that allows a user to perform specific actions on a particular resource, such as a database or table. Users can have multiple roles, which determine their access to the system.
@@ -29,7 +31,7 @@ There are two types of roles in SQLite Cloud:

-## Built-in roles
+### Built-in roles
import Callout from "@commons-components/Information/Callout.astro";
SQLite Cloud offers a comprehensive system of built-in roles designed to provide essential privileges within a database framework. These roles can be assigned using the [GRANT ROLE](https://docs.sqlitecloud.io/docs/role-commands) command, and custom roles can be created with the [CREATE ROLE](https://docs.sqlitecloud.io/docs/role-commands) command. Privileges represent fundamental operations that can be executed on specific databases or tables and can be granted, revoked, or assigned to specific roles.
diff --git a/sqlite-cloud/platform/webhooks.mdx b/sqlite-cloud/platform/webhooks.mdx
index 3eb6e0d..72b610e 100644
--- a/sqlite-cloud/platform/webhooks.mdx
+++ b/sqlite-cloud/platform/webhooks.mdx
@@ -5,16 +5,26 @@ category: platform
status: publish
slug: webhooks
---
+import VideoPlayer from '@commons-components/Video/VideoPlayer.astro';
+import webhooksUrl from '@docs-website-assets/introduction/video/dashboard_webhooks_trigger_url.mp4';
+import webhooksEdgeFunction from '@docs-website-assets/introduction/video/dashboard_webhooks_trigger_edge_function.mp4.mp4';
**Webhooks** are HTTP callbacks that allow your applications to receive real-time notifications when specific events occur. In the context of SQLite Cloud, webhooks make it easy to build reactive systems by automatically sending notifications when data changes happen within your databases.
+
+---
+
+
## Real-Time Notifications for Database Writes
+
Use the **Webhooks panel** to effortlessly create real-time notifications for write operations—such as inserts, updates, or deletes—within your SQLite Cloud database.
For example, you can configure SQLite Cloud to notify a [webhook.site](https://webhook.site) endpoint every time a write operation occurs on the `albums` table of the `chinook.sqlite` database.
-
+
+
+---
## Change Data Capture
@@ -27,13 +37,46 @@ Change Data Webhooks let you send structured HTTP requests to any external servi
This enables seamless integration with logging systems, monitoring dashboards, or external APIs that react to database activity.
-Upon creation, each webhook is assigned a **secret key** used to verify the authenticity of incoming requests.
-
+### Payload Fields
+
+```json
+{
+ "type": "insert",
+ "database": "chinook.sqlite",
+ "table": "albums",
+ "column": [
+ "AlbumId"
+ ],
+ "data": [
+ 349
+ ],
+ "webhook": {
+ "id": 1,
+ "action": "https://webhook.site/70792a3c-2a18-4a48-9ded-df1c90e758ce",
+ "options": {
+ "type": "url"
+ }
+ }
+}
+```
+
+* **type** – The operation type (`insert`, `update`, or `delete`).
+* **database** – The name of the database where the change occurred.
+* **table** – The table affected by the operation.
+* **column** – An array listing the column(s) involved in the operation.
+* **data** – The values corresponding to the affected row(s).
+* **webhook** – Metadata about the webhook itself, including its unique `id`, target `action` (URL or Edge Function), and configuration `options`.
-You can also manage and review all active webhooks from your project dashboard.
+---
-
+## Security
+
+Upon creation, each webhook is assigned a **secret key** used to verify the authenticity of incoming requests.
+
+
+
+---
## Trigger Edge Functions
@@ -42,4 +85,28 @@ Webhooks in SQLite Cloud aren't limited to data capture—they can also **trigge
* Via HTTP or WebSocket
* In response to database write events
+
+
+Within an Edge Function, the webhook payload containing the **Change Data Capture** information is directly accessible through the `request.data` variable, which is available by default in all Edge Functions.
+
+```js
+// Get secret from database
+const slackWebhookEndpoint = await connection.sql`GET ENV slack_webhook_endpoint`;
+
+// Get record sent in body via webhook
+const content = request.data;
+
+// Define helpers to assign and notify
+const notifyRep = async ( ) => {
+ await fetch(slackWebhookEndpoint, { body: JSON.stringify({ text: "Discover the Latest Album Releases" + JSON.stringify(request.data)}), method: 'POST', 'Content-type': 'application/json' });
+}
+
+// Call async functions
+await notifyRep();
+
+return {
+ data: 'OK'
+}
+```
+
This allows developers to build distributed, event-driven applications that react immediately to changes at the edge.
\ No newline at end of file
diff --git a/sqlite-cloud/write-data.mdx b/sqlite-cloud/write-data.mdx
index 264d55e..42e629a 100644
--- a/sqlite-cloud/write-data.mdx
+++ b/sqlite-cloud/write-data.mdx
@@ -5,13 +5,21 @@ category: getting-started
status: publish
slug: write-data
---
+import VideoPlayer from '@commons-components/Video/VideoPlayer.astro';
+import studioInsert from '@docs-website-assets/introduction/video/dashboard_studio.mp4';
After you've created a database in SQLite Cloud, you can start writing data to it. You can write data to your cluster using the SQLite Cloud UI, API, or client libraries.
+---
+
## Writing data with the SQLite Cloud UI
-Navigate to the console tab in the left-hand navigation. From here, you can run SQL commands against your cluster. Use the optional dropdown menus to select a database and table.
+Navigate to the Studio tab from the left-hand navigation. From here, you can run SQL commands directly on your cluster.
+If needed, use the dropdown menus to select the database and table where you want to insert or update data.
+
+Alternatively, you can also interact directly with the table view to add new records or update existing ones without writing SQL manually.
+
-
+
### Example
```sql
@@ -23,6 +31,8 @@ CREATE TABLE sports_cars (sc_id INTEGER PRIMARY KEY, sc_make TEXT NOT NULL, sc_y
INSERT INTO sports_cars (sc_make, sc_year) VALUES ('Ferrari', 2021);
```
+---
+
## Writing data with the Weblite API
You can use the [Weblite API](/docs/weblite) to run SQL commands against your cluster. Here is an example cURL request:
@@ -34,6 +44,8 @@ curl -X 'POST' \
-d ''
```
+---
+
## Writing data with client libraries
To write data to your cluster using a client library, use the INSERT INTO SQL command.