Skip to content

feat: SDK update for version 28.0.0 - #83

Merged
ChiragAgg5k merged 8 commits into
mainfrom
dev
Aug 14, 2026
Merged

feat: SDK update for version 28.0.0#83
ChiragAgg5k merged 8 commits into
mainfrom
dev

Conversation

@ChiragAgg5k

@ChiragAgg5k ChiragAgg5k commented Aug 14, 2026

Copy link
Copy Markdown
Member

This PR contains updates to the SDK for version 28.0.0.

What's Changed

  • Breaking: removed account.createJWT; use users.createJWT instead. A leaked JWT could mint further JWTs, letting a credential outlive its own expiry — a session cannot duplicate itself to live forever either
  • Breaking: removed project.createKey. A leaked key could mint further hidden keys, making a compromise far harder to contain and revoke
  • Breaking: activities.listEvents queries now takes an array instead of a string
  • Added: embeddings service with createTextEmbeddings, plus the EmbeddingModel enum
  • Added: TablesDB migration methods listMigrations, createMigration, getMigration, deleteMigration, cutoverMigration, and listOperations
  • Added: proxy.createInvalidation for purging cached edge responses, plus the InvalidationType enum
  • Added: apps.deleteInstallation
  • Added: users.getMFAChallenge and the MfaChallengeSecret model
  • Added: project.updateMFAFactorsPolicy and the PolicyMfaFactors model
  • Added: client.setOrganization for organization-scoped requests
  • Added: folder parameter to storage.createFile
  • Added: syncMode parameter to tablesDB.create and tablesDB.update, and specification to tablesDB.update
  • Added: installationScopes parameter to project.updateOAuth2Server
  • Added: custom authentication factor, node-26 runtime, mfa-factors project policy, and the embeddings.write and proxy.invalidations.write key scopes
  • Updated: response format to 1.9.6

@greptile-apps

greptile-apps Bot commented Aug 14, 2026

Copy link
Copy Markdown

Greptile Summary

The PR updates the PHP SDK for Appwrite 1.9.6/SDK 28.0.0, adding new services, endpoints, models, enums, request parameters, tests, and generated documentation.

  • Adds embeddings, proxy invalidation, database migration, installation-management, MFA, and policy APIs.
  • Updates generated models and enums for the revised API response format.
  • Adds virtual-folder support to storage file creation and metadata.

Confidence Score: 4/5

The PR is not yet safe to merge because the changed createFile() signature breaks existing positional progress-callback calls.

Existing callers can pass an upload callback as the fifth positional argument, but the new signature binds that value to the nullable string folder parameter and throws a TypeError before uploading.

Files Needing Attention: src/Appwrite/Services/Storage.php

Important Files Changed

Filename Overview
src/Appwrite/Services/Storage.php Adds the file-folder request parameter, but its position before the existing progress callback remains backward-incompatible for positional callers.
src/Appwrite/Models/File.php Extends file response hydration with folder and key metadata.
src/Appwrite/Client.php Adds organization-scoped request configuration and updates the SDK response-format version.
src/Appwrite/Services/Embeddings.php Introduces the generated text-embeddings service endpoint.
src/Appwrite/Services/TablesDB.php Adds database migration operations and new database creation/update parameters.
src/Appwrite/Services/Proxy.php Introduces the generated cache-invalidation endpoint.
tests/Appwrite/Services/StorageTest.php Updates file fixtures for folder metadata but does not establish compatibility for the existing positional progress-callback argument.

Reviews (4): Last reviewed commit: "chore: merge main into dev for the relea..." | Re-trigger Greptile

* @return \Appwrite\Models\File
*/
public function createFile(string $bucketId, string $fileId, InputFile $file, ?array $permissions = null, ?callable $onProgress = null): \Appwrite\Models\File
public function createFile(string $bucketId, string $fileId, InputFile $file, ?array $permissions = null, ?string $folder = null, ?callable $onProgress = null): \Appwrite\Models\File

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Progress callback position is broken

When an existing caller passes an upload progress callback as the fifth positional argument to createFile(), the changed signature binds it to the new ?string $folder parameter, causing a TypeError before the upload request is sent.

Prompt To Fix With AI
This is a comment left during a code review.
Path: src/Appwrite/Services/Storage.php
Line: 387

Comment:
**Progress callback position is broken**

When an existing caller passes an upload progress callback as the fifth positional argument to `createFile()`, the changed signature binds it to the new `?string $folder` parameter, causing a `TypeError` before the upload request is sent.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Claude Code Fix in Codex

@ChiragAgg5k ChiragAgg5k changed the title feat: PHP SDK update for version 28.0.0 feat: SDK update for version 28.0.0 Aug 14, 2026
@ChiragAgg5k ChiragAgg5k changed the title feat: SDK update for version 28.0.0 feat: PHP SDK update for version 28.0.0 Aug 14, 2026
@ChiragAgg5k ChiragAgg5k changed the title feat: PHP SDK update for version 28.0.0 feat: SDK update for version 28.0.0 Aug 14, 2026
@ChiragAgg5k
ChiragAgg5k merged commit ef522fd into main Aug 14, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants