@faable/auth-sdk 2.5.78 → 2.5.79

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.
@@ -56,6 +56,8 @@ export declare class FaableAuthApi extends GeneratedFaableAuthApi {
56
56
  passkey_promotion?: "offer" | "off" | undefined;
57
57
  passkey_promotion_snooze_days?: number | undefined;
58
58
  passkey_promotion_max_prompts?: number | undefined;
59
+ remember_me?: "optional" | "off" | undefined;
60
+ remember_me_days?: number | undefined;
59
61
  } | undefined;
60
62
  login_flow?: string | null | undefined;
61
63
  mfa_policy?: {
@@ -757,6 +759,8 @@ export declare class FaableAuthApi extends GeneratedFaableAuthApi {
757
759
  passkey_promotion?: "offer" | "off" | undefined;
758
760
  passkey_promotion_snooze_days?: number | undefined;
759
761
  passkey_promotion_max_prompts?: number | undefined;
762
+ remember_me?: "optional" | "off" | undefined;
763
+ remember_me_days?: number | undefined;
760
764
  } | undefined;
761
765
  mfa_policy?: {
762
766
  mode?: "required" | "optional" | "off" | undefined;
@@ -810,6 +814,8 @@ export declare class FaableAuthApi extends GeneratedFaableAuthApi {
810
814
  passkey_promotion?: "offer" | "off" | undefined;
811
815
  passkey_promotion_snooze_days?: number | undefined;
812
816
  passkey_promotion_max_prompts?: number | undefined;
817
+ remember_me?: "optional" | "off" | undefined;
818
+ remember_me_days?: number | undefined;
813
819
  } | undefined;
814
820
  mfa_policy?: {
815
821
  mode?: "required" | "optional" | "off" | undefined;
@@ -866,6 +872,8 @@ export declare class FaableAuthApi extends GeneratedFaableAuthApi {
866
872
  passkey_promotion?: "offer" | "off" | undefined;
867
873
  passkey_promotion_snooze_days?: number | undefined;
868
874
  passkey_promotion_max_prompts?: number | undefined;
875
+ remember_me?: "optional" | "off" | undefined;
876
+ remember_me_days?: number | undefined;
869
877
  } | undefined;
870
878
  mfa_policy?: {
871
879
  mode?: "required" | "optional" | "off" | undefined;
@@ -921,6 +929,8 @@ export declare class FaableAuthApi extends GeneratedFaableAuthApi {
921
929
  passkey_promotion?: "offer" | "off" | undefined;
922
930
  passkey_promotion_snooze_days?: number | undefined;
923
931
  passkey_promotion_max_prompts?: number | undefined;
932
+ remember_me?: "optional" | "off" | undefined;
933
+ remember_me_days?: number | undefined;
924
934
  } | undefined;
925
935
  mfa_policy?: {
926
936
  mode?: "required" | "optional" | "off" | undefined;
@@ -52,6 +52,8 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
52
52
  passkey_promotion?: "offer" | "off" | undefined;
53
53
  passkey_promotion_snooze_days?: number | undefined;
54
54
  passkey_promotion_max_prompts?: number | undefined;
55
+ remember_me?: "optional" | "off" | undefined;
56
+ remember_me_days?: number | undefined;
55
57
  } | undefined;
56
58
  login_flow?: string | null | undefined;
57
59
  mfa_policy?: {
@@ -97,6 +99,8 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
97
99
  passkey_promotion?: "offer" | "off" | undefined;
98
100
  passkey_promotion_snooze_days?: number | undefined;
99
101
  passkey_promotion_max_prompts?: number | undefined;
102
+ remember_me?: "optional" | "off" | undefined;
103
+ remember_me_days?: number | undefined;
100
104
  } | undefined;
101
105
  login_flow?: string | null | undefined;
102
106
  mfa_policy?: {
@@ -148,6 +152,8 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
148
152
  passkey_promotion?: "offer" | "off" | undefined;
149
153
  passkey_promotion_snooze_days?: number | undefined;
150
154
  passkey_promotion_max_prompts?: number | undefined;
155
+ remember_me?: "optional" | "off" | undefined;
156
+ remember_me_days?: number | undefined;
151
157
  } | undefined;
152
158
  login_flow?: string | null | undefined;
153
159
  mfa_policy?: {
@@ -204,6 +210,8 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
204
210
  passkey_promotion?: "offer" | "off" | undefined;
205
211
  passkey_promotion_snooze_days?: number | undefined;
206
212
  passkey_promotion_max_prompts?: number | undefined;
213
+ remember_me?: "optional" | "off" | undefined;
214
+ remember_me_days?: number | undefined;
207
215
  } | undefined;
208
216
  login_flow?: string | null | undefined;
209
217
  mfa_policy?: {
@@ -244,6 +252,8 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
244
252
  passkey_promotion?: "offer" | "off" | undefined;
245
253
  passkey_promotion_snooze_days?: number | undefined;
246
254
  passkey_promotion_max_prompts?: number | undefined;
255
+ remember_me?: "optional" | "off" | undefined;
256
+ remember_me_days?: number | undefined;
247
257
  } | undefined;
248
258
  login_flow?: string | null | undefined;
249
259
  mfa_policy?: {
@@ -287,6 +297,8 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
287
297
  passkey_promotion?: "offer" | "off" | undefined;
288
298
  passkey_promotion_snooze_days?: number | undefined;
289
299
  passkey_promotion_max_prompts?: number | undefined;
300
+ remember_me?: "optional" | "off" | undefined;
301
+ remember_me_days?: number | undefined;
290
302
  } | undefined;
291
303
  login_flow?: string | null | undefined;
292
304
  mfa_policy?: {
@@ -345,6 +357,8 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
345
357
  passkey_promotion?: "offer" | "off" | undefined;
346
358
  passkey_promotion_snooze_days?: number | undefined;
347
359
  passkey_promotion_max_prompts?: number | undefined;
360
+ remember_me?: "optional" | "off" | undefined;
361
+ remember_me_days?: number | undefined;
348
362
  } | undefined;
349
363
  login_flow?: string | null | undefined;
350
364
  mfa_policy?: {
@@ -754,6 +768,8 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
754
768
  passkey_promotion?: "offer" | "off" | undefined;
755
769
  passkey_promotion_snooze_days?: number | undefined;
756
770
  passkey_promotion_max_prompts?: number | undefined;
771
+ remember_me?: "optional" | "off" | undefined;
772
+ remember_me_days?: number | undefined;
757
773
  } | undefined;
758
774
  mfa_policy?: {
759
775
  mode?: "required" | "optional" | "off" | undefined;
@@ -812,6 +828,8 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
812
828
  passkey_promotion?: "offer" | "off" | undefined;
813
829
  passkey_promotion_snooze_days?: number | undefined;
814
830
  passkey_promotion_max_prompts?: number | undefined;
831
+ remember_me?: "optional" | "off" | undefined;
832
+ remember_me_days?: number | undefined;
815
833
  } | undefined;
816
834
  mfa_policy?: {
817
835
  mode?: "required" | "optional" | "off" | undefined;
@@ -870,6 +888,8 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
870
888
  passkey_promotion?: "offer" | "off" | undefined;
871
889
  passkey_promotion_snooze_days?: number | undefined;
872
890
  passkey_promotion_max_prompts?: number | undefined;
891
+ remember_me?: "optional" | "off" | undefined;
892
+ remember_me_days?: number | undefined;
873
893
  } | undefined;
874
894
  mfa_policy?: {
875
895
  mode?: "required" | "optional" | "off" | undefined;
@@ -929,6 +949,8 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
929
949
  passkey_promotion?: "offer" | "off" | undefined;
930
950
  passkey_promotion_snooze_days?: number | undefined;
931
951
  passkey_promotion_max_prompts?: number | undefined;
952
+ remember_me?: "optional" | "off" | undefined;
953
+ remember_me_days?: number | undefined;
932
954
  } | undefined;
933
955
  mfa_policy?: {
934
956
  mode?: "required" | "optional" | "off" | undefined;
@@ -982,6 +1004,8 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
982
1004
  passkey_promotion?: "offer" | "off" | undefined;
983
1005
  passkey_promotion_snooze_days?: number | undefined;
984
1006
  passkey_promotion_max_prompts?: number | undefined;
1007
+ remember_me?: "optional" | "off" | undefined;
1008
+ remember_me_days?: number | undefined;
985
1009
  } | undefined;
986
1010
  mfa_policy?: {
987
1011
  mode?: "required" | "optional" | "off" | undefined;
@@ -1038,6 +1062,8 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
1038
1062
  passkey_promotion?: "offer" | "off" | undefined;
1039
1063
  passkey_promotion_snooze_days?: number | undefined;
1040
1064
  passkey_promotion_max_prompts?: number | undefined;
1065
+ remember_me?: "optional" | "off" | undefined;
1066
+ remember_me_days?: number | undefined;
1041
1067
  } | undefined;
1042
1068
  mfa_policy?: {
1043
1069
  mode?: "required" | "optional" | "off" | undefined;
@@ -1097,6 +1123,8 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
1097
1123
  passkey_promotion?: "offer" | "off" | undefined;
1098
1124
  passkey_promotion_snooze_days?: number | undefined;
1099
1125
  passkey_promotion_max_prompts?: number | undefined;
1126
+ remember_me?: "optional" | "off" | undefined;
1127
+ remember_me_days?: number | undefined;
1100
1128
  } | undefined;
1101
1129
  mfa_policy?: {
1102
1130
  mode?: "required" | "optional" | "off" | undefined;
@@ -1155,6 +1183,8 @@ export declare abstract class GeneratedFaableAuthApi extends FaableApi {
1155
1183
  passkey_promotion?: "offer" | "off" | undefined;
1156
1184
  passkey_promotion_snooze_days?: number | undefined;
1157
1185
  passkey_promotion_max_prompts?: number | undefined;
1186
+ remember_me?: "optional" | "off" | undefined;
1187
+ remember_me_days?: number | undefined;
1158
1188
  } | undefined;
1159
1189
  mfa_policy?: {
1160
1190
  mode?: "required" | "optional" | "off" | undefined;
@@ -220,7 +220,7 @@ export interface paths {
220
220
  patch?: never;
221
221
  trace?: never;
222
222
  };
223
- "/flow/identify": {
223
+ "/login/identify": {
224
224
  parameters: {
225
225
  query?: never;
226
226
  header?: never;
@@ -233,7 +233,7 @@ export interface paths {
233
233
  * Leave the identifier-first screen
234
234
  * @description Records the identifier the user typed on the hosted `/flow/identify` screen and advances the login to the method chooser. `state` is the id the screen was opened with; it stays valid, so the chooser is reached with the same `?state=`.
235
235
  */
236
- post: operations["flow/identify"];
236
+ post: operations["login/identify"];
237
237
  delete?: never;
238
238
  options?: never;
239
239
  head?: never;
@@ -1529,6 +1529,54 @@ export interface paths {
1529
1529
  patch?: never;
1530
1530
  trace?: never;
1531
1531
  };
1532
+ "/mfa/challenge/options": {
1533
+ parameters: {
1534
+ query?: never;
1535
+ header?: never;
1536
+ path?: never;
1537
+ cookie?: never;
1538
+ };
1539
+ /**
1540
+ * What the second-factor screen should offer
1541
+ * @description For a login parked on the hosted challenge screen: which factors the user can answer with, in the order and with the default the login flow chose, and whether recovery codes are an option. Reads the state without consuming it.
1542
+ */
1543
+ get: {
1544
+ parameters: {
1545
+ query: {
1546
+ state: string;
1547
+ };
1548
+ header?: never;
1549
+ path?: never;
1550
+ cookie?: never;
1551
+ };
1552
+ requestBody?: never;
1553
+ responses: {
1554
+ /** @description Default Response */
1555
+ 200: {
1556
+ headers: {
1557
+ [name: string]: unknown;
1558
+ };
1559
+ content: {
1560
+ "application/json": {
1561
+ /** @description The ways this user can answer, in the order the screen should offer them. Only factors the user actually has and the policy accepts. */
1562
+ factors: ("totp" | "webauthn")[];
1563
+ /** @description The one to mark as the default, when there are several. */
1564
+ preferred?: "totp" | "webauthn";
1565
+ /** @description Whether to offer the recovery-code way in: the flow allows it and the user has codes. */
1566
+ recovery: boolean;
1567
+ };
1568
+ };
1569
+ };
1570
+ };
1571
+ };
1572
+ put?: never;
1573
+ post?: never;
1574
+ delete?: never;
1575
+ options?: never;
1576
+ head?: never;
1577
+ patch?: never;
1578
+ trace?: never;
1579
+ };
1532
1580
  "/mfa/verify": {
1533
1581
  parameters: {
1534
1582
  query?: never;
@@ -2123,6 +2171,8 @@ export interface paths {
2123
2171
  client_id: string;
2124
2172
  redirect_to?: string;
2125
2173
  state?: string;
2174
+ /** @description The "Remember me on this device" checkbox. Honoured only when the tenant shows one (`login_methods.remember_me: "optional"`). */
2175
+ remember_me?: boolean;
2126
2176
  };
2127
2177
  };
2128
2178
  };
@@ -2705,6 +2755,10 @@ export interface components {
2705
2755
  passkey_promotion_snooze_days?: number;
2706
2756
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
2707
2757
  passkey_promotion_max_prompts?: number;
2758
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
2759
+ remember_me?: "off" | "optional";
2760
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
2761
+ remember_me_days?: number;
2708
2762
  };
2709
2763
  /** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
2710
2764
  login_flow?: string | null;
@@ -2993,6 +3047,10 @@ export interface components {
2993
3047
  passkey_promotion_snooze_days?: number;
2994
3048
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
2995
3049
  passkey_promotion_max_prompts?: number;
3050
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
3051
+ remember_me?: "off" | "optional";
3052
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
3053
+ remember_me_days?: number;
2996
3054
  };
2997
3055
  /** @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. */
2998
3056
  mfa_policy?: {
@@ -3094,6 +3152,10 @@ export interface components {
3094
3152
  passkey_promotion_snooze_days?: number;
3095
3153
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
3096
3154
  passkey_promotion_max_prompts?: number;
3155
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
3156
+ remember_me?: "off" | "optional";
3157
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
3158
+ remember_me_days?: number;
3097
3159
  } | null;
3098
3160
  mfa_policy?: {
3099
3161
  /** @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. */
@@ -4522,6 +4584,10 @@ export interface components {
4522
4584
  passkey_promotion_snooze_days?: number;
4523
4585
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
4524
4586
  passkey_promotion_max_prompts?: number;
4587
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
4588
+ remember_me?: "off" | "optional";
4589
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
4590
+ remember_me_days?: number;
4525
4591
  } | null;
4526
4592
  mfa_policy?: {
4527
4593
  /** @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. */
@@ -4579,6 +4645,8 @@ export interface components {
4579
4645
  response_type?: string;
4580
4646
  /** @description Same-origin path to return the user to after authentication, instead of the OAuth client redirect. Used by first-party interactive flows (e.g. device-code confirm). Non same-origin values are ignored. */
4581
4647
  redirect_to?: string;
4648
+ /** @description The "Remember me on this device" checkbox. Honoured only when the tenant shows one (`login_methods.remember_me: "optional"`): `true` keeps the session for `remember_me_days`, `false` ends it when the browser closes. */
4649
+ remember_me?: boolean;
4582
4650
  client_id: string;
4583
4651
  /** @description Deprecated. Use connection_id */
4584
4652
  connection?: string;
@@ -4689,6 +4757,10 @@ export interface operations {
4689
4757
  passkey_promotion_snooze_days?: number;
4690
4758
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
4691
4759
  passkey_promotion_max_prompts?: number;
4760
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
4761
+ remember_me?: "off" | "optional";
4762
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
4763
+ remember_me_days?: number;
4692
4764
  };
4693
4765
  /** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
4694
4766
  login_flow?: string | null;
@@ -4835,6 +4907,10 @@ export interface operations {
4835
4907
  passkey_promotion_snooze_days?: number;
4836
4908
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
4837
4909
  passkey_promotion_max_prompts?: number;
4910
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
4911
+ remember_me?: "off" | "optional";
4912
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
4913
+ remember_me_days?: number;
4838
4914
  };
4839
4915
  /** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
4840
4916
  login_flow?: string | null;
@@ -4935,6 +5011,10 @@ export interface operations {
4935
5011
  passkey_promotion_snooze_days?: number;
4936
5012
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
4937
5013
  passkey_promotion_max_prompts?: number;
5014
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
5015
+ remember_me?: "off" | "optional";
5016
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
5017
+ remember_me_days?: number;
4938
5018
  };
4939
5019
  /** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
4940
5020
  login_flow?: string | null;
@@ -5007,6 +5087,10 @@ export interface operations {
5007
5087
  passkey_promotion_snooze_days?: number;
5008
5088
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
5009
5089
  passkey_promotion_max_prompts?: number;
5090
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
5091
+ remember_me?: "off" | "optional";
5092
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
5093
+ remember_me_days?: number;
5010
5094
  } | null;
5011
5095
  mfa_policy?: {
5012
5096
  /** @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. */
@@ -5085,6 +5169,10 @@ export interface operations {
5085
5169
  passkey_promotion_snooze_days?: number;
5086
5170
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
5087
5171
  passkey_promotion_max_prompts?: number;
5172
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
5173
+ remember_me?: "off" | "optional";
5174
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
5175
+ remember_me_days?: number;
5088
5176
  };
5089
5177
  /** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
5090
5178
  login_flow?: string | null;
@@ -5194,6 +5282,10 @@ export interface operations {
5194
5282
  passkey_promotion_snooze_days?: number;
5195
5283
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
5196
5284
  passkey_promotion_max_prompts?: number;
5285
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
5286
+ remember_me?: "off" | "optional";
5287
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
5288
+ remember_me_days?: number;
5197
5289
  };
5198
5290
  /** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
5199
5291
  login_flow?: string | null;
@@ -5744,6 +5836,8 @@ export interface operations {
5744
5836
  } | null;
5745
5837
  identifier_first: boolean;
5746
5838
  remember_last_method: boolean;
5839
+ /** @description Render a "Remember me on this device" checkbox on the password and email-code forms, and send its value as `remember_me` when posting the credential. */
5840
+ remember_me: boolean;
5747
5841
  /** @description What the user typed on the identifier-first screen, when the flow has one. Prefill the email field with it. */
5748
5842
  identifier?: string;
5749
5843
  /** @description The method key that was moved first because this browser used it last time (`remember_last_method`). Absent otherwise. */
@@ -5755,7 +5849,7 @@ export interface operations {
5755
5849
  };
5756
5850
  };
5757
5851
  };
5758
- "flow/identify": {
5852
+ "login/identify": {
5759
5853
  parameters: {
5760
5854
  query?: never;
5761
5855
  header?: never;
@@ -5900,6 +5994,10 @@ export interface operations {
5900
5994
  passkey_promotion_snooze_days?: number;
5901
5995
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
5902
5996
  passkey_promotion_max_prompts?: number;
5997
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
5998
+ remember_me?: "off" | "optional";
5999
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
6000
+ remember_me_days?: number;
5903
6001
  };
5904
6002
  /** @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. */
5905
6003
  mfa_policy?: {
@@ -5999,6 +6097,10 @@ export interface operations {
5999
6097
  passkey_promotion_snooze_days?: number;
6000
6098
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
6001
6099
  passkey_promotion_max_prompts?: number;
6100
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
6101
+ remember_me?: "off" | "optional";
6102
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
6103
+ remember_me_days?: number;
6002
6104
  };
6003
6105
  /** @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. */
6004
6106
  mfa_policy?: {
@@ -6092,6 +6194,10 @@ export interface operations {
6092
6194
  passkey_promotion_snooze_days?: number;
6093
6195
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
6094
6196
  passkey_promotion_max_prompts?: number;
6197
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
6198
+ remember_me?: "off" | "optional";
6199
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
6200
+ remember_me_days?: number;
6095
6201
  } | null;
6096
6202
  mfa_policy?: {
6097
6203
  /** @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. */
@@ -6171,6 +6277,10 @@ export interface operations {
6171
6277
  passkey_promotion_snooze_days?: number;
6172
6278
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
6173
6279
  passkey_promotion_max_prompts?: number;
6280
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
6281
+ remember_me?: "off" | "optional";
6282
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
6283
+ remember_me_days?: number;
6174
6284
  };
6175
6285
  /** @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. */
6176
6286
  mfa_policy?: {
@@ -6270,6 +6380,10 @@ export interface operations {
6270
6380
  passkey_promotion_snooze_days?: number;
6271
6381
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
6272
6382
  passkey_promotion_max_prompts?: number;
6383
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
6384
+ remember_me?: "off" | "optional";
6385
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
6386
+ remember_me_days?: number;
6273
6387
  };
6274
6388
  /** @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. */
6275
6389
  mfa_policy?: {
@@ -6369,6 +6483,10 @@ export interface operations {
6369
6483
  passkey_promotion_snooze_days?: number;
6370
6484
  /** @description How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3. */
6371
6485
  passkey_promotion_max_prompts?: number;
6486
+ /** @description Show a "Remember me on this device" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days. */
6487
+ remember_me?: "off" | "optional";
6488
+ /** @description How long a session lasts when the user ticked "Remember me". Defaults to 30. */
6489
+ remember_me_days?: number;
6372
6490
  };
6373
6491
  /** @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. */
6374
6492
  mfa_policy?: {
@@ -11652,6 +11770,8 @@ export interface operations {
11652
11770
  otp: string;
11653
11771
  /** @description Same-origin path to return the user to after authentication, instead of the OAuth client redirect. Used by first-party interactive flows (e.g. device-code confirm). Non same-origin values are ignored. */
11654
11772
  redirect_to?: string;
11773
+ /** @description The "Remember me on this device" checkbox. Honoured only when the tenant shows one (`login_methods.remember_me: "optional"`). */
11774
+ remember_me?: boolean;
11655
11775
  };
11656
11776
  };
11657
11777
  };
@@ -12480,6 +12600,8 @@ export interface operations {
12480
12600
  response_type?: string;
12481
12601
  /** @description Same-origin path to return the user to after authentication, instead of the OAuth client redirect. Used by first-party interactive flows (e.g. device-code confirm). Non same-origin values are ignored. */
12482
12602
  redirect_to?: string;
12603
+ /** @description The "Remember me on this device" checkbox. Honoured only when the tenant shows one (`login_methods.remember_me: "optional"`): `true` keeps the session for `remember_me_days`, `false` ends it when the browser closes. */
12604
+ remember_me?: boolean;
12483
12605
  client_id: string;
12484
12606
  /** @description Deprecated. Use connection_id */
12485
12607
  connection?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faable/auth-sdk",
3
- "version": "2.5.78",
3
+ "version": "2.5.79",
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.4.0",
6
+ "version": "2.5.1",
7
7
  "license": {
8
8
  "name": "private",
9
9
  "url": "https://faable.com/docs/platform/privacy-policy"
@@ -232,6 +232,29 @@
232
232
  "minimum": 0,
233
233
  "maximum": 10,
234
234
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
235
+ },
236
+ "remember_me": {
237
+ "anyOf": [
238
+ {
239
+ "type": "string",
240
+ "enum": [
241
+ "off"
242
+ ]
243
+ },
244
+ {
245
+ "type": "string",
246
+ "enum": [
247
+ "optional"
248
+ ]
249
+ }
250
+ ],
251
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
252
+ },
253
+ "remember_me_days": {
254
+ "type": "integer",
255
+ "minimum": 1,
256
+ "maximum": 365,
257
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
235
258
  }
236
259
  },
237
260
  "additionalProperties": false,
@@ -1267,6 +1290,29 @@
1267
1290
  "minimum": 0,
1268
1291
  "maximum": 10,
1269
1292
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
1293
+ },
1294
+ "remember_me": {
1295
+ "anyOf": [
1296
+ {
1297
+ "type": "string",
1298
+ "enum": [
1299
+ "off"
1300
+ ]
1301
+ },
1302
+ {
1303
+ "type": "string",
1304
+ "enum": [
1305
+ "optional"
1306
+ ]
1307
+ }
1308
+ ],
1309
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
1310
+ },
1311
+ "remember_me_days": {
1312
+ "type": "integer",
1313
+ "minimum": 1,
1314
+ "maximum": 365,
1315
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
1270
1316
  }
1271
1317
  },
1272
1318
  "additionalProperties": false,
@@ -1596,6 +1642,29 @@
1596
1642
  "minimum": 0,
1597
1643
  "maximum": 10,
1598
1644
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
1645
+ },
1646
+ "remember_me": {
1647
+ "anyOf": [
1648
+ {
1649
+ "type": "string",
1650
+ "enum": [
1651
+ "off"
1652
+ ]
1653
+ },
1654
+ {
1655
+ "type": "string",
1656
+ "enum": [
1657
+ "optional"
1658
+ ]
1659
+ }
1660
+ ],
1661
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
1662
+ },
1663
+ "remember_me_days": {
1664
+ "type": "integer",
1665
+ "minimum": 1,
1666
+ "maximum": 365,
1667
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
1599
1668
  }
1600
1669
  },
1601
1670
  "additionalProperties": false,
@@ -5755,6 +5824,29 @@
5755
5824
  "minimum": 0,
5756
5825
  "maximum": 10,
5757
5826
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
5827
+ },
5828
+ "remember_me": {
5829
+ "anyOf": [
5830
+ {
5831
+ "type": "string",
5832
+ "enum": [
5833
+ "off"
5834
+ ]
5835
+ },
5836
+ {
5837
+ "type": "string",
5838
+ "enum": [
5839
+ "optional"
5840
+ ]
5841
+ }
5842
+ ],
5843
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
5844
+ },
5845
+ "remember_me_days": {
5846
+ "type": "integer",
5847
+ "minimum": 1,
5848
+ "maximum": 365,
5849
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
5758
5850
  }
5759
5851
  },
5760
5852
  "additionalProperties": false,
@@ -6070,6 +6162,10 @@
6070
6162
  "type": "string",
6071
6163
  "description": "Same-origin path to return the user to after authentication, instead of the OAuth client redirect. Used by first-party interactive flows (e.g. device-code confirm). Non same-origin values are ignored."
6072
6164
  },
6165
+ "remember_me": {
6166
+ "type": "boolean",
6167
+ "description": "The \"Remember me on this device\" checkbox. Honoured only when the tenant shows one (`login_methods.remember_me: \"optional\"`): `true` keeps the session for `remember_me_days`, `false` ends it when the browser closes."
6168
+ },
6073
6169
  "client_id": {
6074
6170
  "type": "string"
6075
6171
  },
@@ -6375,6 +6471,29 @@
6375
6471
  "minimum": 0,
6376
6472
  "maximum": 10,
6377
6473
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
6474
+ },
6475
+ "remember_me": {
6476
+ "anyOf": [
6477
+ {
6478
+ "type": "string",
6479
+ "enum": [
6480
+ "off"
6481
+ ]
6482
+ },
6483
+ {
6484
+ "type": "string",
6485
+ "enum": [
6486
+ "optional"
6487
+ ]
6488
+ }
6489
+ ],
6490
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
6491
+ },
6492
+ "remember_me_days": {
6493
+ "type": "integer",
6494
+ "minimum": 1,
6495
+ "maximum": 365,
6496
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
6378
6497
  }
6379
6498
  },
6380
6499
  "additionalProperties": false,
@@ -6737,6 +6856,29 @@
6737
6856
  "minimum": 0,
6738
6857
  "maximum": 10,
6739
6858
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
6859
+ },
6860
+ "remember_me": {
6861
+ "anyOf": [
6862
+ {
6863
+ "type": "string",
6864
+ "enum": [
6865
+ "off"
6866
+ ]
6867
+ },
6868
+ {
6869
+ "type": "string",
6870
+ "enum": [
6871
+ "optional"
6872
+ ]
6873
+ }
6874
+ ],
6875
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
6876
+ },
6877
+ "remember_me_days": {
6878
+ "type": "integer",
6879
+ "minimum": 1,
6880
+ "maximum": 365,
6881
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
6740
6882
  }
6741
6883
  },
6742
6884
  "additionalProperties": false,
@@ -7153,6 +7295,29 @@
7153
7295
  "minimum": 0,
7154
7296
  "maximum": 10,
7155
7297
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
7298
+ },
7299
+ "remember_me": {
7300
+ "anyOf": [
7301
+ {
7302
+ "type": "string",
7303
+ "enum": [
7304
+ "off"
7305
+ ]
7306
+ },
7307
+ {
7308
+ "type": "string",
7309
+ "enum": [
7310
+ "optional"
7311
+ ]
7312
+ }
7313
+ ],
7314
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
7315
+ },
7316
+ "remember_me_days": {
7317
+ "type": "integer",
7318
+ "minimum": 1,
7319
+ "maximum": 365,
7320
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
7156
7321
  }
7157
7322
  },
7158
7323
  "additionalProperties": false,
@@ -7369,6 +7534,29 @@
7369
7534
  "minimum": 0,
7370
7535
  "maximum": 10,
7371
7536
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
7537
+ },
7538
+ "remember_me": {
7539
+ "anyOf": [
7540
+ {
7541
+ "type": "string",
7542
+ "enum": [
7543
+ "off"
7544
+ ]
7545
+ },
7546
+ {
7547
+ "type": "string",
7548
+ "enum": [
7549
+ "optional"
7550
+ ]
7551
+ }
7552
+ ],
7553
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
7554
+ },
7555
+ "remember_me_days": {
7556
+ "type": "integer",
7557
+ "minimum": 1,
7558
+ "maximum": 365,
7559
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
7372
7560
  }
7373
7561
  },
7374
7562
  "additionalProperties": false,
@@ -7678,6 +7866,29 @@
7678
7866
  "minimum": 0,
7679
7867
  "maximum": 10,
7680
7868
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
7869
+ },
7870
+ "remember_me": {
7871
+ "anyOf": [
7872
+ {
7873
+ "type": "string",
7874
+ "enum": [
7875
+ "off"
7876
+ ]
7877
+ },
7878
+ {
7879
+ "type": "string",
7880
+ "enum": [
7881
+ "optional"
7882
+ ]
7883
+ }
7884
+ ],
7885
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
7886
+ },
7887
+ "remember_me_days": {
7888
+ "type": "integer",
7889
+ "minimum": 1,
7890
+ "maximum": 365,
7891
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
7681
7892
  }
7682
7893
  },
7683
7894
  "additionalProperties": false,
@@ -8013,6 +8224,29 @@
8013
8224
  "minimum": 0,
8014
8225
  "maximum": 10,
8015
8226
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
8227
+ },
8228
+ "remember_me": {
8229
+ "anyOf": [
8230
+ {
8231
+ "type": "string",
8232
+ "enum": [
8233
+ "off"
8234
+ ]
8235
+ },
8236
+ {
8237
+ "type": "string",
8238
+ "enum": [
8239
+ "optional"
8240
+ ]
8241
+ }
8242
+ ],
8243
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
8244
+ },
8245
+ "remember_me_days": {
8246
+ "type": "integer",
8247
+ "minimum": 1,
8248
+ "maximum": 365,
8249
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
8016
8250
  }
8017
8251
  },
