Skip to content

Commit 7db014d

Browse files
committed
Merge branch 'stage'
2 parents 2509cb8 + 6e6c458 commit 7db014d

32 files changed

+439
-99
lines changed

.github/workflows/search.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313

1414
steps:
1515
- uses: actions/checkout@v4
16-
- uses: sqlitecloud/docsearch-action@v5
16+
- uses: sqlitecloud/docsearch-action@v6
1717
with:
1818
project-string: ${{ secrets.PROJECT_STRING }}
1919
base-url: ${{ vars.BASE_URL }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.DS_Store

sqlite-cloud/_nav.ts

Lines changed: 45 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -2,94 +2,56 @@ import type { SidebarNavStruct } from "@docs-website/types/sidebar-navigation";
22

33
const sidebarNav: SidebarNavStruct = [
44
{ title: "", type: "primary" },
5-
{
6-
title: "Introduction",
7-
type: "secondary",
8-
icon: "docs-star",
9-
},
5+
// ### AI ###
6+
{ title: "AI", type: "secondary", icon: "docs-star",},
7+
{ title: "Overview", filePath: "ai-overview", type: "inner", level: 0 },
8+
{ title: "SQLite-AI", filePath: "sqlite-ai", type: "inner", level: 0 },
9+
{ title: "SQLite-JS", filePath: "sqlite-js", type: "inner", level: 0 },
10+
{ title: "SQLite-Sync", filePath: "sqlite-sync", type: "inner", level: 0 },
11+
{ title: "SQLite-Vector", filePath: "sqlite-vector", type: "inner", level: 0 },
12+
{ title: "MCP (Model Context Protocol)", filePath: "mcp-server", type: "inner", level: 0 },
13+
14+
// ### CLOUD ###
15+
{ title: "Cloud", type: "secondary", icon: "docs-star",},
1016
{ title: "Overview", filePath: "overview", type: "inner", level: 0 },
17+
{ title: "Scaling", filePath: "architecture", type: "inner", level: 0 },
1118
{ title: "Getting Started", type: "inner", level: 0 },
12-
{ title: "Connecting", filePath: "connect-cluster", type: "inner", level: 1 },
13-
{
14-
title: "Creating a database",
15-
filePath: "create-database",
16-
type: "inner",
17-
level: 1,
18-
},
19-
{ title: "Writing data", filePath: "write-data", type: "inner", level: 1 },
19+
{ title: "Connecting", filePath: "connect-cluster", type: "inner", level: 1 },
20+
{ title: "Creating a database", filePath: "create-database", type: "inner", level: 1 },
21+
{ title: "Writing data", filePath: "write-data", type: "inner", level: 1 },
2022
{ title: "Quick Start Guides", type: "inner", level: 0 },
21-
{ title: "CDN", filePath: "quick-start-cdn", type: "inner", level: 1 },
22-
{ title: "Node.js", filePath: "quick-start-node", type: "inner", level: 1 },
23-
{ title: "React", filePath: "quick-start-react", type: "inner", level: 1 },
24-
{
25-
title: "React Native",
26-
filePath: "quick-start-react-native",
27-
type: "inner",
28-
level: 1,
29-
},
30-
{
31-
title: "Apollo / GraphQL",
32-
filePath: "quick-start-apollo-graphql",
33-
type: "inner",
34-
level: 1,
35-
},
36-
{ title: "Next.js", filePath: "quick-start-next", type: "inner", level: 1 },
37-
{ title: "Django", filePath: "quick-start-django", type: "inner", level: 1 },
38-
{ title: "Flask", filePath: "quick-start-flask", type: "inner", level: 1 },
39-
{
40-
title: "SQLAlchemy",
41-
filePath: "quick-start-sqlalchemy-orm",
42-
type: "inner",
43-
level: 1,
44-
},
45-
{
46-
title: "Streamlit",
47-
filePath: "quick-start-streamlit",
48-
type: "inner",
49-
level: 1,
50-
},
51-
{
52-
title: "PHP / Laravel",
53-
filePath: "quick-start-php-laravel",
54-
type: "inner",
55-
level: 1,
56-
},
57-
{ title: "Gin", filePath: "quick-start-gin", type: "inner", level: 1 },
58-
{ title: "Tutorials", type: "inner", level: 0 },
59-
{ title: "Geopoly", filePath: "tutorial-geopoly", type: "inner", level: 1 },
60-
{ title: "Integrations", type: "inner", level: 0 },
61-
{ title: "Knex.js", filePath: "knex-integration", type: "inner", level: 1 },
23+
{ title: "CDN", filePath: "quick-start-cdn", type: "inner", level: 1 },
24+
{ title: "Node.js", filePath: "quick-start-node", type: "inner", level: 1 },
25+
{ title: "React", filePath: "quick-start-react", type: "inner", level: 1 },
26+
{ title: "React Native", filePath: "quick-start-react-native", type: "inner", level: 1 },
27+
{ title: "Apollo / GraphQL", filePath: "quick-start-apollo-graphql", type: "inner", level: 1 },
28+
{ title: "Next.js", filePath: "quick-start-next", type: "inner", level: 1 },
29+
{ title: "Django", filePath: "quick-start-django", type: "inner", level: 1 },
30+
{ title: "Flask", filePath: "quick-start-flask", type: "inner", level: 1 },
31+
{ title: "SQLAlchemy", filePath: "quick-start-sqlalchemy-orm", type: "inner", level: 1 },
32+
{ title: "Streamlit", filePath: "quick-start-streamlit", type: "inner", level: 1 },
33+
{ title: "PHP / Laravel", filePath: "quick-start-php-laravel", type: "inner", level: 1 },
34+
{ title: "Gin", filePath: "quick-start-gin", type: "inner", level: 1 },
35+
{ title: "Knex.js", filePath: "quick-start-knex", type: "inner", level: 1 },
6236

37+
// ### PLATFORM ###
6338
{ title: "Platform", type: "secondary", icon: "docs-plat" },
64-
{
65-
title: "Edge Functions",
66-
filePath: "edge-functions",
67-
type: "inner",
68-
level: 0,
69-
},
70-
{ title: "Webhooks", filePath: "webhooks", type: "inner", level: 0 },
71-
{ title: "Pub/Sub", filePath: "pub-sub", type: "inner", level: 0 },
72-
{ title: "Vector", filePath: "vector", type: "inner", level: 0 },
73-
{ title: "Scaling", type: "inner", filePath: "architecture", level: 0 },
74-
{
75-
title: "Security and Access Control",
76-
filePath: "security",
77-
type: "inner",
78-
level: 0,
79-
},
80-
{
81-
title: "Access Tokens",
82-
filePath: "access-tokens",
83-
type: "inner",
84-
level: 0,
85-
},
86-
{ title: "Backups", filePath: "backups", type: "inner", level: 0 },
87-
{ title: "Query Analyzer", filePath: "analyzer", type: "inner", level: 0 },
88-
{ title: "Extensions", filePath: "extensions", type: "inner", level: 0 },
89-
{ title: "Weblite", filePath: "weblite", type: "inner", level: 0 },
90-
{ title: "AI - Model Context Protocol (MCP)", filePath: "mcp-server", type: "inner", level: 0 },
39+
{ title: "Edge Functions", filePath: "edge-functions", type: "inner", level: 0 },
40+
{ title: "Webhooks", filePath: "webhooks", type: "inner", level: 0 },
41+
{ title: "Pub/Sub", filePath: "pub-sub", type: "inner", level: 0 },
42+
//{ title: "Vector", filePath: "vector", type: "inner", level: 0 },
43+
{ title: "Users and Roles", filePath: "security", type: "inner", level: 0 },
44+
{ title: "API Keys", filePath: "apikey", type: "inner", level: 0 },
45+
{ title: "Row-Level Security", filePath: "rls", type: "inner", level: 0},
46+
{ title: "OffSync", filePath: "offsync", type: "inner", level: 0 },
47+
{ title: "Access Tokens", filePath: "access-tokens", type: "inner", level: 0 },
48+
{ title: "Backups", filePath: "backups", type: "inner", level: 0 },
49+
{ title: "Query Analyzer", filePath: "analyzer", type: "inner", level: 0 },
50+
{ title: "Extensions", filePath: "extensions", type: "inner", level: 0 },
51+
{ title: "Weblite (REST API)", filePath: "weblite", type: "inner", level: 0 },
9152

92-
{ title: "SDKs", type: "secondary", icon: "docs-sdk" },
53+
// ### CLOUD SDK ###
54+
{ title: "Cloud SDK", type: "secondary", icon: "docs-sdk" },
9355
{ title: "C/C++", type: "inner", level: 0 },
9456
{
9557
title: "Introduction",
@@ -571,6 +533,7 @@ const sidebarNav: SidebarNavStruct = [
571533
level: 1,
572534
},
573535

536+
// ### REFERENCE ###
574537
{ title: "Reference", type: "secondary", icon: "docs-ref" },
575538
{ title: "Server-side Commands", type: "inner", level: 0 },
576539
{
File renamed without changes.
File renamed without changes.

sqlite-cloud/platform/_wip-index-with-card.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import IndexPage from "@docs-website-components/Docs/IndexPage.astro"
1111

1212
export const introduction = "SQLite Cloud is a distributed relational database system built on top of the SQLite database engine. It has been specifically designed from the ground up to ensure the strong consistency of your data across all nodes in a cluster while simultaneously managing the technical aspects of scaling, security, and data distribution."
1313

14+
15+
1416
export const sections = [
1517
{
1618
icon: "puzzle",

sqlite-cloud/platform/apikey.mdx

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
title: Security and Access Control
3+
description: SQLite Cloud provides secure access to resources through role-based authorization, which ensures user isolation and enhances security and manageability.
4+
category: platform
5+
status: publish
6+
slug: apikey
7+
---
8+
9+
## API KEYs
10+
11+
API KEYs can be used as an alternative authentication mechanism.
12+
Authentication through API keys ensures the same privileges as the user to which they are associated.
13+
API KEYs are recommended for all server-to-server authentication cases and are necessary for using the REST APIs and the SDKs that uses the WebSocket APIs.
14+
15+
To create an API key for a user, click on the **Create API KEY** button.
16+
17+
![Dashboard Create APIKEY](@docs-website-assets/introduction/dashboard_create_apikey.png)
18+
19+
The resulting table will display all the API keys associated with each user, along with their name and restrictions.
20+
![Dashboard List APIKEY](@docs-website-assets/introduction/dashboard_list_apikey.png)

sqlite-cloud/platform/extensions.mdx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@ status: publish
66
slug: extensions
77
---
88

9-
SQLite Cloud comes with the following pre-installed SQLite extensions. These extensions are available for use in your SQLite Cloud databases.
9+
SQLite Cloud comes with the following pre-installed SQLite extensions.
10+
These extensions are available for use in your SQLite Cloud databases.
1011

1112
## Extensions
13+
- **[SQLite-Vector](sqlite-vector)**: High performance vector storage extension for similarity search.
14+
- **[SQLite-Sync](sqlite-sync)**: Local-first extension for true local-first data synchronization for your applications.
15+
- **[SQLite-JS](sqlite-js)**: Enables JavaScript integration in SQLite for executing server-side logic.
1216
- **[Full-text Search 5](https://www.sqlite.org/fts5.html)**: Full-text search engine that allows you to search for text in a database.
1317
- **[JSON1](https://www.sqlite.org/json1.html)**: Allows you to easily store, query, and manipulate JSON data.
1418
- **[Math](https://www.sqlite.org/lang_mathfunc.html)**: Mathematical functions.
1519
- **[RTree](https://www.sqlite.org/rtree.html)**: R-Tree index for storing and querying spatial data.
16-
- **[Geopoly](https://www.sqlite.org/geopoly.html)**: Functions for working with geospatial data.
17-
- **[sqlite-vec](/docs/vector)**: Vector storage extension for similarity search.
20+
- **[Geopoly](https://www.sqlite.org/geopoly.html)**: A set of functions for working with geospatial data. For a complete guide, see the [comprehensive tutorial here](tutorial-geopoly).
1821

1922
In the future, we plan to allow users to install their own extensions. If you have a specific extension you would like to use, please let us know by [adding to this issue](https://github.com/sqlitecloud/docs/issues/34).

sqlite-cloud/platform/offsync.mdx

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
---
2+
title: OffSync
3+
description: Enable local-first applications with automatic data synchronization between edge devices and SQLite Cloud.
4+
category: platform
5+
status: publish
6+
slug: offsync
7+
---
8+
9+
import Callout from "@commons-components/Information/Callout.astro";
10+
11+
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.
12+
13+
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.
14+
15+
## How It Works
16+
17+
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.
18+
19+
- **Offline-First by Design**: Applications work seamlessly even when devices are offline. Changes are queued locally and synced automatically when connectivity is restored.
20+
- **CRDT-Based Conflict Resolution**: Merges updates deterministically and efficiently, ensuring eventual consistency across all replicas without complex merge logic.
21+
- **Seamless Integration**: The sync layer is tightly integrated with SQLite Cloud, enabling secure data sharing across devices, users, and platforms.
22+
23+
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.
24+
25+
## Configuring OffSync
26+
27+
You can enable and manage OffSync for your databases directly from the SQLite Cloud dashboard.
28+
29+
1. **Navigate to the Databases Page**: From the main dashboard, go to the "Databases" page.
30+
2. **Select the Offsync Column**: In the list of your databases, click on the button in the "Offsync" column for the desired database.
31+
32+
![Dashboard Databases Page](@docs-website-assets/introduction/offsync-1.png)
33+
34+
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.
35+
36+
![Dashboard Offsync Settings Page](@docs-website-assets/introduction/offsync-2.png)
37+
38+
<Callout type="note" title="Matching Schemas and Tables">
39+
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.
40+
</Callout>
41+
42+
Once enabled, any changes made to the selected tables via the SQLite Sync extension will be automatically synchronized with your SQLite Cloud database.

0 commit comments

Comments
 (0)