Skip to content

feat: SDK update for version 30.0.0 - #86

Merged
loks0n merged 1 commit into
mainfrom
dev
Sep 2, 2026
Merged

feat: SDK update for version 30.0.0#86
loks0n merged 1 commit into
mainfrom
dev

Conversation

@ChiragAgg5k

@ChiragAgg5k ChiragAgg5k commented Sep 2, 2026

Copy link
Copy Markdown
Member

This PR contains updates to the SDK for version 30.0.0.

What's Changed

  • Stable release of the dedicated database APIs: mysql, postgresql, mongo, documentsDB, and vectorsDB services, previously released as release candidates
  • Breaking: tablesDB.cutoverMigration is renamed to tablesDB.createCutover
  • Added: Cloudflare and Resend OAuth providers
  • Added: usageAggregateOnlyMetrics on the BillingPlan model
  • Fixed: transactionId is accepted again by documentsDB and vectorsDB createDocument and createDocuments
  • Updated: X-Appwrite-Response-Format is now 2.0.0
  • Updated: FrameworkAdapter.fallbackFile is now optional

@greptile-apps

greptile-apps Bot commented Sep 2, 2026

Copy link
Copy Markdown

Greptile Summary

This release updates the PHP SDK to Appwrite API response format 2.0.0 and promotes the dedicated database APIs to their stable surface.

  • Adds Cloudflare and Resend OAuth provider support and related models and enums.
  • Restores transaction IDs for DocumentsDB and VectorsDB create operations.
  • Renames the TablesDB cutover operation and updates dedicated-database credential rotation to return an asynchronous operation.
  • Updates generated models, documentation, examples, and service tests.

Confidence Score: 4/5

The nullable credential-generation state must be handled before merging because valid dedicated-database responses can otherwise fail model hydration.

DedicatedDatabase documents credentialGeneration as null before initialization but passes it into a required int constructor parameter, causing a TypeError on that valid lifecycle state.

Files Needing Attention: src/Appwrite/Models/DedicatedDatabase.php

Important Files Changed

Filename Overview
src/Appwrite/Models/DedicatedDatabase.php Adds credentialGeneration, but models it as non-null despite documenting a valid null lifecycle state.
src/Appwrite/Services/DocumentsDB.php Adds optional transaction IDs to single and bulk document creation using the established request mapping.
src/Appwrite/Services/VectorsDB.php Adds optional transaction IDs to vector document creation consistently with existing transaction-aware operations.
src/Appwrite/Services/Project.php Adds Cloudflare and Resend OAuth update endpoints and provider-response dispatch.
src/Appwrite/Services/TablesDB.php Renames the migration cutover method and updates it to the new plural endpoint.
src/Appwrite/Services/Mongo.php Updates credential rotation to hydrate and return an asynchronous database operation.
src/Appwrite/Services/Mysql.php Updates credential rotation to hydrate and return an asynchronous database operation.
src/Appwrite/Services/Postgresql.php Updates credential rotation to hydrate and return an asynchronous database operation.

Fix all with Greploop Fix All in Claude Code Fix All in Codex

Prompt To Fix All With AI
### Issue 1
src/Appwrite/Models/DedicatedDatabase.php:84
**Credential generation rejects null state**

If a dedicated database has not initialized its credential-rotation contract, the API can return a null `credentialGeneration`, but this property requires an `int` and hydration passes the value directly to it, causing a `TypeError` instead of returning the database model.

---

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

Reviews (1): Last reviewed commit: "chore: update PHP SDK to 30.0.0" | Re-trigger Greptile

public int $connectionPort,
public string $connectionUser,
public string $connectionPassword,
public int $credentialGeneration,

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 Credential generation rejects null state

If a dedicated database has not initialized its credential-rotation contract, the API can return a null credentialGeneration, but this property requires an int and hydration passes the value directly to it, causing a TypeError instead of returning the database model.

Knowledge Base Used: Typed model serialization

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

Comment:
**Credential generation rejects null state**

If a dedicated database has not initialized its credential-rotation contract, the API can return a null `credentialGeneration`, but this property requires an `int` and hydration passes the value directly to it, causing a `TypeError` instead of returning the database model.

**Knowledge Base Used:** [Typed model serialization](https://app.greptile.com/appwrite/-/custom-context/knowledge-base/appwrite/sdk-for-php/-/docs/typed-model-serialization.md)

---

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 30.0.0 feat: SDK update for version 30.0.0 Sep 2, 2026

@loks0n loks0n left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Release PR reviewed.

@loks0n
loks0n merged commit 8a7b90c into main Sep 2, 2026
2 checks 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