Announcement1.9.5-rc.1
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
releasebug-fixesfeaturessecurityperformance
Source: original entry ↗