1.9.5-rc.1 Release
Appwrite 1.9.5-rc.1 includes numerous bug fixes, performance improvements, and new features such as support for blocking disposable email addresses, a Public Keys API, X OAuth 2.0 provider, and various infrastructure improvements including dependency upgrades and code quality enhancements.
What's Changed
- Change Usage class from final to non-final by @lohanidamodar in #11735
- Update installation commands in readme for 1.9.0 to include self-hosted wizard by @adityaoberai in #11739
- Speed up PHPStan analysis with result caching by @ChiragAgg5k in #11740
- [codex] Fix PHPStan baseline cleanup issues (part 2) by @ChiragAgg5k in #11737
- Fix PHPStan baseline and code quality issues by @lohanidamodar in #11754
- Fix flaky vectordb migration test by @ChiragAgg5k in #11757
- chore: remove phpstan baseline by @ChiragAgg5k in #11751
- Replace PHPMailer with utopia-php/messaging SMTP adapter by @ChiragAgg5k in #11748
- feat: add support for blocking disposable email addresses by @eldadfux in #10643
- fix(oauth): update Yahoo OAuth scopes from deprecated scopes by @TorstenDittmann in #11745
- [codex] Fail specs when referenced docs are missing by @ChiragAgg5k in #11789
- [codex] Fix flaky VectorsDB metadata bootstrap in migrations by @ChiragAgg5k in #11772
- Improve schedule function logic by @shimonewman in #11790
- fix: add CORS headers to error responses by @lohanidamodar in #11797
- Remove request and response static state by @ChiragAgg5k in #11798
- Use request-scoped cookie domain resource by @ChiragAgg5k in #11799
- revert ScheduleFunctions.php updates by @shimonewman in #11805
- feat: migrate from static Http::setResource() to DI Container by @ChiragAgg5k in #11564
- [codex] Handle null console routes in API middleware by @ChiragAgg5k in #11809
- [codex] Fix post-merge e2e test regressions by @ChiragAgg5k in #11810
- Chore: Migrat elabels API by @Meldiron in #11812
- [codex] Bump utopia-php/framework to 0.34.18 by @ChiragAgg5k in #11814
- fix: reset SDK dev branch to base branch before pushing by @ChiragAgg5k in #11808
- fix appwrite auth broken link in readme by @blueberry-adii in #11794
- fix: persist session before purging user cache in email/password login by @loks0n in #11816
- fix: throw RuntimeException for unresolved response models in spec generation by @ChiragAgg5k in #11817
- bump utopia-php/database to 5.3.19 and fix shared-mode CI failures by @premtsd-code in #11750
- Feat: public platform API by @Meldiron in #11615
- fix: ensure realtime event payload is populated for atomic operations by @bhardwajparth51 in #11762
- Feat: Public keys API by @Meldiron in #11650
- Chore: Mark project response format sub-formats as public by @Meldiron in #11821
- feat: Add X OAuth 2.0 provider by @HarshMN2345 in #11611
- fix: use cURL cookie engine for RFC 6265 compliant cookie handling in e2e client by @loks0n in #11826
- feat(databases): cache purge parameter and improved ttl semantics by @abnegate in #11820
- feat: distinguish user types in audit logs by @lohanidamodar in #11580
- fix: make variableId optional in createProjectVariable endpoint by @rathi-yash in #11795
- remove HTTP server bootstrap from specs task by @ChiragAgg5k in #11830
- fix: Add backwards-compat origin validation for deprecated platform types by @lohanidamodar in #11833
- fix: map deprecated platform types in project response by @lohanidamodar in #11835
- Revert "fix: make variableId optional in createProjectVariable endpoint" by @ChiragAgg5k in #11837
- Fix deletion of partially-uploaded (pending) files by @Meldiron with @Copilot in #11655
- fix(installer): add missing worker-executions service to compose template by @HarshMN2345 in #11838
- feat: extract session alert email into Mails listener by @loks0n in #11642
- fix: storage preview cache misses and stale cache eviction by @loks0n in #11842
- fix: set project on mail queue in session mails listener by @loks0n in #11843
- Realtime query message payload by @ArnabChatterjee20k in #11767
- Use dedicated connection resources in realtime by @ChiragAgg5k in #11831
- feat: add tracing spans for storage file preview timing and cache state by @loks0n in #11844
- Migrate executions, migrations, and stats resources to publishers by @ChiragAgg5k in #11850
- feat: remove error logs by @loks0n in #11854
- Bump phpseclib to 3.0.51 for CVE-2026-40194 by @ChiragAgg5k in #11858
- Make rule deploymentResourceType optional for non-deployment rules by @ChiragAgg5k in #11861
- fix(installer): align self-hosted compose execution stack by @ChiragAgg5k in #11874
- fix: pass response to Http::execute() in GraphQL resolver by @abnegate in #11876
- Fix project SDK spec for web platform hostname and platform type enum by @ChiragAgg5k in #11848
- (fix): cache fallback by @abnegate in #11860
- fix: reset response sent state between batched GraphQL queries by @lohanidamodar in #11879
- Feat: services protocols public apis by @Meldiron in #11839
- added reset in db worker for queue for realtime by @ArnabChatterjee20k in #11749
- fix: trim execution queue payload to project ID only by @loks0n in #11883
- Fix: Webhook API secret rotation and security by @Meldiron in #11884
- Safe delete shared tables v1 by @fogelito in #11691
- feat: increase default build timeout to 45 minutes by @loks0n in #11881
- Upgrade graphql-php to v15.31.5 by @ChiragAgg5k in #11887
- Schedule functions debug by @shimonewman in #11892
- (fix): reset route to avoid clobbering otel by @abnegate in #11885
- [codex] ci: disable functional GraphQL e2e by @ChiragAgg5k in #11893
- fix: replace force-push with regular push in SDK release task by @ChiragAgg5k in #11904
- Docsdb fixes by @ArnabChatterjee20k in #11852
- fix(graphql): isolate coroutine resolver state and sent responses by @lohanidamodar in #11880
- fix: stabilize flaky CI tests by @ChiragAgg5k in #11903
- Refactor audits, certificates, and screenshots queues to publishers by @ChiragAgg5k in #11851
- added backward compat by @ArnabChatterjee20k in #11907
- Fix: protocol & service exception by @Meldiron in #11909
- Allow deleting user account with active memberships by @lohanidamodar in #11787
- Add discriminators to polymorphic API spec unions by @ChiragAgg5k in #11921
- feat(specs): add discriminator for provider repository list union by @ChiragAgg5k in #11924
- Self hosted installer compose fixes by @atharvadeosthale in #11925
- Added delay metric by @ArnabChatterjee20k in #11927
- Feat: Fallback email custom template by @Meldiron in #11912
- Realtime time metric by @ArnabChatterjee20k in #11936
- Remove /status from project endpoint paths; upgrade to platform 0.13 by @Meldiron in #11932
- feat: use buildTimeout from message payload in build worker by @loks0n in #11934
- Update React Admin template metadata by @adityaoberai in #11926
- fix: do not cache error responses for storage preview, bump utopia-php/image to 0.8.5 by @loks0n in #11940
- fix: include project ID in storage preview cache key by @loks0n in #11941
- refactor: Remove shared tables V1/V2 versioning by @abnegate in #11894
- Revert "Safe delete shared tables v1" by @abnegate in #11889
- add claude plugin to static sdk by @atharvadeosthale in #11950
- Realtime add new messages by @ArnabChatterjee20k in #11957
- added project region by @ArnabChatterjee20k in #11946
- Realtime time metric by @ArnabChatterjee20k in #11954
- feat(sites): add telemetry to ss rates by @HarshMN2345 in #11905
- fix: honor _APP_WORKERS_NUM in realtime by @loks0n in #11965
- feat: add afterQuery hook to listRows (tablesdb) action by @lohanidamodar in #11953
- fix: cast cached total to int in listDocuments/listRows by @abnegate in #11967
- chore: bump PHPStan to level 4 and fix all new errors by @ChiragAgg5k in #11949
- Feat: Public API for project SMTP endpoints by @Meldiron in #11900
- Feat: public project policies by @Meldiron in #11964
- Add spec enum service overlap validation by @ChiragAgg5k in #11969
- [codex] Fix deployment single chunk content range by @ChiragAgg5k in #11972
- Skip preview rule when no deployment exists on function create by @ChiragAgg5k in #11974
- [codex] Stabilize database e2e CI retries by @ChiragAgg5k in #11975
- Structured Logging by @ArnabChatterjee20k in #11971
- Improve HTTP benchmark coverage by @ChiragAgg5k in #11963
- perf: memoize request filter chain and V20 schema lookups by @loks0n in #11977
- Feat: Auth methods public API by @Meldiron in #11976
- Feat: Public mock phone APIs by @Meldiron in #11970
- Fix: membership privacy bug on production by @Meldiron in #11979
- Feat: Project public list endpoints by @Meldiron in #11981
- added missing include for exporter in the realtime by @ArnabChatterjee20k in #11992
- fix: guard DOMDocument::loadHTML against empty body in favicon endpoint by @lohanidamodar in #12166
- fix: coerce non-string header values in Request::getHeader by @lohanidamodar in #12165
- Feat: Public project OAuth2 configuration API by @Meldiron in #11993
- feat: add query param fallback for impersonation headers by @HarshMN2345 in #12167
- Realtime action channels by @ArnabChatterjee20k in #12070
- Feat: create dynamic keys by @Meldiron in #12170
- added a guard to skip double import by @ArnabChatterjee20k in #12134
- Feat: Console key scopes endpoint by @Meldiron in #12175
- Refactor migrations API to module style by @premtsd-code in #12171
- ci: share docker image via GHCR instead of upload-artifact by @ChiragAgg5k in #12176
- chore: bump docker-base to 1.2.0 by @ChiragAgg5k in #12174
- Fix 1.9.x CI code scanning and retry image cleanup by @ChiragAgg5k in #12177
- Fix: Developer experiene with recent chagnes by @Meldiron in #12178
- feat: support out-of-order chunked uploads by @TorstenDittmann in #12138
- Fix project delete platform cleanup ordering by @ChiragAgg5k in #12179
- fix(locale): add Spanish session alert translations by @FerRubioMorales in #12189
- Fix: oauth order; Fix apple secreting too much by @Meldiron in #12191
- Set global collection by @fogelito in #12181
- Fix: OAuth UX with required params by @Meldiron in #12192
- Update appwrite runtimes to 0.20 by @ChiragAgg5k in #12196
- Add Rust starter function template runtime by @ChiragAgg5k in #12198
- chore: bump base image to 1.3.1 by @loks0n in #12201
- Fix: Add deprecated function scopes by @Meldiron in #12203
- chore: bump base image to 1.4.1 by @loks0n in #12204
- chore: bump utopia-php/audit to 2.2.2 by @lohanidamodar in #12207
- fix: resolve query syntax errors and improve error handling in Reques… by @ArnabChatterjee20k in #12206
- Update GraphQL PHP dependency by @ChiragAgg5k in #12216
- Add backup policy migration support by @premtsd-code in #11632
- feat(specs): unify auth securityDefinitions across platforms by @ChiragAgg5k in #12211
- Chore: Rename policies scope by @Meldiron in #12218
- Feat: queries & total params for list oauth providers by @Meldiron in #12213
- feat(indexes): add 4 missing indexes (supersedes #9629) by @lohanidamodar in #12222
- Fix endpoint consistency (oauth get) by @Meldiron in #12212
- Feat: Public Proxy API by @Meldiron in #12208
- Big int by @ArnabChatterjee20k in #11673
- Feat: Variables API feature parity by @Meldiron in #12221
- Fix: OAuth OIDC param consistency by @Meldiron in #12224
- Fix: Refreshing non-oauth sessions by @Meldiron in #12228
- Chore/builds by @loks0n in #12229
- Realtime messsage dispatchers (presence api) by @ArnabChatterjee20k in #12210
- feat(migrations): add onDuplicate option to CSV/JSON/Appwrite imports by @premtsd-code in #11910
- Chore: Improve project GET tests by @Meldiron in #12234
- updated methods by @ArnabChatterjee20k in #12235
- updated by @ArnabChatterjee20k in #12238
- Fix: Email policies for console project by @Meldiron in #12239
- refactor: migrate queueForBuilds to publisherForBuilds pattern by @loks0n in #12236
- chore: pin github actions to sha and bump to latest by @abnegate in #12237
- Add cached response cache-control callback by @ChiragAgg5k in #12240
- Stop user-data errors leaking to Sentry from migrations worker (isPublishable) by @premtsd-code in #12226
- refactor: migrate to different ci runners by @levivannoort in #12241
- Enhance URL parameter handling in OpenAPI3 and Swagger2 formats to su… by @ArnabChatterjee20k in #12244
- feat: Add search and pagination for repository branches by @HarshMN2345 in #12243
- Bump logger dependency by @ChiragAgg5k in #12248
- perf(storage): skip no-op imagick transforms and add transform value spans by @TorstenDittmann in #12249
- fix: pass platform env vars to function schedulers by @abhay-dev2901 in #12219
- Fix GraphQL preview test assertions by @ChiragAgg5k in #12251
- fix: Support branch query validators in SDK generation by @HarshMN2345 in #12252
- Add codex plugin to SDKs by @adityaoberai in #12182
- Chore: Dual read for google oauth secret by @Meldiron in #12256
- Fix: Stateless git hints by @Meldiron in #12254
- Feat: Google OAuth2 "prompt" param by @Meldiron in #12263
- feat: bump utopia-php/abuse and utopia-php/migration to feat/sdk-23 branches by @premtsd-code in #12245
- refactor: enhance execution log checks in SitesCustomServerTest by @levivannoort in #12274
- Migrate mails and messaging queues to publishers by @ChiragAgg5k in #12246
- Fix: remove invalid event label from project delete action by @lohanidamodar in #12282
- fix(migrations): write _APP_MIGRATION_HOST in the installer-generated .env by @premtsd-code in #12280
- fix codex plugin by @atharvadeosthale in #12279
- Fix: scheduler doc missing for functions by @Meldiron in #12285
- Feat: Rework project response model by @Meldiron in #12276
- chore: pin TablesDB e2e to 8cpu runner by @abnegate in #12289
- Fix: Project SDK enum names by @Meldiron in #12290
- fix(messaging): remove redundant user fetch by @abnegate in #12273
- Fix: avatars tests by @Meldiron in #12292
- Migrate to utopia-php/http resources/context API by @loks0n in #12220
- Update SDK generator cover image config by @ChiragAgg5k in #12295
- feat(insights): add insights module with CTA framework by @abnegate in #12194
- Bump Utopia cache to 2.1 by @ChiragAgg5k in #12297
- chore: normalize Span keys and centralize span lifecycle by @loks0n in #12298
- refactor: Migrate queueForFunctions to FunctionPublisher and FunctionMessage by @ChiragAgg5k in #12299
- chore: bump utopia-php/audit to 2.3.x by @lohanidamodar in #12303
- Fail open on abuse timelimit failures by @ChiragAgg5k in #12284
- fix: match transactions collection name in deletes worker by @abnegate in #12302
- Fix: project specs navigation order by @HarshMN2345 in #12304
- Add platform migration support by @premtsd-code in #11439
- [codex] Delete orphaned proxy rules on create by @ChiragAgg5k in #12307
- refactor: Migrate queueForDeletes to DeletePublisher and DeleteMessage by @ChiragAgg5k in #12305
- Fix text response schemas in API specs by @ChiragAgg5k in #12312
- Feat/skip deployment commit patterns by @HarshMN2345 in #12278
- Update Utopia platform to rc2 by @ChiragAgg5k in #12315
- Refactor database queue publisher by @ChiragAgg5k in #12316
- Feat: Org scopes Console API by @Meldiron in #12317
- feat: add email template reset and get-default endpoints by @HarshMN2345 in #12318
- Fix parallel chunked uploads with pooled locks by @TorstenDittmann in #12209
- chore: bump utopia-php/cache to ^3.0 by @loks0n in #12326
- Add Unity SDK getting started docs by @ChiragAgg5k in #12330
- Delete executions order by by @fogelito in #12335
- Presence api by @ArnabChatterjee20k in #11886
- feat(sites): allow bun and deno as build runtimes for JS frameworks by @atharvadeosthale in #12337
- Consolidate shared DI resources by @ChiragAgg5k in #12332
- fix(health): use injected cache resource for healthcheck by @loks0n in #12341
- Remove router deployment fallback by @ChiragAgg5k in #12339
- added category to the presences scopes by @ArnabChatterjee20k in #12343
- feat(storage): expose sizeActual in File response model by @lohanidamodar in #12344
- fix: restrict advisor auth types by @abnegate in #12345
- feat: dedicated database by @abnegate in #12233
- Fix: subspan ending main request span by @Meldiron in #12353
- Fix account server specs auth by @ChiragAgg5k in #12356
- Fix generated spec endpoint and enum defaults by @ChiragAgg5k in #12357
- fix: allow empty string to clear optional SMTP and email template fields by @HarshMN2345 in #12348
- Fix SMTP empty sender regressions by @HarshMN2345 in #12361
- Feat: Public organization API by @Meldiron in #12309
- Feat: custom triggers for VCS builds by @HarshMN2345 in #11955
- chore: migrate to utopia-php/http feat-safe-wildcards by @loks0n in #12338
- Expose providerBranches and providerPaths in Function and Site response by @HarshMN2345 in #12373
- fix(project): cast smtpPort to int in response model by @premtsd-code in #12371
- Fix missing platform variables in SMTP test email template by @HarshMN2345 in #12374
- Fix: organization project API headers and queries by @HarshMN2345 in #12375
- chore: bump appwrite/php-runtimes to 0.20.1 by @lohanidamodar in #12378
- feat!: rename ACTIVITY_TYPE_, ROLE_APPS, isApp() to ACTOR_TYPE_, ROLE_KEYS, isKey() + bump utopia-php/audit to ^2.4 by @lohanidamodar in #12329
- Replace builds worker logs with span attributes by @ChiragAgg5k in #12376
- fix(uploads): reset queueForEvents on idempotent chunked-upload retry by @lohanidamodar in #12384
- skip subQueryTargets in users route by @fogelito in #12293
- Use platform enum metadata for SDK specs by @ChiragAgg5k in #12358
- Update SDK spec metadata generation by @ChiragAgg5k in #12392
- Usage test one attempt by @ArnabChatterjee20k in #12362
- Add presenceLogs collection to common configuration and update Presen… by @ArnabChatterjee20k in #12393
- Fix OAuth2 provider list ordering by @HarshMN2345 in #12398
- Refactor shared database resources by @ChiragAgg5k in #12349
- Fix Swagger enum keys metadata by @ChiragAgg5k in #12402
- fix(migrations): validate source URL host before DB fast path by @premtsd-code in #12382
- Tag migrations-worker Sentry events with source projectId and endpoint by @premtsd-code in #12390
- Update processing status migrations by @fogelito in #12352
- Update presence methods to clarify SDK authentication requirements by @ArnabChatterjee20k in #12397
- redded auth type jwt in the server specs by @ArnabChatterjee20k in #12408
- Refactor Presence to typed metadata property; drop additionalPropertiesKey hack + Swagger2 PHPStan unblock by @lohanidamodar in #12403
- fix: skip 4xx typed exceptions in VCS deployments instead of 500ing by @lohanidamodar in #12391
- Add console presence upsert and update test with real-time broadcast … by @ArnabChatterjee20k in #12412
- refactor: tighten internal validation paths by @abnegate in #12413
- disable array index create with schema by @fogelito in #12410
- fix(avatars): block redirect by @abnegate in #12411
- Wait for benchmark health check by @ChiragAgg5k in #12425
- Fix impossible function cron schedules by @ChiragAgg5k in #12416
- updated presence update method name by @ArnabChatterjee20k in #12426
- Update domains dependency to 2.2 by @ChiragAgg5k in #12428
- Removing execution logs by @ChiragAgg5k in #12421
- Fix public hostname DNS resolution in Swoole by @ChiragAgg5k in #12431
- Revert execution log removal by @ChiragAgg5k in #12433
- fix: correct prefixed SDK enum names introduced in PR #12358 by @HarshMN2345 in #12429
- Chore: Easy-to-override policies endpoints by @Meldiron in #12437
- Chore: Improve extensibility of policies tests by @Meldiron in #12438
- Revert template root directory path-stripping changes by @loks0n in #12450
- chore: trace database worker with Span::add instead of Console logging by @loks0n in #12452
- refactor: decompose the shared API shutdown hook + drop deprecated Route::getParamsValues() by @loks0n in #12455
- fix: reset queued event on non-final chunk in createFile by @lohanidamodar in #12456
- Update telemetry dependency stack by @ChiragAgg5k in #12459
- refactor: update embedding model and endpoint to use 'nomic' and 'app… by @ArnabChatterjee20k in #12427
- feat(messaging): add Amazon SES email provider by @abnegate in #12464
- Fix chunked upload resume without file read permission by @TorstenDittmann in #12466
- Add coroutine concurrency to queue workers by @loks0n in #12468
- perf(messaging): stream large-topic sends and bound fan-out concurrency by @abnegate in #12465
- Enable RunsOn OTEL for E2E jobs by @ChiragAgg5k in #12472
- Upgrade DB-IP Country Lite database to 2026-06 by @lohanidamodar in #12473
- Update Composer dependencies by @ChiragAgg5k in #12474
- Publish cloud tags to appwrite/ce image by @loks0n in #12480
- Add query project auth scheme to specs by @ChiragAgg5k in #12481
- Add project password policy settings by @TorstenDittmann in #11825
- (feat): add Unity SDK by @ChiragAgg5k in #12482
- Add API key migration support by @premtsd-code in #12308
- Add project variable migration support by @premtsd-code in #12313
- Add webhook migration support by @premtsd-code in #12314
- Pin to migration add-policies-migration (5 settings resources) by @premtsd-code in #12363
- Pin to migration add-smtp-migration by @premtsd-code in #12364
- Add Custom Domains migration by @premtsd-code in #12368
- Add Email Templates migration by @premtsd-code in #12415
- Tune PostgreSQL CI Flakeness by @premtsd-code in #12469
- Add OAuth providers migration by @premtsd-code in #12417
- Remove duplicate VectorsDB e2e tests by @ChiragAgg5k in #12491
- Remove php-retry from CI workflows by @ChiragAgg5k in #12493
- Revert "Remove php-retry from CI workflows" by @ChiragAgg5k in #12494
- Initialize Rector for PHPUnit tests by @ChiragAgg5k in #12495
- Upgrade utopia-php/queue to 0.20.0 by @loks0n in #12497
- Fix build log stream parsing warning by @ChiragAgg5k in #12498
- Fix flaky storage preview cache hit test by @ChiragAgg5k in #12501
- feat: expose userAccessedAt in membership responses by @HarshMN2345 in #12461
- Refactor OAuth2 provider tests by @ChiragAgg5k in #12502
- Feat: email metadata response model by @HarshMN2345 in #12504
- refactor(databases): extract createMetadataCollection helper by @abnegate in #12513
- feat: embed impersonateUserId in location-type SDK method URLs by @HarshMN2345 in #12492
- chore(span): upgrade utopia-php/span to 3.0 by @loks0n in #12514
- ci: drive e2e_service matrix from generated service config by @loks0n in #12515
- Bump appwrite/base to 1.4.2 by @loks0n in #12516
- Revert "feat: embed impersonateUserId in location-type SDK method URLs" by @HarshMN2345 in #12521
- Refactor Projects permission test coverage by @ChiragAgg5k in #12530
- Refactor Sites deployment test coverage by @ChiragAgg5k in #12531
- Fix create execution request content type by @ChiragAgg5k in #12533
- Fix create execution request type metadata by @ChiragAgg5k in #12534
- Fix function execution lint by @ChiragAgg5k in #12536
- Clean up expired OAuth2 grants by @ChiragAgg5k in #12538
- Fix flaky realtime tests by adjusting websocket connection parameters… by @ArnabChatterjee20k in #12540
- Revert "Revert "feat: embed impersonateUserId in location-type SDK method URLs"" by @HarshMN2345 in #12532
- Fix API spec metadata and summaries by @ChiragAgg5k in #12544
- fix: resolve code-scanning dependency CVEs (astro fixtures + appwrite/base 1.4.3) by @abnegate in #12546
- Fix project service config for PHP SDK services by @ChiragAgg5k in #12547
- Fix flaky site duplicate deployments by @ChiragAgg5k in #12539
- Clean scheduler orphan resourceId by @fogelito in #12512
- Fix flaky webhook and site deployment tests by @ChiragAgg5k in #12550
- Replace unstructured logging in screenshots worker with Span by @loks0n in #12551
- Add project path auth scheme to specs by @ChiragAgg5k in #12554
- Make webhooks worker coroutine-safe by @loks0n in #12552
- Fix MFA authenticator selection and add flow tests by @TorstenDittmann in #12485
- Fix generated spec lint warnings by @ChiragAgg5k in #12553
- feat: use server-side branch search via vcs by @HarshMN2345 in #12557
- chore(http): upgrade utopia-php/http to 2.0.0-rc5 by @loks0n in #12519
- feat: distributed locking for platform-database writes by @premtsd-code in #12062
- Fix lock unit test Redis connection by @premtsd-code in #12559
- Feat/corporate email policy by @HarshMN2345 in #12503
- Fix OpenAPI 3 spec generation parity with Swagger 2 by @ChiragAgg5k in #12564
- Generate SDKs and specs from OpenAPI 3 only by @ChiragAgg5k in #12565
- Fix builds worker overwriting canceled deployment status by @ChiragAgg5k in #12569
- Update Utopia platform and HTTP RCs by @ChiragAgg5k in #12570
- Fix parallel deployment chunk uploads on S3 devices by @ChiragAgg5k in #12574
- Fix race between rule creation and async orphaned rule cleanup by @ChiragAgg5k in #12571
- Accept multipart ETag signatures for chunked uploads on S3 devices by @ChiragAgg5k in #12585
- Update utopia-php/dns to ^1.8 by @ChiragAgg5k in #12586
- added null checks for projectIds by @ArnabChatterjee20k in #12567
- fix: preserve VCS repository record when providerRepositoryId is omitted in updateFunction/updateSite by @HarshMN2345 in #12589
- Update utopia-php/database to 5.9.2 by @ChiragAgg5k in #12587
- Add node modules cache key for builds by @TorstenDittmann in #12555
- Resolve data-plane database before writing collection metadata by @abnegate in #12593
- fix: disable build cache by @TorstenDittmann in #12602
- Add mails and messaging telemetry: send counters and span attributes by @ChiragAgg5k in #12590
- Expose ping in SDK specs by @ChiragAgg5k in #12604
- Run CI on merged PRs by @ChiragAgg5k in #12606
- fix: validate installation ownership on VCS attach by @HarshMN2345 in #12605
- chore: bump utopia-php/vcs to 4.2.3 by @HarshMN2345 in #12608
- fix: refine impersonation security scheme definitions by @ChiragAgg5k in #12610
- Add batch execution upserts by @ChiragAgg5k in #12611
- Fix legacy database SDK deprecation metadata by @ChiragAgg5k in #12615
- Revert disable build cache by @TorstenDittmann in #12612
- refactor(database): drop Swoole PDOProxy, construct Utopia\Database\PDO directly by @abnegate in #12616
- Handle missing resource token collection by @ChiragAgg5k in #12625
- fix(databases): return 404 for a wrong-type database id on product-DB APIs by @abnegate in #12626
- Fix local installer dev flow by @ChiragAgg5k in #12627
- Improve CI image handoff and merged-run behavior by @ChiragAgg5k in #12629
- fix(audits): use span attributes instead of per-message Console logging by @loks0n in #12631
- fix(deletes): run execution-limit cleanup sequentially to avoid shared-connection crash by @loks0n in #12639
- (test): report true per-test duration and de-duplicate variable build tests by @ChiragAgg5k in #12637
- chore(deps): allow utopia-php/audit 2.6.* by @lohanidamodar in #12641
- Bump utopia auth to 0.6 by @ChiragAgg5k in #12642
- Fix project OAuth provider sparse update by @ChiragAgg5k in #12646
- Update php-retry action to v4 by @ChiragAgg5k in #12647
- Bump utopia-php/auth to ^0.7 by @ChiragAgg5k in #12651
- feat(messaging): attach project ID to internal SMS for provider attribution by @ChiragAgg5k in #12653
- fix: purge project cache after config updates by @ChiragAgg5k in #12654
- 1.9.5 release updates by @ChiragAgg5k in #12666
New Contributors
- @blueberry-adii made their first contribution in #11794
- @bhardwajparth51 made their first contribution in #11762
- @rathi-yash made their first contribution in #11795
- @FerRubioMorales made their first contribution in #12189
- @abhay-dev2901 made their first contribution in #12219
Full Changelog: 1.9.0...1.9.5-rc.1
Source: original entry ↗
More from Appwrite
Follow Appwrite to get its new changes in your feed and email digest.
GitHub stars tracking and visualization
Added GitHub stars tracking and visualization capabilities to the console, allowing users to monitor and display repository star metrics within Appwrite's management interface.
Console 1.2.60: Project Analytics Routes, Settings, and Live Visitor
Added project analytics routes, settings configuration, and live visitor tracking to the Appwrite Console for better visibility into project performance and user activity.
Console 1.2.59 with 1.9.7 changelog and 2.4 security upgrade
Console version 1.2.59 includes the full changelog from version 1.9.7 and notes for upgrading to version 2.4 with security improvements.