Skip to content

Releases: appwrite/appwrite

1.9.0

01 Apr 02:50
8c6d4d8

Choose a tag to compare

What's Changed

Database support

Database features

  • String types — New varchar, text, mediumtext, and longtext attribute types (#11174)
  • Int64 format — Integer attributes support int64 format for large numbers (#11123)
  • Collection/row storage size — Expose column 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: 1.8.1...1.9.0

1.9.0-rc.6

31 Mar 10:10
c444bcc

Choose a tag to compare

1.9.0-rc.6 Pre-release
Pre-release

What's Changed

  • (fix): clear stale install data before starting new installation by @abnegate in #11716

Full Changelog: 1.9.0-rc.5...1.9.0-rc.6

1.9.0-rc.5

31 Mar 08:31
416b26a

Choose a tag to compare

1.9.0-rc.5 Pre-release
Pre-release

What's Changed

  • (fix): guard against missing Host header in dispatch by @abnegate in #11710

Full Changelog: 1.9.0-rc.4...1.9.0-rc.5

1.9.0-rc.4

31 Mar 03:52
ec20fb5

Choose a tag to compare

1.9.0-rc.4 Pre-release
Pre-release

What's Changed

Full Changelog: 1.9.0-rc.3...1.9.0-rc.4

1.9.0-rc.3

24 Mar 13:10
7fcc640

Choose a tag to compare

1.9.0-rc.3 Pre-release
Pre-release

What's Changed

Full Changelog: 1.9.0-rc.2...1.9.0-rc.3

1.9.0-rc.2

24 Mar 12:49
a92ad3a

Choose a tag to compare

1.9.0-rc.2 Pre-release
Pre-release

What's Changed

Full Changelog: 1.9.0-rc.1...1.9.0-rc.2

1.9.0-rc.1

24 Mar 06:29
d4f7d51

Choose a tag to compare

1.9.0-rc.1 Pre-release
Pre-release

What's Changed

Read more

1.8.1-RC1

09 Dec 01:12
b1ed37f

Choose a tag to compare

1.8.1-RC1 Pre-release
Pre-release

What's Changed

Important

Please run the migrate command even if upgrading from 1.8.x.

Notable changes

Fixes

Miscellaneous

New Contributors

Read more

1.8.1

23 Dec 18:17
bd288ce

Choose a tag to compare

What's Changed

Important

Please run the migrate command even if upgrading from 1.8.x.

Notable changes

Fixes

Miscellaneous

New Contributors

Read more

1.7.5

06 Nov 23:09
00ea120

Choose a tag to compare

What's Changed

Fixes

Full Changelog: 1.7.4...1.7.5