Skip to content

feat: Android SDK update for version 30.0.0 - #140

Closed
ChiragAgg5k wants to merge 2 commits into
mainfrom
dev
Closed

ChiragAgg5k wants to merge 2 commits into
mainfrom
dev

Conversation

@ChiragAgg5k

Copy link
Copy Markdown
Member

This PR contains updates to the Android SDK for version 30.0.0.

@hansi-codes

hansi-codes Bot commented Oct 12, 2026

Copy link
Copy Markdown

馃數 Tier A 路 Mergeable after minor fixes

The OAuth state value is interpolated into an unescaped query string, which breaks valid state values containing reserved characters.

Updates the Android SDK to Appwrite API 2.4 and SDK version 30.0.0, adding passkey and analytics endpoints and updating OAuth2 and team membership APIs. It also adds model defaults for omitted response fields and refreshes the corresponding examples and release documentation.

1 of 122 changed files was 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: Encode OAuth state before adding it to the URL

Finding Where
馃煛 Encode OAuth state before adding it to the URL library/src/main/java/io/appwrite/services/Account.kt:2018
Fix with agent prompt
### Issue 1
library/src/main/java/io/appwrite/services/Account.kt:2018
**Encode OAuth state before adding it to the URL**

Both OAuth helpers interpolate their parameters directly into the query string (here and in `createOAuth2Token`), while `state` allows printable ASCII. A state containing `&` or `#` is parsed as another query parameter or a fragment, so the server receives a different state and callback verification fails; construct the URL with properly encoded query parameters.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
馃搨 Walkthrough 路 8
File Change
CHANGELOG.md, README.md Documents the 30.0.0 release and Appwrite 2.4 target.
docs/examples/java/**, docs/examples/kotlin/** Adds passkey and analytics examples and updates OAuth2 and membership calls.
library/src/main/java/io/appwrite/Client.kt Updates SDK and response-format headers.
library/src/main/java/io/appwrite/models/*.kt Adds passkey models and defaults for omitted response fields.
library/src/main/java/io/appwrite/services/Account.kt Adds passkey endpoints and OAuth state parameters.
library/src/main/java/io/appwrite/services/Analytics.kt Adds analytics event creation.
library/src/main/java/io/appwrite/services/Oauth2.kt Changes resource indicators from a string to a list.
library/src/main/java/io/appwrite/services/Teams.kt Adds the optional membership ID to membership creation.

Reviewed e13ada9 路 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

"success" to success,
"failure" to failure,
"scopes" to scopes,
"state" to state,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Encode OAuth state before adding it to the URL

Both OAuth helpers interpolate their parameters directly into the query string (here and in createOAuth2Token), while state allows printable ASCII. A state containing & or # is parsed as another query parameter or a fragment, so the server receives a different state and callback verification fails; construct the URL with properly encoded query parameters.

Prompt To Fix With AI
This is a comment left during a code review.
Path: library/src/main/java/io/appwrite/services/Account.kt
Line: 2018

Comment:
**Encode OAuth state before adding it to the URL**

Both OAuth helpers interpolate their parameters directly into the query string (here and in `createOAuth2Token`), while `state` allows printable ASCII. A state containing `&` or `#` is parsed as another query parameter or a fragment, so the server receives a different state and callback verification fails; construct the URL with properly encoded query parameters.

---

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

Copy link
Copy Markdown
Member Author

Superseded: replaced by a passkeys-only minor release.

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