@faable/auth-sdk 2.7.79 → 2.7.81

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.
@@ -81,6 +81,7 @@ export declare class FaableAuthApi extends GeneratedFaableAuthApi {
81
81
  passkey_promotion_max_prompts?: number | undefined;
82
82
  remember_me?: "optional" | "off" | undefined;
83
83
  remember_me_days?: number | undefined;
84
+ theme?: "system" | "light" | "dark" | undefined;
84
85
  } | undefined;
85
86
  login_flow?: string | null | undefined;
86
87
  mfa_policy?: {
@@ -810,6 +811,7 @@ export declare class FaableAuthApi extends GeneratedFaableAuthApi {
810
811
  passkey_promotion_max_prompts?: number | undefined;
811
812
  remember_me?: "optional" | "off" | undefined;
812
813
  remember_me_days?: number | undefined;
814
+ theme?: "system" | "light" | "dark" | undefined;
813
815
  } | undefined;
814
816
  mfa_policy?: {
815
817
  mode?: "required" | "optional" | "off" | undefined;
@@ -873,6 +875,7 @@ export declare class FaableAuthApi extends GeneratedFaableAuthApi {
873
875
  passkey_promotion_max_prompts?: number | undefined;
874
876
  remember_me?: "optional" | "off" | undefined;
875
877
  remember_me_days?: number | undefined;
878
+ theme?: "system" | "light" | "dark" | undefined;
876
879
  } | undefined;
877
880
  mfa_policy?: {
878
881
  mode?: "required" | "optional" | "off" | undefined;
@@ -939,6 +942,7 @@ export declare class FaableAuthApi extends GeneratedFaableAuthApi {
939
942
  passkey_promotion_max_prompts?: number | undefined;
940
943
  remember_me?: "optional" | "off" | undefined;
941
944
  remember_me_days?: number | undefined;
945
+ theme?: "system" | "light" | "dark" | undefined;
942
946
  } | undefined;
943
947
  mfa_policy?: {
944
948
  mode?: "required" | "optional" | "off" | undefined;
@@ -1004,6 +1008,7 @@ export declare class FaableAuthApi extends GeneratedFaableAuthApi {
1004
1008
  passkey_promotion_max_prompts?: number | undefined;
1005
1009
  remember_me?: "optional" | "off" | undefined;
1006
1010
  remember_me_days?: number | undefined;
1011
+ theme?: "system" | "light" | "dark" | undefined;
1007
1012
  } | undefined;
1008
1013
  mfa_policy?: {
1009
1014
  mode?: "required" | "optional" | "off" | undefined;
@@ -80,6 +80,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
80
80
  passkey_promotion_max_prompts?: number | undefined;
81
81
  remember_me?: "optional" | "off" | undefined;
82
82
  remember_me_days?: number | undefined;
83
+ theme?: "system" | "light" | "dark" | undefined;
83
84
  } | undefined;
84
85
  login_flow?: string | null | undefined;
85
86
  mfa_policy?: {
@@ -157,6 +158,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
157
158
  passkey_promotion_max_prompts?: number | undefined;
158
159
  remember_me?: "optional" | "off" | undefined;
159
160
  remember_me_days?: number | undefined;
161
+ theme?: "system" | "light" | "dark" | undefined;
160
162
  } | undefined;
161
163
  login_flow?: string | null | undefined;
162
164
  mfa_policy?: {
@@ -254,6 +256,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
254
256
  passkey_promotion_max_prompts?: number | undefined;
255
257
  remember_me?: "optional" | "off" | undefined;
256
258
  remember_me_days?: number | undefined;
259
+ theme?: "system" | "light" | "dark" | undefined;
257
260
  } | undefined;
258
261
  login_flow?: string | null | undefined;
259
262
  mfa_policy?: {
@@ -334,6 +337,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
334
337
  passkey_promotion_max_prompts?: number | undefined;
335
338
  remember_me?: "optional" | "off" | undefined;
336
339
  remember_me_days?: number | undefined;
340
+ theme?: "system" | "light" | "dark" | undefined;
337
341
  } | undefined;
338
342
  login_flow?: string | null | undefined;
339
343
  mfa_policy?: {
@@ -435,6 +439,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
435
439
  passkey_promotion_max_prompts?: number | undefined;
436
440
  remember_me?: "optional" | "off" | undefined;
437
441
  remember_me_days?: number | undefined;
442
+ theme?: "system" | "light" | "dark" | undefined;
438
443
  } | undefined;
439
444
  login_flow?: string | null | undefined;
440
445
  mfa_policy?: {
@@ -447,23 +452,6 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
447
452
  default?: "email" | "sms" | "whatsapp" | "factor" | undefined;
448
453
  visible?: ("email" | "sms" | "whatsapp" | "factor")[] | undefined;
449
454
  } | undefined;
450
- /**
451
- * `GET /user/export` — operationId: `user/export`
452
- *
453
- * Export users, optionally with their password hashes
454
- *
455
- * Pages through every user of the tenant, 500 at a time, in the row shape `POST /user/import` takes. With `include_hashes` each row carries its `password_hash` (needs the `read:password_hashes` scope, is audited as `credentials.exported` and notifies its subscribers). Provider access and refresh tokens of linked identities are never exported. Available on every plan.
456
- *
457
- * @throws {FaableApiError} `invalid_connection` (400) — The connection does not exist, is disabled, or is not of the type this flow needs.
458
- * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
459
- * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
460
- * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
461
- * @throws {FaableApiError} `insufficient_scope` (403) — The token lacks a scope this operation requires. `message` names it.
462
- * @throws {FaableApiError} `user_suspended` (403) — The user is suspended and cannot sign in or be modified.
463
- * @throws {FaableApiError} `account_not_found` (404) — No Auth Account matches the request (domain, header or token).
464
- * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
465
- * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
466
- */
467
455
  default_country_iso?: string | null | undefined;
468
456
  webauthn_rp_id?: string | null | undefined;
469
457
  logout_confirm_required?: boolean | undefined;
@@ -513,6 +501,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
513
501
  passkey_promotion_max_prompts?: number | undefined;
514
502
  remember_me?: "optional" | "off" | undefined;
515
503
  remember_me_days?: number | undefined;
504
+ theme?: "system" | "light" | "dark" | undefined;
516
505
  } | undefined;
517
506
  login_flow?: string | null | undefined;
518
507
  mfa_policy?: {
@@ -525,23 +514,6 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
525
514
  default?: "email" | "sms" | "whatsapp" | "factor" | undefined;
526
515
  visible?: ("email" | "sms" | "whatsapp" | "factor")[] | undefined;
527
516
  } | undefined;
528
- /**
529
- * `GET /user/export` — operationId: `user/export`
530
- *
531
- * Export users, optionally with their password hashes
532
- *
533
- * Pages through every user of the tenant, 500 at a time, in the row shape `POST /user/import` takes. With `include_hashes` each row carries its `password_hash` (needs the `read:password_hashes` scope, is audited as `credentials.exported` and notifies its subscribers). Provider access and refresh tokens of linked identities are never exported. Available on every plan.
534
- *
535
- * @throws {FaableApiError} `invalid_connection` (400) — The connection does not exist, is disabled, or is not of the type this flow needs.
536
- * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
537
- * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
538
- * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
539
- * @throws {FaableApiError} `insufficient_scope` (403) — The token lacks a scope this operation requires. `message` names it.
540
- * @throws {FaableApiError} `user_suspended` (403) — The user is suspended and cannot sign in or be modified.
541
- * @throws {FaableApiError} `account_not_found` (404) — No Auth Account matches the request (domain, header or token).
542
- * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
543
- * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
544
- */
545
517
  default_country_iso?: string | null | undefined;
546
518
  webauthn_rp_id?: string | null | undefined;
547
519
  logout_confirm_required?: boolean | undefined;
@@ -594,6 +566,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
594
566
  passkey_promotion_max_prompts?: number | undefined;
595
567
  remember_me?: "optional" | "off" | undefined;
596
568
  remember_me_days?: number | undefined;
569
+ theme?: "system" | "light" | "dark" | undefined;
597
570
  } | undefined;
598
571
  login_flow?: string | null | undefined;
599
572
  mfa_policy?: {
@@ -606,23 +579,6 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
606
579
  default?: "email" | "sms" | "whatsapp" | "factor" | undefined;
607
580
  visible?: ("email" | "sms" | "whatsapp" | "factor")[] | undefined;
608
581
  } | undefined;
609
- /**
610
- * `GET /user/export` — operationId: `user/export`
611
- *
612
- * Export users, optionally with their password hashes
613
- *
614
- * Pages through every user of the tenant, 500 at a time, in the row shape `POST /user/import` takes. With `include_hashes` each row carries its `password_hash` (needs the `read:password_hashes` scope, is audited as `credentials.exported` and notifies its subscribers). Provider access and refresh tokens of linked identities are never exported. Available on every plan.
615
- *
616
- * @throws {FaableApiError} `invalid_connection` (400) — The connection does not exist, is disabled, or is not of the type this flow needs.
617
- * @throws {FaableApiError} `validation_error` (400) — The body, query or path failed schema validation. `details.issues` lists each failing field.
618
- * @throws {FaableApiError} `unauthorized` (401) — The request carries no valid credentials.
619
- * @throws {FaableApiError} `forbidden` (403) — The credentials are valid but do not allow this operation.
620
- * @throws {FaableApiError} `insufficient_scope` (403) — The token lacks a scope this operation requires. `message` names it.
621
- * @throws {FaableApiError} `user_suspended` (403) — The user is suspended and cannot sign in or be modified.
622
- * @throws {FaableApiError} `account_not_found` (404) — No Auth Account matches the request (domain, header or token).
623
- * @throws {FaableApiError} `too_many_requests` (429) — Rate limit exceeded. Honour the `Retry-After` header.
624
- * @throws {FaableApiError} `internal_error` (500) — Unexpected server error. Retry later; the request id is logged.
625
- */
626
582
  default_country_iso?: string | null | undefined;
627
583
  webauthn_rp_id?: string | null | undefined;
628
584
  logout_confirm_required?: boolean | undefined;
@@ -847,6 +803,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
847
803
  passkey_promotion_max_prompts?: number | undefined;
848
804
  remember_me?: "optional" | "off" | undefined;
849
805
  remember_me_days?: number | undefined;
806
+ theme?: "system" | "light" | "dark" | undefined;
850
807
  } | undefined;
851
808
  login_flow?: string | null | undefined;
852
809
  mfa_policy?: {
@@ -1392,6 +1349,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
1392
1349
  passkey_promotion_max_prompts?: number | undefined;
1393
1350
  remember_me?: "optional" | "off" | undefined;
1394
1351
  remember_me_days?: number | undefined;
1352
+ theme?: "system" | "light" | "dark" | undefined;
1395
1353
  } | undefined;
1396
1354
  mfa_policy?: {
1397
1355
  mode?: "required" | "optional" | "off" | undefined;
@@ -1471,6 +1429,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
1471
1429
  passkey_promotion_max_prompts?: number | undefined;
1472
1430
  remember_me?: "optional" | "off" | undefined;
1473
1431
  remember_me_days?: number | undefined;
1432
+ theme?: "system" | "light" | "dark" | undefined;
1474
1433
  } | undefined;
1475
1434
  mfa_policy?: {
1476
1435
  mode?: "required" | "optional" | "off" | undefined;
@@ -1551,6 +1510,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
1551
1510
  passkey_promotion_max_prompts?: number | undefined;
1552
1511
  remember_me?: "optional" | "off" | undefined;
1553
1512
  remember_me_days?: number | undefined;
1513
+ theme?: "system" | "light" | "dark" | undefined;
1554
1514
  } | undefined;
1555
1515
  mfa_policy?: {
1556
1516
  mode?: "required" | "optional" | "off" | undefined;
@@ -1632,6 +1592,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
1632
1592
  passkey_promotion_max_prompts?: number | undefined;
1633
1593
  remember_me?: "optional" | "off" | undefined;
1634
1594
  remember_me_days?: number | undefined;
1595
+ theme?: "system" | "light" | "dark" | undefined;
1635
1596
  } | undefined;
1636
1597
  mfa_policy?: {
1637
1598
  mode?: "required" | "optional" | "off" | undefined;
@@ -1695,6 +1656,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
1695
1656
  passkey_promotion_max_prompts?: number | undefined;
1696
1657
  remember_me?: "optional" | "off" | undefined;
1697
1658
  remember_me_days?: number | undefined;
1659
+ theme?: "system" | "light" | "dark" | undefined;
1698
1660
  } | undefined;
1699
1661
  mfa_policy?: {
1700
1662
  mode?: "required" | "optional" | "off" | undefined;
@@ -1761,6 +1723,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
1761
1723
  passkey_promotion_max_prompts?: number | undefined;
1762
1724
  remember_me?: "optional" | "off" | undefined;
1763
1725
  remember_me_days?: number | undefined;
1726
+ theme?: "system" | "light" | "dark" | undefined;
1764
1727
  } | undefined;
1765
1728
  mfa_policy?: {
1766
1729
  mode?: "required" | "optional" | "off" | undefined;
@@ -1843,6 +1806,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
1843
1806
  passkey_promotion_max_prompts?: number | undefined;
1844
1807
  remember_me?: "optional" | "off" | undefined;
1845
1808
  remember_me_days?: number | undefined;
1809
+ theme?: "system" | "light" | "dark" | undefined;
1846
1810
  } | undefined;
1847
1811
  mfa_policy?: {
1848
1812
  mode?: "required" | "optional" | "off" | undefined;
@@ -1923,6 +1887,7 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
1923
1887
  passkey_promotion_max_prompts?: number | undefined;
1924
1888
  remember_me?: "optional" | "off" | undefined;
1925
1889
  remember_me_days?: number | undefined;
1890
+ theme?: "system" | "light" | "dark" | undefined;
1926
1891
  } | undefined;
1927
1892
  mfa_policy?: {
1928
1893
  mode?: "required" | "optional" | "off" | undefined;
@@ -4696,6 +4696,8 @@ export interface components {
4696
4696
  remember_me?: "off" | "optional";
4697
4697
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
4698
4698
  remember_me_days?: number;
4699
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
4700
+ theme?: "system" | "light" | "dark";
4699
4701
  };
4700
4702
  /** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
4701
4703
  login_flow?: string | null;
@@ -5013,6 +5015,8 @@ export interface components {
5013
5015
  remember_me?: "off" | "optional";
5014
5016
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
5015
5017
  remember_me_days?: number;
5018
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
5019
+ theme?: "system" | "light" | "dark";
5016
5020
  };
5017
5021
  /** @description Second-factor policy. Set on the Account as the tenant default; the same object on a Client overrides it **field by field**, so one app can require MFA without changing the rest. */
5018
5022
  mfa_policy?: {
@@ -5135,6 +5139,8 @@ export interface components {
5135
5139
  remember_me?: "off" | "optional";
5136
5140
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
5137
5141
  remember_me_days?: number;
5142
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
5143
+ theme?: "system" | "light" | "dark";
5138
5144
  } | null;
5139
5145
  mfa_policy?: {
5140
5146
  /** @description `off` (default) never challenges. `optional` challenges a user who has enrolled a factor, and lets everyone else in. `required` challenges everyone and sends users with no factor through enrolment during login — it never locks anyone out in place. */
@@ -6799,6 +6805,8 @@ export interface components {
6799
6805
  remember_me?: "off" | "optional";
6800
6806
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
6801
6807
  remember_me_days?: number;
6808
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
6809
+ theme?: "system" | "light" | "dark";
6802
6810
  } | null;
6803
6811
  mfa_policy?: {
6804
6812
  /** @description `off` (default) never challenges. `optional` challenges a user who has enrolled a factor, and lets everyone else in. `required` challenges everyone and sends users with no factor through enrolment during login — it never locks anyone out in place. */
@@ -6856,6 +6864,8 @@ export interface components {
6856
6864
  audience?: string;
6857
6865
  /** @description RFC 8707 Resource Indicator. Absolute URI of the target Api, no fragment. Matched against `Api.identifier` in the tenant. */
6858
6866
  resource?: string;
6867
+ /** @description client_credentials only. An access token previously returned by this endpoint that a resource server rejected with 401. If it is the cached token for this client, the cache entry is dropped and a new token is issued; otherwise it has no effect. */
6868
+ invalidate_token?: string;
6859
6869
  } & {
6860
6870
  [key: string]: unknown;
6861
6871
  };
@@ -7171,6 +7181,8 @@ export interface operations {
7171
7181
  remember_me?: "off" | "optional";
7172
7182
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
7173
7183
  remember_me_days?: number;
7184
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
7185
+ theme?: "system" | "light" | "dark";
7174
7186
  };
7175
7187
  /** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
7176
7188
  login_flow?: string | null;
@@ -7524,6 +7536,8 @@ export interface operations {
7524
7536
  remember_me?: "off" | "optional";
7525
7537
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
7526
7538
  remember_me_days?: number;
7539
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
7540
+ theme?: "system" | "light" | "dark";
7527
7541
  };
7528
7542
  /** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
7529
7543
  login_flow?: string | null;
@@ -7765,6 +7779,8 @@ export interface operations {
7765
7779
  remember_me?: "off" | "optional";
7766
7780
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
7767
7781
  remember_me_days?: number;
7782
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
7783
+ theme?: "system" | "light" | "dark";
7768
7784
  };
7769
7785
  /** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
7770
7786
  login_flow?: string | null;
@@ -7962,6 +7978,8 @@ export interface operations {
7962
7978
  remember_me?: "off" | "optional";
7963
7979
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
7964
7980
  remember_me_days?: number;
7981
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
7982
+ theme?: "system" | "light" | "dark";
7965
7983
  } | null;
7966
7984
  mfa_policy?: {
7967
7985
  /** @description `off` (default) never challenges. `optional` challenges a user who has enrolled a factor, and lets everyone else in. `required` challenges everyone and sends users with no factor through enrolment during login — it never locks anyone out in place. */
@@ -8079,6 +8097,8 @@ export interface operations {
8079
8097
  remember_me?: "off" | "optional";
8080
8098
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
8081
8099
  remember_me_days?: number;
8100
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
8101
+ theme?: "system" | "light" | "dark";
8082
8102
  };
8083
8103
  /** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
8084
8104
  login_flow?: string | null;
@@ -9339,6 +9359,8 @@ export interface operations {
9339
9359
  remember_me?: "off" | "optional";
9340
9360
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
9341
9361
  remember_me_days?: number;
9362
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
9363
+ theme?: "system" | "light" | "dark";
9342
9364
  };
9343
9365
  /** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
9344
9366
  login_flow?: string | null;
@@ -10474,6 +10496,11 @@ export interface operations {
10474
10496
  identifier?: string;
10475
10497
  /** @description The method key that was moved first because this browser used it last time (`remember_last_method`). Absent otherwise. */
10476
10498
  last_used?: string;
10499
+ /**
10500
+ * @description The colour theme the screens are forced to, and the visitor's switch hidden: `theme` on this login's /authorize, else the tenant/client `login_methods.theme`. Absent when nothing forces it — the visitor's own choice, or the OS, decides.
10501
+ * @enum {string}
10502
+ */
10503
+ theme?: "light" | "dark";
10477
10504
  /** @description Already filtered and ordered. Render them in this order; do not re-sort or re-filter client-side. */
10478
10505
  methods: components["schemas"]["LoginOptionMethod"][];
10479
10506
  };
@@ -10833,6 +10860,8 @@ export interface operations {
10833
10860
  remember_me?: "off" | "optional";
10834
10861
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
10835
10862
  remember_me_days?: number;
10863
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
10864
+ theme?: "system" | "light" | "dark";
10836
10865
  };
10837
10866
  /** @description Second-factor policy. Set on the Account as the tenant default; the same object on a Client overrides it **field by field**, so one app can require MFA without changing the rest. */
10838
10867
  mfa_policy?: {
@@ -11031,6 +11060,8 @@ export interface operations {
11031
11060
  remember_me?: "off" | "optional";
11032
11061
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
11033
11062
  remember_me_days?: number;
11063
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
11064
+ theme?: "system" | "light" | "dark";
11034
11065
  };
11035
11066
  /** @description Second-factor policy. Set on the Account as the tenant default; the same object on a Client overrides it **field by field**, so one app can require MFA without changing the rest. */
11036
11067
  mfa_policy?: {
@@ -11230,6 +11261,8 @@ export interface operations {
11230
11261
  remember_me?: "off" | "optional";
11231
11262
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
11232
11263
  remember_me_days?: number;
11264
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
11265
+ theme?: "system" | "light" | "dark";
11233
11266
  } | null;
11234
11267
  mfa_policy?: {
11235
11268
  /** @description `off` (default) never challenges. `optional` challenges a user who has enrolled a factor, and lets everyone else in. `required` challenges everyone and sends users with no factor through enrolment during login — it never locks anyone out in place. */
@@ -11322,6 +11355,8 @@ export interface operations {
11322
11355
  remember_me?: "off" | "optional";
11323
11356
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
11324
11357
  remember_me_days?: number;
11358
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
11359
+ theme?: "system" | "light" | "dark";
11325
11360
  };
11326
11361
  /** @description Second-factor policy. Set on the Account as the tenant default; the same object on a Client overrides it **field by field**, so one app can require MFA without changing the rest. */
11327
11362
  mfa_policy?: {
@@ -11526,6 +11561,8 @@ export interface operations {
11526
11561
  remember_me?: "off" | "optional";
11527
11562
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
11528
11563
  remember_me_days?: number;
11564
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
11565
+ theme?: "system" | "light" | "dark";
11529
11566
  };
11530
11567
  /** @description Second-factor policy. Set on the Account as the tenant default; the same object on a Client overrides it **field by field**, so one app can require MFA without changing the rest. */
11531
11568
  mfa_policy?: {
@@ -11728,6 +11765,8 @@ export interface operations {
11728
11765
  remember_me?: "off" | "optional";
11729
11766
  /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
11730
11767
  remember_me_days?: number;
11768
+ /** @description Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login. */
11769
+ theme?: "system" | "light" | "dark";
11731
11770
  };
11732
11771
  /** @description Second-factor policy. Set on the Account as the tenant default; the same object on a Client overrides it **field by field**, so one app can require MFA without changing the rest. */
11733
11772
  mfa_policy?: {
@@ -28192,6 +28231,11 @@ export interface operations {
28192
28231
  link?: boolean;
28193
28232
  /** @description Comma-separated methods the hosted login screen shows for this login: connection ids or connection names, and `passkey`. Each must be one the client already offers; the screen keeps the order configured for the client. Filters the screen only — it does not restrict which method the credential endpoints accept. Not combinable with `connection`, which skips the screen instead of narrowing it. */
28194
28233
  login_methods?: string;
28234
+ /**
28235
+ * @description Force the colour theme of the hosted login screens for this login — for an application whose own pages are only light or only dark. Overrides the tenant's `login_methods.theme` and hides the visitor's theme switch on those screens. Omit it to keep the tenant setting.
28236
+ * @example dark
28237
+ */
28238
+ theme?: "light" | "dark";
28195
28239
  /** @description Preview token from `POST /loginflow/:id/preview-token`. This login runs the DRAFT of that flow, for this browser only; nothing is published. Invalid or expired tokens are ignored. */
28196
28240
  flow_preview?: string;
28197
28241
  /** @description Resume the login transaction the hosted screen has parked, instead of starting a new one. Used by the screen itself when the person picks a method: everything that belongs to the Relying Party — `code_challenge`, `state`, `redirect_uri`, `nonce`, `scope`, `audience` — is taken from the parked transaction and CANNOT be overridden by the query. Only `connection` is read from the caller. */
@@ -28614,6 +28658,8 @@ export interface operations {
28614
28658
  audience?: string;
28615
28659
  /** @description RFC 8707 Resource Indicator. Absolute URI of the target Api, no fragment. Matched against `Api.identifier` in the tenant. */
28616
28660
  resource?: string;
28661
+ /** @description client_credentials only. An access token previously returned by this endpoint that a resource server rejected with 401. If it is the cached token for this client, the cache entry is dropped and a new token is issued; otherwise it has no effect. */
28662
+ invalidate_token?: string;
28617
28663
  };
28618
28664
  header?: never;
28619
28665
  path?: never;
@@ -28715,6 +28761,8 @@ export interface operations {
28715
28761
  audience?: string;
28716
28762
  /** @description RFC 8707 Resource Indicator. Absolute URI of the target Api, no fragment. Matched against `Api.identifier` in the tenant. */
28717
28763
  resource?: string;
28764
+ /** @description client_credentials only. An access token previously returned by this endpoint that a resource server rejected with 401. If it is the cached token for this client, the cache entry is dropped and a new token is issued; otherwise it has no effect. */
28765
+ invalidate_token?: string;
28718
28766
  };
28719
28767
  header?: never;
28720
28768
  path?: never;
@@ -28748,6 +28796,8 @@ export interface operations {
28748
28796
  audience?: string;
28749
28797
  /** @description RFC 8707 Resource Indicator. Absolute URI of the target Api, no fragment. Matched against `Api.identifier` in the tenant. */
28750
28798
  resource?: string;
28799
+ /** @description client_credentials only. An access token previously returned by this endpoint that a resource server rejected with 401. If it is the cached token for this client, the cache entry is dropped and a new token is issued; otherwise it has no effect. */
28800
+ invalidate_token?: string;
28751
28801
  } & {
28752
28802
  [key: string]: unknown;
28753
28803
  };
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.7.79";
12
+ export const version = "2.7.81";
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 = "a0f8317";
18
+ export const commit = "8fa14f2";
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.7.79",
3
+ "version": "2.7.81",
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.62.2",
6
+ "version": "2.64.0",
7
7
  "license": {
8
8
  "name": "private",
9
9
  "url": "https://faable.com/docs/platform/privacy-policy"
@@ -319,6 +319,29 @@
319
319
  "minimum": 1,
320
320
  "maximum": 365,
321
321
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
322
+ },
323
+ "theme": {
324
+ "anyOf": [
325
+ {
326
+ "type": "string",
327
+ "enum": [
328
+ "system"
329
+ ]
330
+ },
331
+ {
332
+ "type": "string",
333
+ "enum": [
334
+ "light"
335
+ ]
336
+ },
337
+ {
338
+ "type": "string",
339
+ "enum": [
340
+ "dark"
341
+ ]
342
+ }
343
+ ],
344
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
322
345
  }
323
346
  },
324
347
  "additionalProperties": false,
@@ -1596,6 +1619,29 @@
1596
1619
  "minimum": 1,
1597
1620
  "maximum": 365,
1598
1621
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
1622
+ },
1623
+ "theme": {
1624
+ "anyOf": [
1625
+ {
1626
+ "type": "string",
1627
+ "enum": [
1628
+ "system"
1629
+ ]
1630
+ },
1631
+ {
1632
+ "type": "string",
1633
+ "enum": [
1634
+ "light"
1635
+ ]
1636
+ },
1637
+ {
1638
+ "type": "string",
1639
+ "enum": [
1640
+ "dark"
1641
+ ]
1642
+ }
1643
+ ],
1644
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
1599
1645
  }
1600
1646
  },
1601
1647
  "additionalProperties": false,
@@ -2244,6 +2290,29 @@
2244
2290
  "minimum": 1,
2245
2291
  "maximum": 365,
2246
2292
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
2293
+ },
2294
+ "theme": {
2295
+ "anyOf": [
2296
+ {
2297
+ "type": "string",
2298
+ "enum": [
2299
+ "system"
2300
+ ]
2301
+ },
2302
+ {
2303
+ "type": "string",
2304
+ "enum": [
2305
+ "light"
2306
+ ]
2307
+ },
2308
+ {
2309
+ "type": "string",
2310
+ "enum": [
2311
+ "dark"
2312
+ ]
2313
+ }
2314
+ ],
2315
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
2247
2316
  }
2248
2317
  },
2249
2318
  "additionalProperties": false,
@@ -6974,6 +7043,29 @@
6974
7043
  "minimum": 1,
6975
7044
  "maximum": 365,
6976
7045
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
7046
+ },
7047
+ "theme": {
7048
+ "anyOf": [
7049
+ {
7050
+ "type": "string",
7051
+ "enum": [
7052
+ "system"
7053
+ ]
7054
+ },
7055
+ {
7056
+ "type": "string",
7057
+ "enum": [
7058
+ "light"
7059
+ ]
7060
+ },
7061
+ {
7062
+ "type": "string",
7063
+ "enum": [
7064
+ "dark"
7065
+ ]
7066
+ }
7067
+ ],
7068
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
6977
7069
  }
6978
7070
  },
6979
7071
  "additionalProperties": false,
@@ -7345,6 +7437,10 @@
7345
7437
  "resource": {
7346
7438
  "type": "string",
7347
7439
  "description": "RFC 8707 Resource Indicator. Absolute URI of the target Api, no fragment. Matched against `Api.identifier` in the tenant."
7440
+ },
7441
+ "invalidate_token": {
7442
+ "type": "string",
7443
+ "description": "client_credentials only. An access token previously returned by this endpoint that a resource server rejected with 401. If it is the cached token for this client, the cache entry is dropped and a new token is issued; otherwise it has no effect."
7348
7444
  }
7349
7445
  },
7350
7446
  "additionalProperties": true
@@ -8089,6 +8185,29 @@
8089
8185
  "minimum": 1,
8090
8186
  "maximum": 365,
8091
8187
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
8188
+ },
8189
+ "theme": {
8190
+ "anyOf": [
8191
+ {
8192
+ "type": "string",
8193
+ "enum": [
8194
+ "system"
8195
+ ]
8196
+ },
8197
+ {
8198
+ "type": "string",
8199
+ "enum": [
8200
+ "light"
8201
+ ]
8202
+ },
8203
+ {
8204
+ "type": "string",
8205
+ "enum": [
8206
+ "dark"
8207
+ ]
8208
+ }
8209
+ ],
8210
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
8092
8211
  }
8093
8212
  },
8094
8213
  "additionalProperties": false,
@@ -8810,6 +8929,29 @@
8810
8929
  "minimum": 1,
8811
8930
  "maximum": 365,
8812
8931
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
8932
+ },
8933
+ "theme": {
8934
+ "anyOf": [
8935
+ {
8936
+ "type": "string",
8937
+ "enum": [
8938
+ "system"
8939
+ ]
8940
+ },
8941
+ {
8942
+ "type": "string",
8943
+ "enum": [
8944
+ "light"
8945
+ ]
8946
+ },
8947
+ {
8948
+ "type": "string",
8949
+ "enum": [
8950
+ "dark"
8951
+ ]
8952
+ }
8953
+ ],
8954
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
8813
8955
  }
8814
8956
  },
8815
8957
  "additionalProperties": false,
@@ -9768,6 +9910,29 @@
9768
9910
  "minimum": 1,
9769
9911
  "maximum": 365,
9770
9912
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
9913
+ },
9914
+ "theme": {
9915
+ "anyOf": [
9916
+ {
9917
+ "type": "string",
9918
+ "enum": [
9919
+ "system"
9920
+ ]
9921
+ },
9922
+ {
9923
+ "type": "string",
9924
+ "enum": [
9925
+ "light"
9926
+ ]
9927
+ },
9928
+ {
9929
+ "type": "string",
9930
+ "enum": [
9931
+ "dark"
9932
+ ]
9933
+ }
9934
+ ],
9935
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
9771
9936
  }
9772
9937
  },
9773
9938
  "additionalProperties": false,
@@ -10346,6 +10511,29 @@
10346
10511
  "minimum": 1,
10347
10512
  "maximum": 365,
10348
10513
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
10514
+ },
10515
+ "theme": {
10516
+ "anyOf": [
10517
+ {
10518
+ "type": "string",
10519
+ "enum": [
10520
+ "system"
10521
+ ]
10522
+ },
10523
+ {
10524
+ "type": "string",
10525
+ "enum": [
10526
+ "light"
10527
+ ]
10528
+ },
10529
+ {
10530
+ "type": "string",
10531
+ "enum": [
10532
+ "dark"
10533
+ ]
10534
+ }
10535
+ ],
10536
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
10349
10537
  }
