Skip to content

Commit 9b17769

Browse files
authored
Merge branch 'main' into doc-nextjs-tutorial-appwrite-sdk-v16-updates
2 parents 1095e81 + 190eab0 commit 9b17769

File tree

8 files changed

+229
-1
lines changed

8 files changed

+229
-1
lines changed

.optimize-cache.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@
162162
"images/blog/announcing-auto-increment-support/cover.png": "83a7b1dd0e31ae86e49fa873cde0b6c0319a552b27dc447b4a214efd7f3fd534",
163163
"images/blog/announcing-bulk-api/cover.png": "78a0fdf3b54ce8412bf6be1880eb4a42bcac2cb04420045a60bce888c8999c6f",
164164
"images/blog/announcing-bun-and-dart/bun-and-dart.png": "ea94af00a5c035cefb6474a9061441803db0160b7cc194fb5a71fbe05abf0d12",
165+
"images/blog/announcing-csv-export/cover.png": "a330a6cc463d94635f905f5b48e6ee8b7c1b3f48b1c7ca0fada2e2b6f62b4ccf",
165166
"images/blog/announcing-csv-imports/cover.png": "47b77b504bdb691afcdf7769b70a5edc610ad525364bff8747d813cc674d549c",
166167
"images/blog/announcing-csv-imports/csv-import.png": "160d2eaa3aacbfc3dee93ffe909dafd848479079bf47cd4149fd915b2cd9b6e1",
167168
"images/blog/announcing-database-ai-suggestions/cover.png": "2965424134174a486c7552ef8beda42ee0aae0d29e74816d6c711876b4b615db",
@@ -1155,9 +1156,11 @@
11551156
"images/docs/command-center/dark/command-center.png": "d3c26f78c419d22fa9779baf884561ac117a0597347310e54e6ee14c972c8a11",
11561157
"images/docs/databases/ai-suggestions-enable.png": "d331d502fb141cf28478cad2b2e96f0e622eae9c97625976c756ff52343dad77",
11571158
"images/docs/databases/ai-suggestions-review.png": "9796a6afa6164126acdfea67561c560fade3d39e51d2fec6bd9d6cf034ef0aa1",
1159+
"images/docs/databases/csv-export.png": "978aeeb301b9d7571793a5184fe955dae7a8a3ab7fbd0c613b12ccac73d51980",
11581160
"images/docs/databases/csv-import.png": "6ee80ce77a3a57b2e11b3887e3397b880472e066c1c6168fe0a633a09a5a8c62",
11591161
"images/docs/databases/dark/ai-suggestions-enable.png": "ea984bc7665a6e8d5e7dfc6df3281429a277e0c8402f2c7befbfcf96dba53b11",
11601162
"images/docs/databases/dark/ai-suggestions-review.png": "49d3e2636655ba3b76e271bc4cebdf005aa79f607e9185f3b49288adbc864a20",
1163+
"images/docs/databases/dark/csv-export.png": "8d2fbffbdc4b1e6e443d61a93fe4a331ecd91c66ae1457270f51f296c406aeb9",
11611164
"images/docs/databases/dark/csv-import.png": "bdd1e700c747e703ac75b744a8e1caa7e0704ac3439e4ed1077ee0a8e76389d3",
11621165
"images/docs/databases/dark/databases.png": "2cc14bcda3d289c3fb77f8ee4f432d93b46bd0b9755cbf26a53fcadbca3cf32b",
11631166
"images/docs/databases/dark/manual-backup.png": "539bdf15bf654a1a696951f4447465b286566460b311ce3db82eb010502a7e03",
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
layout: post
3+
title: "Announcing CSV exports: Effortless data extraction, right from your Console"
4+
description: Export your data to a CSV file directly from the Appwrite Console. Filter, customize, and download your data in just a few clicks.
5+
date: 2026-02-04
6+
cover: /images/blog/announcing-csv-export/cover.png
7+
timeToRead: 5
8+
author: jake-barnby
9+
category: announcement
10+
featured: false
11+
---
12+
Data flows through every system you build, for reporting, analysis, or integrations. Getting it out cleanly and consistently should be just as simple as storing it.
13+
14+
The new **CSV exports** feature in Appwrite Console lets you generate CSV files directly from your tables. No SDKs, no manual formatting. Just fast, reliable data exports that fit right into your workflow.
15+
16+
# Export your data, your way.
17+
18+
Before this release, exporting data meant using the SDK or REST API, looping through paginated results, and formatting them yourself. It was slow, brittle, and far from ideal for quick exports or non-developer teammates.
19+
20+
With **CSV exports**, you can now download a CSV file directly from the Console. Simply open a table, apply filters or queries, choose which columns to include, and export. All in a few clicks.
21+
22+
Appwrite handles the rest behind the scenes: creating the file, running the export in the background, and emailing you a short-lived download link when it's ready.
23+
24+
# Built for real-world workflows
25+
26+
Whether you're handing data off to a product manager, building reports for finance, or keeping backups for compliance, Appwrite's CSV exports make it effortless to get clean, structured data out of your tables.
27+
28+
Use it for:
29+
30+
- Reports and analytics: Share data snapshots with PMs or analysts for review
31+
- Compliance and audits: Generate clean exports for regulatory or security checks
32+
- Data handoffs: Easily provide datasets to marketing, finance, or support teams
33+
- Migrations and backups: Archive your data or move it between environments
34+
- Integrations: Ingest Appwrite data into external platforms and BI tools
35+
36+
# Fully customizable exports
37+
38+
CSV exports are built to adapt to your workflow, with a rich set of customization options that let you control exactly how your data is exported.
39+
40+
You can:
41+
42+
- Apply specific queries: Export only the data that matches your current filters or search parameters.
43+
- Pick your columns: Choose which columns to include. Keeping your CSV lean and focused.
44+
- Set a custom delimiter: Format your data the way your tools expect it.
45+
- Include or skip headers: Add an optional header row for readability.
46+
- Run in the background: Appwrite processes exports asynchronously, so you can continue working while it completes.
47+
- Get notified: Receive an email with a short-lived download link when the export is ready.
48+
- Handle relationships cleanly: Related documents are exported as IDs by default, ensuring your data stays structured and easy to use.
49+
50+
This flexibility makes CSV exports powerful enough for developers and simple enough for non-technical team members.
51+
52+
# Available now
53+
54+
CSV exports are now live for **Appwrite Cloud** and will be coming soon to self-hosted.
55+
56+
# More resources
57+
58+
- [Read the documentation to get started](/docs/products/databases/csv-exports)
59+
- [Announcing Transactions API](/blog/post/announcing-transactions-api)
60+
- [Announcing API for spatial columns](/blog/post/announcing-spatial-columns)
61+
- [Announcing CSV Import: Bring in large datasets to Appwrite with ease](/blog/post/announcing-csv-imports)
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
layout: changelog
3+
title: "Announcing CSV exports: Effortless data extraction, right from your Console"
4+
date: 2026-02-04
5+
cover: /images/blog/announcing-csv-export/cover.png
6+
---
7+
Appwrite now supports exporting data to CSV directly from the Console. This feature simplifies data extraction and reporting without requiring SDKs or custom scripts.
8+
9+
**What's new**
10+
11+
CSV export introduces a new option in the Appwrite Console for downloading CSV files from your database tables.
12+
13+
That means, you can:
14+
15+
- Apply filters or queries before export.
16+
- Choose specific attributes (columns) to include.
17+
- Set a custom delimiter and optional header row.
18+
- Run exports asynchronously in the background.
19+
- Receive email notifications with a short-lived download link once the export completes.
20+
- Export relationship fields as IDs by default.
21+
22+
**Immediate benefits:**
23+
24+
- Enables data export without SDKs or scripts.
25+
- Customizable exports with query filters and column selection.
26+
- Non-blocking execution via background jobs.
27+
- Secure: Exports respect Appwrite's document permissions.
28+
- Supports standard CSV formatting options (delimiter, headers, filenames).
29+
30+
Now live on Appwrite Cloud.
31+
32+
{% arrow_link href="/blog/post/announcing-csv-export" %}
33+
Read the announcement to learn more
34+
{% /arrow_link %}