8018
8252
  "additionalProperties": false,
@@ -9600,6 +9834,7 @@
9600
9834
  "client",
9601
9835
  "identifier_first",
9602
9836
  "remember_last_method",
9837
+ "remember_me",
9603
9838
  "methods"
9604
9839
  ],
9605
9840
  "properties": {
@@ -9673,6 +9908,10 @@
9673
9908
  "remember_last_method": {
9674
9909
  "type": "boolean"
9675
9910
  },
9911
+ "remember_me": {
9912
+ "type": "boolean",
9913
+ "description": "Render a \"Remember me on this device\" checkbox on the password and email-code forms, and send its value as `remember_me` when posting the credential."
9914
+ },
9676
9915
  "identifier": {
9677
9916
  "type": "string",
9678
9917
  "description": "What the user typed on the identifier-first screen, when the flow has one. Prefill the email field with it."
@@ -9697,9 +9936,9 @@
9697
9936
  }
9698
9937
  }
9699
9938
  },
9700
- "/flow/identify": {
9939
+ "/login/identify": {
9701
9940
  "post": {
9702
- "operationId": "flow/identify",
9941
+ "operationId": "login/identify",
9703
9942
  "summary": "Leave the identifier-first screen",
9704
9943
  "tags": [
9705
9944
  "connection"
@@ -10111,6 +10350,29 @@
10111
10350
  "minimum": 0,
10112
10351
  "maximum": 10,
10113
10352
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
10353
+ },
10354
+ "remember_me": {
10355
+ "anyOf": [
10356
+ {
10357
+ "type": "string",
10358
+ "enum": [
10359
+ "off"
10360
+ ]
10361
+ },
10362
+ {
10363
+ "type": "string",
10364
+ "enum": [
10365
+ "optional"
10366
+ ]
10367
+ }
10368
+ ],
10369
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
10370
+ },
10371
+ "remember_me_days": {
10372
+ "type": "integer",
10373
+ "minimum": 1,
10374
+ "maximum": 365,
10375
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
10114
10376
  }
10115
10377
  },
10116
10378
  "additionalProperties": false,
@@ -10438,6 +10700,29 @@
10438
10700
  "minimum": 0,
10439
10701
  "maximum": 10,
10440
10702
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
10703
+ },
10704
+ "remember_me": {
10705
+ "anyOf": [
10706
+ {
10707
+ "type": "string",
10708
+ "enum": [
10709
+ "off"
10710
+ ]
10711
+ },
10712
+ {
10713
+ "type": "string",
10714
+ "enum": [
10715
+ "optional"
10716
+ ]
10717
+ }
10718
+ ],
10719
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
10720
+ },
10721
+ "remember_me_days": {
10722
+ "type": "integer",
10723
+ "minimum": 1,
10724
+ "maximum": 365,
10725
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
10441
10726
  }
10442
10727
  },
