@faable/auth-sdk 2.5.77 → 2.5.78
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.
- package/dist/FaableAuthApi.d.ts +38 -0
- package/dist/api/api-types.d.ts +4 -0
- package/dist/api/generated-client.d.ts +881 -0
- package/dist/api/generated-client.js +95 -0
- package/dist/api/types.d.ts +1607 -6
- package/package.json +1 -1
- package/spec/openapi.json +9575 -2386
package/dist/api/types.d.ts
CHANGED
|
@@ -220,6 +220,26 @@ export interface paths {
|
|
|
220
220
|
patch?: never;
|
|
221
221
|
trace?: never;
|
|
222
222
|
};
|
|
223
|
+
"/flow/identify": {
|
|
224
|
+
parameters: {
|
|
225
|
+
query?: never;
|
|
226
|
+
header?: never;
|
|
227
|
+
path?: never;
|
|
228
|
+
cookie?: never;
|
|
229
|
+
};
|
|
230
|
+
get?: never;
|
|
231
|
+
put?: never;
|
|
232
|
+
/**
|
|
233
|
+
* Leave the identifier-first screen
|
|
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
|
+
*/
|
|
236
|
+
post: operations["flow/identify"];
|
|
237
|
+
delete?: never;
|
|
238
|
+
options?: never;
|
|
239
|
+
head?: never;
|
|
240
|
+
patch?: never;
|
|
241
|
+
trace?: never;
|
|
242
|
+
};
|
|
223
243
|
"/client": {
|
|
224
244
|
parameters: {
|
|
225
245
|
query?: never;
|
|
@@ -484,6 +504,26 @@ export interface paths {
|
|
|
484
504
|
patch?: never;
|
|
485
505
|
trace?: never;
|
|
486
506
|
};
|
|
507
|
+
"/user/{user_id}/passkey-prompt/reset": {
|
|
508
|
+
parameters: {
|
|
509
|
+
query?: never;
|
|
510
|
+
header?: never;
|
|
511
|
+
path?: never;
|
|
512
|
+
cookie?: never;
|
|
513
|
+
};
|
|
514
|
+
get?: never;
|
|
515
|
+
put?: never;
|
|
516
|
+
/**
|
|
517
|
+
* Reset a user's passkey offer counter
|
|
518
|
+
* @description The post-login "create a passkey" offer stops after `login_methods.passkey_promotion_max_prompts` times and snoozes between them. This clears both, so the user is offered a passkey again on their next login — for "why does it keep asking" and "please ask me again" alike.
|
|
519
|
+
*/
|
|
520
|
+
post: operations["user/resetPasskeyPrompt"];
|
|
521
|
+
delete?: never;
|
|
522
|
+
options?: never;
|
|
523
|
+
head?: never;
|
|
524
|
+
patch?: never;
|
|
525
|
+
trace?: never;
|
|
526
|
+
};
|
|
487
527
|
"/identity": {
|
|
488
528
|
parameters: {
|
|
489
529
|
query?: never;
|
|
@@ -1100,6 +1140,175 @@ export interface paths {
|
|
|
1100
1140
|
patch?: never;
|
|
1101
1141
|
trace?: never;
|
|
1102
1142
|
};
|
|
1143
|
+
"/loginflow/resolved": {
|
|
1144
|
+
parameters: {
|
|
1145
|
+
query?: never;
|
|
1146
|
+
header?: never;
|
|
1147
|
+
path?: never;
|
|
1148
|
+
cookie?: never;
|
|
1149
|
+
};
|
|
1150
|
+
/**
|
|
1151
|
+
* The graph this account (or client) runs right now
|
|
1152
|
+
* @description What a login actually walks: the published graph of the bound flow, or the graph compiled from the settings when nothing is bound or published. With `client_id`, resolved for that client (its own flow, else the account's, else compiled from its overrides). The bound flow, if any, comes along with its draft so an editor can show both.
|
|
1153
|
+
*/
|
|
1154
|
+
get: operations["loginflow/resolved"];
|
|
1155
|
+
put?: never;
|
|
1156
|
+
post?: never;
|
|
1157
|
+
delete?: never;
|
|
1158
|
+
options?: never;
|
|
1159
|
+
head?: never;
|
|
1160
|
+
patch?: never;
|
|
1161
|
+
trace?: never;
|
|
1162
|
+
};
|
|
1163
|
+
"/loginflow/materialize": {
|
|
1164
|
+
parameters: {
|
|
1165
|
+
query?: never;
|
|
1166
|
+
header?: never;
|
|
1167
|
+
path?: never;
|
|
1168
|
+
cookie?: never;
|
|
1169
|
+
};
|
|
1170
|
+
get?: never;
|
|
1171
|
+
put?: never;
|
|
1172
|
+
/**
|
|
1173
|
+
* Start a custom flow from what runs today
|
|
1174
|
+
* @description Creates a login flow whose draft is the graph the account (or, with `client_id`, that client) currently runs — compiled from its settings — and binds it. Nothing changes for logins until the flow is published: a bound flow with no published graph keeps running the compiled one. Never a blank canvas: customising always starts from the tenant's own behaviour.
|
|
1175
|
+
*/
|
|
1176
|
+
post: operations["loginflow/materialize"];
|
|
1177
|
+
delete?: never;
|
|
1178
|
+
options?: never;
|
|
1179
|
+
head?: never;
|
|
1180
|
+
patch?: never;
|
|
1181
|
+
trace?: never;
|
|
1182
|
+
};
|
|
1183
|
+
"/loginflow/{loginflow_id}/validate": {
|
|
1184
|
+
parameters: {
|
|
1185
|
+
query?: never;
|
|
1186
|
+
header?: never;
|
|
1187
|
+
path?: never;
|
|
1188
|
+
cookie?: never;
|
|
1189
|
+
};
|
|
1190
|
+
get?: never;
|
|
1191
|
+
put?: never;
|
|
1192
|
+
/** Check a draft against the rules a publish enforces */
|
|
1193
|
+
post: operations["loginflow/validate"];
|
|
1194
|
+
delete?: never;
|
|
1195
|
+
options?: never;
|
|
1196
|
+
head?: never;
|
|
1197
|
+
patch?: never;
|
|
1198
|
+
trace?: never;
|
|
1199
|
+
};
|
|
1200
|
+
"/loginflow/{loginflow_id}/publish": {
|
|
1201
|
+
parameters: {
|
|
1202
|
+
query?: never;
|
|
1203
|
+
header?: never;
|
|
1204
|
+
path?: never;
|
|
1205
|
+
cookie?: never;
|
|
1206
|
+
};
|
|
1207
|
+
get?: never;
|
|
1208
|
+
put?: never;
|
|
1209
|
+
/**
|
|
1210
|
+
* Make the draft the graph logins run
|
|
1211
|
+
* @description Validates the draft and freezes it as `published` under its current revision; the previous published graph moves to `history`. Logins already in flight keep the revision they started on. Refused with the list of issues when the draft does not validate.
|
|
1212
|
+
*/
|
|
1213
|
+
post: operations["loginflow/publish"];
|
|
1214
|
+
delete?: never;
|
|
1215
|
+
options?: never;
|
|
1216
|
+
head?: never;
|
|
1217
|
+
patch?: never;
|
|
1218
|
+
trace?: never;
|
|
1219
|
+
};
|
|
1220
|
+
"/loginflow/{loginflow_id}/rollback": {
|
|
1221
|
+
parameters: {
|
|
1222
|
+
query?: never;
|
|
1223
|
+
header?: never;
|
|
1224
|
+
path?: never;
|
|
1225
|
+
cookie?: never;
|
|
1226
|
+
};
|
|
1227
|
+
get?: never;
|
|
1228
|
+
put?: never;
|
|
1229
|
+
/**
|
|
1230
|
+
* Run a previously published revision again
|
|
1231
|
+
* @description Makes the named revision from `history` the published graph; the one being replaced moves to `history`. The draft is not touched.
|
|
1232
|
+
*/
|
|
1233
|
+
post: operations["loginflow/rollback"];
|
|
1234
|
+
delete?: never;
|
|
1235
|
+
options?: never;
|
|
1236
|
+
head?: never;
|
|
1237
|
+
patch?: never;
|
|
1238
|
+
trace?: never;
|
|
1239
|
+
};
|
|
1240
|
+
"/loginflow/{loginflow_id}/preview-token": {
|
|
1241
|
+
parameters: {
|
|
1242
|
+
query?: never;
|
|
1243
|
+
header?: never;
|
|
1244
|
+
path?: never;
|
|
1245
|
+
cookie?: never;
|
|
1246
|
+
};
|
|
1247
|
+
get?: never;
|
|
1248
|
+
put?: never;
|
|
1249
|
+
/**
|
|
1250
|
+
* Try the draft on a real login, in your browser only
|
|
1251
|
+
* @description Returns a short-lived token. Open `/authorize?…&flow_preview=<token>` (or the hosted login with the same parameter) and that login runs the DRAFT of this flow instead of what is published, for that browser only. Nothing is published.
|
|
1252
|
+
*/
|
|
1253
|
+
post: operations["loginflow/previewToken"];
|
|
1254
|
+
delete?: never;
|
|
1255
|
+
options?: never;
|
|
1256
|
+
head?: never;
|
|
1257
|
+
patch?: never;
|
|
1258
|
+
trace?: never;
|
|
1259
|
+
};
|
|
1260
|
+
"/loginflow": {
|
|
1261
|
+
parameters: {
|
|
1262
|
+
query?: never;
|
|
1263
|
+
header?: never;
|
|
1264
|
+
path?: never;
|
|
1265
|
+
cookie?: never;
|
|
1266
|
+
};
|
|
1267
|
+
/**
|
|
1268
|
+
* List Loginflows
|
|
1269
|
+
* @description List Loginflows
|
|
1270
|
+
*/
|
|
1271
|
+
get: operations["loginflow/list"];
|
|
1272
|
+
put?: never;
|
|
1273
|
+
/**
|
|
1274
|
+
* Create Loginflow
|
|
1275
|
+
* @description Create Loginflow
|
|
1276
|
+
*/
|
|
1277
|
+
post: operations["loginflow/create"];
|
|
1278
|
+
delete?: never;
|
|
1279
|
+
options?: never;
|
|
1280
|
+
head?: never;
|
|
1281
|
+
patch?: never;
|
|
1282
|
+
trace?: never;
|
|
1283
|
+
};
|
|
1284
|
+
"/loginflow/{loginflow_id}": {
|
|
1285
|
+
parameters: {
|
|
1286
|
+
query?: never;
|
|
1287
|
+
header?: never;
|
|
1288
|
+
path?: never;
|
|
1289
|
+
cookie?: never;
|
|
1290
|
+
};
|
|
1291
|
+
/**
|
|
1292
|
+
* Get Loginflow
|
|
1293
|
+
* @description Get Loginflow
|
|
1294
|
+
*/
|
|
1295
|
+
get: operations["loginflow/get"];
|
|
1296
|
+
put?: never;
|
|
1297
|
+
/**
|
|
1298
|
+
* Update Loginflow
|
|
1299
|
+
* @description Update Loginflow
|
|
1300
|
+
*/
|
|
1301
|
+
post: operations["loginflow/update"];
|
|
1302
|
+
/**
|
|
1303
|
+
* Delete Loginflow
|
|
1304
|
+
* @description Delete Loginflow
|
|
1305
|
+
*/
|
|
1306
|
+
delete: operations["loginflow/delete"];
|
|
1307
|
+
options?: never;
|
|
1308
|
+
head?: never;
|
|
1309
|
+
patch?: never;
|
|
1310
|
+
trace?: never;
|
|
1311
|
+
};
|
|
1103
1312
|
"/notificationsubscription": {
|
|
1104
1313
|
parameters: {
|
|
1105
1314
|
query?: never;
|
|
@@ -1789,6 +1998,54 @@ export interface paths {
|
|
|
1789
1998
|
patch?: never;
|
|
1790
1999
|
trace?: never;
|
|
1791
2000
|
};
|
|
2001
|
+
"/passkey/offer/skip": {
|
|
2002
|
+
parameters: {
|
|
2003
|
+
query?: never;
|
|
2004
|
+
header?: never;
|
|
2005
|
+
path?: never;
|
|
2006
|
+
cookie?: never;
|
|
2007
|
+
};
|
|
2008
|
+
get?: never;
|
|
2009
|
+
put?: never;
|
|
2010
|
+
/**
|
|
2011
|
+
* Decline the post-login passkey offer
|
|
2012
|
+
* @description Finishes a login the passkey offer parked without registering anything. `dismissed` is the user saying "not now" (starts the snooze); `unsupported` is the screen finding the browser cannot do WebAuthn (the prompt is given back); `failed` is a registration that errored. Returns where the login was going.
|
|
2013
|
+
*/
|
|
2014
|
+
post: {
|
|
2015
|
+
parameters: {
|
|
2016
|
+
query?: never;
|
|
2017
|
+
header?: never;
|
|
2018
|
+
path?: never;
|
|
2019
|
+
cookie?: never;
|
|
2020
|
+
};
|
|
2021
|
+
requestBody: {
|
|
2022
|
+
content: {
|
|
2023
|
+
"application/json": {
|
|
2024
|
+
state: string;
|
|
2025
|
+
reason: "dismissed" | "unsupported" | "failed";
|
|
2026
|
+
};
|
|
2027
|
+
};
|
|
2028
|
+
};
|
|
2029
|
+
responses: {
|
|
2030
|
+
/** @description Default Response */
|
|
2031
|
+
200: {
|
|
2032
|
+
headers: {
|
|
2033
|
+
[name: string]: unknown;
|
|
2034
|
+
};
|
|
2035
|
+
content: {
|
|
2036
|
+
"application/json": {
|
|
2037
|
+
redirect_url: string;
|
|
2038
|
+
};
|
|
2039
|
+
};
|
|
2040
|
+
};
|
|
2041
|
+
};
|
|
2042
|
+
};
|
|
2043
|
+
delete?: never;
|
|
2044
|
+
options?: never;
|
|
2045
|
+
head?: never;
|
|
2046
|
+
patch?: never;
|
|
2047
|
+
trace?: never;
|
|
2048
|
+
};
|
|
1792
2049
|
"/passkey/login/options": {
|
|
1793
2050
|
parameters: {
|
|
1794
2051
|
query?: never;
|
|
@@ -2442,7 +2699,15 @@ export interface components {
|
|
|
2442
2699
|
identifier_first?: boolean;
|
|
2443
2700
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
2444
2701
|
remember_last_method?: boolean;
|
|
2445
|
-
|
|
2702
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
2703
|
+
passkey_promotion?: "off" | "offer";
|
|
2704
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
2705
|
+
passkey_promotion_snooze_days?: number;
|
|
2706
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
2708
|
+
};
|
|
2709
|
+
/** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
|
|
2710
|
+
login_flow?: string | null;
|
|
2446
2711
|
/** @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. */
|
|
2447
2712
|
mfa_policy?: {
|
|
2448
2713
|
/** @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. */
|
|
@@ -2722,6 +2987,12 @@ export interface components {
|
|
|
2722
2987
|
identifier_first?: boolean;
|
|
2723
2988
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
2724
2989
|
remember_last_method?: boolean;
|
|
2990
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
2991
|
+
passkey_promotion?: "off" | "offer";
|
|
2992
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
2993
|
+
passkey_promotion_snooze_days?: number;
|
|
2994
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
2725
2996
|
};
|
|
2726
2997
|
/** @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. */
|
|
2727
2998
|
mfa_policy?: {
|
|
@@ -2732,6 +3003,8 @@ export interface components {
|
|
|
2732
3003
|
/** @description How long a browser that already passed a challenge may skip the next one. 0 (default) challenges every time. */
|
|
2733
3004
|
remember_device_days?: number;
|
|
2734
3005
|
};
|
|
3006
|
+
/** @description A login flow bound to this client (`loginflow_xxx`), overriding the account's. Absent = inherit. */
|
|
3007
|
+
login_flow?: string | null;
|
|
2735
3008
|
/** @description Object is related with this account */
|
|
2736
3009
|
account: string;
|
|
2737
3010
|
/**
|
|
@@ -2815,6 +3088,12 @@ export interface components {
|
|
|
2815
3088
|
identifier_first?: boolean;
|
|
2816
3089
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
2817
3090
|
remember_last_method?: boolean;
|
|
3091
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
3092
|
+
passkey_promotion?: "off" | "offer";
|
|
3093
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
3094
|
+
passkey_promotion_snooze_days?: number;
|
|
3095
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
2818
3097
|
} | null;
|
|
2819
3098
|
mfa_policy?: {
|
|
2820
3099
|
/** @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. */
|
|
@@ -2824,6 +3103,7 @@ export interface components {
|
|
|
2824
3103
|
/** @description How long a browser that already passed a challenge may skip the next one. 0 (default) challenges every time. */
|
|
2825
3104
|
remember_device_days?: number;
|
|
2826
3105
|
} | null;
|
|
3106
|
+
login_flow?: string | null;
|
|
2827
3107
|
/**
|
|
2828
3108
|
* @description Free-form client metadata. Replaces the whole object — send the full merged value, not a partial delta.
|
|
2829
3109
|
* @default {}
|
|
@@ -2872,6 +3152,12 @@ export interface components {
|
|
|
2872
3152
|
email_bounced_at?: string | null;
|
|
2873
3153
|
/** @description ISO 8601 timestamp of the built-in welcome email send. Set once by the platform; guarantees at most one welcome per user. */
|
|
2874
3154
|
welcome_sent_at?: string | null;
|
|
3155
|
+
/** @description ISO 8601 timestamp of the last time the hosted "create a passkey" offer was shown to this user after a login. Drives the snooze in `login_methods.passkey_promotion_snooze_days`. */
|
|
3156
|
+
passkey_prompted_at?: string | null;
|
|
3157
|
+
/** @description How many times the passkey offer has been shown to this user. Capped by `login_methods.passkey_promotion_max_prompts`; reset by an administrator through `POST /user/:id/passkey-prompt/reset`. */
|
|
3158
|
+
passkey_prompt_count?: number;
|
|
3159
|
+
/** @description ISO 8601 timestamp of the last time the user chose "Not now" on the passkey offer, as opposed to closing the tab. */
|
|
3160
|
+
passkey_prompt_dismissed_at?: string | null;
|
|
2875
3161
|
/** @description contact phone number */
|
|
2876
3162
|
phone?: string | null;
|
|
2877
3163
|
/** @description phone is verified */
|
|
@@ -3602,6 +3888,147 @@ export interface components {
|
|
|
3602
3888
|
/** @description Execution order */
|
|
3603
3889
|
order?: number;
|
|
3604
3890
|
};
|
|
3891
|
+
/** @description LoginFlow */
|
|
3892
|
+
LoginFlow: {
|
|
3893
|
+
/** @description LoginFlow ID */
|
|
3894
|
+
id: string;
|
|
3895
|
+
name: string;
|
|
3896
|
+
/** @enum {string} */
|
|
3897
|
+
trigger: "login";
|
|
3898
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
3899
|
+
graph: {
|
|
3900
|
+
nodes: {
|
|
3901
|
+
id: string;
|
|
3902
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
3903
|
+
config?: {
|
|
3904
|
+
[key: string]: unknown;
|
|
3905
|
+
};
|
|
3906
|
+
}[];
|
|
3907
|
+
edges: {
|
|
3908
|
+
from: string;
|
|
3909
|
+
handle: string;
|
|
3910
|
+
to: string;
|
|
3911
|
+
}[];
|
|
3912
|
+
};
|
|
3913
|
+
/** @description Monotonic edit counter, bumped on every update. A publish freezes the graph under the revision it had; a login in flight pins the revision it started on. */
|
|
3914
|
+
revision: number;
|
|
3915
|
+
published?: {
|
|
3916
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
3917
|
+
graph: {
|
|
3918
|
+
nodes: {
|
|
3919
|
+
id: string;
|
|
3920
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
3921
|
+
config?: {
|
|
3922
|
+
[key: string]: unknown;
|
|
3923
|
+
};
|
|
3924
|
+
}[];
|
|
3925
|
+
edges: {
|
|
3926
|
+
from: string;
|
|
3927
|
+
handle: string;
|
|
3928
|
+
to: string;
|
|
3929
|
+
}[];
|
|
3930
|
+
};
|
|
3931
|
+
revision: number;
|
|
3932
|
+
published_at: string;
|
|
3933
|
+
};
|
|
3934
|
+
/** @description Previously published graphs, newest first, for rollback. */
|
|
3935
|
+
history: {
|
|
3936
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
3937
|
+
graph: {
|
|
3938
|
+
nodes: {
|
|
3939
|
+
id: string;
|
|
3940
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
3941
|
+
config?: {
|
|
3942
|
+
[key: string]: unknown;
|
|
3943
|
+
};
|
|
3944
|
+
}[];
|
|
3945
|
+
edges: {
|
|
3946
|
+
from: string;
|
|
3947
|
+
handle: string;
|
|
3948
|
+
to: string;
|
|
3949
|
+
}[];
|
|
3950
|
+
};
|
|
3951
|
+
revision: number;
|
|
3952
|
+
published_at: string;
|
|
3953
|
+
}[];
|
|
3954
|
+
/** @description Node positions in the editor. Presentation only. */
|
|
3955
|
+
layout?: {
|
|
3956
|
+
[key: string]: {
|
|
3957
|
+
x: number;
|
|
3958
|
+
y: number;
|
|
3959
|
+
};
|
|
3960
|
+
};
|
|
3961
|
+
/** @description Object is related with this account */
|
|
3962
|
+
account: string;
|
|
3963
|
+
/**
|
|
3964
|
+
* @description LoginFlowMetadata
|
|
3965
|
+
* @default {}
|
|
3966
|
+
*/
|
|
3967
|
+
metadata: {
|
|
3968
|
+
[key: string]: unknown;
|
|
3969
|
+
};
|
|
3970
|
+
/** @description LoginFlow creation date */
|
|
3971
|
+
createdAt: string;
|
|
3972
|
+
/** @description LoginFlow updated date */
|
|
3973
|
+
updatedAt?: string;
|
|
3974
|
+
};
|
|
3975
|
+
/**
|
|
3976
|
+
* @description LoginFlowMetadata
|
|
3977
|
+
* @default {}
|
|
3978
|
+
*/
|
|
3979
|
+
LoginFlowMetadata: {
|
|
3980
|
+
[key: string]: unknown;
|
|
3981
|
+
};
|
|
3982
|
+
LoginFlowCreate: {
|
|
3983
|
+
name: string;
|
|
3984
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
3985
|
+
graph: {
|
|
3986
|
+
nodes: {
|
|
3987
|
+
id: string;
|
|
3988
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
3989
|
+
config?: {
|
|
3990
|
+
[key: string]: unknown;
|
|
3991
|
+
};
|
|
3992
|
+
}[];
|
|
3993
|
+
edges: {
|
|
3994
|
+
from: string;
|
|
3995
|
+
handle: string;
|
|
3996
|
+
to: string;
|
|
3997
|
+
}[];
|
|
3998
|
+
};
|
|
3999
|
+
/** @description Node positions in the editor. Presentation only. */
|
|
4000
|
+
layout?: {
|
|
4001
|
+
[key: string]: {
|
|
4002
|
+
x: number;
|
|
4003
|
+
y: number;
|
|
4004
|
+
};
|
|
4005
|
+
};
|
|
4006
|
+
};
|
|
4007
|
+
LoginFlowUpdate: {
|
|
4008
|
+
name?: string;
|
|
4009
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
4010
|
+
graph?: {
|
|
4011
|
+
nodes: {
|
|
4012
|
+
id: string;
|
|
4013
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
4014
|
+
config?: {
|
|
4015
|
+
[key: string]: unknown;
|
|
4016
|
+
};
|
|
4017
|
+
}[];
|
|
4018
|
+
edges: {
|
|
4019
|
+
from: string;
|
|
4020
|
+
handle: string;
|
|
4021
|
+
to: string;
|
|
4022
|
+
}[];
|
|
4023
|
+
};
|
|
4024
|
+
/** @description Node positions in the editor. Presentation only. */
|
|
4025
|
+
layout?: {
|
|
4026
|
+
[key: string]: {
|
|
4027
|
+
x: number;
|
|
4028
|
+
y: number;
|
|
4029
|
+
};
|
|
4030
|
+
};
|
|
4031
|
+
};
|
|
3605
4032
|
/** @description NotificationSubscription */
|
|
3606
4033
|
NotificationSubscription: {
|
|
3607
4034
|
/** @description NotificationSubscriptionEmail ID */
|
|
@@ -4089,6 +4516,12 @@ export interface components {
|
|
|
4089
4516
|
identifier_first?: boolean;
|
|
4090
4517
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
4091
4518
|
remember_last_method?: boolean;
|
|
4519
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
4520
|
+
passkey_promotion?: "off" | "offer";
|
|
4521
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
4522
|
+
passkey_promotion_snooze_days?: number;
|
|
4523
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
4092
4525
|
} | null;
|
|
4093
4526
|
mfa_policy?: {
|
|
4094
4527
|
/** @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. */
|
|
@@ -4099,6 +4532,7 @@ export interface components {
|
|
|
4099
4532
|
remember_device_days?: number;
|
|
4100
4533
|
} | null;
|
|
4101
4534
|
webauthn_rp_id?: string | null;
|
|
4535
|
+
login_flow?: string | null;
|
|
4102
4536
|
};
|
|
4103
4537
|
FactorSummary: {
|
|
4104
4538
|
id: string;
|
|
@@ -4249,7 +4683,15 @@ export interface operations {
|
|
|
4249
4683
|
identifier_first?: boolean;
|
|
4250
4684
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
4251
4685
|
remember_last_method?: boolean;
|
|
4252
|
-
|
|
4686
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
4687
|
+
passkey_promotion?: "off" | "offer";
|
|
4688
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
4689
|
+
passkey_promotion_snooze_days?: number;
|
|
4690
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
4692
|
+
};
|
|
4693
|
+
/** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
|
|
4694
|
+
login_flow?: string | null;
|
|
4253
4695
|
/** @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. */
|
|
4254
4696
|
mfa_policy?: {
|
|
4255
4697
|
/** @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. */
|
|
@@ -4387,7 +4829,15 @@ export interface operations {
|
|
|
4387
4829
|
identifier_first?: boolean;
|
|
4388
4830
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
4389
4831
|
remember_last_method?: boolean;
|
|
4390
|
-
|
|
4832
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
4833
|
+
passkey_promotion?: "off" | "offer";
|
|
4834
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
4835
|
+
passkey_promotion_snooze_days?: number;
|
|
4836
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
4838
|
+
};
|
|
4839
|
+
/** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
|
|
4840
|
+
login_flow?: string | null;
|
|
4391
4841
|
/** @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. */
|
|
4392
4842
|
mfa_policy?: {
|
|
4393
4843
|
/** @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. */
|
|
@@ -4479,7 +4929,15 @@ export interface operations {
|
|
|
4479
4929
|
identifier_first?: boolean;
|
|
4480
4930
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
4481
4931
|
remember_last_method?: boolean;
|
|
4482
|
-
|
|
4932
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
4933
|
+
passkey_promotion?: "off" | "offer";
|
|
4934
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
4935
|
+
passkey_promotion_snooze_days?: number;
|
|
4936
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
4938
|
+
};
|
|
4939
|
+
/** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
|
|
4940
|
+
login_flow?: string | null;
|
|
4483
4941
|
/** @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. */
|
|
4484
4942
|
mfa_policy?: {
|
|
4485
4943
|
/** @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. */
|
|
@@ -4543,6 +5001,12 @@ export interface operations {
|
|
|
4543
5001
|
identifier_first?: boolean;
|
|
4544
5002
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
4545
5003
|
remember_last_method?: boolean;
|
|
5004
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
5005
|
+
passkey_promotion?: "off" | "offer";
|
|
5006
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
5007
|
+
passkey_promotion_snooze_days?: number;
|
|
5008
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
4546
5010
|
} | null;
|
|
4547
5011
|
mfa_policy?: {
|
|
4548
5012
|
/** @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. */
|
|
@@ -4553,6 +5017,7 @@ export interface operations {
|
|
|
4553
5017
|
remember_device_days?: number;
|
|
4554
5018
|
} | null;
|
|
4555
5019
|
webauthn_rp_id?: string | null;
|
|
5020
|
+
login_flow?: string | null;
|
|
4556
5021
|
};
|
|
4557
5022
|
};
|
|
4558
5023
|
};
|
|
@@ -4614,7 +5079,15 @@ export interface operations {
|
|
|
4614
5079
|
identifier_first?: boolean;
|
|
4615
5080
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
4616
5081
|
remember_last_method?: boolean;
|
|
4617
|
-
|
|
5082
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
5083
|
+
passkey_promotion?: "off" | "offer";
|
|
5084
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
5085
|
+
passkey_promotion_snooze_days?: number;
|
|
5086
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
5088
|
+
};
|
|
5089
|
+
/** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
|
|
5090
|
+
login_flow?: string | null;
|
|
4618
5091
|
/** @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. */
|
|
4619
5092
|
mfa_policy?: {
|
|
4620
5093
|
/** @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. */
|
|
@@ -4715,7 +5188,15 @@ export interface operations {
|
|
|
4715
5188
|
identifier_first?: boolean;
|
|
4716
5189
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
4717
5190
|
remember_last_method?: boolean;
|
|
4718
|
-
|
|
5191
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
5192
|
+
passkey_promotion?: "off" | "offer";
|
|
5193
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
5194
|
+
passkey_promotion_snooze_days?: number;
|
|
5195
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
5197
|
+
};
|
|
5198
|
+
/** @description The login flow bound to this account (`loginflow_xxx`). Absent = the flow compiled from the settings. A Client may bind its own. */
|
|
5199
|
+
login_flow?: string | null;
|
|
4719
5200
|
/** @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. */
|
|
4720
5201
|
mfa_policy?: {
|
|
4721
5202
|
/** @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. */
|
|
@@ -5231,6 +5712,10 @@ export interface operations {
|
|
|
5231
5712
|
parameters: {
|
|
5232
5713
|
query?: {
|
|
5233
5714
|
client_id?: string;
|
|
5715
|
+
/** @description The login state the screen was opened with. When the flow put an identifier-first screen before this one, the identifier the user typed comes back as `identifier`. */
|
|
5716
|
+
state?: string;
|
|
5717
|
+
/** @description The method key (`passkey` or a connection id) this browser used last time, as remembered by the hosted UI. Honoured only when the tenant enabled `remember_last_method`: that method is moved first and echoed as `last_used`. */
|
|
5718
|
+
last_used?: string;
|
|
5234
5719
|
};
|
|
5235
5720
|
header?: never;
|
|
5236
5721
|
path?: never;
|
|
@@ -5259,6 +5744,10 @@ export interface operations {
|
|
|
5259
5744
|
} | null;
|
|
5260
5745
|
identifier_first: boolean;
|
|
5261
5746
|
remember_last_method: boolean;
|
|
5747
|
+
/** @description What the user typed on the identifier-first screen, when the flow has one. Prefill the email field with it. */
|
|
5748
|
+
identifier?: string;
|
|
5749
|
+
/** @description The method key that was moved first because this browser used it last time (`remember_last_method`). Absent otherwise. */
|
|
5750
|
+
last_used?: string;
|
|
5262
5751
|
/** @description Already filtered and ordered. Render them in this order; do not re-sort or re-filter client-side. */
|
|
5263
5752
|
methods: components["schemas"]["LoginOptionMethod"][];
|
|
5264
5753
|
};
|
|
@@ -5266,6 +5755,35 @@ export interface operations {
|
|
|
5266
5755
|
};
|
|
5267
5756
|
};
|
|
5268
5757
|
};
|
|
5758
|
+
"flow/identify": {
|
|
5759
|
+
parameters: {
|
|
5760
|
+
query?: never;
|
|
5761
|
+
header?: never;
|
|
5762
|
+
path?: never;
|
|
5763
|
+
cookie?: never;
|
|
5764
|
+
};
|
|
5765
|
+
requestBody: {
|
|
5766
|
+
content: {
|
|
5767
|
+
"application/json": {
|
|
5768
|
+
state: string;
|
|
5769
|
+
identifier: string;
|
|
5770
|
+
};
|
|
5771
|
+
};
|
|
5772
|
+
};
|
|
5773
|
+
responses: {
|
|
5774
|
+
/** @description Default Response */
|
|
5775
|
+
200: {
|
|
5776
|
+
headers: {
|
|
5777
|
+
[name: string]: unknown;
|
|
5778
|
+
};
|
|
5779
|
+
content: {
|
|
5780
|
+
"application/json": {
|
|
5781
|
+
ok: boolean;
|
|
5782
|
+
};
|
|
5783
|
+
};
|
|
5784
|
+
};
|
|
5785
|
+
};
|
|
5786
|
+
};
|
|
5269
5787
|
"client/list": {
|
|
5270
5788
|
parameters: {
|
|
5271
5789
|
query?: {
|
|
@@ -5376,6 +5894,12 @@ export interface operations {
|
|
|
5376
5894
|
identifier_first?: boolean;
|
|
5377
5895
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
5378
5896
|
remember_last_method?: boolean;
|
|
5897
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
5898
|
+
passkey_promotion?: "off" | "offer";
|
|
5899
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
5900
|
+
passkey_promotion_snooze_days?: number;
|
|
5901
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
5379
5903
|
};
|
|
5380
5904
|
/** @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. */
|
|
5381
5905
|
mfa_policy?: {
|
|
@@ -5386,6 +5910,8 @@ export interface operations {
|
|
|
5386
5910
|
/** @description How long a browser that already passed a challenge may skip the next one. 0 (default) challenges every time. */
|
|
5387
5911
|
remember_device_days?: number;
|
|
5388
5912
|
};
|
|
5913
|
+
/** @description A login flow bound to this client (`loginflow_xxx`), overriding the account's. Absent = inherit. */
|
|
5914
|
+
login_flow?: string | null;
|
|
5389
5915
|
/** @description Object is related with this account */
|
|
5390
5916
|
account: string;
|
|
5391
5917
|
/**
|
|
@@ -5467,6 +5993,12 @@ export interface operations {
|
|
|
5467
5993
|
identifier_first?: boolean;
|
|
5468
5994
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
5469
5995
|
remember_last_method?: boolean;
|
|
5996
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
5997
|
+
passkey_promotion?: "off" | "offer";
|
|
5998
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
5999
|
+
passkey_promotion_snooze_days?: number;
|
|
6000
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
5470
6002
|
};
|
|
5471
6003
|
/** @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. */
|
|
5472
6004
|
mfa_policy?: {
|
|
@@ -5477,6 +6009,8 @@ export interface operations {
|
|
|
5477
6009
|
/** @description How long a browser that already passed a challenge may skip the next one. 0 (default) challenges every time. */
|
|
5478
6010
|
remember_device_days?: number;
|
|
5479
6011
|
};
|
|
6012
|
+
/** @description A login flow bound to this client (`loginflow_xxx`), overriding the account's. Absent = inherit. */
|
|
6013
|
+
login_flow?: string | null;
|
|
5480
6014
|
/** @description Object is related with this account */
|
|
5481
6015
|
account: string;
|
|
5482
6016
|
/**
|
|
@@ -5552,6 +6086,12 @@ export interface operations {
|
|
|
5552
6086
|
identifier_first?: boolean;
|
|
5553
6087
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
5554
6088
|
remember_last_method?: boolean;
|
|
6089
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
6090
|
+
passkey_promotion?: "off" | "offer";
|
|
6091
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
6092
|
+
passkey_promotion_snooze_days?: number;
|
|
6093
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
5555
6095
|
} | null;
|
|
5556
6096
|
mfa_policy?: {
|
|
5557
6097
|
/** @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. */
|
|
@@ -5561,6 +6101,7 @@ export interface operations {
|
|
|
5561
6101
|
/** @description How long a browser that already passed a challenge may skip the next one. 0 (default) challenges every time. */
|
|
5562
6102
|
remember_device_days?: number;
|
|
5563
6103
|
} | null;
|
|
6104
|
+
login_flow?: string | null;
|
|
5564
6105
|
/**
|
|
5565
6106
|
* @description Free-form client metadata. Replaces the whole object — send the full merged value, not a partial delta.
|
|
5566
6107
|
* @default {}
|
|
@@ -5624,6 +6165,12 @@ export interface operations {
|
|
|
5624
6165
|
identifier_first?: boolean;
|
|
5625
6166
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
5626
6167
|
remember_last_method?: boolean;
|
|
6168
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
6169
|
+
passkey_promotion?: "off" | "offer";
|
|
6170
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
6171
|
+
passkey_promotion_snooze_days?: number;
|
|
6172
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
5627
6174
|
};
|
|
5628
6175
|
/** @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. */
|
|
5629
6176
|
mfa_policy?: {
|
|
@@ -5634,6 +6181,8 @@ export interface operations {
|
|
|
5634
6181
|
/** @description How long a browser that already passed a challenge may skip the next one. 0 (default) challenges every time. */
|
|
5635
6182
|
remember_device_days?: number;
|
|
5636
6183
|
};
|
|
6184
|
+
/** @description A login flow bound to this client (`loginflow_xxx`), overriding the account's. Absent = inherit. */
|
|
6185
|
+
login_flow?: string | null;
|
|
5637
6186
|
/** @description Object is related with this account */
|
|
5638
6187
|
account: string;
|
|
5639
6188
|
/**
|
|
@@ -5715,6 +6264,12 @@ export interface operations {
|
|
|
5715
6264
|
identifier_first?: boolean;
|
|
5716
6265
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
5717
6266
|
remember_last_method?: boolean;
|
|
6267
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
6268
|
+
passkey_promotion?: "off" | "offer";
|
|
6269
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
6270
|
+
passkey_promotion_snooze_days?: number;
|
|
6271
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
5718
6273
|
};
|
|
5719
6274
|
/** @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. */
|
|
5720
6275
|
mfa_policy?: {
|
|
@@ -5725,6 +6280,8 @@ export interface operations {
|
|
|
5725
6280
|
/** @description How long a browser that already passed a challenge may skip the next one. 0 (default) challenges every time. */
|
|
5726
6281
|
remember_device_days?: number;
|
|
5727
6282
|
};
|
|
6283
|
+
/** @description A login flow bound to this client (`loginflow_xxx`), overriding the account's. Absent = inherit. */
|
|
6284
|
+
login_flow?: string | null;
|
|
5728
6285
|
/** @description Object is related with this account */
|
|
5729
6286
|
account: string;
|
|
5730
6287
|
/**
|
|
@@ -5806,6 +6363,12 @@ export interface operations {
|
|
|
5806
6363
|
identifier_first?: boolean;
|
|
5807
6364
|
/** @description Surface the method the returning user chose last time. Defaults to false. */
|
|
5808
6365
|
remember_last_method?: boolean;
|
|
6366
|
+
/** @description Invite users to create a passkey right after a successful login with another method. `offer` shows a hosted screen once per `passkey_promotion_snooze_days`, at most `passkey_promotion_max_prompts` times, to users who have no second factor yet; it never blocks the login. Requires `passkey_login_enabled`. Defaults to `off`. */
|
|
6367
|
+
passkey_promotion?: "off" | "offer";
|
|
6368
|
+
/** @description Days to wait before offering a passkey again to a user who dismissed it. Defaults to 30. */
|
|
6369
|
+
passkey_promotion_snooze_days?: number;
|
|
6370
|
+
/** @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
|
+
passkey_promotion_max_prompts?: number;
|
|
5809
6372
|
};
|
|
5810
6373
|
/** @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. */
|
|
5811
6374
|
mfa_policy?: {
|
|
@@ -5816,6 +6379,8 @@ export interface operations {
|
|
|
5816
6379
|
/** @description How long a browser that already passed a challenge may skip the next one. 0 (default) challenges every time. */
|
|
5817
6380
|
remember_device_days?: number;
|
|
5818
6381
|
};
|
|
6382
|
+
/** @description A login flow bound to this client (`loginflow_xxx`), overriding the account's. Absent = inherit. */
|
|
6383
|
+
login_flow?: string | null;
|
|
5819
6384
|
/** @description Object is related with this account */
|
|
5820
6385
|
account: string;
|
|
5821
6386
|
/**
|
|
@@ -5961,6 +6526,12 @@ export interface operations {
|
|
|
5961
6526
|
email_bounced_at?: string | null;
|
|
5962
6527
|
/** @description ISO 8601 timestamp of the built-in welcome email send. Set once by the platform; guarantees at most one welcome per user. */
|
|
5963
6528
|
welcome_sent_at?: string | null;
|
|
6529
|
+
/** @description ISO 8601 timestamp of the last time the hosted "create a passkey" offer was shown to this user after a login. Drives the snooze in `login_methods.passkey_promotion_snooze_days`. */
|
|
6530
|
+
passkey_prompted_at?: string | null;
|
|
6531
|
+
/** @description How many times the passkey offer has been shown to this user. Capped by `login_methods.passkey_promotion_max_prompts`; reset by an administrator through `POST /user/:id/passkey-prompt/reset`. */
|
|
6532
|
+
passkey_prompt_count?: number;
|
|
6533
|
+
/** @description ISO 8601 timestamp of the last time the user chose "Not now" on the passkey offer, as opposed to closing the tab. */
|
|
6534
|
+
passkey_prompt_dismissed_at?: string | null;
|
|
5964
6535
|
/** @description contact phone number */
|
|
5965
6536
|
phone?: string | null;
|
|
5966
6537
|
/** @description phone is verified */
|
|
@@ -6095,6 +6666,12 @@ export interface operations {
|
|
|
6095
6666
|
email_bounced_at?: string | null;
|
|
6096
6667
|
/** @description ISO 8601 timestamp of the built-in welcome email send. Set once by the platform; guarantees at most one welcome per user. */
|
|
6097
6668
|
welcome_sent_at?: string | null;
|
|
6669
|
+
/** @description ISO 8601 timestamp of the last time the hosted "create a passkey" offer was shown to this user after a login. Drives the snooze in `login_methods.passkey_promotion_snooze_days`. */
|
|
6670
|
+
passkey_prompted_at?: string | null;
|
|
6671
|
+
/** @description How many times the passkey offer has been shown to this user. Capped by `login_methods.passkey_promotion_max_prompts`; reset by an administrator through `POST /user/:id/passkey-prompt/reset`. */
|
|
6672
|
+
passkey_prompt_count?: number;
|
|
6673
|
+
/** @description ISO 8601 timestamp of the last time the user chose "Not now" on the passkey offer, as opposed to closing the tab. */
|
|
6674
|
+
passkey_prompt_dismissed_at?: string | null;
|
|
6098
6675
|
/** @description contact phone number */
|
|
6099
6676
|
phone?: string | null;
|
|
6100
6677
|
/** @description phone is verified */
|
|
@@ -6269,6 +6846,12 @@ export interface operations {
|
|
|
6269
6846
|
email_bounced_at?: string | null;
|
|
6270
6847
|
/** @description ISO 8601 timestamp of the built-in welcome email send. Set once by the platform; guarantees at most one welcome per user. */
|
|
6271
6848
|
welcome_sent_at?: string | null;
|
|
6849
|
+
/** @description ISO 8601 timestamp of the last time the hosted "create a passkey" offer was shown to this user after a login. Drives the snooze in `login_methods.passkey_promotion_snooze_days`. */
|
|
6850
|
+
passkey_prompted_at?: string | null;
|
|
6851
|
+
/** @description How many times the passkey offer has been shown to this user. Capped by `login_methods.passkey_promotion_max_prompts`; reset by an administrator through `POST /user/:id/passkey-prompt/reset`. */
|
|
6852
|
+
passkey_prompt_count?: number;
|
|
6853
|
+
/** @description ISO 8601 timestamp of the last time the user chose "Not now" on the passkey offer, as opposed to closing the tab. */
|
|
6854
|
+
passkey_prompt_dismissed_at?: string | null;
|
|
6272
6855
|
/** @description contact phone number */
|
|
6273
6856
|
phone?: string | null;
|
|
6274
6857
|
/** @description phone is verified */
|
|
@@ -6403,6 +6986,12 @@ export interface operations {
|
|
|
6403
6986
|
email_bounced_at?: string | null;
|
|
6404
6987
|
/** @description ISO 8601 timestamp of the built-in welcome email send. Set once by the platform; guarantees at most one welcome per user. */
|
|
6405
6988
|
welcome_sent_at?: string | null;
|
|
6989
|
+
/** @description ISO 8601 timestamp of the last time the hosted "create a passkey" offer was shown to this user after a login. Drives the snooze in `login_methods.passkey_promotion_snooze_days`. */
|
|
6990
|
+
passkey_prompted_at?: string | null;
|
|
6991
|
+
/** @description How many times the passkey offer has been shown to this user. Capped by `login_methods.passkey_promotion_max_prompts`; reset by an administrator through `POST /user/:id/passkey-prompt/reset`. */
|
|
6992
|
+
passkey_prompt_count?: number;
|
|
6993
|
+
/** @description ISO 8601 timestamp of the last time the user chose "Not now" on the passkey offer, as opposed to closing the tab. */
|
|
6994
|
+
passkey_prompt_dismissed_at?: string | null;
|
|
6406
6995
|
/** @description contact phone number */
|
|
6407
6996
|
phone?: string | null;
|
|
6408
6997
|
/** @description phone is verified */
|
|
@@ -6681,6 +7270,30 @@ export interface operations {
|
|
|
6681
7270
|
};
|
|
6682
7271
|
};
|
|
6683
7272
|
};
|
|
7273
|
+
"user/resetPasskeyPrompt": {
|
|
7274
|
+
parameters: {
|
|
7275
|
+
query?: never;
|
|
7276
|
+
header?: never;
|
|
7277
|
+
path: {
|
|
7278
|
+
user_id: string;
|
|
7279
|
+
};
|
|
7280
|
+
cookie?: never;
|
|
7281
|
+
};
|
|
7282
|
+
requestBody?: never;
|
|
7283
|
+
responses: {
|
|
7284
|
+
/** @description Default Response */
|
|
7285
|
+
200: {
|
|
7286
|
+
headers: {
|
|
7287
|
+
[name: string]: unknown;
|
|
7288
|
+
};
|
|
7289
|
+
content: {
|
|
7290
|
+
"application/json": {
|
|
7291
|
+
reset: boolean;
|
|
7292
|
+
};
|
|
7293
|
+
};
|
|
7294
|
+
};
|
|
7295
|
+
};
|
|
7296
|
+
};
|
|
6684
7297
|
"identity/list": {
|
|
6685
7298
|
parameters: {
|
|
6686
7299
|
query?: {
|
|
@@ -9246,6 +9859,986 @@ export interface operations {
|
|
|
9246
9859
|
};
|
|
9247
9860
|
};
|
|
9248
9861
|
};
|
|
9862
|
+
"loginflow/resolved": {
|
|
9863
|
+
parameters: {
|
|
9864
|
+
query?: {
|
|
9865
|
+
client_id?: string;
|
|
9866
|
+
};
|
|
9867
|
+
header?: never;
|
|
9868
|
+
path?: never;
|
|
9869
|
+
cookie?: never;
|
|
9870
|
+
};
|
|
9871
|
+
requestBody?: never;
|
|
9872
|
+
responses: {
|
|
9873
|
+
/** @description Default Response */
|
|
9874
|
+
200: {
|
|
9875
|
+
headers: {
|
|
9876
|
+
[name: string]: unknown;
|
|
9877
|
+
};
|
|
9878
|
+
content: {
|
|
9879
|
+
"application/json": {
|
|
9880
|
+
source: "compiled" | "published";
|
|
9881
|
+
flow_id: string | null;
|
|
9882
|
+
revision: number;
|
|
9883
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
9884
|
+
graph: {
|
|
9885
|
+
nodes: {
|
|
9886
|
+
id: string;
|
|
9887
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
9888
|
+
config?: {
|
|
9889
|
+
[key: string]: unknown;
|
|
9890
|
+
};
|
|
9891
|
+
}[];
|
|
9892
|
+
edges: {
|
|
9893
|
+
from: string;
|
|
9894
|
+
handle: string;
|
|
9895
|
+
to: string;
|
|
9896
|
+
}[];
|
|
9897
|
+
};
|
|
9898
|
+
bound: {
|
|
9899
|
+
flow_id: string;
|
|
9900
|
+
bound_to: "account" | "client";
|
|
9901
|
+
name: string;
|
|
9902
|
+
revision: number;
|
|
9903
|
+
published_revision: number | null;
|
|
9904
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
9905
|
+
draft: {
|
|
9906
|
+
nodes: {
|
|
9907
|
+
id: string;
|
|
9908
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
9909
|
+
config?: {
|
|
9910
|
+
[key: string]: unknown;
|
|
9911
|
+
};
|
|
9912
|
+
}[];
|
|
9913
|
+
edges: {
|
|
9914
|
+
from: string;
|
|
9915
|
+
handle: string;
|
|
9916
|
+
to: string;
|
|
9917
|
+
}[];
|
|
9918
|
+
};
|
|
9919
|
+
/** @description Node positions in the editor. Presentation only. */
|
|
9920
|
+
layout?: {
|
|
9921
|
+
[key: string]: {
|
|
9922
|
+
x: number;
|
|
9923
|
+
y: number;
|
|
9924
|
+
};
|
|
9925
|
+
};
|
|
9926
|
+
history: number[];
|
|
9927
|
+
} | null;
|
|
9928
|
+
};
|
|
9929
|
+
};
|
|
9930
|
+
};
|
|
9931
|
+
};
|
|
9932
|
+
};
|
|
9933
|
+
"loginflow/materialize": {
|
|
9934
|
+
parameters: {
|
|
9935
|
+
query?: never;
|
|
9936
|
+
header?: never;
|
|
9937
|
+
path?: never;
|
|
9938
|
+
cookie?: never;
|
|
9939
|
+
};
|
|
9940
|
+
requestBody: {
|
|
9941
|
+
content: {
|
|
9942
|
+
"application/json": {
|
|
9943
|
+
client_id?: string;
|
|
9944
|
+
name?: string;
|
|
9945
|
+
};
|
|
9946
|
+
};
|
|
9947
|
+
};
|
|
9948
|
+
responses: {
|
|
9949
|
+
/** @description LoginFlow */
|
|
9950
|
+
200: {
|
|
9951
|
+
headers: {
|
|
9952
|
+
[name: string]: unknown;
|
|
9953
|
+
};
|
|
9954
|
+
content: {
|
|
9955
|
+
"application/json": {
|
|
9956
|
+
/** @description LoginFlow ID */
|
|
9957
|
+
id: string;
|
|
9958
|
+
name: string;
|
|
9959
|
+
/** @enum {string} */
|
|
9960
|
+
trigger: "login";
|
|
9961
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
9962
|
+
graph: {
|
|
9963
|
+
nodes: {
|
|
9964
|
+
id: string;
|
|
9965
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
9966
|
+
config?: {
|
|
9967
|
+
[key: string]: unknown;
|
|
9968
|
+
};
|
|
9969
|
+
}[];
|
|
9970
|
+
edges: {
|
|
9971
|
+
from: string;
|
|
9972
|
+
handle: string;
|
|
9973
|
+
to: string;
|
|
9974
|
+
}[];
|
|
9975
|
+
};
|
|
9976
|
+
/** @description Monotonic edit counter, bumped on every update. A publish freezes the graph under the revision it had; a login in flight pins the revision it started on. */
|
|
9977
|
+
revision: number;
|
|
9978
|
+
published?: {
|
|
9979
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
9980
|
+
graph: {
|
|
9981
|
+
nodes: {
|
|
9982
|
+
id: string;
|
|
9983
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
9984
|
+
config?: {
|
|
9985
|
+
[key: string]: unknown;
|
|
9986
|
+
};
|
|
9987
|
+
}[];
|
|
9988
|
+
edges: {
|
|
9989
|
+
from: string;
|
|
9990
|
+
handle: string;
|
|
9991
|
+
to: string;
|
|
9992
|
+
}[];
|
|
9993
|
+
};
|
|
9994
|
+
revision: number;
|
|
9995
|
+
published_at: string;
|
|
9996
|
+
};
|
|
9997
|
+
/** @description Previously published graphs, newest first, for rollback. */
|
|
9998
|
+
history: {
|
|
9999
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10000
|
+
graph: {
|
|
10001
|
+
nodes: {
|
|
10002
|
+
id: string;
|
|
10003
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10004
|
+
config?: {
|
|
10005
|
+
[key: string]: unknown;
|
|
10006
|
+
};
|
|
10007
|
+
}[];
|
|
10008
|
+
edges: {
|
|
10009
|
+
from: string;
|
|
10010
|
+
handle: string;
|
|
10011
|
+
to: string;
|
|
10012
|
+
}[];
|
|
10013
|
+
};
|
|
10014
|
+
revision: number;
|
|
10015
|
+
published_at: string;
|
|
10016
|
+
}[];
|
|
10017
|
+
/** @description Node positions in the editor. Presentation only. */
|
|
10018
|
+
layout?: {
|
|
10019
|
+
[key: string]: {
|
|
10020
|
+
x: number;
|
|
10021
|
+
y: number;
|
|
10022
|
+
};
|
|
10023
|
+
};
|
|
10024
|
+
/** @description Object is related with this account */
|
|
10025
|
+
account: string;
|
|
10026
|
+
/**
|
|
10027
|
+
* @description LoginFlowMetadata
|
|
10028
|
+
* @default {}
|
|
10029
|
+
*/
|
|
10030
|
+
metadata: {
|
|
10031
|
+
[key: string]: unknown;
|
|
10032
|
+
};
|
|
10033
|
+
/** @description LoginFlow creation date */
|
|
10034
|
+
createdAt: string;
|
|
10035
|
+
/** @description LoginFlow updated date */
|
|
10036
|
+
updatedAt?: string;
|
|
10037
|
+
};
|
|
10038
|
+
};
|
|
10039
|
+
};
|
|
10040
|
+
};
|
|
10041
|
+
};
|
|
10042
|
+
"loginflow/validate": {
|
|
10043
|
+
parameters: {
|
|
10044
|
+
query?: never;
|
|
10045
|
+
header?: never;
|
|
10046
|
+
path: {
|
|
10047
|
+
loginflow_id: string;
|
|
10048
|
+
};
|
|
10049
|
+
cookie?: never;
|
|
10050
|
+
};
|
|
10051
|
+
requestBody: {
|
|
10052
|
+
content: {
|
|
10053
|
+
"application/json": {
|
|
10054
|
+
client_id?: string;
|
|
10055
|
+
};
|
|
10056
|
+
};
|
|
10057
|
+
};
|
|
10058
|
+
responses: {
|
|
10059
|
+
/** @description Default Response */
|
|
10060
|
+
200: {
|
|
10061
|
+
headers: {
|
|
10062
|
+
[name: string]: unknown;
|
|
10063
|
+
};
|
|
10064
|
+
content: {
|
|
10065
|
+
"application/json": {
|
|
10066
|
+
ok: boolean;
|
|
10067
|
+
issues: {
|
|
10068
|
+
code: string;
|
|
10069
|
+
node?: string;
|
|
10070
|
+
handle?: string;
|
|
10071
|
+
message: string;
|
|
10072
|
+
}[];
|
|
10073
|
+
};
|
|
10074
|
+
};
|
|
10075
|
+
};
|
|
10076
|
+
};
|
|
10077
|
+
};
|
|
10078
|
+
"loginflow/publish": {
|
|
10079
|
+
parameters: {
|
|
10080
|
+
query?: never;
|
|
10081
|
+
header?: never;
|
|
10082
|
+
path: {
|
|
10083
|
+
loginflow_id: string;
|
|
10084
|
+
};
|
|
10085
|
+
cookie?: never;
|
|
10086
|
+
};
|
|
10087
|
+
requestBody: {
|
|
10088
|
+
content: {
|
|
10089
|
+
"application/json": {
|
|
10090
|
+
client_id?: string;
|
|
10091
|
+
};
|
|
10092
|
+
};
|
|
10093
|
+
};
|
|
10094
|
+
responses: {
|
|
10095
|
+
/** @description LoginFlow */
|
|
10096
|
+
200: {
|
|
10097
|
+
headers: {
|
|
10098
|
+
[name: string]: unknown;
|
|
10099
|
+
};
|
|
10100
|
+
content: {
|
|
10101
|
+
"application/json": {
|
|
10102
|
+
/** @description LoginFlow ID */
|
|
10103
|
+
id: string;
|
|
10104
|
+
name: string;
|
|
10105
|
+
/** @enum {string} */
|
|
10106
|
+
trigger: "login";
|
|
10107
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10108
|
+
graph: {
|
|
10109
|
+
nodes: {
|
|
10110
|
+
id: string;
|
|
10111
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10112
|
+
config?: {
|
|
10113
|
+
[key: string]: unknown;
|
|
10114
|
+
};
|
|
10115
|
+
}[];
|
|
10116
|
+
edges: {
|
|
10117
|
+
from: string;
|
|
10118
|
+
handle: string;
|
|
10119
|
+
to: string;
|
|
10120
|
+
}[];
|
|
10121
|
+
};
|
|
10122
|
+
/** @description Monotonic edit counter, bumped on every update. A publish freezes the graph under the revision it had; a login in flight pins the revision it started on. */
|
|
10123
|
+
revision: number;
|
|
10124
|
+
published?: {
|
|
10125
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10126
|
+
graph: {
|
|
10127
|
+
nodes: {
|
|
10128
|
+
id: string;
|
|
10129
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10130
|
+
config?: {
|
|
10131
|
+
[key: string]: unknown;
|
|
10132
|
+
};
|
|
10133
|
+
}[];
|
|
10134
|
+
edges: {
|
|
10135
|
+
from: string;
|
|
10136
|
+
handle: string;
|
|
10137
|
+
to: string;
|
|
10138
|
+
}[];
|
|
10139
|
+
};
|
|
10140
|
+
revision: number;
|
|
10141
|
+
published_at: string;
|
|
10142
|
+
};
|
|
10143
|
+
/** @description Previously published graphs, newest first, for rollback. */
|
|
10144
|
+
history: {
|
|
10145
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10146
|
+
graph: {
|
|
10147
|
+
nodes: {
|
|
10148
|
+
id: string;
|
|
10149
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10150
|
+
config?: {
|
|
10151
|
+
[key: string]: unknown;
|
|
10152
|
+
};
|
|
10153
|
+
}[];
|
|
10154
|
+
edges: {
|
|
10155
|
+
from: string;
|
|
10156
|
+
handle: string;
|
|
10157
|
+
to: string;
|
|
10158
|
+
}[];
|
|
10159
|
+
};
|
|
10160
|
+
revision: number;
|
|
10161
|
+
published_at: string;
|
|
10162
|
+
}[];
|
|
10163
|
+
/** @description Node positions in the editor. Presentation only. */
|
|
10164
|
+
layout?: {
|
|
10165
|
+
[key: string]: {
|
|
10166
|
+
x: number;
|
|
10167
|
+
y: number;
|
|
10168
|
+
};
|
|
10169
|
+
};
|
|
10170
|
+
/** @description Object is related with this account */
|
|
10171
|
+
account: string;
|
|
10172
|
+
/**
|
|
10173
|
+
* @description LoginFlowMetadata
|
|
10174
|
+
* @default {}
|
|
10175
|
+
*/
|
|
10176
|
+
metadata: {
|
|
10177
|
+
[key: string]: unknown;
|
|
10178
|
+
};
|
|
10179
|
+
/** @description LoginFlow creation date */
|
|
10180
|
+
createdAt: string;
|
|
10181
|
+
/** @description LoginFlow updated date */
|
|
10182
|
+
updatedAt?: string;
|
|
10183
|
+
};
|
|
10184
|
+
};
|
|
10185
|
+
};
|
|
10186
|
+
/** @description Default Response */
|
|
10187
|
+
422: {
|
|
10188
|
+
headers: {
|
|
10189
|
+
[name: string]: unknown;
|
|
10190
|
+
};
|
|
10191
|
+
content: {
|
|
10192
|
+
"application/json": {
|
|
10193
|
+
error: string;
|
|
10194
|
+
issues: {
|
|
10195
|
+
code: string;
|
|
10196
|
+
node?: string;
|
|
10197
|
+
handle?: string;
|
|
10198
|
+
message: string;
|
|
10199
|
+
}[];
|
|
10200
|
+
};
|
|
10201
|
+
};
|
|
10202
|
+
};
|
|
10203
|
+
};
|
|
10204
|
+
};
|
|
10205
|
+
"loginflow/rollback": {
|
|
10206
|
+
parameters: {
|
|
10207
|
+
query?: never;
|
|
10208
|
+
header?: never;
|
|
10209
|
+
path: {
|
|
10210
|
+
loginflow_id: string;
|
|
10211
|
+
};
|
|
10212
|
+
cookie?: never;
|
|
10213
|
+
};
|
|
10214
|
+
requestBody: {
|
|
10215
|
+
content: {
|
|
10216
|
+
"application/json": {
|
|
10217
|
+
revision: number;
|
|
10218
|
+
};
|
|
10219
|
+
};
|
|
10220
|
+
};
|
|
10221
|
+
responses: {
|
|
10222
|
+
/** @description LoginFlow */
|
|
10223
|
+
200: {
|
|
10224
|
+
headers: {
|
|
10225
|
+
[name: string]: unknown;
|
|
10226
|
+
};
|
|
10227
|
+
content: {
|
|
10228
|
+
"application/json": {
|
|
10229
|
+
/** @description LoginFlow ID */
|
|
10230
|
+
id: string;
|
|
10231
|
+
name: string;
|
|
10232
|
+
/** @enum {string} */
|
|
10233
|
+
trigger: "login";
|
|
10234
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10235
|
+
graph: {
|
|
10236
|
+
nodes: {
|
|
10237
|
+
id: string;
|
|
10238
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10239
|
+
config?: {
|
|
10240
|
+
[key: string]: unknown;
|
|
10241
|
+
};
|
|
10242
|
+
}[];
|
|
10243
|
+
edges: {
|
|
10244
|
+
from: string;
|
|
10245
|
+
handle: string;
|
|
10246
|
+
to: string;
|
|
10247
|
+
}[];
|
|
10248
|
+
};
|
|
10249
|
+
/** @description Monotonic edit counter, bumped on every update. A publish freezes the graph under the revision it had; a login in flight pins the revision it started on. */
|
|
10250
|
+
revision: number;
|
|
10251
|
+
published?: {
|
|
10252
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10253
|
+
graph: {
|
|
10254
|
+
nodes: {
|
|
10255
|
+
id: string;
|
|
10256
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10257
|
+
config?: {
|
|
10258
|
+
[key: string]: unknown;
|
|
10259
|
+
};
|
|
10260
|
+
}[];
|
|
10261
|
+
edges: {
|
|
10262
|
+
from: string;
|
|
10263
|
+
handle: string;
|
|
10264
|
+
to: string;
|
|
10265
|
+
}[];
|
|
10266
|
+
};
|
|
10267
|
+
revision: number;
|
|
10268
|
+
published_at: string;
|
|
10269
|
+
};
|
|
10270
|
+
/** @description Previously published graphs, newest first, for rollback. */
|
|
10271
|
+
history: {
|
|
10272
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10273
|
+
graph: {
|
|
10274
|
+
nodes: {
|
|
10275
|
+
id: string;
|
|
10276
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10277
|
+
config?: {
|
|
10278
|
+
[key: string]: unknown;
|
|
10279
|
+
};
|
|
10280
|
+
}[];
|
|
10281
|
+
edges: {
|
|
10282
|
+
from: string;
|
|
10283
|
+
handle: string;
|
|
10284
|
+
to: string;
|
|
10285
|
+
}[];
|
|
10286
|
+
};
|
|
10287
|
+
revision: number;
|
|
10288
|
+
published_at: string;
|
|
10289
|
+
}[];
|
|
10290
|
+
/** @description Node positions in the editor. Presentation only. */
|
|
10291
|
+
layout?: {
|
|
10292
|
+
[key: string]: {
|
|
10293
|
+
x: number;
|
|
10294
|
+
y: number;
|
|
10295
|
+
};
|
|
10296
|
+
};
|
|
10297
|
+
/** @description Object is related with this account */
|
|
10298
|
+
account: string;
|
|
10299
|
+
/**
|
|
10300
|
+
* @description LoginFlowMetadata
|
|
10301
|
+
* @default {}
|
|
10302
|
+
*/
|
|
10303
|
+
metadata: {
|
|
10304
|
+
[key: string]: unknown;
|
|
10305
|
+
};
|
|
10306
|
+
/** @description LoginFlow creation date */
|
|
10307
|
+
createdAt: string;
|
|
10308
|
+
/** @description LoginFlow updated date */
|
|
10309
|
+
updatedAt?: string;
|
|
10310
|
+
};
|
|
10311
|
+
};
|
|
10312
|
+
};
|
|
10313
|
+
};
|
|
10314
|
+
};
|
|
10315
|
+
"loginflow/previewToken": {
|
|
10316
|
+
parameters: {
|
|
10317
|
+
query?: never;
|
|
10318
|
+
header?: never;
|
|
10319
|
+
path: {
|
|
10320
|
+
loginflow_id: string;
|
|
10321
|
+
};
|
|
10322
|
+
cookie?: never;
|
|
10323
|
+
};
|
|
10324
|
+
requestBody?: never;
|
|
10325
|
+
responses: {
|
|
10326
|
+
/** @description Default Response */
|
|
10327
|
+
200: {
|
|
10328
|
+
headers: {
|
|
10329
|
+
[name: string]: unknown;
|
|
10330
|
+
};
|
|
10331
|
+
content: {
|
|
10332
|
+
"application/json": {
|
|
10333
|
+
token: string;
|
|
10334
|
+
expires_in: number;
|
|
10335
|
+
};
|
|
10336
|
+
};
|
|
10337
|
+
};
|
|
10338
|
+
};
|
|
10339
|
+
};
|
|
10340
|
+
"loginflow/list": {
|
|
10341
|
+
parameters: {
|
|
10342
|
+
query?: {
|
|
10343
|
+
/** @description Number of items per page (max 200) */
|
|
10344
|
+
pageSize?: number;
|
|
10345
|
+
/** @description Cursor for next page */
|
|
10346
|
+
cursor?: string;
|
|
10347
|
+
/** @description Cursor returned by the previous page */
|
|
10348
|
+
next?: string;
|
|
10349
|
+
/** @description Filter using a FaableQL query */
|
|
10350
|
+
query?: string;
|
|
10351
|
+
};
|
|
10352
|
+
header?: never;
|
|
10353
|
+
path?: never;
|
|
10354
|
+
cookie?: never;
|
|
10355
|
+
};
|
|
10356
|
+
requestBody?: never;
|
|
10357
|
+
responses: {
|
|
10358
|
+
/** @description Default Response */
|
|
10359
|
+
200: {
|
|
10360
|
+
headers: {
|
|
10361
|
+
[name: string]: unknown;
|
|
10362
|
+
};
|
|
10363
|
+
content: {
|
|
10364
|
+
"application/json": {
|
|
10365
|
+
next: string | null;
|
|
10366
|
+
results: components["schemas"]["LoginFlow"][];
|
|
10367
|
+
};
|
|
10368
|
+
};
|
|
10369
|
+
};
|
|
10370
|
+
};
|
|
10371
|
+
};
|
|
10372
|
+
"loginflow/create": {
|
|
10373
|
+
parameters: {
|
|
10374
|
+
query?: never;
|
|
10375
|
+
header?: never;
|
|
10376
|
+
path?: never;
|
|
10377
|
+
cookie?: never;
|
|
10378
|
+
};
|
|
10379
|
+
requestBody: {
|
|
10380
|
+
content: {
|
|
10381
|
+
"application/json": {
|
|
10382
|
+
name: string;
|
|
10383
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10384
|
+
graph: {
|
|
10385
|
+
nodes: {
|
|
10386
|
+
id: string;
|
|
10387
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10388
|
+
config?: {
|
|
10389
|
+
[key: string]: unknown;
|
|
10390
|
+
};
|
|
10391
|
+
}[];
|
|
10392
|
+
edges: {
|
|
10393
|
+
from: string;
|
|
10394
|
+
handle: string;
|
|
10395
|
+
to: string;
|
|
10396
|
+
}[];
|
|
10397
|
+
};
|
|
10398
|
+
/** @description Node positions in the editor. Presentation only. */
|
|
10399
|
+
layout?: {
|
|
10400
|
+
[key: string]: {
|
|
10401
|
+
x: number;
|
|
10402
|
+
y: number;
|
|
10403
|
+
};
|
|
10404
|
+
};
|
|
10405
|
+
};
|
|
10406
|
+
};
|
|
10407
|
+
};
|
|
10408
|
+
responses: {
|
|
10409
|
+
/** @description LoginFlow */
|
|
10410
|
+
200: {
|
|
10411
|
+
headers: {
|
|
10412
|
+
[name: string]: unknown;
|
|
10413
|
+
};
|
|
10414
|
+
content: {
|
|
10415
|
+
"application/json": {
|
|
10416
|
+
/** @description LoginFlow ID */
|
|
10417
|
+
id: string;
|
|
10418
|
+
name: string;
|
|
10419
|
+
/** @enum {string} */
|
|
10420
|
+
trigger: "login";
|
|
10421
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10422
|
+
graph: {
|
|
10423
|
+
nodes: {
|
|
10424
|
+
id: string;
|
|
10425
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10426
|
+
config?: {
|
|
10427
|
+
[key: string]: unknown;
|
|
10428
|
+
};
|
|
10429
|
+
}[];
|
|
10430
|
+
edges: {
|
|
10431
|
+
from: string;
|
|
10432
|
+
handle: string;
|
|
10433
|
+
to: string;
|
|
10434
|
+
}[];
|
|
10435
|
+
};
|
|
10436
|
+
/** @description Monotonic edit counter, bumped on every update. A publish freezes the graph under the revision it had; a login in flight pins the revision it started on. */
|
|
10437
|
+
revision: number;
|
|
10438
|
+
published?: {
|
|
10439
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10440
|
+
graph: {
|
|
10441
|
+
nodes: {
|
|
10442
|
+
id: string;
|
|
10443
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10444
|
+
config?: {
|
|
10445
|
+
[key: string]: unknown;
|
|
10446
|
+
};
|
|
10447
|
+
}[];
|
|
10448
|
+
edges: {
|
|
10449
|
+
from: string;
|
|
10450
|
+
handle: string;
|
|
10451
|
+
to: string;
|
|
10452
|
+
}[];
|
|
10453
|
+
};
|
|
10454
|
+
revision: number;
|
|
10455
|
+
published_at: string;
|
|
10456
|
+
};
|
|
10457
|
+
/** @description Previously published graphs, newest first, for rollback. */
|
|
10458
|
+
history: {
|
|
10459
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10460
|
+
graph: {
|
|
10461
|
+
nodes: {
|
|
10462
|
+
id: string;
|
|
10463
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10464
|
+
config?: {
|
|
10465
|
+
[key: string]: unknown;
|
|
10466
|
+
};
|
|
10467
|
+
}[];
|
|
10468
|
+
edges: {
|
|
10469
|
+
from: string;
|
|
10470
|
+
handle: string;
|
|
10471
|
+
to: string;
|
|
10472
|
+
}[];
|
|
10473
|
+
};
|
|
10474
|
+
revision: number;
|
|
10475
|
+
published_at: string;
|
|
10476
|
+
}[];
|
|
10477
|
+
/** @description Node positions in the editor. Presentation only. */
|
|
10478
|
+
layout?: {
|
|
10479
|
+
[key: string]: {
|
|
10480
|
+
x: number;
|
|
10481
|
+
y: number;
|
|
10482
|
+
};
|
|
10483
|
+
};
|
|
10484
|
+
/** @description Object is related with this account */
|
|
10485
|
+
account: string;
|
|
10486
|
+
/**
|
|
10487
|
+
* @description LoginFlowMetadata
|
|
10488
|
+
* @default {}
|
|
10489
|
+
*/
|
|
10490
|
+
metadata: {
|
|
10491
|
+
[key: string]: unknown;
|
|
10492
|
+
};
|
|
10493
|
+
/** @description LoginFlow creation date */
|
|
10494
|
+
createdAt: string;
|
|
10495
|
+
/** @description LoginFlow updated date */
|
|
10496
|
+
updatedAt?: string;
|
|
10497
|
+
};
|
|
10498
|
+
};
|
|
10499
|
+
};
|
|
10500
|
+
};
|
|
10501
|
+
};
|
|
10502
|
+
"loginflow/get": {
|
|
10503
|
+
parameters: {
|
|
10504
|
+
query?: never;
|
|
10505
|
+
header?: never;
|
|
10506
|
+
path: {
|
|
10507
|
+
loginflow_id: string;
|
|
10508
|
+
};
|
|
10509
|
+
cookie?: never;
|
|
10510
|
+
};
|
|
10511
|
+
requestBody?: never;
|
|
10512
|
+
responses: {
|
|
10513
|
+
/** @description LoginFlow */
|
|
10514
|
+
200: {
|
|
10515
|
+
headers: {
|
|
10516
|
+
[name: string]: unknown;
|
|
10517
|
+
};
|
|
10518
|
+
content: {
|
|
10519
|
+
"application/json": {
|
|
10520
|
+
/** @description LoginFlow ID */
|
|
10521
|
+
id: string;
|
|
10522
|
+
name: string;
|
|
10523
|
+
/** @enum {string} */
|
|
10524
|
+
trigger: "login";
|
|
10525
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10526
|
+
graph: {
|
|
10527
|
+
nodes: {
|
|
10528
|
+
id: string;
|
|
10529
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10530
|
+
config?: {
|
|
10531
|
+
[key: string]: unknown;
|
|
10532
|
+
};
|
|
10533
|
+
}[];
|
|
10534
|
+
edges: {
|
|
10535
|
+
from: string;
|
|
10536
|
+
handle: string;
|
|
10537
|
+
to: string;
|
|
10538
|
+
}[];
|
|
10539
|
+
};
|
|
10540
|
+
/** @description Monotonic edit counter, bumped on every update. A publish freezes the graph under the revision it had; a login in flight pins the revision it started on. */
|
|
10541
|
+
revision: number;
|
|
10542
|
+
published?: {
|
|
10543
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10544
|
+
graph: {
|
|
10545
|
+
nodes: {
|
|
10546
|
+
id: string;
|
|
10547
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10548
|
+
config?: {
|
|
10549
|
+
[key: string]: unknown;
|
|
10550
|
+
};
|
|
10551
|
+
}[];
|
|
10552
|
+
edges: {
|
|
10553
|
+
from: string;
|
|
10554
|
+
handle: string;
|
|
10555
|
+
to: string;
|
|
10556
|
+
}[];
|
|
10557
|
+
};
|
|
10558
|
+
revision: number;
|
|
10559
|
+
published_at: string;
|
|
10560
|
+
};
|
|
10561
|
+
/** @description Previously published graphs, newest first, for rollback. */
|
|
10562
|
+
history: {
|
|
10563
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10564
|
+
graph: {
|
|
10565
|
+
nodes: {
|
|
10566
|
+
id: string;
|
|
10567
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10568
|
+
config?: {
|
|
10569
|
+
[key: string]: unknown;
|
|
10570
|
+
};
|
|
10571
|
+
}[];
|
|
10572
|
+
edges: {
|
|
10573
|
+
from: string;
|
|
10574
|
+
handle: string;
|
|
10575
|
+
to: string;
|
|
10576
|
+
}[];
|
|
10577
|
+
};
|
|
10578
|
+
revision: number;
|
|
10579
|
+
published_at: string;
|
|
10580
|
+
}[];
|
|
10581
|
+
/** @description Node positions in the editor. Presentation only. */
|
|
10582
|
+
layout?: {
|
|
10583
|
+
[key: string]: {
|
|
10584
|
+
x: number;
|
|
10585
|
+
y: number;
|
|
10586
|
+
};
|
|
10587
|
+
};
|
|
10588
|
+
/** @description Object is related with this account */
|
|
10589
|
+
account: string;
|
|
10590
|
+
/**
|
|
10591
|
+
* @description LoginFlowMetadata
|
|
10592
|
+
* @default {}
|
|
10593
|
+
*/
|
|
10594
|
+
metadata: {
|
|
10595
|
+
[key: string]: unknown;
|
|
10596
|
+
};
|
|
10597
|
+
/** @description LoginFlow creation date */
|
|
10598
|
+
createdAt: string;
|
|
10599
|
+
/** @description LoginFlow updated date */
|
|
10600
|
+
updatedAt?: string;
|
|
10601
|
+
};
|
|
10602
|
+
};
|
|
10603
|
+
};
|
|
10604
|
+
};
|
|
10605
|
+
};
|
|
10606
|
+
"loginflow/update": {
|
|
10607
|
+
parameters: {
|
|
10608
|
+
query?: never;
|
|
10609
|
+
header?: never;
|
|
10610
|
+
path: {
|
|
10611
|
+
loginflow_id: string;
|
|
10612
|
+
};
|
|
10613
|
+
cookie?: never;
|
|
10614
|
+
};
|
|
10615
|
+
requestBody: {
|
|
10616
|
+
content: {
|
|
10617
|
+
"application/json": {
|
|
10618
|
+
name?: string;
|
|
10619
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10620
|
+
graph?: {
|
|
10621
|
+
nodes: {
|
|
10622
|
+
id: string;
|
|
10623
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10624
|
+
config?: {
|
|
10625
|
+
[key: string]: unknown;
|
|
10626
|
+
};
|
|
10627
|
+
}[];
|
|
10628
|
+
edges: {
|
|
10629
|
+
from: string;
|
|
10630
|
+
handle: string;
|
|
10631
|
+
to: string;
|
|
10632
|
+
}[];
|
|
10633
|
+
};
|
|
10634
|
+
/** @description Node positions in the editor. Presentation only. */
|
|
10635
|
+
layout?: {
|
|
10636
|
+
[key: string]: {
|
|
10637
|
+
x: number;
|
|
10638
|
+
y: number;
|
|
10639
|
+
};
|
|
10640
|
+
};
|
|
10641
|
+
};
|
|
10642
|
+
};
|
|
10643
|
+
};
|
|
10644
|
+
responses: {
|
|
10645
|
+
/** @description LoginFlow */
|
|
10646
|
+
200: {
|
|
10647
|
+
headers: {
|
|
10648
|
+
[name: string]: unknown;
|
|
10649
|
+
};
|
|
10650
|
+
content: {
|
|
10651
|
+
"application/json": {
|
|
10652
|
+
/** @description LoginFlow ID */
|
|
10653
|
+
id: string;
|
|
10654
|
+
name: string;
|
|
10655
|
+
/** @enum {string} */
|
|
10656
|
+
trigger: "login";
|
|
10657
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10658
|
+
graph: {
|
|
10659
|
+
nodes: {
|
|
10660
|
+
id: string;
|
|
10661
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10662
|
+
config?: {
|
|
10663
|
+
[key: string]: unknown;
|
|
10664
|
+
};
|
|
10665
|
+
}[];
|
|
10666
|
+
edges: {
|
|
10667
|
+
from: string;
|
|
10668
|
+
handle: string;
|
|
10669
|
+
to: string;
|
|
10670
|
+
}[];
|
|
10671
|
+
};
|
|
10672
|
+
/** @description Monotonic edit counter, bumped on every update. A publish freezes the graph under the revision it had; a login in flight pins the revision it started on. */
|
|
10673
|
+
revision: number;
|
|
10674
|
+
published?: {
|
|
10675
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10676
|
+
graph: {
|
|
10677
|
+
nodes: {
|
|
10678
|
+
id: string;
|
|
10679
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10680
|
+
config?: {
|
|
10681
|
+
[key: string]: unknown;
|
|
10682
|
+
};
|
|
10683
|
+
}[];
|
|
10684
|
+
edges: {
|
|
10685
|
+
from: string;
|
|
10686
|
+
handle: string;
|
|
10687
|
+
to: string;
|
|
10688
|
+
}[];
|
|
10689
|
+
};
|
|
10690
|
+
revision: number;
|
|
10691
|
+
published_at: string;
|
|
10692
|
+
};
|
|
10693
|
+
/** @description Previously published graphs, newest first, for rollback. */
|
|
10694
|
+
history: {
|
|
10695
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10696
|
+
graph: {
|
|
10697
|
+
nodes: {
|
|
10698
|
+
id: string;
|
|
10699
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10700
|
+
config?: {
|
|
10701
|
+
[key: string]: unknown;
|
|
10702
|
+
};
|
|
10703
|
+
}[];
|
|
10704
|
+
edges: {
|
|
10705
|
+
from: string;
|
|
10706
|
+
handle: string;
|
|
10707
|
+
to: string;
|
|
10708
|
+
}[];
|
|
10709
|
+
};
|
|
10710
|
+
revision: number;
|
|
10711
|
+
published_at: string;
|
|
10712
|
+
}[];
|
|
10713
|
+
/** @description Node positions in the editor. Presentation only. */
|
|
10714
|
+
layout?: {
|
|
10715
|
+
[key: string]: {
|
|
10716
|
+
x: number;
|
|
10717
|
+
y: number;
|
|
10718
|
+
};
|
|
10719
|
+
};
|
|
10720
|
+
/** @description Object is related with this account */
|
|
10721
|
+
account: string;
|
|
10722
|
+
/**
|
|
10723
|
+
* @description LoginFlowMetadata
|
|
10724
|
+
* @default {}
|
|
10725
|
+
*/
|
|
10726
|
+
metadata: {
|
|
10727
|
+
[key: string]: unknown;
|
|
10728
|
+
};
|
|
10729
|
+
/** @description LoginFlow creation date */
|
|
10730
|
+
createdAt: string;
|
|
10731
|
+
/** @description LoginFlow updated date */
|
|
10732
|
+
updatedAt?: string;
|
|
10733
|
+
};
|
|
10734
|
+
};
|
|
10735
|
+
};
|
|
10736
|
+
};
|
|
10737
|
+
};
|
|
10738
|
+
"loginflow/delete": {
|
|
10739
|
+
parameters: {
|
|
10740
|
+
query?: never;
|
|
10741
|
+
header?: never;
|
|
10742
|
+
path: {
|
|
10743
|
+
loginflow_id: string;
|
|
10744
|
+
};
|
|
10745
|
+
cookie?: never;
|
|
10746
|
+
};
|
|
10747
|
+
requestBody?: never;
|
|
10748
|
+
responses: {
|
|
10749
|
+
/** @description LoginFlow */
|
|
10750
|
+
200: {
|
|
10751
|
+
headers: {
|
|
10752
|
+
[name: string]: unknown;
|
|
10753
|
+
};
|
|
10754
|
+
content: {
|
|
10755
|
+
"application/json": {
|
|
10756
|
+
/** @description LoginFlow ID */
|
|
10757
|
+
id: string;
|
|
10758
|
+
name: string;
|
|
10759
|
+
/** @enum {string} */
|
|
10760
|
+
trigger: "login";
|
|
10761
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10762
|
+
graph: {
|
|
10763
|
+
nodes: {
|
|
10764
|
+
id: string;
|
|
10765
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10766
|
+
config?: {
|
|
10767
|
+
[key: string]: unknown;
|
|
10768
|
+
};
|
|
10769
|
+
}[];
|
|
10770
|
+
edges: {
|
|
10771
|
+
from: string;
|
|
10772
|
+
handle: string;
|
|
10773
|
+
to: string;
|
|
10774
|
+
}[];
|
|
10775
|
+
};
|
|
10776
|
+
/** @description Monotonic edit counter, bumped on every update. A publish freezes the graph under the revision it had; a login in flight pins the revision it started on. */
|
|
10777
|
+
revision: number;
|
|
10778
|
+
published?: {
|
|
10779
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10780
|
+
graph: {
|
|
10781
|
+
nodes: {
|
|
10782
|
+
id: string;
|
|
10783
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10784
|
+
config?: {
|
|
10785
|
+
[key: string]: unknown;
|
|
10786
|
+
};
|
|
10787
|
+
}[];
|
|
10788
|
+
edges: {
|
|
10789
|
+
from: string;
|
|
10790
|
+
handle: string;
|
|
10791
|
+
to: string;
|
|
10792
|
+
}[];
|
|
10793
|
+
};
|
|
10794
|
+
revision: number;
|
|
10795
|
+
published_at: string;
|
|
10796
|
+
};
|
|
10797
|
+
/** @description Previously published graphs, newest first, for rollback. */
|
|
10798
|
+
history: {
|
|
10799
|
+
/** @description A login flow graph: typed nodes joined by named handles. See the validation rules on publish. */
|
|
10800
|
+
graph: {
|
|
10801
|
+
nodes: {
|
|
10802
|
+
id: string;
|
|
10803
|
+
type: "start" | "identify" | "methods" | "credential" | "action" | "mfa_gate" | "mfa_challenge" | "mfa_enroll" | "passkey_offer" | "condition" | "deny" | "end" | "consent" | "set_data";
|
|
10804
|
+
config?: {
|
|
10805
|
+
[key: string]: unknown;
|
|
10806
|
+
};
|
|
10807
|
+
}[];
|
|
10808
|
+
edges: {
|
|
10809
|
+
from: string;
|
|
10810
|
+
handle: string;
|
|
10811
|
+
to: string;
|
|
10812
|
+
}[];
|
|
10813
|
+
};
|
|
10814
|
+
revision: number;
|
|
10815
|
+
published_at: string;
|
|
10816
|
+
}[];
|
|
10817
|
+
/** @description Node positions in the editor. Presentation only. */
|
|
10818
|
+
layout?: {
|
|
10819
|
+
[key: string]: {
|
|
10820
|
+
x: number;
|
|
10821
|
+
y: number;
|
|
10822
|
+
};
|
|
10823
|
+
};
|
|
10824
|
+
/** @description Object is related with this account */
|
|
10825
|
+
account: string;
|
|
10826
|
+
/**
|
|
10827
|
+
* @description LoginFlowMetadata
|
|
10828
|
+
* @default {}
|
|
10829
|
+
*/
|
|
10830
|
+
metadata: {
|
|
10831
|
+
[key: string]: unknown;
|
|
10832
|
+
};
|
|
10833
|
+
/** @description LoginFlow creation date */
|
|
10834
|
+
createdAt: string;
|
|
10835
|
+
/** @description LoginFlow updated date */
|
|
10836
|
+
updatedAt?: string;
|
|
10837
|
+
};
|
|
10838
|
+
};
|
|
10839
|
+
};
|
|
10840
|
+
};
|
|
10841
|
+
};
|
|
9249
10842
|
"notificationsubscription/list": {
|
|
9250
10843
|
parameters: {
|
|
9251
10844
|
query?: {
|
|
@@ -10154,6 +11747,12 @@ export interface operations {
|
|
|
10154
11747
|
email_bounced_at?: string | null;
|
|
10155
11748
|
/** @description ISO 8601 timestamp of the built-in welcome email send. Set once by the platform; guarantees at most one welcome per user. */
|
|
10156
11749
|
welcome_sent_at?: string | null;
|
|
11750
|
+
/** @description ISO 8601 timestamp of the last time the hosted "create a passkey" offer was shown to this user after a login. Drives the snooze in `login_methods.passkey_promotion_snooze_days`. */
|
|
11751
|
+
passkey_prompted_at?: string | null;
|
|
11752
|
+
/** @description How many times the passkey offer has been shown to this user. Capped by `login_methods.passkey_promotion_max_prompts`; reset by an administrator through `POST /user/:id/passkey-prompt/reset`. */
|
|
11753
|
+
passkey_prompt_count?: number;
|
|
11754
|
+
/** @description ISO 8601 timestamp of the last time the user chose "Not now" on the passkey offer, as opposed to closing the tab. */
|
|
11755
|
+
passkey_prompt_dismissed_at?: string | null;
|
|
10157
11756
|
/** @description contact phone number */
|
|
10158
11757
|
phone?: string | null;
|
|
10159
11758
|
/** @description phone is verified */
|
|
@@ -10288,6 +11887,8 @@ export interface operations {
|
|
|
10288
11887
|
connection_scope?: string;
|
|
10289
11888
|
/** @description Link mode: attach the resulting provider identity to the ACTIVE session user instead of signing in or up. Requires a session; incompatible with prompt=login/consent. */
|
|
10290
11889
|
link?: boolean;
|
|
11890
|
+
/** @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. */
|
|
11891
|
+
flow_preview?: string;
|
|
10291
11892
|
/** @description Single-use ticket from `POST /oauth/link_ticket`. With `link=true`, establishes the cookie session for the ticket’s user before linking — for Relying Parties that hold tokens but no cookie session (direct grants such as passwordless OTP). Invalid or expired tickets are ignored. */
|
|
10292
11893
|
link_ticket?: string;
|
|
10293
11894
|
client_id: string;
|