10350
10538
  },
10351
10539
  "additionalProperties": false,
@@ -10879,6 +11067,29 @@
10879
11067
  "minimum": 1,
10880
11068
  "maximum": 365,
10881
11069
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
11070
+ },
11071
+ "theme": {
11072
+ "anyOf": [
11073
+ {
11074
+ "type": "string",
11075
+ "enum": [
11076
+ "system"
11077
+ ]
11078
+ },
11079
+ {
11080
+ "type": "string",
11081
+ "enum": [
11082
+ "light"
11083
+ ]
11084
+ },
11085
+ {
11086
+ "type": "string",
11087
+ "enum": [
11088
+ "dark"
11089
+ ]
11090
+ }
11091
+ ],
11092
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
10882
11093
  }
10883
11094
  },
10884
11095
  "additionalProperties": false,
@@ -13798,6 +14009,29 @@
13798
14009
  "minimum": 1,
13799
14010
  "maximum": 365,
13800
14011
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
14012
+ },
14013
+ "theme": {
14014
+ "anyOf": [
14015
+ {
14016
+ "type": "string",
14017
+ "enum": [
14018
+ "system"
14019
+ ]
14020
+ },
14021
+ {
14022
+ "type": "string",
14023
+ "enum": [
14024
+ "light"
14025
+ ]
14026
+ },
14027
+ {
14028
+ "type": "string",
14029
+ "enum": [
14030
+ "dark"
14031
+ ]
14032
+ }
14033
+ ],
14034
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
13801
14035
  }
