Skip to content

feat: Web SDK update for version 29.0.0 - #190

Open
ChiragAgg5k wants to merge 9 commits into
mainfrom
dev
Open

ChiragAgg5k wants to merge 9 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 29.0.0.

What's Changed

  • Breaking: requests send X-Appwrite-Response-Format: 2.5.0; responses follow the 2.5 shapes
  • Breaking: missing response fields are filled with their documented defaults
  • Breaking: oauth2 resource params now take string[] on authorize, authorizePost, createDeviceAuthorization, createPAR and createToken
  • Breaking: nullable model fields are typed T | null, such as Locale.city, Presence.status and Execution.scheduledAt
  • Added: Push service with subscribe, unsubscribe, onNotificationOpened and close for web push
  • Added: Topic helper
  • 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; realtime subscriptions accept a builder for queries
  • Added: ExecutionTrigger.Email
  • Updated: nullable request params accept null, such as account.createEmailPasswordSession duration
  • Fixed: list and object defaults filled into a response are copied per model, and object defaults are {} instead of []

Also in this diff

main was behind the release tags, which were cut from release branches. This PR brings it up to date, so the diff also contains these already-released versions:

28.2.0

  • Added: account passkey methods listPasskeys, createPasskey, getPasskey, updatePasskey, deletePasskey and updatePasskeyVerification
  • Added: account.createPasskeyToken and account.updatePasskeyToken for passkey sign-in
  • Added: Passkey, PasskeyList, PasskeyChallenge and TokenSecret models

28.3.0

  • Added: analytics.createEvent in a new Analytics service to send tracking events
  • Added: Tracking helper that auto-tracks pageviews, outbound links, downloads, scroll depth and engagement time
  • Added: avatars.updatePhoto and avatars.deletePhoto to manage the user's custom profile photo, and the Account model
  • Added: Webflow to the OAuthProvider enum
  • Added: optional state on account.createOAuth2Session and account.createOAuth2Token, returned unchanged on the success and failure URLs
  • Added: optional duration on account.createEmailPasswordSession to set the session length
  • Added: optional current on account.deleteSessions to keep the current session signed in
  • Added: optional membershipId on teams.createMembership
  • Added: optional total on account.listSessions, the locale list methods and listTransactions

@ChiragAgg5k ChiragAgg5k changed the title feat: Web SDK update for version 29.0.0 feat: SDK update for version 29.0.0 Oct 14, 2026
@hansi-codes

hansi-codes Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

馃數 Tier A 路 Mergeable after minor fixes

The only finding is a minor documentation example that sends an invalid WebAuthn credential.

This release updates the Web SDK for Appwrite 2.5 and adds passkey, push, and expanded query APIs, along with nullable model types and response defaults. It also updates the package version and refreshes the README and endpoint examples for the new SDK release.

14 of 43 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
馃煛 Passkey verification example uses an invalid credential docs/examples/account/update-passkey-verification.md:12
Fix with agent prompt
### Issue 1
docs/examples/account/update-passkey-verification.md:12
**Passkey verification example uses an invalid credential**

This sends `{}` as the WebAuthn credential, but `updatePasskeyVerification` requires the JSON result of `PublicKeyCredential.toJSON()`; running this example fails API validation instead of completing registration. The `update-passkey-token.md` example uses the same empty credential placeholder.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
馃搨 Walkthrough 路 5
File Change
CHANGELOG.md, README.md, package.json, package-lock.json Document the 29.0 release, refresh SDK guidance, and bump the package version.
docs/examples/** Add passkey examples and update OAuth, analytics, and team request examples.
src/client.ts, src/query.ts Update request headers and query handling, add query builders, and apply response defaults.
src/services/** Add or update service endpoints, nullable request parameters, and response-default mappings.
src/models.ts, src/enums/**, src/index.ts, src/topic.ts Update exported SDK types, enums, and helpers for the new release.

Reviewed 5ae708b 路 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 src/client.ts
@ChiragAgg5k ChiragAgg5k changed the title feat: SDK update for version 29.0.0 feat: Web SDK update for version 29.0.0 Oct 14, 2026
@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

@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


const result = await account.updatePasskeyVerification({
passkeyId: '<PASSKEY_ID>',
credential: {},

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Passkey verification example uses an invalid credential

This sends {} as the WebAuthn credential, but updatePasskeyVerification requires the JSON result of PublicKeyCredential.toJSON(); running this example fails API validation instead of completing registration. The update-passkey-token.md example uses the same empty credential placeholder.

Prompt To Fix With AI
This is a comment left during a code review.
Path: docs/examples/account/update-passkey-verification.md
Line: 12

Comment:
**Passkey verification example uses an invalid credential**

This sends `{}` as the WebAuthn credential, but `updatePasskeyVerification` requires the JSON result of `PublicKeyCredential.toJSON()`; running this example fails API validation instead of completing registration. The `update-passkey-token.md` example uses the same empty credential placeholder.

---

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

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

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