Skip to content

feat: React Native SDK update for version 2.0.0 - #126

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 2.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: nullable model fields are typed T | null, such as Locale.city and Presence.status
  • Breaking: the package ships native Android and iOS modules, so apps need a native rebuild and do not run in Expo Go
  • Added: Apps service to manage apps, installations, keys and secrets
  • Added: Oauth2 service for the OAuth2 authorize, token, device and grant flows
  • Added: Push service, with optional peers expo-notifications, react-native-background-actions and react-native-tcp-socket
  • Added: Topic helper
  • Added: Android push code ships under io.appwrite.reactnative, so apps can also depend on sdk-for-android; set the notification icon with the io.appwrite.reactnative.push.notification_icon meta-data
  • 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
  • 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:

1.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

1.3.0

  • Added: analytics.createEvent in a new Analytics service to send tracking events
  • 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: React Native SDK update for version 2.0.0 feat: SDK update for version 2.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 build succeeds, but the released Topic wildcard-builder API is removed without being listed as a breaking change.

This release updates the React Native SDK for Appwrite 2.5 response shapes, adds response defaults and nullable model types, and introduces expanded query, OAuth2, analytics, app-management, and passkey APIs. It also packages native push modules and updates push notification handling and status reporting.

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

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

Note

Not approving while a bug finding is open: Keep the released Topic wildcard builder methods

Finding Where
馃煛 Keep the released Topic wildcard builder methods src/topic.ts:58
Fix with agent prompt
### Issue 1
src/topic.ts:58-63
**Keep the released Topic wildcard builder methods**

The released 1.2.0-rc.4 helper exposed `Topic.any()`, `Topic.all()`, and `ResolvedTopic`; this revision rejects `+`/`#` levels and removes those methods. Existing users building MQTT wildcard filters with `Topic` now fail to compile or can no longer construct those filters, and this API removal is not among the listed breaking changes.

---

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 2.0.0 release, refresh usage examples and server compatibility, and bump package metadata.
src/client.ts, src/models.ts, src/query.ts, src/index.ts, src/enums/execution-trigger.ts Add response default filling, nullable and new model types, query aggregates/builders, and exports.
src/services/*, src/topic.ts Update service APIs and response handling, add analytics and push/OAuth2 functionality, and revise topic helpers.
android/**, ios/**, react-native-appwrite.podspec, react-native.config.js Ship native modules, update Android package names and push status/notification behavior, and configure autolinking.
docs/examples/** Add passkey and analytics examples and update OAuth2 and membership examples.

Reviewed 72752a0 路 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/services/analytics.ts
@ChiragAgg5k ChiragAgg5k changed the title feat: SDK update for version 2.0.0 feat: React Native SDK update for version 2.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 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

Comment thread src/topic.ts
Comment on lines 58 to 63
/** Append the given levels. */
path(levels: string[]): Topic {
return new Topic([...this.levels, ...levelsOf(levels)]);
}

/** Append a single-level wildcard (`+`): matches exactly one level. */
any(): Topic {
return new Topic([...this.levels, '+']);
}

/** Append the multi-level wildcard (`#`) and end the topic. */
all(): ResolvedTopic {
return new ResolvedTopic([...this.levels, '#']);
}

toString(): string {
return this.levels.join('/');
}
}

/** A topic ended by `all()`: nothing can be appended after the `#` wildcard. */
export class ResolvedTopic {
/** @internal Created by {@link Topic.all}. */
constructor(private readonly levels: readonly string[]) {}

toString(): string {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Keep the released Topic wildcard builder methods

The released 1.2.0-rc.4 helper exposed Topic.any(), Topic.all(), and ResolvedTopic; this revision rejects +/# levels and removes those methods. Existing users building MQTT wildcard filters with Topic now fail to compile or can no longer construct those filters, and this API removal is not among the listed breaking changes.

Prompt To Fix With AI
This is a comment left during a code review.
Path: src/topic.ts
Line: 58-63

Comment:
**Keep the released Topic wildcard builder methods**

The released 1.2.0-rc.4 helper exposed `Topic.any()`, `Topic.all()`, and `ResolvedTopic`; this revision rejects `+`/`#` levels and removes those methods. Existing users building MQTT wildcard filters with `Topic` now fail to compile or can no longer construct those filters, and this API removal is not among the listed breaking changes.

---

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

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

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