Skip to content

[WIP] Stardust storage docs#3084

Open
adityaoberai wants to merge 6 commits into
stardustfrom
stardust-storage
Open

[WIP] Stardust storage docs#3084
adityaoberai wants to merge 6 commits into
stardustfrom
stardust-storage

Conversation

@adityaoberai

Copy link
Copy Markdown
Contributor

What does this PR do?

(Provide a description of what this PR does.)

Test Plan

(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work.)

Related PRs and Issues

(If this PR is related to any other PR or resolves any issue or related to any issue link all related PR and issues here.)

Have you read the Contributing Guidelines on issues?

(Write your answer here.)

@appwrite

appwrite Bot commented Jul 3, 2026

Copy link
Copy Markdown

Appwrite Website

Project ID: 69d7efb00023389e8d27

Sites (1)
Site Status Logs Preview QR
 website
69d7f2670014e24571ca
Ready Ready View Logs Preview URL QR Code

Website (appwrite/website)

Project ID: 684969cb000a2f6c0a02

Sites (1)
Site Status Logs Preview QR
 website
68496a17000f03d62013
Queued Queued View Logs Preview URL QR Code


Tip

Global CDN and DDoS protection come free with every Sites deployment

@adityaoberai
adityaoberai changed the base branch from main to stardust July 3, 2026 21:20
@adityaoberai
adityaoberai marked this pull request as ready for review July 10, 2026 18:15
@greptile-apps

greptile-apps Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds documentation for two new Appwrite Storage features shipping in the Stardust release: virtual folders (a folder parameter on file upload, a listFolders SDK method, and query-based file filtering) and an S3-compatible API (AWS SigV4 auth, object key mapping, multipart uploads, and a limitations reference). It also adds a blog post and changelog entry announcing the S3 API, scheduled for 2026-07-31.

  • New folders/+page.markdoc covers the full folder lifecycle — uploading, listing by query, listFolders with cursor pagination — across six SDK platforms (web, Node.js, Flutter, Android Kotlin, Apple, React Native).
  • New s3/+page.markdoc covers client configuration (AWS CLI, JS, Python, Go with fixed imports, PHP), API key scopes, canonical key mapping, folder browsing via delimiter=/, multipart requirements, limitations, and error codes.
  • +layout.svelte, buckets/+page.markdoc, and upload-download/+page.markdoc are updated with cross-links to the new pages.

Confidence Score: 5/5

Pure documentation additions with no runtime code changes; safe to merge once content is finalized.

All changes are markdoc content and a single Svelte nav update. The new pages are internally consistent, the Go SDK example now includes the required import block, and the limitations section accurately reflects unsupported features. No logic that could regress existing behavior.

No files require special attention.

Important Files Changed

Filename Overview
src/routes/blog/post/announcing-s3-api/+page.markdoc New blog post announcing the S3-compatible API for Appwrite Storage; code examples, credential table, and links are consistent with the s3 docs page.
src/routes/changelog/(entries)/2026-07-31.markdoc New changelog entry dated 2026-07-31 for the S3 API launch; concise and correctly links to the blog post.
src/routes/docs/products/storage/+layout.svelte Adds "Folders" and "S3 API" nav entries in the storage sidebar at the correct positions.
src/routes/docs/products/storage/buckets/+page.markdoc Adds a brief "Folders" section explaining virtual folder semantics and linking to the new folders page.
src/routes/docs/products/storage/folders/+page.markdoc New doc page covering virtual folders: upload with folder param, listFiles by folder query, listFolders method, and cursor-based pagination — all with six-platform SDK examples.
src/routes/docs/products/storage/s3/+page.markdoc New S3 API reference page covering client setup (AWS CLI, JS, Python, Go, PHP), key mapping, folder listings, multipart uploads, and a limitations section; Go now includes the import block.
src/routes/docs/products/storage/upload-download/+page.markdoc Adds a one-sentence mention of the optional folder upload parameter and a link to the new folders page.

Reviews (4): Last reviewed commit: "Add folders concept and docs" | Re-trigger Greptile

Comment thread src/routes/docs/products/storage/s3/+page.markdoc Outdated

| Operation | Description |
| --- | --- |
| `PutObject` | Upload an object. Returns an `ETag`. Honors `Content-Type`, `x-amz-meta-*` user metadata, and `x-amz-server-side-encryption`. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 x-amz-server-side-encryption contradicts Limitations

The PutObject row says Appwrite "honors" x-amz-server-side-encryption, implying the header is acted upon. The Limitations section, however, lists "encryption configuration" as unsupported and returning NotImplemented. A reader uploading sensitive files with x-amz-server-side-encryption: AES256 set could reasonably believe their objects are encrypted at rest via the S3 API when they are not. If the header is silently accepted for tooling compatibility (like ACLs), clarify that explicitly — e.g. "accepted for compatibility; does not enable server-side encryption."

Prompt To Fix With AI
This is a comment left during a code review.
Path: src/routes/docs/products/storage/s3/+page.markdoc
Line: 182

Comment:
**`x-amz-server-side-encryption` contradicts Limitations**

The `PutObject` row says Appwrite "honors" `x-amz-server-side-encryption`, implying the header is acted upon. The Limitations section, however, lists "encryption configuration" as unsupported and returning `NotImplemented`. A reader uploading sensitive files with `x-amz-server-side-encryption: AES256` set could reasonably believe their objects are encrypted at rest via the S3 API when they are not. If the header is silently accepted for tooling compatibility (like ACLs), clarify that explicitly — e.g. "accepted for compatibility; does not enable server-side encryption."

How can I resolve this? If you propose a fix, please make it concise.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Claude Code Fix in Codex

{fileId}-{fileName}
```

For example, uploading to the key `reports/january.pdf` creates a file whose name is `reports/january.pdf`, and the object is then listed under a canonical key such as `6710e2...f3-reports/january.pdf`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This and the info box below sounds a little confusing at first, can we simplify?

Comment thread src/routes/docs/products/storage/s3/+page.markdoc Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants