Releases: appwrite/appwrite
Releases · appwrite/appwrite
1.9.0
What's Changed
Database support
- MongoDB support (#11312)
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)
totalSizeon 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
- @levivannoort made their first contribution in #10843
- @Ujjwaljain16 made their first contribution in #10925
- @VijaykumarPujar-tech made their first contribution in #10863
- @tejas-raskar made their first contribution in #10342
- @premtsd-code made their first contribution in #11193
- @Shivangisharma4 made their first contribution in #11185
Full Changelog: 1.8.1...1.9.0
1.9.0-rc.6
What's Changed
Full Changelog: 1.9.0-rc.5...1.9.0-rc.6
1.9.0-rc.5
What's Changed
Full Changelog: 1.9.0-rc.4...1.9.0-rc.5
1.9.0-rc.4
What's Changed
- chore: update sdks script by @ChiragAgg5k in #11638
- fix: revert bulk upsertDocuments auth by @ChiragAgg5k in #11640
- feat: improve SDK PR summary with platform grouping and clipboard copy by @ChiragAgg5k in #11639
- Fix: missing deployment on new branch without PR by @Meldiron in #11641
- feat: add Rust SDK support by @ChiragAgg5k in #11614
- Fix issues in generated specs by @adityaoberai in #11654
- [codex] Move static SDKs off platform specs by @ChiragAgg5k in #11664
- Use injected user document for privilege checks by @lohanidamodar in #11553
- updated db size by @ArnabChatterjee20k in #11658
- [codex] Reduce specs task memory retention by @ChiragAgg5k in #11671
- fix: merge duplicate SDK responses in VCS repository list and detections by @HarshMN2345 in #11674
- fix: remove INDEX_SPATIAL from DocumentsDB index creation by @premtsd-code in #11679
- Fix installer by @abnegate in #11689
Full Changelog: 1.9.0-rc.3...1.9.0-rc.4
1.9.0-rc.3
1.9.0-rc.2
What's Changed
- Added fallback is null by @ArnabChatterjee20k in #11628
- Fix installer state by @abnegate in #11624
Full Changelog: 1.9.0-rc.1...1.9.0-rc.2
1.9.0-rc.1
What's Changed
- Feat mongodb pulls by @shimonewman in #10375
- Feat mongodb pulls by @shimonewman in #10527
- Move disable by @abnegate in #10493
- Update: enums by @ItzNotABug in #10628
- fix: Enable batch mode for issue triage safe-outputs by @stnguyen90 in #10775
- feat: docker-compose maildev update, traefik localhost domains by @levivannoort in #10843
- Separate specifications by @Meldiron in #10849
- Feat: Custom start commands by @Meldiron in #10842
- Update README files to match new tagline by @ebenezerdon in #10797
- Use configured OAuth2 provider class from config by @TorstenDittmann in #10900
- chore: release sdks for adding getScreenshot method to Avatars service by @ChiragAgg5k in #10882
- fix: Use supported runtimes from env config by @hmacr in #10759
- fix: Send deployment ready event after updating associated resource by @hmacr in #10547
- Refactor: use Coroutine context for database and cache functions by @ArnabChatterjee20k in #10895
- Feat multi create by @abnegate in #10894
- Bump migration lib 1.3.9 by @fogelito in #10919
- Update utopia-php/dns version by @hmacr in #10907
- Block array indexes by @abnegate in #10917
- Fix ScheduleExecutions: inverted comparison prevented execution scheduling by @Copilot in #10916
- Fix: Prevent job loss on container shutdown for delayed executions by @Copilot in #10922
- chore: bump base docker image version to 0.10.6 to fix vulnerabilities by @stnguyen90 in #10924
- vectordb api endpoints by @ArnabChatterjee20k in #10653
- Fix: remove temp queries by @lohanidamodar in #10928
- Sync main into 1.8.x by @stnguyen90 in #10931
- Add public visibility control for deprecated methods by @ChiragAgg5k in #10933
- feat: multiple app domains by @loks0n in #10911
- Improve database errors for studio by @ItzNotABug in #10934
- fix: resolve MFA recovery code validation in 1.8.0 by @Ujjwaljain16 in #10925
- Add formspree and react-admin templates to sites by @vermakhushboo in #10031
- Fix imagine hostnames 2 by @loks0n in #10937
- Fix: Implement mandatory authentication check for Custom SMTP configuration by @VijaykumarPujar-tech in #10863
- Sync main into 1.8.x by @stnguyen90 in #10938
- fix preflight requests by @loks0n in #10943
- Allow custom sender by @ItzNotABug in #10945
- Optimize dockerfile by @ItzNotABug in #10947
- fix: cors wildcard by @loks0n in #10956
- feat: improved reference client ip through _APP_TRUSTED_HEADERS by @levivannoort in #10941
- fix: platform defaults by @loks0n in #10957
- Revert backups endpoints by @loks0n in #10958
- Tableid and Collectionid in increment and decrement routes by @ArnabChatterjee20k in #10952
- chore: lazy init sms adapter + late static binding by @ChiragAgg5k in #10961
- Refactor schedule base by @shimonewman in #10913
- Migration cleanup by @fogelito in #10955
- Worker error add previous errors by @fogelito in #10963
- Refactor Specs task for better code organization by @ChiragAgg5k in #10950
- Bump 1.8.x by @fogelito in #10964
- Fix: deletes bug by @Meldiron in #10965
- Improve rule verification flow & add logs by @hmacr in #10962
- Feat: Auto-delete deployments by @Meldiron in #10959
- Fix VCS template build flow (empty source) by @Meldiron in #10966
- fix: oauth custom domains by @loks0n in #10967
- Scheduler base patch chunks by @fogelito in #10969
- fix: fallback platform by @loks0n in #10971
- Max query values worker by @fogelito in #10972
- sync sdk example changes + improvements by @ChiragAgg5k in #10975
- Update template to use platform injection by @ItzNotABug in #10974
- Use
platformin migrations worker by @ItzNotABug in #10976 - Fix sync updated schedules by @loks0n in #10977
- Fix entrypoint by @fogelito in #10979
- Refactor auth single instance by @shimonewman in #10872
- Chore specs by @abnegate in #10983
- Fix auth calls by @abnegate in #10987
- fix: allow linking identities with verified emails by @TorstenDittmann in #10986
- Fix: Add scopes for devkeys by @Meldiron in #10984
- Sync 1.8.x into main by @stnguyen90 in #10946
- Fix smtp auth check by @stnguyen90 in #10939
- Feat: Create AGENTS.md by @Meldiron in #10993
- Revert "Fix auth calls" by @abnegate in #10995
- Update: Header name. by @ItzNotABug in #10992
- Revert "Refactor auth single instance" by @abnegate in #10996
- Allow queries on projects xlist by @ItzNotABug in #10990
- feat: allow custom jwt duration by @TorstenDittmann in #11009
- chore: update sdks script console log by @ChiragAgg5k in #11001
- refactor use env variables for queue and class names by @ChiragAgg5k in #11010
- Increase JWT abuse limit by @Meldiron in #11012
- Fix JWT test by @Meldiron in #11013
- fix: make getScreenshot output param to use ImageFormat enum by @ChiragAgg5k in #11017
- chore: remove warning logs when skipping ssl certificate by @ChiragAgg5k in #11024
- fix: specs generation getPlatforms method by @ChiragAgg5k in #11025
- add webhook exist validation in bulkTrigger() by @shimonewman in #11022
- Fix: Document/File set user permission only if not privileged user by @lohanidamodar in #11026
- fix: default namespace in sdks by @ChiragAgg5k in #11031
- Disable filters for platform and project databases - Stat resources by @lohanidamodar in #11027
- fix: sdk configuration options by @ChiragAgg5k in #11032
- Support for sync-ing certificate generation status by @hmacr in #10985
- Functions skip variables subquery by @fogelito in #11036
- chore: add more sdk config flexibility by @ChiragAgg5k in #11037
- Feat: storage module by @lohanidamodar in #11035
- fix: remove storage service from include_once by @ChiragAgg5k in #11043
- chore: remove proxy containaer by @loks0n in #11039
- fix: task subprocesses by @loks0n in #11040
- Write to new resource attributes in
keysby @hmacr in #11003 - Feat: Audits upgrade by @lohanidamodar in #10953
- chore: reduce sdk release steps by @ChiragAgg5k in #11045
- Console module by @ItzNotABug in #11049
- Fix resources. by @ItzNotABug in #11051
- Chore: Upgrade VCS li...
1.8.1-RC1
What's Changed
Important
Please run the migrate command even if upgrading from 1.8.x.
Notable changes
- Add branch deployments support by @atharvadeosthale in #10486
- Add TanStack Start sites support by @Meldiron in #10681
- Add Next.js standalone support by @Meldiron in #10747
- Add Resend integration by @ChiragAgg5k in #10690
- Add option to enable/disable image transformations per-bucket by @ChiragAgg5k in #10722
- Add operators support by @abnegate in #10735 and #10800
- Add function and sites stats by @lohanidamodar in #10786
- Add disable count feature by @shimonewman in #10668
- Add ElevenLabs site template by @adityaoberai in #10782
- Add suggested environment variables by @Meldiron in #10795
- Update GeoDB database by @lohanidamodar in #10890
- Update Flutter default build runtime by @lohanidamodar in #10807
- Upgrade runtimes by @lohanidamodar in #10804
Fixes
- Fix duplicate document error while creating file by @lohanidamodar in #10891
- Fix "Update external deployment (authorize)" throwing 500 error due to invalid query by @ItzNotABug in #10888
- Fix error setting user password by @lohanidamodar in #10889
- Fix error generating email MFA challenges by @ItzNotABug in #10884
- Fix file token expiry by @hmacr in #10877
- Fix TanStack Nitro default by @Meldiron in #10860
- Fix TanStack builds by @Meldiron in #10767
- Fix nullable validation by @ChiragAgg5k in #10819 and #10778
- Fix WebP library by @stnguyen90 in #10738
- Fix batch writes by @lohanidamodar in #10812
- Fix error handler error by @abnegate in #10719
- Fix Next 16 compatibility by @Meldiron in #10713
- Fix stats usage memory leak by @loks0n in #10683
- Fix author URL in template deployments by @vermakhushboo in #10535
- Fix VCS lock deletion by @vermakhushboo in #10691
Miscellaneous
- Add CSV export functionality by @abnegate in #10546, #10750, #10813, and #10847
- Add JWT disposition by @abnegate in #10867
- Add screenshots endpoint by @eldadfux in #10675
- Add screenshot endpoint stats by @lohanidamodar in #10706
- Add users attributes by @fogelito in #10688
- Add max build duration environment variable by @HarshMN2345 in #10674
- Add custom realtime logger by @abnegate in #10871
- Add logs by @ItzNotABug in #10869
- Improve MFA docs endpoint order by @HarshMN2345 in #10793
- Auth refactor by @lohanidamodar in #10758, by @abnegate in #10837, by @shimonewman in #10682, and by @lohanidamodar in #10667
- Bump assistant to 0.8.4 by @loks0n in #10887
- Bump database to 3.1.5 by @fogelito in #10766
- Bump Utopia DNS by @loks0n in #10761
- Update domains to 0.8.3 by @ChiragAgg5k in #10658
- Update domains to 0.9.1 by @ChiragAgg5k in #10678
- Update Apple Swift to 13.3.0 by @ChiragAgg5k in #10679
- Update Apple Swift by @ChiragAgg5k in #10663
- Update CLI to 10.2.2 by @ChiragAgg5k in #10672
- Update to CLI 12.0.0 by @ChiragAgg5k in #10853
- Update docs examples to use Permission class by @ChiragAgg5k in #10707
- Update SDK examples docs by @ChiragAgg5k in #10855
- Release Python SDK by @ChiragAgg5k in #10762
- Release Flutter 20.3.2 by @ChiragAgg5k in #10838
- Release Flutter/Dart add screenshot examples by @ChiragAgg5k in #10811
- Release PHP CLI by @ChiragAgg5k in #10791
- Release SDKs by @ChiragAgg5k in #10817
- Update SDKs by @ChiragAgg5k in #10694, #10729, and #10744
- Update SDK generator by @ChiragAgg5k in #10743
- Update database by @abnegate in #10664
- Update README file by @Veera-mulge in #10763
- SDK release documentation by @ChiragAgg5k in #10745
- SDK release runtime config by @stnguyen90 in #10765
- Sync specs by @ChiragAgg5k in #10789
- Sync 1.8.0 by @stnguyen90 in #10677
- Add workflow for issue triage by @stnguyen90 in #10718
- Add issue auto-labeler by @stnguyen90 in #10700
- Add AI moderator repo by @Copilot in #10717
- Browser bump by @ItzNotABug in #10850
- Template type enum override by @ChiragAgg5k in #10848
- VCS reference type by @ChiragAgg5k in #10852
- Index scope description by @stnguyen90 in #10851
- Config for environment by @Meldiron in #10833
- Format instance by @ChiragAgg5k in #10830
- Replace sleep in webhooks service by @vermakhushboo in #10656
- Update email composer by @fogelito in #10720
- Update facts on GitHub sites and functions by @HarshMN2345 in #10593 and #10771
- Fix wrong user type by @lohanidamodar in #10875
- Fix limit and offset computation by @hmacr in #10880
- Fix enum examples by @ChiragAgg5k in #10828
- Fix response models multi-methods by @ChiragAgg5k in #10815
- Fix undefined variable by @lohanidamodar in #10654
- Fix undefined sequence by @lohanidamodar in #10652
- Fix description by @ChiragAgg5k in #10702
- Fix warning in builds worker by @ChiragAgg5k in #10705
- Fix sites create deployment docs by @Priyanshuthapliyal2005 in #10566
- Fix test dependencies projects by @ChiragAgg5k in #10655
- Fix list sites test by @ChiragAgg5k in #10726
New Contributors
- @HarshMN2345 made their...
1.8.1
What's Changed
Important
Please run the migrate command even if upgrading from 1.8.x.
Notable changes
- Add branch deployments support by @atharvadeosthale in #10486
- Add TanStack Start sites support by @Meldiron in #10681
- Add Next.js standalone support by @Meldiron in #10747
- Add Resend integration by @ChiragAgg5k in #10690
- Add option to enable/disable image transformations per-bucket by @ChiragAgg5k in #10722
- Add operators support by @abnegate in #10735 and #10800
- Add function and sites stats by @lohanidamodar in #10786
- Add disable count feature by @shimonewman in #10668
- Add ElevenLabs site template by @adityaoberai in #10782
- Add suggested environment variables by @Meldiron in #10795
- Update GeoDB database by @lohanidamodar in #10890
- Update Flutter default build runtime by @lohanidamodar in #10807
- Upgrade runtimes by @lohanidamodar in #10804
Fixes
- Fix duplicate document error while creating file by @lohanidamodar in #10891
- Fix "Update external deployment (authorize)" throwing 500 error due to invalid query by @ItzNotABug in #10888
- Fix error setting user password by @lohanidamodar in #10889
- Fix error generating email MFA challenges by @ItzNotABug in #10884
- Fix file token expiry by @hmacr in #10877
- Fix TanStack Nitro default by @Meldiron in #10860
- Fix TanStack builds by @Meldiron in #10767
- Fix nullable validation by @ChiragAgg5k in #10819 and #10778
- Fix WebP library by @stnguyen90 in #10738
- Fix batch writes by @lohanidamodar in #10812
- Fix error handler error by @abnegate in #10719
- Fix Next 16 compatibility by @Meldiron in #10713
- Fix stats usage memory leak by @loks0n in #10683
- Fix author URL in template deployments by @vermakhushboo in #10535
- Fix VCS lock deletion by @vermakhushboo in #10691
Miscellaneous
- Add CSV export functionality by @abnegate in #10546, #10750, #10813, and #10847
- Add JWT disposition by @abnegate in #10867
- Add screenshots endpoint by @eldadfux in #10675
- Add screenshot endpoint stats by @lohanidamodar in #10706
- Add users attributes by @fogelito in #10688
- Add max build duration environment variable by @HarshMN2345 in #10674
- Add custom realtime logger by @abnegate in #10871
- Add logs by @ItzNotABug in #10869
- Improve MFA docs endpoint order by @HarshMN2345 in #10793
- Auth refactor by @lohanidamodar in #10758, by @abnegate in #10837, by @shimonewman in #10682, and by @lohanidamodar in #10667
- Bump assistant to 0.8.4 by @loks0n in #10887
- Bump database to 3.1.5 by @fogelito in #10766
- Bump Utopia DNS by @loks0n in #10761
- Update domains to 0.8.3 by @ChiragAgg5k in #10658
- Update domains to 0.9.1 by @ChiragAgg5k in #10678
- Update Apple Swift to 13.3.0 by @ChiragAgg5k in #10679
- Update Apple Swift by @ChiragAgg5k in #10663
- Update CLI to 10.2.2 by @ChiragAgg5k in #10672
- Update to CLI 12.0.0 by @ChiragAgg5k in #10853
- Update docs examples to use Permission class by @ChiragAgg5k in #10707
- Update SDK examples docs by @ChiragAgg5k in #10855
- Release Python SDK by @ChiragAgg5k in #10762
- Release Flutter 20.3.2 by @ChiragAgg5k in #10838
- Release Flutter/Dart add screenshot examples by @ChiragAgg5k in #10811
- Release PHP CLI by @ChiragAgg5k in #10791
- Release SDKs by @ChiragAgg5k in #10817
- Update SDKs by @ChiragAgg5k in #10694, #10729, and #10744
- Update SDK generator by @ChiragAgg5k in #10743
- Update database by @abnegate in #10664
- Update README file by @Veera-mulge in #10763
- SDK release documentation by @ChiragAgg5k in #10745
- SDK release runtime config by @stnguyen90 in #10765
- Sync specs by @ChiragAgg5k in #10789
- Sync 1.8.0 by @stnguyen90 in #10677
- Add workflow for issue triage by @stnguyen90 in #10718
- Add issue auto-labeler by @stnguyen90 in #10700
- Add AI moderator repo by @Copilot in #10717
- Browser bump by @ItzNotABug in #10850
- Template type enum override by @ChiragAgg5k in #10848
- VCS reference type by @ChiragAgg5k in #10852
- Index scope description by @stnguyen90 in #10851
- Config for environment by @Meldiron in #10833
- Format instance by @ChiragAgg5k in #10830
- Replace sleep in webhooks service by @vermakhushboo in #10656
- Update email composer by @fogelito in #10720
- Update facts on GitHub sites and functions by @HarshMN2345 in #10593 and #10771
- Fix wrong user type by @lohanidamodar in #10875
- Fix limit and offset computation by @hmacr in #10880
- Fix enum examples by @ChiragAgg5k in #10828
- Fix response models multi-methods by @ChiragAgg5k in #10815
- Fix undefined variable by @lohanidamodar in #10654
- Fix undefined sequence by @lohanidamodar in #10652
- Fix description by @ChiragAgg5k in #10702
- Fix warning in builds worker by @ChiragAgg5k in #10705
- Fix sites create deployment docs by @Priyanshuthapliyal2005 in #10566
- Fix test dependencies projects by @ChiragAgg5k in #10655
- Fix list sites test by @ChiragAgg5k in #10726
New Contributors
- @HarshMN2345 made their...