10443
10728
  "additionalProperties": false,
@@ -10730,6 +11015,29 @@
10730
11015
  "minimum": 0,
10731
11016
  "maximum": 10,
10732
11017
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
11018
+ },
11019
+ "remember_me": {
11020
+ "anyOf": [
11021
+ {
11022
+ "type": "string",
11023
+ "enum": [
11024
+ "off"
11025
+ ]
11026
+ },
11027
+ {
11028
+ "type": "string",
11029
+ "enum": [
11030
+ "optional"
11031
+ ]
11032
+ }
11033
+ ],
11034
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
11035
+ },
11036
+ "remember_me_days": {
11037
+ "type": "integer",
11038
+ "minimum": 1,
11039
+ "maximum": 365,
11040
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
10733
11041
  }
10734
11042
  },
10735
11043
  "additionalProperties": false,
@@ -11047,6 +11355,29 @@
11047
11355
  "minimum": 0,
11048
11356
  "maximum": 10,
11049
11357
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
11358
+ },
11359
+ "remember_me": {
11360
+ "anyOf": [
11361
+ {
11362
+ "type": "string",
11363
+ "enum": [
11364
+ "off"
11365
+ ]
11366
+ },
11367
+ {
11368
+ "type": "string",
11369
+ "enum": [
11370
+ "optional"
11371
+ ]
11372
+ }
11373
+ ],
11374
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
11375
+ },
11376
+ "remember_me_days": {
11377
+ "type": "integer",
11378
+ "minimum": 1,
11379
+ "maximum": 365,
11380
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
11050
11381
  }
