Skip to content

feat: Web SDK update for version 29.0.0 - #190

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

ChiragAgg5k merged 11 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

Limited by an open minor finding: Passkey verification example uses an invalid credential

Updates the Web SDK to version 29.0.0 for Appwrite 2.5 response formats, adds response defaults and nullable model/request typing, and expands the Query API. The update also changes account and database examples and adds web push and Topic functionality.

14 of 43 changed files were too large to include in full.

Verdict New comments Fixed Still open
💬 Commented 0 0 1

Note

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

Couldn't attach to a line

These findings could not be placed on a changed line, so they were not posted as inline comments.

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 · 6
File Change
CHANGELOG.md, README.md Document SDK 29.0.0 and update installation and API examples.
docs/examples/account/*, docs/examples/analytics/*, docs/examples/oauth2/*, docs/examples/teams/* Update examples for passkeys and the revised analytics, OAuth, and membership parameters.
package.json, package-lock.json Bump the package version to 29.0.0.
src/client.ts, src/index.ts, src/query.ts, src/models.ts, src/enums/execution-trigger.ts Add response defaulting, query-builder support, revised exports and model types, and the email execution trigger.
src/services/* Update service endpoints and response defaults, add tracking and push behavior, and revise request types.
src/topic.ts Provide the Topic helper for constructing push topics.
⏳ Still open from earlier reviews · 1

Reviewed 03267bc · 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.

@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

@ChiragAgg5k
ChiragAgg5k merged commit af41861 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