13802
14036
  },
13803
14037
  "additionalProperties": false,
@@ -16742,6 +16976,14 @@
16742
16976
  "type": "string",
16743
16977
  "description": "The method key that was moved first because this browser used it last time (`remember_last_method`). Absent otherwise."
16744
16978
  },
16979
+ "theme": {
16980
+ "type": "string",
16981
+ "enum": [
16982
+ "light",
16983
+ "dark"
16984
+ ],
16985
+ "description": "The colour theme the screens are forced to, and the visitor's switch hidden: `theme` on this login's /authorize, else the tenant/client `login_methods.theme`. Absent when nothing forces it — the visitor's own choice, or the OS, decides."
16986
+ },
16745
16987
  "methods": {
16746
16988
  "type": "array",
16747
16989
  "items": {
@@ -17647,6 +17889,29 @@
17647
17889
  "minimum": 1,
17648
17890
  "maximum": 365,
17649
17891
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
17892
+ },
17893
+ "theme": {
17894
+ "anyOf": [
17895
+ {
17896
+ "type": "string",
17897
+ "enum": [
17898
+ "system"
17899
+ ]
17900
+ },
17901
+ {
17902
+ "type": "string",
17903
+ "enum": [
17904
+ "light"
17905
+ ]
17906
+ },
17907
+ {
17908
+ "type": "string",
17909
+ "enum": [
17910
+ "dark"
17911
+ ]
17912
+ }
17913
+ ],
17914
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
17650
17915
  }
17651
17916
  },
17652
17917
  "additionalProperties": false,
@@ -18266,6 +18531,29 @@
18266
18531
  "minimum": 1,
18267
18532
  "maximum": 365,
18268
18533
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
18534
+ },
18535
+ "theme": {
18536
+ "anyOf": [
18537
+ {
18538
+ "type": "string",
18539
+ "enum": [
18540
+ "system"
18541
+ ]
18542
+ },
18543
+ {
18544
+ "type": "string",
18545
+ "enum": [
18546
+ "light"
18547
+ ]
18548
+ },
18549
+ {
18550
+ "type": "string",
18551
+ "enum": [
18552
+ "dark"
18553
+ ]
18554
+ }
18555
+ ],
18556
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
18269
18557
  }
18270
18558
  },
18271
18559
  "additionalProperties": false,
@@ -18910,6 +19198,29 @@
18910
19198
  "minimum": 1,
18911
19199
  "maximum": 365,
18912
19200
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
19201
+ },
19202
+ "theme": {
19203
+ "anyOf": [
19204
+ {
19205
+ "type": "string",
19206
+ "enum": [
19207
+ "system"
19208
+ ]
19209
+ },
19210
+ {
19211
+ "type": "string",
19212
+ "enum": [
19213
+ "light"
19214
+ ]
19215
+ },
19216
+ {
19217
+ "type": "string",
19218
+ "enum": [
19219
+ "dark"
19220
+ ]
19221
+ }
19222
+ ],
19223
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
18913
19224
  }