11051
11382
  },
11052
11383
  "additionalProperties": false,
@@ -11372,6 +11703,29 @@
11372
11703
  "minimum": 0,
11373
11704
  "maximum": 10,
11374
11705
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
11706
+ },
11707
+ "remember_me": {
11708
+ "anyOf": [
11709
+ {
11710
+ "type": "string",
11711
+ "enum": [
11712
+ "off"
11713
+ ]
11714
+ },
11715
+ {
11716
+ "type": "string",
11717
+ "enum": [
11718
+ "optional"
11719
+ ]
11720
+ }
11721
+ ],
11722
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
11723
+ },
11724
+ "remember_me_days": {
11725
+ "type": "integer",
11726
+ "minimum": 1,
11727
+ "maximum": 365,
11728
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
11375
11729
  }
11376
11730
  },
11377
11731
  "additionalProperties": false,
@@ -11699,6 +12053,29 @@
11699
12053
  "minimum": 0,
11700
12054
  "maximum": 10,
11701
12055
  "description": "How many times a user is offered a passkey over their lifetime. `0` switches the offer off for this tenant without changing `passkey_promotion`. Defaults to 3."
12056
+ },
12057
+ "remember_me": {
12058
+ "anyOf": [
12059
+ {
12060
+ "type": "string",
12061
+ "enum": [
12062
+ "off"
12063
+ ]
12064
+ },
12065
+ {
12066
+ "type": "string",
12067
+ "enum": [
12068
+ "optional"
12069
+ ]
12070
+ }
12071
+ ],
12072
+ "description": "Show a \"Remember me on this device\" checkbox on the password and email-code forms. `optional`: unchecked, the session ends when the browser closes; checked, it lasts `remember_me_days`. `off` (the default): no checkbox, every session lasts the built-in 30 days."
12073
+ },
12074
+ "remember_me_days": {
12075
+ "type": "integer",
12076
+ "minimum": 1,
12077
+ "maximum": 365,
12078
+ "description": "How long a session lasts when the user ticked \"Remember me\". Defaults to 30."
11702
12079
  }
