From b1ba6a77416930d9babadb35912ab2c3ef35e22d Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Mon, 12 Oct 2026 18:59:57 +0100 Subject: [PATCH] fix: add the passkey auth method and policy for version 29.3.1 --- CHANGELOG.md | 5 +++++ package-lock.json | 4 ++-- package.json | 2 +- src/client.ts | 4 ++-- src/enums/project-auth-method-id.ts | 1 + src/enums/project-policy-id.ts | 1 + src/models.ts | 19 +++++++++++++++++++ src/services/project.ts | 7 +++++-- test/services/project.test.js | 3 ++- 9 files changed, 38 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4dd7b53..4c92aaf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Change Log +## 29.3.1 + +* Fixed: added `ProjectAuthMethodId.Passkey`, so `project.updateAuthMethod` can enable passkeys +* Fixed: added `ProjectPolicyId.Passkey` and the `Models.PolicyPasskey` model, so `getPolicy` and `listPolicies` return the passkey policy + ## 29.3.0 * Added: `account` passkey methods `listPasskeys`, `createPasskey`, `getPasskey`, `updatePasskey`, `deletePasskey` and `updatePasskeyVerification` diff --git a/package-lock.json b/package-lock.json index f13b7da..88ab12f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "node-appwrite", - "version": "29.3.0", + "version": "29.3.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "node-appwrite", - "version": "29.3.0", + "version": "29.3.1", "license": "BSD-3-Clause", "dependencies": { "json-bigint": "1.0.0", diff --git a/package.json b/package.json index 71de758..37c0ee2 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "node-appwrite", "homepage": "https://appwrite.io/support", "description": "Appwrite is an open-source self-hosted backend server that abstracts and simplifies complex and repetitive development tasks behind a very simple REST API", - "version": "29.3.0", + "version": "29.3.1", "license": "BSD-3-Clause", "main": "dist/index.js", "type": "commonjs", diff --git a/src/client.ts b/src/client.ts index d706e4b..05cfcee 100644 --- a/src/client.ts +++ b/src/client.ts @@ -80,7 +80,7 @@ class AppwriteException extends Error { } function getUserAgent() { - let ua = 'AppwriteNodeJSSDK/29.3.0'; + let ua = 'AppwriteNodeJSSDK/29.3.1'; // `process` is a global in Node.js, but not fully available in all runtimes. const platform: string[] = []; @@ -142,7 +142,7 @@ class Client { 'x-sdk-name': 'Node.js', 'x-sdk-platform': 'server', 'x-sdk-language': 'nodejs', - 'x-sdk-version': '29.3.0', + 'x-sdk-version': '29.3.1', 'user-agent': getUserAgent(), 'X-Appwrite-Response-Format': '2.0.0', }; diff --git a/src/enums/project-auth-method-id.ts b/src/enums/project-auth-method-id.ts index 367ed14..34504b4 100644 --- a/src/enums/project-auth-method-id.ts +++ b/src/enums/project-auth-method-id.ts @@ -6,4 +6,5 @@ export enum ProjectAuthMethodId { Invites = 'invites', Jwt = 'jwt', Phone = 'phone', + Passkey = 'passkey', } diff --git a/src/enums/project-policy-id.ts b/src/enums/project-policy-id.ts index c05f7f6..79fccbf 100644 --- a/src/enums/project-policy-id.ts +++ b/src/enums/project-policy-id.ts @@ -14,4 +14,5 @@ export enum ProjectPolicyId { Denydisposableemail = 'deny-disposable-email', Denyfreeemail = 'deny-free-email', Denycorporateemail = 'deny-corporate-email', + Passkey = 'passkey', } diff --git a/src/models.ts b/src/models.ts index 3839058..26cbcfa 100644 --- a/src/models.ts +++ b/src/models.ts @@ -518,6 +518,7 @@ export namespace Models { | Models.PolicyDenyDisposableEmail | Models.PolicyDenyFreeEmail | Models.PolicyDenyCorporateEmail + | Models.PolicyPasskey )[]; }; @@ -6266,6 +6267,24 @@ export namespace Models { custom: boolean; }; + /** + * Policy Passkey + */ + export type PolicyPasskey = { + /** + * Policy ID. + */ + $id: string; + /** + * Relying party ID passkeys are bound to. Empty until configured. + */ + rpId: string; + /** + * Web origins passkeys work on, from the project's platforms on the relying party ID and a localhost web platform. Read-only. + */ + origins: string[]; + }; + /** * Platform Web */ diff --git a/src/services/project.ts b/src/services/project.ts index 3f898b2..f9897ad 100644 --- a/src/services/project.ts +++ b/src/services/project.ts @@ -7877,7 +7877,7 @@ export class Project { * * @param {ProjectPolicyId} params.policyId - Policy ID. Can be one of: password-dictionary, password-history, password-strength, password-personal-data, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy, mfa-factors, deny-aliased-email, deny-disposable-email, deny-free-email, deny-corporate-email. * @throws {AppwriteException} - * @returns {Promise} + * @returns {Promise} */ getPolicy(params: { policyId: ProjectPolicyId; @@ -7897,13 +7897,14 @@ export class Project { | Models.PolicyDenyDisposableEmail | Models.PolicyDenyFreeEmail | Models.PolicyDenyCorporateEmail + | Models.PolicyPasskey >; /** * Get a policy by its unique ID. This endpoint returns the current configuration for the requested project policy. * * @param {ProjectPolicyId} policyId - Policy ID. Can be one of: password-dictionary, password-history, password-strength, password-personal-data, session-alert, session-duration, session-invalidation, session-limit, user-limit, membership-privacy, mfa-factors, deny-aliased-email, deny-disposable-email, deny-free-email, deny-corporate-email. * @throws {AppwriteException} - * @returns {Promise} + * @returns {Promise} * @deprecated Use the object parameter style method for a better developer experience. */ getPolicy( @@ -7924,6 +7925,7 @@ export class Project { | Models.PolicyDenyDisposableEmail | Models.PolicyDenyFreeEmail | Models.PolicyDenyCorporateEmail + | Models.PolicyPasskey >; getPolicy( paramsOrFirst: { policyId: ProjectPolicyId } | ProjectPolicyId, @@ -7943,6 +7945,7 @@ export class Project { | Models.PolicyDenyDisposableEmail | Models.PolicyDenyFreeEmail | Models.PolicyDenyCorporateEmail + | Models.PolicyPasskey > { let params: { policyId: ProjectPolicyId }; diff --git a/test/services/project.test.js b/test/services/project.test.js index 6937937..fc1abdb 100644 --- a/test/services/project.test.js +++ b/test/services/project.test.js @@ -1940,7 +1940,8 @@ describe('Project', () => { test('test method getPolicy()', async () => { const data = { '\\$id': 'password-dictionary', - enabled: true, + rpId: 'example.com', + origins: [], }; mockedFetch.mockImplementation(() => Response.json(data)); const response = await project.getPolicy('password-dictionary');