18914
19225
  },
18915
19226
  "additionalProperties": false,
@@ -19373,6 +19684,29 @@
19373
19684
  "minimum": 1,
19374
19685
  "maximum": 365,
19375
19686
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
19687
+ },
19688
+ "theme": {
19689
+ "anyOf": [
19690
+ {
19691
+ "type": "string",
19692
+ "enum": [
19693
+ "system"
19694
+ ]
19695
+ },
19696
+ {
19697
+ "type": "string",
19698
+ "enum": [
19699
+ "light"
19700
+ ]
19701
+ },
19702
+ {
19703
+ "type": "string",
19704
+ "enum": [
19705
+ "dark"
19706
+ ]
19707
+ }
19708
+ ],
19709
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
19376
19710
  }
19377
19711
  },
19378
19712
  "additionalProperties": false,
@@ -19992,6 +20326,29 @@
19992
20326
  "minimum": 1,
19993
20327
  "maximum": 365,
19994
20328
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
20329
+ },
20330
+ "theme": {
20331
+ "anyOf": [
20332
+ {
20333
+ "type": "string",
20334
+ "enum": [
20335
+ "system"
20336
+ ]
20337
+ },
20338
+ {
20339
+ "type": "string",
20340
+ "enum": [
20341
+ "light"
20342
+ ]
20343
+ },
20344
+ {
20345
+ "type": "string",
20346
+ "enum": [
20347
+ "dark"
20348
+ ]
20349
+ }
20350
+ ],
20351
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
19995
20352
  }
