Download Latest Version 1.9.0 source code.tar.gz (86.5 MB)
Email in envelope

Get an email when there's a new version of appwrite

Home / 1.9.0
Name Modified Size InfoDownloads / Week
Parent folder
1.9.0 source code.tar.gz 2026-03-31 86.5 MB
1.9.0 source code.zip 2026-03-31 87.9 MB
README.md 2026-03-31 6.7 kB
Totals: 3 Items   174.4 MB 4

What's Changed

Database support

  • MongoDB support — Full MongoDB adapter support (#11312)

Database features

  • String types — New varchar, text, mediumtext, and longtext attribute types with configurable sizes (#11174)
  • Int64 format — Integer attributes support int64 format for large numbers (#11123)
  • Collection/row storage size — Expose bytes used and bytes free per collection/table (#11254, [#11069])
  • Cached document lists — Document list queries can be cached with configurable TTL (#10832)

New admin APIs

  • Webhooks API — First-class webhooks management endpoints for creating, listing, and managing webhook configurations (#11033, [#11566])
  • Schedules API — New endpoints to view and manage scheduled tasks within projects (#11331)
  • User impersonation — Admins can now impersonate users for debugging and support (#11533)
  • Public project variables — Project environment variables can now be marked public and accessed via API (#11577)

Realtime

  • Query subscriptions — Subscribe to realtime channels with query filters for targeted updates (#11202, [#11237])
  • Realtime metrics — Track connections, messages, and bandwidth in project usage stats (#11438, [#11488])
  • TablesDB channels — Explicit top level TablesDB events for realtime (#11404, [#11430])

Auth & security

  • Custom JWT duration — Configure JWT expiration time when creating tokens (#11009)
  • Resource-based API keys — New key structure with granular resource permissions, custom IDs, and list queries (#11003, [#11277], [#11278])
  • Project labels — Tag and organize projects with custom labels (#11056)
  • Project status attribute — Track project lifecycle state (#11291)
  • Multiple application domains — Support multiple domains per project for CORS and OAuth (#10911)
  • Trusted console projects — Mark projects as trusted for elevated access (#11248)
  • Blocked user errors — Changed from 401 to 403 for blocked users/resources (#11469)
  • OAuth email verification — Enforce email verification when linking OAuth2 providers (#10986)
  • Tauri origin support — tauri://localhost accepted as an allowed origin (#11589)
  • Trusted headers — Improved client IP resolution via _APP_TRUSTED_HEADERS env var

Compute

  • Custom start command — Sites and functions support custom start commands (#10842)
  • Separate build/runtime specs — Configure build and runtime resources independently (#10849)
  • Deployment retention — Automatic cleanup of old deployments with configurable limits (#10959)
  • Async screenshots — Screenshot generation moved to a dedicated worker (#11110)
  • Stale execution cleanup — Automatic cleanup of stale/orphaned function executions (#11146)
  • Graceful worker shutdown — Workers shut down cleanly without dropping jobs (#11104)
  • Function queue job TTL — 7-day TTL for functions queue to prevent unbounded growth (#11226)

Storage

  • File encryption/compression parameters — Configure per-file encryption and compression (#11135)
  • totalSize on list responses — List endpoints return total storage size (#11102)

Migrations

  • Site migration — Import sites from other Appwrite instances
  • Messaging resource migration — Migrate messaging resources between instances (#11495)
  • Migration resource enums — SDK enums for migration resource types

GraphQL

  • Introspection toggle — Enable/disable GraphQL introspection independently (#11159)

SDKs

  • Rust SDK — New official Rust SDK (#11614)
  • Cursor plugin SDK — SDK for Cursor IDE integration (#11371)
  • Agent skills SDK — SDK for AI agent integration
  • Array param enums — Enum support for array parameters across all SDKs

Installer

  • New web installer UI — Redesigned installer with light/dark modes, progress tracking SSL, certificate checks, migrations built in (#11175, [#11247])

Refactoring

  • Migrated to Utopia Platform modules architecture — all HTTP endpoints, workers, and tasks organized into feature modules (#11035, [#11049], [#11057], [#11103], [#11208], [#11398])
  • Refactored auth to single instance pattern (#10872, [#11130])
  • Refactored usage metrics to stateless Bus event publisher pattern (#11449)
  • Removed proxy container — Traefik handled directly (#11039)
  • Consolidated CI workflows with dynamic database/mode matrix (#11531, [#11551])
  • Upgraded PHPStan to v2 with full codebase baseline (#11550)
  • Upgraded to PHPUnit 11/12 with PHP 8 attributes

Performance

  • Sparse document updates — updateDocument() sends only changed attributes (#11465)
  • Domain caching via shared Swoole Tables instead of per-worker Config cache (#11346)
  • Memory leak fixes in webhook/stats/event processing (#11067, [#11241])
  • SMTP keep-alive for connection reuse across mail jobs (#11496)
  • Static file loading optimization with copy-on-write memory sharing
  • Pre-parsed queries on hot paths
  • Realtime performance improvements (#11251)
  • Simplified repository authorization checks (#11616)

Notable Fixes

  • OAuth fixes for custom domains, redirect schemes, and verified emails
  • MFA recovery code validation fix
  • CORS wildcard and preflight request handling
  • Execution status and timeout reporting
  • Relationship document validation
  • Cache key improvements with attribute/index hash
  • Realtime region handling and error resilience
  • PostgreSQL race condition in shared mode project creation
  • VCS template flow, deployment, and comment fixes
  • Storage health error handling
  • Schedule execution trigger and deletion fixes
  • Abuse rate limiting reset on success

Upgrade Path

  • Upgrade from 1.8.1 to 1.9.0. Use the database migration step in the web installer, the --migrate flag with the upgrade task, or manually run docker compose exec appwrite migrate.

New Contributors

Full Changelog: https://github.com/appwrite/appwrite/compare/1.8.1...1.9.0

Source: README.md, updated 2026-03-31