Skip to content

feat: PHP SDK update for version 31.0.0 - #95

Merged
ChiragAgg5k merged 8 commits into
mainfrom
dev
Oct 15, 2026
Merged

ChiragAgg5k merged 8 commits into
mainfrom
dev

Conversation

@ChiragAgg5k

@ChiragAgg5k ChiragAgg5k commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

This PR contains updates to the SDK for version 31.0.0.

What's Changed

  • Breaking: requests send X-Appwrite-Response-Format: 2.5.0; responses follow the 2.5 shapes
  • Breaking: removed Account::listLogs, Users::listLogs and the Log/LogList models
  • Breaking: removed Organization::createKey, getKey, listKeys, updateKey and deleteKey, and OrganizationKeyScopes; use Organization::listProjectKeys, getProjectKey, updateProjectKey and deleteProjectKey instead
  • Breaking: removed Client::setDevKey, the DevKey model and Project::$devKeys
  • Breaking: removed BillingPlanGroup::STARTER(); use BillingPlanGroup::FREE()
  • Breaking: listSpecifications returns each specification's prices and overage rates on the row itself. Removed the list-level $pricing field and the DedicatedDatabaseSpecificationPricing model
  • Breaking: removed Block fields reason, projectName, region, organizationName, organizationId and billingPlan
  • Breaking: OAuth2 resource params now take ?array
  • Breaking: Project::updateOAuth2Kakao takes $enabled before $prompt
  • Breaking: BackupRestoration::$options is now an array
  • Breaking: some response fields became nullable, such as BillingPlan::$usage and DedicatedDatabase::$engine
  • Breaking: the protected Client::flatten is renamed flattenForm; subclasses that override it must rename it
  • Added: Topic helper to build MQTT topics for push messages
  • Added: Mongo, Mysql and Postgresql promoteRestoration, $restoreMode, $targetName and $autoPromote on createRestoration, and DedicatedDatabaseRestoration::$restoreMode
  • Added: Proxy::createSMTPRule, the ProxyRuleProtocol enum and ProxyRule::$protocol
  • Added: $emailEnabled on Functions::update and FunctionModel, and ExecutionTrigger::EMAIL()
  • Added: Query aggregates (count, countDistinct, sum, avg, min, max and more), groupBy, having, distinct, joins, relationship, covers, spatialEquals and page
  • Added: Query::builder() to chain queries; build() returns the query list
  • Fixed: OAuth2 models wrap a single prompt value in a list

@hansi-codes

hansi-codes Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

馃數 Tier A 路 Mergeable after minor fixes

The new scalar OAuth2 prompt hydration behavior is not covered by the existing list-shaped fixtures.

Updates the PHP SDK to target Appwrite 2.5 response shapes and adds support for the new query, restoration, SMTP-rule, and email-trigger APIs. It also adds optional PSR-18 transport injection and updates the corresponding models, tests, and documentation.

167 of 290 changed files were too large to include in full.

Verdict New comments Fixed Still open
馃挰 Commented 1 0 0

Note

Part of the diff was too large to review, so Hansi did not approve.

Finding Where
馃煛 Add coverage for a scalar OAuth2 prompt response src/Appwrite/Models/OAuth2Kakao.php:59
Fix with agent prompt
### Issue 1
src/Appwrite/Models/OAuth2Kakao.php:59
**Add coverage for a scalar OAuth2 prompt response**

This new branch handles a scalar `prompt`, but the existing OAuth2 fixtures still provide prompt values as lists. A scalar-response regression would therefore go unnoticed; please add a fixture that verifies it hydrates to a one-item prompt list.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
馃搨 Walkthrough 路 6
File Change
src/Appwrite/Client.php Updates the response-format header, adds PSR-18 transport injection, and converts Query and Builder values in request parameters.
src/Appwrite/Query.php and src/Appwrite/Query/Builder.php Adds aggregate, grouping, join, spatial, paging, and fluent query-builder helpers.
src/Appwrite/Services/* Updates generated service methods for Appwrite 2.5, including restoration promotion, SMTP rules, and function email triggers.
src/Appwrite/Models/* and src/Appwrite/Enums/* Refreshes response models and enums for the new fields, nullable values, and response shapes.
tests/Appwrite/* Updates service and client tests for the new SDK behavior.
docs/*, README.md, CHANGELOG.md, composer.json, .gitignore Refreshes SDK usage guidance, API reference examples, release notes, and dependency/configuration metadata.

Reviewed b9a4169 路 Details 路 Comment @hansi-codes review to re-run, or mention @hansi-codes with a question.

@hansi-codes hansi-codes Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

馃數 Tier A 路 See the inline comments. Summary

Comment thread docs/examples/databases/create-documents.md Outdated
@ChiragAgg5k ChiragAgg5k changed the title feat: PHP SDK update for version 31.0.0 feat: SDK update for version 31.0.0 Oct 14, 2026
@ChiragAgg5k ChiragAgg5k changed the title feat: SDK update for version 31.0.0 feat: PHP SDK update for version 31.0.0 Oct 14, 2026

@hansi-codes hansi-codes Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

馃數 Tier A 路 Looks good to merge. Summary

@hansi-codes hansi-codes Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

馃煝 Tier S 路 Looks good to merge. Summary

@ChiragAgg5k

Copy link
Copy Markdown
Member Author

@hansi-codes review

@hansi-codes hansi-codes Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

馃煝 Tier S 路 Looks good to merge. Summary

@ChiragAgg5k

Copy link
Copy Markdown
Member Author

@hansi-codes review

@hansi-codes hansi-codes Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

馃數 Tier A 路 See the inline comments. Summary

$data['prompt']
)
: $data['prompt']
: [static::hydrateTypedValue(OAuth2KakaoPrompt::class, $data['prompt'])]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Add coverage for a scalar OAuth2 prompt response

This new branch handles a scalar prompt, but the existing OAuth2 fixtures still provide prompt values as lists. A scalar-response regression would therefore go unnoticed; please add a fixture that verifies it hydrates to a one-item prompt list.

Prompt To Fix With AI
This is a comment left during a code review.
Path: src/Appwrite/Models/OAuth2Kakao.php
Line: 59

Comment:
**Add coverage for a scalar OAuth2 prompt response**

This new branch handles a scalar `prompt`, but the existing OAuth2 fixtures still provide prompt values as lists. A scalar-response regression would therefore go unnoticed; please add a fixture that verifies it hydrates to a one-item prompt list.

---

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

馃煛 Minor 路 testing 路 Reply if this doesn't apply.

@ChiragAgg5k
ChiragAgg5k merged commit 2e38efd into main Oct 15, 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.

1 participant