Skip to content

feat: Node.js SDK update for version 24.0.0#148

Merged
ChiragAgg5k merged 7 commits intomainfrom
dev
Apr 15, 2026
Merged

feat: Node.js SDK update for version 24.0.0#148
ChiragAgg5k merged 7 commits intomainfrom
dev

Conversation

@ChiragAgg5k
Copy link
Copy Markdown
Member

@ChiragAgg5k ChiragAgg5k commented Apr 15, 2026

This PR contains updates to the Node.js SDK for version 24.0.0.

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Apr 15, 2026

Greptile Summary

This PR delivers the Node.js SDK update for Appwrite 24.0.0: breaking webhook field/method renames (securitytls, httpUserauthUsername, httpPassauthPassword, signatureKeysecret, updateSignature()updateSecret()), a large new Project service (~1 400 lines covering key CRUD, platform CRUD, and protocol/service status management), new enums (PlatformType, ProtocolId, ServiceId), new model types, and purge parameters on updateCollection/updateTable.

  • Webhook.secret typed as required string (src/models.ts:4220) but the JSDoc explicitly states it is "Only returned on creation and secret rotation." Callers who read webhook.secret after a normal get or list call will receive undefined at runtime while TypeScript reports string; this should be secret?: string.

Confidence Score: 4/5

Safe to merge after fixing the Webhook.secret type annotation; all other changes are mechanically correct.

One P1 type-safety defect: Webhook.secret is declared as required string but is only conditionally present in API responses, creating a silent runtime/TypeScript mismatch. All other service implementations, enums, models, and CI changes look correct.

src/models.ts — Webhook.secret field annotation

Important Files Changed

Filename Overview
src/models.ts Renames webhook fields (security→tls, httpUser→authUsername, httpPass→authPassword, signatureKey→secret), adds new Project/Platform/Key/BillingLimits/Block models; Webhook.secret typed as required string despite doc saying it's only returned on creation/rotation
src/services/project.ts Large new service addition (~1400 lines): listKeys, createKey, getKey, updateKey, deleteKey, updateLabels, listPlatforms, platform CRUD (Android/Apple/Linux/Web/Windows), updateProtocolStatus, updateServiceStatus — all correct HTTP verbs and parameter handling
src/services/webhooks.ts Breaking renames: security→tls, httpUser→authUsername, httpPass→authPassword; updateSignature()→updateSecret() with new optional secret param; API path updated from /signature to /secret; all changes correctly implemented
src/services/databases.ts Adds optional purge parameter to updateCollection; updates TTL jsdoc for listDocuments; positional overload and payload serialization correctly updated
src/index.ts Adds exports for new enums: ProtocolId, ServiceId, PlatformType; all new service classes and model types are correctly reachable
src/client.ts Version bump to 24.0.0 in UA string and x-sdk-version; X-Appwrite-Response-Format updated to 1.9.1 — straightforward mechanical changes

Reviews (4): Last reviewed commit: "chore: update Node.js SDK to 24.0.0" | Re-trigger Greptile

Comment thread CHANGELOG.md Outdated
Comment thread package.json
"@types/json-bigint": "1.0.4",
"@types/node": "20.11.25",
"tsup": "7.2.0",
"tsup": "^8.5.1",
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 tsup major version bump with flexible range

tsup was previously pinned to 7.2.0; it's now ^8.5.1, a major-version bump with a caret that allows any 8.x patch to install. tsup v8 changed several defaults (e.g. treeshake is now on by default, splitting behaviour changed). Switching to a flexible range could produce different bundle output on different installs. Consider pinning to an exact version (8.5.1) or at least validating that the current build output is identical to the previous one.

Suggested change
"tsup": "^8.5.1",
"tsup": "8.5.1",

@ChiragAgg5k ChiragAgg5k changed the title feat: Node.js SDK update for version 23.2.0 feat: Node.js SDK update for version 24.0.0 Apr 15, 2026
@ChiragAgg5k ChiragAgg5k changed the title feat: Node.js SDK update for version 24.0.0 feat: SDK update for version 24.0.0 Apr 15, 2026
const result = await project.createWebPlatform({
platformId: '<PLATFORM_ID>',
name: '<NAME>',
hostname: 'app.example.com'
Copy link
Copy Markdown
Contributor

@Meldiron Meldiron Apr 15, 2026

Choose a reason for hiding this comment

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

Hmm notice here we have example value, but for other platforms we dont. can we add?

packageName, applicationId, bundleIdentifier, packageIdentifierName... they are all same, they can all be com.example.app I believe, Jake can confirm

Comment thread docs/examples/project/update-canonical-emails.md Outdated
Comment thread docs/examples/project/update-disposable-emails.md Outdated
Comment thread docs/examples/project/update-free-emails.md Outdated
Comment thread docs/examples/project/update-labels.md
@ChiragAgg5k ChiragAgg5k changed the title feat: SDK update for version 24.0.0 feat: Node.js SDK update for version 24.0.0 Apr 15, 2026
@ChiragAgg5k ChiragAgg5k changed the title feat: Node.js SDK update for version 24.0.0 feat: SDK update for version 24.0.0 Apr 15, 2026
Comment thread CHANGELOG.md
@ChiragAgg5k ChiragAgg5k changed the title feat: SDK update for version 24.0.0 feat: Node.js SDK update for version 24.0.0 Apr 15, 2026
Comment thread src/models.ts
@ChiragAgg5k ChiragAgg5k merged commit c0d3669 into main Apr 15, 2026
2 checks 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