src/routes/docs/products/databases/+layout.svelte

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,11 @@
111111
href: '/docs/products/databases/csv-imports',
112112
new: isNewUntil('31 Jul 2025')
113113
},
114+
{
115+
label: 'CSV exports',
116+
href: '/docs/products/databases/csv-exports',
117+
new: isNewUntil('28 Feb 2026')
118+
},
114119
{
115120
label: 'AI suggestions',
116121
href: '/docs/products/databases/ai-suggestions',
@@ -145,7 +150,7 @@
145150
.replace('tables', 'collections')
146151
);
147152
148-
const hideSubtitleRoutes = ['offline', 'backups', 'csv-imports'];
153+
const hideSubtitleRoutes = ['offline', 'backups', 'csv-imports', 'csv-exports'];
149154
150155
const shouldShowSubtitle = $derived(
151156
!hideSubtitleRoutes.some((segment) => page.route.id?.includes(segment)) &&
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
---
2+
layout: article
3+
title: CSV exports
4+
description: Export table data to CSV files from the Console. Share clean datasets with your team without writing custom scripts.
5+
---
6+
7+
Appwrite's CSV Export feature allows you to export rows from a table to a CSV file. This is especially useful for reporting, sharing data with non-technical team members, creating custom backups, or handing off datasets to analytics tools.
8+
9+
This feature is available in both Appwrite Cloud and the self-hosted version.
10+
11+
# Export configuration {% #export-configuration %}
12+
13+
Before exporting, you can configure several options to control the output format and contents. These settings ensure you get exactly the data you need in the format your tools expect.
14+
15+
## Apply filters {% #apply-filters %}
16+
17+
You can apply filters to your table from the table view and use those to export only the rows you need. This is especially useful when you want to export a subset of your data for a specific use case.
18+
19+
## Select columns {% #select-columns %}
20+
21+
You can choose which columns to include in your export. By default, all columns are exported, but selecting specific columns creates cleaner, more focused datasets that are easier to work with in spreadsheets and analytics tools.
22+
23+
{% info title="Good to know" %}
24+
System columns like `$id`, `$createdAt`, and `$updatedAt` are automatically included in the export.
25+
{% /info %}
26+
27+
## Custom delimiter {% #custom-delimiter %}
28+
29+
You can set a custom delimiter for your CSV file. While commas are standard, you can use tabs, semicolons, or other delimiters based on your requirements or the tools you're importing into.
30+
31+
Common delimiters:
32+
- **Comma (`,`)**: Standard format, compatible with most tools
33+
- **Tab**: Useful when your data contains many commas
34+
- **Semicolon (`;`)**: Common in European Excel versions
35+
- **Pipe (`|`)**: Useful when your data contains many semicolons
36+
37+
## Header row {% #header-row %}
38+
39+
You can choose whether to include a header row with column names. Headers make it easier to understand the data in spreadsheets, but some import tools work better without them.
40+
41+
# Relationship handling {% #relationship-handling %}
42+
43+
When exporting data that includes [relationships](/docs/products/databases/relationships) to other tables, Appwrite exports only the related row IDs by default. This keeps your CSV files clean and prevents deeply nested data structures that can break spreadsheet tools.
44+
45+
For example, if you have a `posts` table with a relationship to an `authors` table, the export will include the author ID rather than all author details.
46+
47+
An example of exported data with relationships:
48+
49+
```text
50+
$id,title,author_id,published
51+
post-1,Getting started with Appwrite,user-123,true
52+
post-2,Advanced queries,user-456,true
53+
post-3,CSV exports guide,user-123,false
54+
```
55+
56+
# Timestamps {% #timestamps %}
57+
58+
The `$createdAt` and `$updatedAt` columns are exported in ISO 8601 format, making them compatible with most spreadsheet and database tools.
59+
60+
# Permissions {% #permissions %}
61+
62+
If row-level security is enabled for your table, the `$permissions` column will be included in the export. Permission strings are formatted as comma-separated role definitions within quotes.
63+
64+
```text
65+
$id,title,$permissions
66+
post-1,Public post,"read(""any""),update(""user:user-123"")"
67+
post-2,Team post,"read(""team:team-456""),update(""team:team-456"")"
68+
```
69+
70+
The roles used are API strings that can be found in the [permissions documentation](/docs/products/databases/permissions).
71+
72+
# Background processing {% #background-processing %}
73+
74+
Large exports run as background tasks to avoid blocking your workflow. When an export completes, you'll receive an email with a short-lived download link to retrieve your CSV file.
75+
76+
This means you can start an export, close the Console, and return later to download your file. The Console displays a floating progress bar while the export is active.
77+
78+
# Export from the Console {% #export-console %}
79+
80+
To export rows using the Appwrite Console:
81+
82+
1. Go to your project and navigate to **Databases**
83+
2. Select your target database and navigate to your target table
84+
3. Click on the **Export CSV** button in the action area
85+
4. Configure your export options:
86+
- Choose which columns to include (optional)
87+
- Set your preferred delimiter
88+
- Choose whether to include headers
89+
5. Click **Export**
90+
91+
{% only_dark %}
92+
![CSV export screen](/images/docs/databases/dark/csv-export.png)
93+
{% /only_dark %}
94+
{% only_light %}
95+
![CSV export screen](/images/docs/databases/csv-export.png)
96+
{% /only_light %}
97+
98+
The export will begin processing in the background. You'll see a progress indicator and receive an email when the export is ready to download.
99+
100+
# Use cases {% #use-cases %}
101+
102+
CSV exports are useful for many common workflows:
103+
104+
- **Reporting**: Generate reports for stakeholders who need data in spreadsheet format
105+
- **Data sharing**: Share clean datasets with non-technical team members
106+
- **Analytics hand-off**: Provide datasets to analysts using BI tools
107+
- **Compliance exports**: Create audit trails and compliance records
108+
- **Custom backups**: Archive specific data subsets for record-keeping
109+
- **Migration preparation**: Extract data for migration to other systems
110+
111+
# Best practices {% #best-practices %}
112+
113+
To get the most out of CSV exports:
114+
115+
1. **Use filters to filter data**: Export only the rows you need to reduce file size and processing time
116+
2. **Select specific columns**: Choose relevant columns to create cleaner, more focused datasets
117+
4. **Choose appropriate delimiters**: Use tabs or semicolons if your data contains many commas
118+
5. **Consider header requirements**: Include headers for human readability, exclude them for automated imports
119+
120+
# Additional resources {% #additional-resources %}
121+
122+
- [CSV Imports](/docs/products/databases/csv-imports) - Import data from CSV files
123+
- [Relationships](/docs/products/databases/relationships) - Define connections between tables
124+
- [Database Permissions](/docs/products/databases/permissions) - Configure row-level security
125+
- [Database Backups](/docs/products/databases/backups) - Automated backup policies
82.6 KB
Loading
40.6 KB
Loading
58.8 KB
Loading

0 commit comments

Comments
 (0)