19996
20353
  },
19997
20354
  "additionalProperties": false,
@@ -20612,6 +20969,29 @@
20612
20969
  "minimum": 1,
20613
20970
  "maximum": 365,
20614
20971
  "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
20972
+ },
20973
+ "theme": {
20974
+ "anyOf": [
20975
+ {
20976
+ "type": "string",
20977
+ "enum": [
20978
+ "system"
20979
+ ]
20980
+ },
20981
+ {
20982
+ "type": "string",
20983
+ "enum": [
20984
+ "light"
20985
+ ]
20986
+ },
20987
+ {
20988
+ "type": "string",
20989
+ "enum": [
20990
+ "dark"
20991
+ ]
20992
+ }
20993
+ ],
20994
+ "description": "Colour theme of the hosted login screens. `system` (the default): the visitor's OS decides, and the visitor can switch it from the screen. `light` / `dark`: forced, and the switch is hidden — for applications whose own pages are only one of the two. A `theme` query parameter on `/authorize` overrides this for that login."
20615
20995
  }
20616
20996
  },
20617
20997
  "additionalProperties": false,
@@ -60961,6 +61341,29 @@
60961
61341
  "required": false,
60962
61342
  "description": "Comma-separated methods the hosted login screen shows for this login: connection ids or connection names, and `passkey`. Each must be one the client already offers; the screen keeps the order configured for the client. Filters the screen only — it does not restrict which method the credential endpoints accept. Not combinable with `connection`, which skips the screen instead of narrowing it."
