@faable/auth-sdk 2.8.16 → 2.8.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -463,7 +463,22 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
463
463
  slug: string;
464
464
  logo_src?: string | null | undefined;
465
465
  icon_src?: string | null | undefined;
466
- callback_hostnames: string[];
466
+ callback_hostnames: string[]; /**
467
+ * `POST /user/import` — operationId: `user/import`
468
+ *
469
+ * Import users, with their password hashes
470
+ *
471
+ * Creates up to 500 users per request, for migrations from another provider. Each row can carry a `password_hash` exported from that provider (bcrypt, scrypt, Firebase scrypt, PBKDF2, argon2): the user signs in with their existing password and the hash is upgraded to argon2id on that first login. Fast digests (MD5, SHA-1, SHA-2) and low costs are refused per row with `weak_password_hash`. Rows are matched by email, so the same file can be sent twice: existing users are `skipped` unless `update_existing`. A bad row never fails the batch: each row gets its own `status` and `error`. Imported users get none of the built-in new-user emails. The response never contains a hash, and neither does the audit log.
472
+ *
473
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
474
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
475
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
476
+ * @throws {FaableApiError} `insufficient_scope` (403) — The token lacks a scope this operation requires. `message` names it.
477
+ * @throws {FaableApiError} `user_suspended` (403) — The user is suspended and cannot sign in or be modified.
478
+ * @throws {FaableApiError} `account_not_found` (404) — No Auth Account matches the request (domain, header or token).
479
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
480
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
481
+ */
467
482
  token_signature: string;
468
483
  token_signing_alg: "RS256";
469
484
  default_connection?: unknown;
@@ -533,7 +548,22 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
533
548
  slug: string;
534
549
  logo_src?: string | null | undefined;
535
550
  icon_src?: string | null | undefined;
536
- callback_hostnames: string[];
551
+ callback_hostnames: string[]; /**
552
+ * `POST /user/import` — operationId: `user/import`
553
+ *
554
+ * Import users, with their password hashes
555
+ *
556
+ * Creates up to 500 users per request, for migrations from another provider. Each row can carry a `password_hash` exported from that provider (bcrypt, scrypt, Firebase scrypt, PBKDF2, argon2): the user signs in with their existing password and the hash is upgraded to argon2id on that first login. Fast digests (MD5, SHA-1, SHA-2) and low costs are refused per row with `weak_password_hash`. Rows are matched by email, so the same file can be sent twice: existing users are `skipped` unless `update_existing`. A bad row never fails the batch: each row gets its own `status` and `error`. Imported users get none of the built-in new-user emails. The response never contains a hash, and neither does the audit log.
557
+ *
558
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
559
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
560
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
561
+ * @throws {FaableApiError} `insufficient_scope` (403) — The token lacks a scope this operation requires. `message` names it.
562
+ * @throws {FaableApiError} `user_suspended` (403) — The user is suspended and cannot sign in or be modified.
563
+ * @throws {FaableApiError} `account_not_found` (404) — No Auth Account matches the request (domain, header or token).
564
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
565
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
566
+ */
537
567
  token_signature: string;
538
568
  token_signing_alg: "RS256";
539
569
  default_connection?: unknown;
@@ -606,7 +636,22 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
606
636
  slug: string;
607
637
  logo_src?: string | null | undefined;
608
638
  icon_src?: string | null | undefined;
609
- callback_hostnames: string[];
639
+ callback_hostnames: string[]; /**
640
+ * `POST /user/import` — operationId: `user/import`
641
+ *
642
+ * Import users, with their password hashes
643
+ *
644
+ * Creates up to 500 users per request, for migrations from another provider. Each row can carry a `password_hash` exported from that provider (bcrypt, scrypt, Firebase scrypt, PBKDF2, argon2): the user signs in with their existing password and the hash is upgraded to argon2id on that first login. Fast digests (MD5, SHA-1, SHA-2) and low costs are refused per row with `weak_password_hash`. Rows are matched by email, so the same file can be sent twice: existing users are `skipped` unless `update_existing`. A bad row never fails the batch: each row gets its own `status` and `error`. Imported users get none of the built-in new-user emails. The response never contains a hash, and neither does the audit log.
645
+ *
646
+ * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
647
+ * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
648
+ * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
649
+ * @throws {FaableApiError} `insufficient_scope` (403) — The token lacks a scope this operation requires. `message` names it.
650
+ * @throws {FaableApiError} `user_suspended` (403) — The user is suspended and cannot sign in or be modified.
651
+ * @throws {FaableApiError} `account_not_found` (404) — No Auth Account matches the request (domain, header or token).
652
+ * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
653
+ * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
654
+ */
610
655
  token_signature: string;
