Skip to content

Projects API#2926

Open
atharvadeosthale wants to merge 26 commits into
mainfrom
projects-api
Open

Projects API#2926
atharvadeosthale wants to merge 26 commits into
mainfrom
projects-api

Conversation

@atharvadeosthale

Copy link
Copy Markdown
Member

No description provided.

@greptile-apps

greptile-apps Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR introduces the Projects API documentation, a new /docs/platforms/project/ section covering programmatic configuration of Appwrite project settings via Server SDKs. It also updates cross-linking across many existing docs pages to point to the new paths, adds the necessary redirects for relocated pages, and includes an announcement blog post.

  • Adds 20+ new markdoc pages under src/routes/docs/platforms/project/ covering auth methods, OAuth providers, API keys, platforms, protocols, services, policies, SMTP, email templates, labels, environment variables, and five end-to-end journey guides (provisioning, key rotation, branded emails, plan tiers, offboarding).
  • Updates src/redirects.json to redirect the old advanced/security/api-keys and advanced/security/environment-variables URLs to their new platforms/project/ locations, and updates the existing advanced/platform/* redirect targets to match.
  • Migrates all cross-doc links from advanced/security/api-keys and advanced/security/environment-variables to the new paths across ~25 existing pages.

Confidence Score: 4/5

Safe to merge with the scope table gap addressed first — all redirects are in place and the cross-linking is consistent.

The new api-keys/+page.markdoc scopes reference table lists Auth, Databases, Functions, Storage, Messaging, Sites, and Other categories but omits the entire set of scopes the Projects API itself requires — project.read, project.write, project.policies.read, project.policies.write, platforms.read, platforms.write, oauth2.read, oauth2.write, templates.read, and templates.write. Every other new page tells users they need one of these scopes, but the canonical lookup page has no entry for any of them, so users creating keys from the Console will be unable to find the correct scope names.

src/routes/docs/platforms/project/api-keys/+page.markdoc — the scopes accordion is missing the Project API scope category entirely.

Important Files Changed

Filename Overview
src/routes/docs/platforms/project/api-keys/+page.markdoc New API keys reference page with comprehensive content, but missing all Projects API scopes from the scopes reference table
src/routes/docs/platforms/project/+layout.svelte New layout for the platforms/project section with correct sidebar navigation covering all new pages
src/redirects.json Adds redirects for moved api-keys and environment-variables pages and updates existing redirects to point to new paths
src/routes/blog/post/announcing-projects-api/+page.markdoc New blog post announcing the Projects API with full FAQ, SDK examples, and accurate feature descriptions
src/routes/docs/platforms/project/+page.markdoc New overview page for the Project section with SDK examples for get and delete operations
src/routes/docs/platforms/project/provisioning/+page.markdoc New provisioning journey page with SDK examples across all supported languages
src/routes/docs/platforms/project/offboarding/+page.markdoc New offboarding journey covering freeze, key revocation, and project deletion with multi-language examples
src/routes/docs/Sidebar.svelte Adds a 'Platforms > Project' entry to the top-level docs sidebar
src/routes/docs/advanced/security/+layout.svelte Removes api-keys and environment-variables entries from the advanced/security sidebar now that those pages have moved

Reviews (20): Last reviewed commit: "Add password strength and email deny pol..." | Re-trigger Greptile

Comment thread src/routes/blog/post/announcing-auth-methods-api/+page.markdoc Outdated
Comment thread src/routes/blog/post/announcing-auth-methods-api/+page.markdoc
# Conflicts:
#	.optimize-cache.json
#	src/routes/docs/products/project/api-keys/+page.markdoc
#	static/images/docs/project/create-api-key.png
#	static/images/docs/project/dark/create-api-key.png
- Rename stale enum classes to Project-prefixed names across all SDK
  language blocks: Scopes->ProjectKeyScopes (api-keys),
  AuthMethod->ProjectAuthMethodId (auth-methods),
  ProtocolId->ProjectProtocolId (protocols),
  ServiceId->ProjectServiceId (services); fix Python enum import path
- Replace mock-phones Errors table with a Benefits section to match
  sibling project pages
…ist/get policy)

- api-keys: add Create an ephemeral key section (createEphemeralKey),
  using tables.read/tables.write scopes
- platforms: add Get a platform section (getPlatform)
- policies: add List policies and Get a policy sections
  (listPolicies, getPolicy)

All code blocks verified against a local Cloud with the published
node-appwrite and appwrite (Rust) SDKs.
- New page documenting the project OAuth2 endpoints: per-provider
  updateOAuth2<Provider>, listOAuth2Providers, getOAuth2Provider
- Console section with light/dark screenshots
- Provider table mapping all 42 providers to their method and
  credential field names (App ID / App secret / extra fields)
- Documents that enabling a provider validates credentials
  end-to-end and throws on invalid creds
- Sidebar entry after Auth methods

Node, Rust, and CLI examples verified against a local Cloud.
- Move /docs/advanced/platform/environment-variables to
  /docs/products/project/environment-variables
- Add redirect from the old path to the new one
- Update platform and project sidebars
- Relocate /docs/products/project/* to /docs/platforms/project/*
- Add a Platforms category in the docs sidebar below Products and
  move Project into it
- Update section sidebar hrefs and overview cards to the new path
- Repoint existing redirects that targeted /docs/products/project/*
  to /docs/platforms/project/*
Unreferenced screenshot accidentally committed to the repo root;
the mock phones page uses static/images/docs/project/dark/mock-phones.avif.
Document listing, getting, and updating custom email templates via the
Console, Server SDKs (all languages), and CLI. Node and Rust blocks plus
all three CLI commands verified against a local Cloud. Includes a template
types reference, locales note, and benefits section, with light and dark
Console screenshots.
Document configuring a custom SMTP server and sending a test email via
the Console, Server SDKs (all languages), and CLI. Node, Rust, and the CLI
commands verified against a local Cloud with real delivery to MailDev.

Also add required-scope info boxes to the SMTP, email templates, and
environment variables pages to match the other project pages, and add
overview cards for OAuth providers, environment variables, SMTP, and
email templates.
Add a Labels page documenting updateLabels via the Console, Server SDKs,
and CLI, with a note on reading labels through project.get. Node, Rust,
and the CLI command verified against a local Cloud.

Also document project.get in a "Retrieve your project" section on the
project overview, and add the Labels card and sidebar entry.
…section

auth-methods: the SDK method is updateAuthMethod, not updateProjectAuthMethodId
(corrected across node, deno, php, dotnet, dart, kotlin, java, go); and the Node
enum member is ProjectAuthMethodId.Emailpassword, not EmailPassword (Node/Deno).

oauth: the Node method is updateOAuth2GitHub, not updateOAuth2Github.

Verified against the published node-appwrite and rust SDKs and run against a
local Cloud. Non-Node languages were already correct.
Add a "Delete a project" section with a prominent destructive warning,
covering all Server SDKs and the CLI. Verified that delete returns 204
and removes the project in Node, Rust, and the CLI against a local Cloud.
Announce the Projects API with all-language examples (createWebPlatform
and updateProtocol), verified in Node and Rust. Cover path is referenced
but intentionally left empty for now.
Add five journey pages under platforms/project: provisioning, key rotation, branded emails, plan tiers, and offboarding. Add a Journeys group to the project sidebar, and a 'Built for platform teams' section plus Journeys cards to the project overview. Update the policies page required scope to the current project.policies.write.
title: "Announcing the Projects API: Configure your project with Server SDKs"
description: Every project setting, from auth methods and OAuth providers to SMTP and labels, can now be configured programmatically through the Appwrite Server SDKs.
date: 2026-06-05
cover: /images/blog/announcing-projects-api/cover.avif

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.

P1 Missing cover image

The new post points its cover to /images/blog/announcing-projects-api/cover.avif, but that asset is not present under static/images/blog/announcing-projects-api/. When this post is published, the blog card and post hero can render a broken image. Please add the cover asset or point this field at an existing image.

Artifacts

Repro: Playwright real app repro script

  • Contains supporting evidence from the run (text/javascript; charset=utf-8).

Repro: real app startup failure log showing Vite was blocked by Node version

  • Keeps the command output available without making the summary code-heavy.

Repro: focused static asset repro script

  • Contains supporting evidence from the run (text/javascript; charset=utf-8).

Repro: static asset HTTP 404 output

  • Keeps the command output available without making the summary code-heavy.

View artifacts

T-Rex Ran code and verified through T-Rex

adityaoberai and others added 3 commits June 23, 2026 05:11
… page

Documents updatePasswordStrengthPolicy and the deny-aliased/disposable/free-email policies with examples across all server SDKs and the CLI.

Claude-Session: https://claude.ai/code/session_011RByzUgcgGo8F6mFouRG3g
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