11703
12080
  },
11704
12081
  "additionalProperties": false,
@@ -27383,6 +27760,10 @@
27383
27760
  "redirect_to": {
27384
27761
  "type": "string",
27385
27762
  "description": "Same-origin path to return the user to after authentication, instead of the OAuth client redirect. Used by first-party interactive flows (e.g. device-code confirm). Non same-origin values are ignored."
27763
+ },
27764
+ "remember_me": {
27765
+ "type": "boolean",
27766
+ "description": "The \"Remember me on this device\" checkbox. Honoured only when the tenant shows one (`login_methods.remember_me: \"optional\"`)."
27386
27767
  }
27387
27768
  }
27388
27769
  }
@@ -27462,6 +27843,85 @@
27462
27843
  }
27463
27844
  }
27464
27845
  },
27846
+ "/mfa/challenge/options": {
27847
+ "get": {
27848
+ "summary": "What the second-factor screen should offer",
27849
+ "tags": [
27850
+ "mfa"
27851
+ ],
27852
+ "description": "For a login parked on the hosted challenge screen: which factors the user can answer with, in the order and with the default the login flow chose, and whether recovery codes are an option. Reads the state without consuming it.",
27853
+ "parameters": [
27854
+ {
27855
+ "schema": {
27856
+ "type": "string"
27857
+ },
27858
+ "in": "query",
27859
+ "name": "state",
27860
+ "required": true
27861
+ }
27862
+ ],
27863
+ "responses": {
27864
+ "200": {
27865
+ "description": "Default Response",
27866
+ "content": {
27867
+ "application/json": {
27868
+ "schema": {
27869
+ "type": "object",
27870
+ "required": [
27871
+ "factors",
27872
+ "recovery"
27873
+ ],
27874
+ "properties": {
27875
+ "factors": {
27876
+ "type": "array",
27877
+ "items": {
27878
+ "anyOf": [
27879
+ {
27880
+ "type": "string",
27881
+ "enum": [
27882
+ "totp"
27883
+ ]
27884
+ },
27885
+ {
27886
+ "type": "string",
27887
+ "enum": [
27888
+ "webauthn"
27889
+ ]
27890
+ }
27891
+ ]
27892
+ },
27893
+ "description": "The ways this user can answer, in the order the screen should offer them. Only factors the user actually has and the policy accepts."
27894
+ },
27895
+ "preferred": {
27896
+ "anyOf": [
27897
+ {
27898
+ "type": "string",
27899
+ "enum": [
27900
+ "totp"
27901
+ ]
27902
+ },
27903
+ {
27904
+ "type": "string",
27905
+ "enum": [
27906
+ "webauthn"
27907
+ ]
27908
+ }
27909
+ ],
27910
+ "description": "The one to mark as the default, when there are several."
27911
+ },
27912
+ "recovery": {
27913
+ "type": "boolean",
27914
+ "description": "Whether to offer the recovery-code way in: the flow allows it and the user has codes."
27915
+ }
27916
+ },
27917
+ "additionalProperties": false
27918
+ }
27919
+ }
27920
+ }
27921
+ }
27922
+ }
27923
+ }
27924
+ },
27465
27925
  "/mfa/verify": {
27466
27926
  "post": {
27467
27927
  "summary": "Answer an MFA challenge with a TOTP code",
@@ -28116,6 +28576,10 @@
28116
28576
  },
28117
28577
  "state": {
28118
28578
  "type": "string"
28579
+ },
28580
+ "remember_me": {
28581
+ "type": "boolean",
28582
+ "description": "The \"Remember me on this device\" checkbox. Honoured only when the tenant shows one (`login_methods.remember_me: \"optional\"`)."
28119
28583
  }
28120
28584
  }
28121
28585
  }
@@ -30221,6 +30685,10 @@
30221
30685
  "type": "string",
30222
30686
  "description": "Same-origin path to return the user to after authentication, instead of the OAuth client redirect. Used by first-party interactive flows (e.g. device-code confirm). Non same-origin values are ignored."
30223
30687
  },
30688
+ "remember_me": {
30689
+ "type": "boolean",
30690
+ "description": "The \"Remember me on this device\" checkbox. Honoured only when the tenant shows one (`login_methods.remember_me: \"optional\"`): `true` keeps the session for `remember_me_days`, `false` ends it when the browser closes."
30691
+ },
30224
30692
  "client_id": {
30225
30693
  "type": "string"
30226
30694
  },