60963
61343
  },
61344
+ {
61345
+ "schema": {
61346
+ "anyOf": [
61347
+ {
61348
+ "type": "string",
61349
+ "enum": [
61350
+ "light"
61351
+ ]
61352
+ },
61353
+ {
61354
+ "type": "string",
61355
+ "enum": [
61356
+ "dark"
61357
+ ]
61358
+ }
61359
+ ]
61360
+ },
61361
+ "example": "dark",
61362
+ "in": "query",
61363
+ "name": "theme",
61364
+ "required": false,
61365
+ "description": "Force the colour theme of the hosted login screens for this login — for an application whose own pages are only light or only dark. Overrides the tenant's `login_methods.theme` and hides the visitor's theme switch on those screens. Omit it to keep the tenant setting."
61366
+ },
60964
61367
  {
60965
61368
  "schema": {
60966
61369
  "type": "string"
@@ -61990,6 +62393,15 @@
61990
62393
  "name": "resource",
61991
62394
  "required": false,
61992
62395
  "description": "RFC 8707 Resource Indicator. Absolute URI of the target Api, no fragment. Matched against `Api.identifier` in the tenant."
62396
+ },
62397
+ {
62398
+ "schema": {
62399
+ "type": "string"
62400
+ },
62401
+ "in": "query",
62402
+ "name": "invalidate_token",
62403
+ "required": false,
62404
+ "description": "client_credentials only. An access token previously returned by this endpoint that a resource server rejected with 401. If it is the cached token for this client, the cache entry is dropped and a new token is issued; otherwise it has no effect."
61993
62405
  }
61994
62406
  ],
61995
62407
  "responses": {
@@ -62259,6 +62671,10 @@
62259
62671
  "resource": {
62260
62672
  "type": "string",
62261
62673
  "description": "RFC 8707 Resource Indicator. Absolute URI of the target Api, no fragment. Matched against `Api.identifier` in the tenant."
62674
+ },
62675
+ "invalidate_token": {
62676
+ "type": "string",
62677
+ "description": "client_credentials only. An access token previously returned by this endpoint that a resource server rejected with 401. If it is the cached token for this client, the cache entry is dropped and a new token is issued; otherwise it has no effect."
62262
62678
  }
62263
62679
  },
62264
62680
  "additionalProperties": true
@@ -62472,6 +62888,15 @@
62472
62888
  "name": "resource",
62473
62889
  "required": false,
62474
62890
  "description": "RFC 8707 Resource Indicator. Absolute URI of the target Api, no fragment. Matched against `Api.identifier` in the tenant."
62891
+ },
62892
+ {
62893
+ "schema": {
62894
+ "type": "string"
62895
+ },
62896
+ "in": "query",
62897
+ "name": "invalidate_token",
62898
+ "required": false,
62899
+ "description": "client_credentials only. An access token previously returned by this endpoint that a resource server rejected with 401. If it is the cached token for this client, the cache entry is dropped and a new token is issued; otherwise it has no effect."
62475
62900
  }
62476
62901
  ],
62477
62902
  "responses": {