feat: SDK update for version 28.0.0 - #83
Conversation
Greptile SummaryThe 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.
Confidence Score: 4/5The PR is not yet safe to merge because the changed 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
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 |
There was a problem hiding this 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.
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.
This PR contains updates to the SDK for version 28.0.0.
What's Changed
account.createJWT; useusers.createJWTinstead. A leaked JWT could mint further JWTs, letting a credential outlive its own expiry — a session cannot duplicate itself to live forever eitherproject.createKey. A leaked key could mint further hidden keys, making a compromise far harder to contain and revokeactivities.listEventsqueriesnow takes an array instead of a stringembeddingsservice withcreateTextEmbeddings, plus theEmbeddingModelenumlistMigrations,createMigration,getMigration,deleteMigration,cutoverMigration, andlistOperationsproxy.createInvalidationfor purging cached edge responses, plus theInvalidationTypeenumapps.deleteInstallationusers.getMFAChallengeand theMfaChallengeSecretmodelproject.updateMFAFactorsPolicyand thePolicyMfaFactorsmodelclient.setOrganizationfor organization-scoped requestsfolderparameter tostorage.createFilesyncModeparameter totablesDB.createandtablesDB.update, andspecificationtotablesDB.updateinstallationScopesparameter toproject.updateOAuth2Servercustomauthentication factor,node-26runtime,mfa-factorsproject policy, and theembeddings.writeandproxy.invalidations.writekey scopes1.9.6