611
656
  token_signing_alg: "RS256";
612
657
  default_connection?: unknown;
@@ -2809,7 +2809,7 @@ export interface paths {
2809
2809
  put?: never;
2810
2810
  /**
2811
2811
  * Start enrolling an authenticator app
2812
- * @description Creates an UNCONFIRMED TOTP factor and returns its `otpauth://` URI and secret — the only time either is ever readable. The factor does not satisfy any policy until `POST /me/factors/:id/verify` proves the user can produce a code from it.
2812
+ * @description Creates an UNCONFIRMED TOTP factor and returns its `otpauth://` URI and secret. When the user already has one that was started and never confirmed, that one is returned instead of a new one, so an interrupted setup continues with the seed already scanned. Once confirmed, the secret is never readable again. The factor does not satisfy any policy until `POST /me/factors/:id/verify` proves the user can produce a code from it.
2813
2813
  */
2814
2814
  post: {
2815
2815
  parameters: {
package/dist/version.js CHANGED
@@ -9,13 +9,13 @@
9
9
  // login pages could not import the SDK at all. Same pattern as auth-js.
10
10
  //
11
11
  // The sentinels MUST stay byte-identical to the `from` values in `.releaserc`.
12
- export const version = "2.8.16";
12
+ export const version = "2.8.18";
13
13
  // Short git SHA of the released commit. The version dates a build; this names
14
14
  // the exact tree, so a canonical log line or an audit entry leads straight to
15
15
  // `git show <sha>`. Deliberately NOT hex: an unreleased build (dev, a local
16
16
  // link) cannot be mistaken for a real commit — auth only records values that
17
17
  // look like a SHA, and this one never will.
18
- export const commit = "0b2f364";
18
+ export const commit = "f950556";
19
19
  // What this SDK writes in `x-faable-client`. Exported for a consumer that
20
20
  // builds a strategy on its own (outside `FaableAuthApi`) and still wants the
21
21
  // token request attributed — a bare `authClientCredentials` stamps only what
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faable/auth-sdk",
3
- "version": "2.8.16",
3
+ "version": "2.8.18",
4
4
  "author": "Marc Pomar <marc@faable.com>",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/spec/openapi.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "info": {
4
4
  "title": "@faablecloud/auth",
5
5
  "description": "Auth Platform made by Faable. Manage Users and Roles",
6
- "version": "2.86.0",
6
+ "version": "2.86.2",
7
7
  "license": {
8
8
  "name": "private",
9
9
  "url": "https://faable.com/docs/platform/privacy-policy"
@@ -66314,7 +66314,7 @@
66314
66314
  "tags": [
66315
66315
  "mfa"
66316
66316
  ],
66317
- "description": "Creates an UNCONFIRMED TOTP factor and returns its `otpauth://` URI and secret — the only time either is ever readable. The factor does not satisfy any policy until `POST /me/factors/:id/verify` proves the user can produce a code from it.",
66317
+ "description": "Creates an UNCONFIRMED TOTP factor and returns its `otpauth://` URI and secret. When the user already has one that was started and never confirmed, that one is returned instead of a new one, so an interrupted setup continues with the seed already scanned. Once confirmed, the secret is never readable again. The factor does not satisfy any policy until `POST /me/factors/:id/verify` proves the user can produce a code from it.",
66318
66318
  "requestBody": {
66319
66319
  "required": true,
66320
66320
  "content": {