Skip to content

feat: SDK update for version 0.4.0#4

Merged
ArnabChatterjee20k merged 3 commits into
mainfrom
dev
Jun 25, 2026
Merged

feat: SDK update for version 0.4.0#4
ArnabChatterjee20k merged 3 commits into
mainfrom
dev

Conversation

@ArnabChatterjee20k

@ArnabChatterjee20k ArnabChatterjee20k commented Jun 24, 2026

Copy link
Copy Markdown
Member

This PR contains updates to the SDK for version 0.4.0.

What's Changed

  • Added: Realtime connections now send an x-appwrite-jwt header for authentication.

@ArnabChatterjee20k ArnabChatterjee20k changed the title feat: Unity SDK update for version 0.4.0 feat: SDK update for version 0.4.0 Jun 24, 2026
@greptile-apps

greptile-apps Bot commented Jun 24, 2026

Copy link
Copy Markdown

Greptile Summary

This PR bumps the Unity SDK to version 0.4.0, adding JWT authentication headers to Realtime WebSocket connections and marking the Databases transaction methods as deprecated in favour of TablesDB.

  • Realtime JWT: CreateSocket() now reads the jwt key from client config and forwards it as x-appwrite-jwt on the WebSocket upgrade handshake; headers are rebuilt on every reconnect, so token rotation is handled correctly.
  • Databases deprecation: Six transaction/operations methods are tagged [Obsolete], but all six messages cite camelCase replacements (e.g. TablesDB.listTransactions) that don't exist in C# — the actual TablesDB methods are PascalCase (ListTransactions, CreateTransaction, etc.), so the guidance will send developers on a dead-end search.
  • Version bookkeeping: package.json, Client.cs headers, and README.md are all consistently updated to 0.4.0; the Ping() method's header is corrected from content-type to accept for a GET request.

Confidence Score: 4/5

Safe to merge after correcting the deprecation messages in Databases.cs — the Realtime and Client changes are straightforward and correct.

Every [Obsolete] message added in this PR points developers to a camelCase method name that does not exist in C#; all six replacement references should be PascalCase to match the actual TablesDB API. This will actively mislead any consumer who follows the deprecation guidance.

Runtime/Core/Services/Databases.cs — all six [Obsolete] attribute strings need their method name casing fixed.

Important Files Changed

Filename Overview
Runtime/Core/Services/Databases.cs Adds [Obsolete] deprecation attributes to all six transaction/operations methods, but all six messages reference camelCase method names (e.g. listTransactions) that don't exist in C# — the actual TablesDB replacements use PascalCase.
Runtime/Realtime.cs Adds JWT header (x-appwrite-jwt) to WebSocket connections when a JWT is present in the client config; headers are rebuilt fresh on each CreateSocket() call so reconnects pick up updated tokens correctly.
Runtime/Core/Client.cs Version bump to 0.4.0 in headers; Ping() correctly swaps content-type for accept: application/json, which is more semantically appropriate for a GET request.
CHANGELOG.md Adds 0.4.0 entry covering the JWT Realtime feature, but omits the six new [Obsolete] deprecations added to Databases.cs.
package.json Package version bumped from 0.3.0 to 0.4.0.
README.md Version reference updated from 0.3.0 to 0.4.0 in the installation URL and surrounding prose.
docs~/examples/account/create.md Replaces empty string with "password" placeholder for the password parameter.
docs~/examples/account/update-recovery.md Replaces empty string with "password" placeholder for the password parameter.
docs~/examples/account/update-password.md Replaces empty strings with "password" placeholder for both password and oldPassword parameters.

Reviews (3): Last reviewed commit: "chore: update Unity SDK to 0.4.0" | Re-trigger Greptile

Comment on lines 12 to 15
User result = await account.UpdatePassword(
password: "",
oldPassword: "<OLD_PASSWORD>" // optional
password: "password",
oldPassword: "password" // optional
);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Both password and oldPassword are set to the same literal "password", making the example ambiguous — readers may think the new and old passwords must be identical, or may copy-paste both fields unchanged. Use distinct placeholder values to keep the intent clear.

Suggested change
User result = await account.UpdatePassword(
password: "",
oldPassword: "<OLD_PASSWORD>" // optional
password: "password",
oldPassword: "password" // optional
);
User result = await account.UpdatePassword(
password: "<NEW_PASSWORD>",
oldPassword: "<OLD_PASSWORD>" // optional
);

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

@ArnabChatterjee20k ArnabChatterjee20k changed the title feat: SDK update for version 0.4.0 feat: Unity SDK update for version 0.4.0 Jun 25, 2026
@ArnabChatterjee20k ArnabChatterjee20k changed the title feat: Unity SDK update for version 0.4.0 feat: SDK update for version 0.4.0 Jun 25, 2026
@ArnabChatterjee20k ArnabChatterjee20k changed the title feat: SDK update for version 0.4.0 feat: Unity SDK update for version 0.4.0 Jun 25, 2026
@ArnabChatterjee20k ArnabChatterjee20k changed the title feat: Unity SDK update for version 0.4.0 feat: SDK update for version 0.4.0 Jun 25, 2026
@ArnabChatterjee20k ArnabChatterjee20k merged commit 90efce6 into main Jun 25, 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.

2 participants