@faable/auth-sdk 1.3.13 → 1.3.15
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/.github/workflows/release.yml +0 -1
- package/.github/workflows/sync-from-auth.yml +77 -0
- package/README.md +146 -24
- package/dist/FaableAuthApi.d.ts +50 -0
- package/dist/api/types.d.ts +1558 -323
- package/package.json +2 -2
package/dist/api/types.d.ts
CHANGED
|
@@ -103,14 +103,14 @@ export interface paths {
|
|
|
103
103
|
cookie?: never;
|
|
104
104
|
};
|
|
105
105
|
/**
|
|
106
|
-
* List Connections
|
|
107
|
-
* @description List Connections
|
|
106
|
+
* List Connections
|
|
107
|
+
* @description List Connections
|
|
108
108
|
*/
|
|
109
109
|
get: operations["connection/list"];
|
|
110
110
|
put?: never;
|
|
111
111
|
/**
|
|
112
|
-
* Create Connection
|
|
113
|
-
* @description Create Connection
|
|
112
|
+
* Create Connection
|
|
113
|
+
* @description Create Connection
|
|
114
114
|
*/
|
|
115
115
|
post: operations["connection/create"];
|
|
116
116
|
delete?: never;
|
|
@@ -127,17 +127,21 @@ export interface paths {
|
|
|
127
127
|
cookie?: never;
|
|
128
128
|
};
|
|
129
129
|
/**
|
|
130
|
-
* Get Connection
|
|
131
|
-
* @description Get Connection
|
|
130
|
+
* Get Connection
|
|
131
|
+
* @description Get Connection
|
|
132
132
|
*/
|
|
133
133
|
get: operations["connection/get"];
|
|
134
134
|
put?: never;
|
|
135
|
-
post?: never;
|
|
136
135
|
/**
|
|
137
|
-
*
|
|
138
|
-
* @description
|
|
136
|
+
* Update Connection
|
|
137
|
+
* @description Update Connection
|
|
138
|
+
*/
|
|
139
|
+
post: operations["connection/update"];
|
|
140
|
+
/**
|
|
141
|
+
* Delete Connection
|
|
142
|
+
* @description Delete Connection
|
|
139
143
|
*/
|
|
140
|
-
delete: operations["connection/
|
|
144
|
+
delete: operations["connection/delete"];
|
|
141
145
|
options?: never;
|
|
142
146
|
head?: never;
|
|
143
147
|
patch?: never;
|
|
@@ -151,14 +155,14 @@ export interface paths {
|
|
|
151
155
|
cookie?: never;
|
|
152
156
|
};
|
|
153
157
|
/**
|
|
154
|
-
* List Clients
|
|
155
|
-
* @description List Clients
|
|
158
|
+
* List Clients
|
|
159
|
+
* @description List Clients
|
|
156
160
|
*/
|
|
157
161
|
get: operations["client/list"];
|
|
158
162
|
put?: never;
|
|
159
163
|
/**
|
|
160
|
-
* Create Client
|
|
161
|
-
* @description Create Client
|
|
164
|
+
* Create Client
|
|
165
|
+
* @description Create Client
|
|
162
166
|
*/
|
|
163
167
|
post: operations["client/create"];
|
|
164
168
|
delete?: never;
|
|
@@ -175,17 +179,41 @@ export interface paths {
|
|
|
175
179
|
cookie?: never;
|
|
176
180
|
};
|
|
177
181
|
/**
|
|
178
|
-
* Get Client
|
|
179
|
-
* @description Get Client
|
|
182
|
+
* Get Client
|
|
183
|
+
* @description Get Client
|
|
180
184
|
*/
|
|
181
185
|
get: operations["client/get"];
|
|
182
186
|
put?: never;
|
|
183
|
-
post?: never;
|
|
184
187
|
/**
|
|
185
|
-
*
|
|
186
|
-
* @description
|
|
188
|
+
* Update Client
|
|
189
|
+
* @description Update Client
|
|
190
|
+
*/
|
|
191
|
+
post: operations["client/update"];
|
|
192
|
+
/**
|
|
193
|
+
* Delete Client
|
|
194
|
+
* @description Delete Client
|
|
195
|
+
*/
|
|
196
|
+
delete: operations["client/delete"];
|
|
197
|
+
options?: never;
|
|
198
|
+
head?: never;
|
|
199
|
+
patch?: never;
|
|
200
|
+
trace?: never;
|
|
201
|
+
};
|
|
202
|
+
"/client/{client_id}/rotate-secret": {
|
|
203
|
+
parameters: {
|
|
204
|
+
query?: never;
|
|
205
|
+
header?: never;
|
|
206
|
+
path?: never;
|
|
207
|
+
cookie?: never;
|
|
208
|
+
};
|
|
209
|
+
get?: never;
|
|
210
|
+
put?: never;
|
|
211
|
+
/**
|
|
212
|
+
* Rotate a Client's secret
|
|
213
|
+
* @description Generates a fresh `client_secret` for the given Client and persists it. The previous secret is invalidated immediately — there is no grace period. Returns the full Client; the dashboard must surface the new secret to the admin once. Existing client_credentials / authorization_code integrations using the old secret will start failing at the token endpoint immediately after this call.
|
|
187
214
|
*/
|
|
188
|
-
|
|
215
|
+
post: operations["client/rotateSecret"];
|
|
216
|
+
delete?: never;
|
|
189
217
|
options?: never;
|
|
190
218
|
head?: never;
|
|
191
219
|
patch?: never;
|
|
@@ -199,14 +227,14 @@ export interface paths {
|
|
|
199
227
|
cookie?: never;
|
|
200
228
|
};
|
|
201
229
|
/**
|
|
202
|
-
* List Users
|
|
203
|
-
* @description List Users
|
|
230
|
+
* List Users
|
|
231
|
+
* @description List Users
|
|
204
232
|
*/
|
|
205
233
|
get: operations["user/list"];
|
|
206
234
|
put?: never;
|
|
207
235
|
/**
|
|
208
|
-
* Create User
|
|
209
|
-
* @description Create User
|
|
236
|
+
* Create User
|
|
237
|
+
* @description Create User
|
|
210
238
|
*/
|
|
211
239
|
post: operations["user/create"];
|
|
212
240
|
delete?: never;
|
|
@@ -223,21 +251,21 @@ export interface paths {
|
|
|
223
251
|
cookie?: never;
|
|
224
252
|
};
|
|
225
253
|
/**
|
|
226
|
-
* Get User
|
|
227
|
-
* @description Get User
|
|
254
|
+
* Get User
|
|
255
|
+
* @description Get User
|
|
228
256
|
*/
|
|
229
257
|
get: operations["user/get"];
|
|
230
258
|
put?: never;
|
|
231
259
|
/**
|
|
232
|
-
* Update
|
|
233
|
-
* @description Update
|
|
260
|
+
* Update User
|
|
261
|
+
* @description Update User
|
|
234
262
|
*/
|
|
235
263
|
post: operations["user/update"];
|
|
236
264
|
/**
|
|
237
|
-
* Delete User
|
|
238
|
-
* @description Delete User
|
|
265
|
+
* Delete User
|
|
266
|
+
* @description Delete User
|
|
239
267
|
*/
|
|
240
|
-
delete: operations["user/
|
|
268
|
+
delete: operations["user/delete"];
|
|
241
269
|
options?: never;
|
|
242
270
|
head?: never;
|
|
243
271
|
patch?: never;
|
|
@@ -283,6 +311,46 @@ export interface paths {
|
|
|
283
311
|
patch?: never;
|
|
284
312
|
trace?: never;
|
|
285
313
|
};
|
|
314
|
+
"/user/{user_id}/verify-email/start": {
|
|
315
|
+
parameters: {
|
|
316
|
+
query?: never;
|
|
317
|
+
header?: never;
|
|
318
|
+
path?: never;
|
|
319
|
+
cookie?: never;
|
|
320
|
+
};
|
|
321
|
+
get?: never;
|
|
322
|
+
put?: never;
|
|
323
|
+
/**
|
|
324
|
+
* Start the user's email verification flow
|
|
325
|
+
* @description Initiates the email-verification flow for the given user. Creates a `verify_email` Ticket and queues the verification email. Idempotent — returns `{status:'already_verified'}` without emitting a ticket if the user is already verified. Re-authentication is not required: an active session/Bearer is enough.
|
|
326
|
+
*/
|
|
327
|
+
post: operations["user/verifyEmailStart"];
|
|
328
|
+
delete?: never;
|
|
329
|
+
options?: never;
|
|
330
|
+
head?: never;
|
|
331
|
+
patch?: never;
|
|
332
|
+
trace?: never;
|
|
333
|
+
};
|
|
334
|
+
"/verify-email": {
|
|
335
|
+
parameters: {
|
|
336
|
+
query?: never;
|
|
337
|
+
header?: never;
|
|
338
|
+
path?: never;
|
|
339
|
+
cookie?: never;
|
|
340
|
+
};
|
|
341
|
+
/**
|
|
342
|
+
* Verify a verify-email ticket and mark the user verified
|
|
343
|
+
* @description Entry point for the link sent to the user. Consumes the ticket, sets `email_verified=true` with `email_verified_method='verification_flow'`. Redirects to the `redirect_uri` supplied at start with `?status=verified|already_verified` appended; falls back to `/flow/verify-email-done` on the auth host when no `redirect_uri` was given. Invalid/expired tickets redirect to the same fallback with `?status=invalid_link` or `?status=expired`.
|
|
344
|
+
*/
|
|
345
|
+
get: operations["user_verify_email_confirm"];
|
|
346
|
+
put?: never;
|
|
347
|
+
post?: never;
|
|
348
|
+
delete?: never;
|
|
349
|
+
options?: never;
|
|
350
|
+
head?: never;
|
|
351
|
+
patch?: never;
|
|
352
|
+
trace?: never;
|
|
353
|
+
};
|
|
286
354
|
"/identity": {
|
|
287
355
|
parameters: {
|
|
288
356
|
query?: never;
|
|
@@ -291,14 +359,14 @@ export interface paths {
|
|
|
291
359
|
cookie?: never;
|
|
292
360
|
};
|
|
293
361
|
/**
|
|
294
|
-
* List Identitys
|
|
295
|
-
* @description List Identitys
|
|
362
|
+
* List Identitys
|
|
363
|
+
* @description List Identitys
|
|
296
364
|
*/
|
|
297
365
|
get: operations["identity/list"];
|
|
298
366
|
put?: never;
|
|
299
367
|
/**
|
|
300
|
-
* Create Identity
|
|
301
|
-
* @description Create Identity
|
|
368
|
+
* Create Identity
|
|
369
|
+
* @description Create Identity
|
|
302
370
|
*/
|
|
303
371
|
post: operations["identity/create"];
|
|
304
372
|
delete?: never;
|
|
@@ -315,17 +383,37 @@ export interface paths {
|
|
|
315
383
|
cookie?: never;
|
|
316
384
|
};
|
|
317
385
|
/**
|
|
318
|
-
* Get Identity
|
|
319
|
-
* @description Get Identity
|
|
386
|
+
* Get Identity
|
|
387
|
+
* @description Get Identity
|
|
320
388
|
*/
|
|
321
389
|
get: operations["identity/get"];
|
|
322
390
|
put?: never;
|
|
323
391
|
post?: never;
|
|
324
392
|
/**
|
|
325
|
-
* Delete Identity
|
|
326
|
-
* @description Delete Identity
|
|
393
|
+
* Delete Identity
|
|
394
|
+
* @description Delete Identity
|
|
395
|
+
*/
|
|
396
|
+
delete: operations["identity/delete"];
|
|
397
|
+
options?: never;
|
|
398
|
+
head?: never;
|
|
399
|
+
patch?: never;
|
|
400
|
+
trace?: never;
|
|
401
|
+
};
|
|
402
|
+
"/identity/{identity_id}/provider-token": {
|
|
403
|
+
parameters: {
|
|
404
|
+
query?: never;
|
|
405
|
+
header?: never;
|
|
406
|
+
path?: never;
|
|
407
|
+
cookie?: never;
|
|
408
|
+
};
|
|
409
|
+
/**
|
|
410
|
+
* Get a guaranteed-valid provider access_token
|
|
411
|
+
* @description Returns the identity's upstream provider `access_token`, refreshing it transparently via the stored `refresh_token` when it is (about to be) expired. Pass `?fresh=true` to force a refresh. Fails with 400 when the token is expired and no `refresh_token` is available (the user must re-authorize).
|
|
327
412
|
*/
|
|
328
|
-
|
|
413
|
+
get: operations["identity/getProviderToken"];
|
|
414
|
+
put?: never;
|
|
415
|
+
post?: never;
|
|
416
|
+
delete?: never;
|
|
329
417
|
options?: never;
|
|
330
418
|
head?: never;
|
|
331
419
|
patch?: never;
|
|
@@ -339,14 +427,14 @@ export interface paths {
|
|
|
339
427
|
cookie?: never;
|
|
340
428
|
};
|
|
341
429
|
/**
|
|
342
|
-
* List Roles
|
|
343
|
-
* @description List Roles
|
|
430
|
+
* List Roles
|
|
431
|
+
* @description List Roles
|
|
344
432
|
*/
|
|
345
433
|
get: operations["role/list"];
|
|
346
434
|
put?: never;
|
|
347
435
|
/**
|
|
348
|
-
* Create Role
|
|
349
|
-
* @description Create Role
|
|
436
|
+
* Create Role
|
|
437
|
+
* @description Create Role
|
|
350
438
|
*/
|
|
351
439
|
post: operations["role/create"];
|
|
352
440
|
delete?: never;
|
|
@@ -363,21 +451,21 @@ export interface paths {
|
|
|
363
451
|
cookie?: never;
|
|
364
452
|
};
|
|
365
453
|
/**
|
|
366
|
-
* Get Role
|
|
367
|
-
* @description Get Role
|
|
454
|
+
* Get Role
|
|
455
|
+
* @description Get Role
|
|
368
456
|
*/
|
|
369
457
|
get: operations["role/get"];
|
|
370
458
|
put?: never;
|
|
371
459
|
/**
|
|
372
|
-
* Update
|
|
373
|
-
* @description Update
|
|
460
|
+
* Update Role
|
|
461
|
+
* @description Update Role
|
|
374
462
|
*/
|
|
375
463
|
post: operations["role/update"];
|
|
376
464
|
/**
|
|
377
|
-
* Delete Role
|
|
378
|
-
* @description Delete Role
|
|
465
|
+
* Delete Role
|
|
466
|
+
* @description Delete Role
|
|
379
467
|
*/
|
|
380
|
-
delete: operations["role/
|
|
468
|
+
delete: operations["role/delete"];
|
|
381
469
|
options?: never;
|
|
382
470
|
head?: never;
|
|
383
471
|
patch?: never;
|
|
@@ -415,14 +503,14 @@ export interface paths {
|
|
|
415
503
|
cookie?: never;
|
|
416
504
|
};
|
|
417
505
|
/**
|
|
418
|
-
* List Rolemembers
|
|
419
|
-
* @description List Rolemembers
|
|
506
|
+
* List Rolemembers
|
|
507
|
+
* @description List Rolemembers
|
|
420
508
|
*/
|
|
421
509
|
get: operations["rolemember/list"];
|
|
422
510
|
put?: never;
|
|
423
511
|
/**
|
|
424
|
-
* Create Rolemember
|
|
425
|
-
* @description Create Rolemember
|
|
512
|
+
* Create Rolemember
|
|
513
|
+
* @description Create Rolemember
|
|
426
514
|
*/
|
|
427
515
|
post: operations["rolemember/create"];
|
|
428
516
|
delete?: never;
|
|
@@ -439,17 +527,17 @@ export interface paths {
|
|
|
439
527
|
cookie?: never;
|
|
440
528
|
};
|
|
441
529
|
/**
|
|
442
|
-
* Get Rolemember
|
|
443
|
-
* @description Get Rolemember
|
|
530
|
+
* Get Rolemember
|
|
531
|
+
* @description Get Rolemember
|
|
444
532
|
*/
|
|
445
533
|
get: operations["rolemember/get"];
|
|
446
534
|
put?: never;
|
|
447
535
|
post?: never;
|
|
448
536
|
/**
|
|
449
|
-
* Delete Rolemember
|
|
450
|
-
* @description Delete Rolemember
|
|
537
|
+
* Delete Rolemember
|
|
538
|
+
* @description Delete Rolemember
|
|
451
539
|
*/
|
|
452
|
-
delete: operations["rolemember/
|
|
540
|
+
delete: operations["rolemember/delete"];
|
|
453
541
|
options?: never;
|
|
454
542
|
head?: never;
|
|
455
543
|
patch?: never;
|
|
@@ -463,14 +551,14 @@ export interface paths {
|
|
|
463
551
|
cookie?: never;
|
|
464
552
|
};
|
|
465
553
|
/**
|
|
466
|
-
* List Teams
|
|
467
|
-
* @description List Teams
|
|
554
|
+
* List Teams
|
|
555
|
+
* @description List Teams
|
|
468
556
|
*/
|
|
469
557
|
get: operations["team/list"];
|
|
470
558
|
put?: never;
|
|
471
559
|
/**
|
|
472
|
-
* Create Team
|
|
473
|
-
* @description Create Team
|
|
560
|
+
* Create Team
|
|
561
|
+
* @description Create Team
|
|
474
562
|
*/
|
|
475
563
|
post: operations["team/create"];
|
|
476
564
|
delete?: never;
|
|
@@ -487,21 +575,21 @@ export interface paths {
|
|
|
487
575
|
cookie?: never;
|
|
488
576
|
};
|
|
489
577
|
/**
|
|
490
|
-
* Get Team
|
|
491
|
-
* @description Get Team
|
|
578
|
+
* Get Team
|
|
579
|
+
* @description Get Team
|
|
492
580
|
*/
|
|
493
581
|
get: operations["team/get"];
|
|
494
582
|
put?: never;
|
|
495
583
|
/**
|
|
496
|
-
* Update
|
|
497
|
-
* @description Update
|
|
584
|
+
* Update Team
|
|
585
|
+
* @description Update Team
|
|
498
586
|
*/
|
|
499
587
|
post: operations["team/update"];
|
|
500
588
|
/**
|
|
501
|
-
* Delete Team
|
|
502
|
-
* @description Delete Team
|
|
589
|
+
* Delete Team
|
|
590
|
+
* @description Delete Team
|
|
503
591
|
*/
|
|
504
|
-
delete: operations["team/
|
|
592
|
+
delete: operations["team/delete"];
|
|
505
593
|
options?: never;
|
|
506
594
|
head?: never;
|
|
507
595
|
patch?: never;
|
|
@@ -515,14 +603,14 @@ export interface paths {
|
|
|
515
603
|
cookie?: never;
|
|
516
604
|
};
|
|
517
605
|
/**
|
|
518
|
-
* List Teammembers
|
|
519
|
-
* @description List Teammembers
|
|
606
|
+
* List Teammembers
|
|
607
|
+
* @description List Teammembers
|
|
520
608
|
*/
|
|
521
609
|
get: operations["teammember/list"];
|
|
522
610
|
put?: never;
|
|
523
611
|
/**
|
|
524
|
-
* Create Teammember
|
|
525
|
-
* @description Create Teammember
|
|
612
|
+
* Create Teammember
|
|
613
|
+
* @description Create Teammember
|
|
526
614
|
*/
|
|
527
615
|
post: operations["teammember/create"];
|
|
528
616
|
delete?: never;
|
|
@@ -539,17 +627,17 @@ export interface paths {
|
|
|
539
627
|
cookie?: never;
|
|
540
628
|
};
|
|
541
629
|
/**
|
|
542
|
-
* Get Teammember
|
|
543
|
-
* @description Get Teammember
|
|
630
|
+
* Get Teammember
|
|
631
|
+
* @description Get Teammember
|
|
544
632
|
*/
|
|
545
633
|
get: operations["teammember/get"];
|
|
546
634
|
put?: never;
|
|
547
635
|
post?: never;
|
|
548
636
|
/**
|
|
549
|
-
* Delete Teammember
|
|
550
|
-
* @description Delete Teammember
|
|
637
|
+
* Delete Teammember
|
|
638
|
+
* @description Delete Teammember
|
|
551
639
|
*/
|
|
552
|
-
delete: operations["teammember/
|
|
640
|
+
delete: operations["teammember/delete"];
|
|
553
641
|
options?: never;
|
|
554
642
|
head?: never;
|
|
555
643
|
patch?: never;
|
|
@@ -564,7 +652,7 @@ export interface paths {
|
|
|
564
652
|
};
|
|
565
653
|
/**
|
|
566
654
|
* List Team Members
|
|
567
|
-
* @description List all Users that belong to the given Team in the current Account.
|
|
655
|
+
* @description List all Users that belong to the given Team in the current Account. Supports `?expand=user,team,roles` to inline referenced rows.
|
|
568
656
|
*/
|
|
569
657
|
get: operations["team/listMembers"];
|
|
570
658
|
put?: never;
|
|
@@ -671,14 +759,14 @@ export interface paths {
|
|
|
671
759
|
cookie?: never;
|
|
672
760
|
};
|
|
673
761
|
/**
|
|
674
|
-
* List Apis
|
|
675
|
-
* @description List Apis
|
|
762
|
+
* List Apis
|
|
763
|
+
* @description List Apis
|
|
676
764
|
*/
|
|
677
765
|
get: operations["api/list"];
|
|
678
766
|
put?: never;
|
|
679
767
|
/**
|
|
680
|
-
* Create Api
|
|
681
|
-
* @description Create Api
|
|
768
|
+
* Create Api
|
|
769
|
+
* @description Create Api
|
|
682
770
|
*/
|
|
683
771
|
post: operations["api/create"];
|
|
684
772
|
delete?: never;
|
|
@@ -695,21 +783,21 @@ export interface paths {
|
|
|
695
783
|
cookie?: never;
|
|
696
784
|
};
|
|
697
785
|
/**
|
|
698
|
-
* Get Api
|
|
699
|
-
* @description Get Api
|
|
786
|
+
* Get Api
|
|
787
|
+
* @description Get Api
|
|
700
788
|
*/
|
|
701
789
|
get: operations["api/get"];
|
|
702
790
|
put?: never;
|
|
703
791
|
/**
|
|
704
|
-
* Update
|
|
705
|
-
* @description Update
|
|
792
|
+
* Update Api
|
|
793
|
+
* @description Update Api
|
|
706
794
|
*/
|
|
707
795
|
post: operations["api/update"];
|
|
708
796
|
/**
|
|
709
|
-
* Delete Api
|
|
710
|
-
* @description Delete Api
|
|
797
|
+
* Delete Api
|
|
798
|
+
* @description Delete Api
|
|
711
799
|
*/
|
|
712
|
-
delete: operations["api/
|
|
800
|
+
delete: operations["api/delete"];
|
|
713
801
|
options?: never;
|
|
714
802
|
head?: never;
|
|
715
803
|
patch?: never;
|
|
@@ -763,14 +851,14 @@ export interface paths {
|
|
|
763
851
|
cookie?: never;
|
|
764
852
|
};
|
|
765
853
|
/**
|
|
766
|
-
* List Actions
|
|
767
|
-
* @description List Actions
|
|
854
|
+
* List Actions
|
|
855
|
+
* @description List Actions
|
|
768
856
|
*/
|
|
769
857
|
get: operations["action/list"];
|
|
770
858
|
put?: never;
|
|
771
859
|
/**
|
|
772
|
-
* Create Action
|
|
773
|
-
* @description Create Action
|
|
860
|
+
* Create Action
|
|
861
|
+
* @description Create Action
|
|
774
862
|
*/
|
|
775
863
|
post: operations["action/create"];
|
|
776
864
|
delete?: never;
|
|
@@ -787,17 +875,17 @@ export interface paths {
|
|
|
787
875
|
cookie?: never;
|
|
788
876
|
};
|
|
789
877
|
/**
|
|
790
|
-
* Get Action
|
|
791
|
-
* @description Get Action
|
|
878
|
+
* Get Action
|
|
879
|
+
* @description Get Action
|
|
792
880
|
*/
|
|
793
881
|
get: operations["action/get"];
|
|
794
882
|
put?: never;
|
|
795
883
|
post?: never;
|
|
796
884
|
/**
|
|
797
|
-
* Delete Action
|
|
798
|
-
* @description Delete Action
|
|
885
|
+
* Delete Action
|
|
886
|
+
* @description Delete Action
|
|
799
887
|
*/
|
|
800
|
-
delete: operations["action/
|
|
888
|
+
delete: operations["action/delete"];
|
|
801
889
|
options?: never;
|
|
802
890
|
head?: never;
|
|
803
891
|
patch?: never;
|
|
@@ -811,14 +899,14 @@ export interface paths {
|
|
|
811
899
|
cookie?: never;
|
|
812
900
|
};
|
|
813
901
|
/**
|
|
814
|
-
* List Notificationsubscriptions
|
|
815
|
-
* @description List Notificationsubscriptions
|
|
902
|
+
* List Notificationsubscriptions
|
|
903
|
+
* @description List Notificationsubscriptions
|
|
816
904
|
*/
|
|
817
905
|
get: operations["notificationsubscription/list"];
|
|
818
906
|
put?: never;
|
|
819
907
|
/**
|
|
820
|
-
* Create Notificationsubscription
|
|
821
|
-
* @description Create Notificationsubscription
|
|
908
|
+
* Create Notificationsubscription
|
|
909
|
+
* @description Create Notificationsubscription
|
|
822
910
|
*/
|
|
823
911
|
post: operations["notificationsubscription/create"];
|
|
824
912
|
delete?: never;
|
|
@@ -835,21 +923,21 @@ export interface paths {
|
|
|
835
923
|
cookie?: never;
|
|
836
924
|
};
|
|
837
925
|
/**
|
|
838
|
-
* Get Notificationsubscription
|
|
839
|
-
* @description Get Notificationsubscription
|
|
926
|
+
* Get Notificationsubscription
|
|
927
|
+
* @description Get Notificationsubscription
|
|
840
928
|
*/
|
|
841
929
|
get: operations["notificationsubscription/get"];
|
|
842
930
|
put?: never;
|
|
843
931
|
/**
|
|
844
|
-
* Update
|
|
845
|
-
* @description Update
|
|
932
|
+
* Update Notificationsubscription
|
|
933
|
+
* @description Update Notificationsubscription
|
|
846
934
|
*/
|
|
847
935
|
post: operations["notificationsubscription/update"];
|
|
848
936
|
/**
|
|
849
|
-
* Delete Notificationsubscription
|
|
850
|
-
* @description Delete Notificationsubscription
|
|
937
|
+
* Delete Notificationsubscription
|
|
938
|
+
* @description Delete Notificationsubscription
|
|
851
939
|
*/
|
|
852
|
-
delete: operations["notificationsubscription/
|
|
940
|
+
delete: operations["notificationsubscription/delete"];
|
|
853
941
|
options?: never;
|
|
854
942
|
head?: never;
|
|
855
943
|
patch?: never;
|
|
@@ -863,8 +951,8 @@ export interface paths {
|
|
|
863
951
|
cookie?: never;
|
|
864
952
|
};
|
|
865
953
|
/**
|
|
866
|
-
* List Logs
|
|
867
|
-
* @description List Logs
|
|
954
|
+
* List Logs
|
|
955
|
+
* @description List Logs
|
|
868
956
|
*/
|
|
869
957
|
get: operations["log/list"];
|
|
870
958
|
put?: never;
|
|
@@ -883,8 +971,8 @@ export interface paths {
|
|
|
883
971
|
cookie?: never;
|
|
884
972
|
};
|
|
885
973
|
/**
|
|
886
|
-
* Get Log
|
|
887
|
-
* @description Get Log
|
|
974
|
+
* Get Log
|
|
975
|
+
* @description Get Log
|
|
888
976
|
*/
|
|
889
977
|
get: operations["log/get"];
|
|
890
978
|
put?: never;
|
|
@@ -923,14 +1011,14 @@ export interface paths {
|
|
|
923
1011
|
cookie?: never;
|
|
924
1012
|
};
|
|
925
1013
|
/**
|
|
926
|
-
* List Customdomains
|
|
927
|
-
* @description List Customdomains
|
|
1014
|
+
* List Customdomains
|
|
1015
|
+
* @description List Customdomains
|
|
928
1016
|
*/
|
|
929
1017
|
get: operations["customdomain/list"];
|
|
930
1018
|
put?: never;
|
|
931
1019
|
/**
|
|
932
|
-
* Create Customdomain
|
|
933
|
-
* @description Create Customdomain
|
|
1020
|
+
* Create Customdomain
|
|
1021
|
+
* @description Create Customdomain
|
|
934
1022
|
*/
|
|
935
1023
|
post: operations["customdomain/create"];
|
|
936
1024
|
delete?: never;
|
|
@@ -947,17 +1035,17 @@ export interface paths {
|
|
|
947
1035
|
cookie?: never;
|
|
948
1036
|
};
|
|
949
1037
|
/**
|
|
950
|
-
* Get Customdomain
|
|
951
|
-
* @description Get Customdomain
|
|
1038
|
+
* Get Customdomain
|
|
1039
|
+
* @description Get Customdomain
|
|
952
1040
|
*/
|
|
953
1041
|
get: operations["customdomain/get"];
|
|
954
1042
|
put?: never;
|
|
955
1043
|
post?: never;
|
|
956
1044
|
/**
|
|
957
|
-
* Delete Customdomain
|
|
958
|
-
* @description Delete Customdomain
|
|
1045
|
+
* Delete Customdomain
|
|
1046
|
+
* @description Delete Customdomain
|
|
959
1047
|
*/
|
|
960
|
-
delete: operations["customdomain/
|
|
1048
|
+
delete: operations["customdomain/delete"];
|
|
961
1049
|
options?: never;
|
|
962
1050
|
head?: never;
|
|
963
1051
|
patch?: never;
|
|
@@ -1438,6 +1526,11 @@ export interface components {
|
|
|
1438
1526
|
* @default false
|
|
1439
1527
|
*/
|
|
1440
1528
|
welcome_email_enabled: boolean;
|
|
1529
|
+
/**
|
|
1530
|
+
* @description Send a verification email automatically when a user is created with `email_verified=false` and an email address. The link in the email lands on `GET /verify-email?ticket=...` and flips `email_verified=true` with `email_verified_method=verification_flow`. When `false`, verification emails must be requested explicitly via `POST /user/:id/verify-email/start`.
|
|
1531
|
+
* @default false
|
|
1532
|
+
*/
|
|
1533
|
+
verify_email_auto_send: boolean;
|
|
1441
1534
|
};
|
|
1442
1535
|
/** @description Policy for the user email-change flow. `new_only` (default) sends a single confirmation link to the new email. `old_and_new` requires the user to also click a link sent to the previous email before the swap takes effect — stricter, useful for tenants with higher-risk users. */
|
|
1443
1536
|
email_change_verification_mode?: "new_only" | "old_and_new";
|
|
@@ -1461,16 +1554,14 @@ export interface components {
|
|
|
1461
1554
|
* @default false
|
|
1462
1555
|
*/
|
|
1463
1556
|
welcome_email_enabled: boolean;
|
|
1557
|
+
/**
|
|
1558
|
+
* @description Send a verification email automatically when a user is created with `email_verified=false` and an email address. The link in the email lands on `GET /verify-email?ticket=...` and flips `email_verified=true` with `email_verified_method=verification_flow`. When `false`, verification emails must be requested explicitly via `POST /user/:id/verify-email/start`.
|
|
1559
|
+
* @default false
|
|
1560
|
+
*/
|
|
1561
|
+
verify_email_auto_send: boolean;
|
|
1464
1562
|
};
|
|
1465
1563
|
/** @description Policy for the user email-change flow. `new_only` (default) sends a single confirmation link to the new email. `old_and_new` requires the user to also click a link sent to the previous email before the swap takes effect — stricter, useful for tenants with higher-risk users. */
|
|
1466
1564
|
EmailChangeVerificationMode: "new_only" | "old_and_new";
|
|
1467
|
-
/**
|
|
1468
|
-
* @description Controls what happens to `user.email` on subsequent OAuth/federated logins when the user previously changed their email manually through this auth server (i.e. `user.email_change_locked_at` is set).
|
|
1469
|
-
*
|
|
1470
|
-
* - `preserve_manual` (default): the manually-set email wins. The federated provider's email is ignored on re-sync; `email` and `email_verified` are not touched. The identity link stays valid via `provider_user_id`, so the user can still log in with Google/etc.
|
|
1471
|
-
* - `always_sync`: the federated provider's email is always written back, overwriting any manual change. Useful for tenants whose source of truth for identity is the IdP (corporate SSO, etc.).
|
|
1472
|
-
*/
|
|
1473
|
-
EmailOAuthSyncPolicy: "preserve_manual" | "always_sync";
|
|
1474
1565
|
/** @description Connection */
|
|
1475
1566
|
Connection: {
|
|
1476
1567
|
/** @description Connection ID */
|
|
@@ -1506,6 +1597,13 @@ export interface components {
|
|
|
1506
1597
|
authorize_params: {
|
|
1507
1598
|
[key: string]: string;
|
|
1508
1599
|
};
|
|
1600
|
+
claims_mapping?: {
|
|
1601
|
+
[key: string]: string;
|
|
1602
|
+
};
|
|
1603
|
+
/** @description Derived: true when the connection_type has shared Faable defaults AND the tenant has not set its own client_id/client_secret. Read-only — set by the server on every read. */
|
|
1604
|
+
readonly is_using_default_credentials: boolean;
|
|
1605
|
+
/** @description Per-connection override of `Account.email_oauth_sync_policy`. When set on a Connection, takes precedence over the Account-level setting for logins through this IdP. When unset (default), the Account-level policy applies. Use this to allow `always_sync` for a trusted IdP (e.g. corporate SSO) while keeping `preserve_manual` for others within the same tenant. */
|
|
1606
|
+
email_oauth_sync_policy?: "preserve_manual" | "always_sync";
|
|
1509
1607
|
/** @description Object is related with this account */
|
|
1510
1608
|
account: string;
|
|
1511
1609
|
/**
|
|
@@ -1549,6 +1647,13 @@ export interface components {
|
|
|
1549
1647
|
authorize_params: {
|
|
1550
1648
|
[key: string]: string;
|
|
1551
1649
|
};
|
|
1650
|
+
/**
|
|
1651
|
+
* @description Controls what happens to `user.email` on subsequent OAuth/federated logins when the user previously changed their email manually through this auth server (i.e. `user.email_change_locked_at` is set).
|
|
1652
|
+
*
|
|
1653
|
+
* - `preserve_manual` (default): the manually-set email wins. The federated provider's email is ignored on re-sync; `email` and `email_verified` are not touched. The identity link stays valid via `provider_user_id`, so the user can still log in with Google/etc.
|
|
1654
|
+
* - `always_sync`: the federated provider's email is always written back, overwriting any manual change. Useful for tenants whose source of truth for identity is the IdP (corporate SSO, etc.).
|
|
1655
|
+
*/
|
|
1656
|
+
email_oauth_sync_policy?: "preserve_manual" | "always_sync";
|
|
1552
1657
|
/** @description Add Metadata */
|
|
1553
1658
|
metadata?: {
|
|
1554
1659
|
[key: string]: unknown;
|
|
@@ -1558,6 +1663,32 @@ export interface components {
|
|
|
1558
1663
|
ConnectionMetadataCreate: {
|
|
1559
1664
|
[key: string]: unknown;
|
|
1560
1665
|
};
|
|
1666
|
+
/** @description Partial update for a Connection. Only the supplied fields are modified. `connection_type` is intentionally excluded — changing it would orphan every identity already linked to this connection. */
|
|
1667
|
+
ConnectionUpdate: {
|
|
1668
|
+
connection_name?: string;
|
|
1669
|
+
enabled?: boolean;
|
|
1670
|
+
enabled_clients?: string[];
|
|
1671
|
+
scope?: string[];
|
|
1672
|
+
client_id?: string;
|
|
1673
|
+
client_secret?: string;
|
|
1674
|
+
issuer?: string;
|
|
1675
|
+
authorize_url?: string;
|
|
1676
|
+
token_url?: string;
|
|
1677
|
+
userinfo_url?: string;
|
|
1678
|
+
jwks_url?: string;
|
|
1679
|
+
response_type?: string;
|
|
1680
|
+
/**
|
|
1681
|
+
* @description Authorize params
|
|
1682
|
+
* @default {}
|
|
1683
|
+
*/
|
|
1684
|
+
authorize_params: {
|
|
1685
|
+
[key: string]: string;
|
|
1686
|
+
};
|
|
1687
|
+
claims_mapping?: {
|
|
1688
|
+
[key: string]: string;
|
|
1689
|
+
};
|
|
1690
|
+
email_oauth_sync_policy?: "preserve_manual" | "always_sync" | null;
|
|
1691
|
+
};
|
|
1561
1692
|
/** @description Client */
|
|
1562
1693
|
Client: {
|
|
1563
1694
|
/** @description Client ID */
|
|
@@ -1623,6 +1754,36 @@ export interface components {
|
|
|
1623
1754
|
ClientMetadataCreate: {
|
|
1624
1755
|
[key: string]: unknown;
|
|
1625
1756
|
};
|
|
1757
|
+
/** @description Partial update for a Client. Only the supplied fields are modified. `client_id` and `client_secret` are not editable through this endpoint to prevent accidental rotation; use a dedicated endpoint when secret rotation is added. */
|
|
1758
|
+
ClientUpdate: {
|
|
1759
|
+
/** @description Human-readable client name shown in consent screens. */
|
|
1760
|
+
name?: string;
|
|
1761
|
+
/** @description Free-form description for internal admin use. */
|
|
1762
|
+
description?: string;
|
|
1763
|
+
/** @description Whitelist of allowed OAuth `redirect_uri` values. */
|
|
1764
|
+
callbacks?: string[];
|
|
1765
|
+
/** @description Whitelist of allowed `post_logout_redirect_uri` values. */
|
|
1766
|
+
logout_urls?: string[];
|
|
1767
|
+
refresh_token?: {
|
|
1768
|
+
/** @enum {unknown} */
|
|
1769
|
+
expiration_mode: "expire" | "not-expire";
|
|
1770
|
+
infinite_token_lifetime: boolean;
|
|
1771
|
+
token_lifetime: number;
|
|
1772
|
+
};
|
|
1773
|
+
client_uri?: string | null;
|
|
1774
|
+
logo_uri?: string | null;
|
|
1775
|
+
tos_uri?: string | null;
|
|
1776
|
+
policy_uri?: string | null;
|
|
1777
|
+
contacts?: string[];
|
|
1778
|
+
grant_types?: string[];
|
|
1779
|
+
response_types?: string[];
|
|
1780
|
+
token_endpoint_auth_method?: string;
|
|
1781
|
+
application_type?: string;
|
|
1782
|
+
software_id?: string | null;
|
|
1783
|
+
software_version?: string | null;
|
|
1784
|
+
frontchannel_logout_uri?: string | null;
|
|
1785
|
+
frontchannel_logout_session_required?: boolean;
|
|
1786
|
+
};
|
|
1626
1787
|
/** @description User */
|
|
1627
1788
|
User: {
|
|
1628
1789
|
/** @description User ID */
|
|
@@ -1646,12 +1807,20 @@ export interface components {
|
|
|
1646
1807
|
* @default false
|
|
1647
1808
|
*/
|
|
1648
1809
|
email_verified: boolean;
|
|
1810
|
+
/** @description How `email_verified` was last set. `manual` — admin flipped the flag via `POST /user/:id`. `verification_flow` — user clicked the verification link. `passwordless_otp` — user completed passwordless OTP login. `team_invite` — user clicked a team invitation link. `email_change` — user confirmed a self-service email change. `federated` — verified by the external IdP on OAuth callback. `null` — the field was cleared (admin un-verified the email). */
|
|
1811
|
+
email_verified_method?: "manual" | "verification_flow" | "passwordless_otp" | "team_invite" | "email_change" | "federated" | null;
|
|
1812
|
+
/** @description ISO 8601 timestamp of when `email_verified` was last flipped to true. */
|
|
1813
|
+
email_verified_at?: string | null;
|
|
1649
1814
|
/** @description ISO 8601 timestamp of the user's last verified email change. When set, OAuth callbacks will not overwrite `email`/`email_verified` from the federated provider — the manually-chosen email wins. */
|
|
1650
1815
|
email_change_locked_at?: string | null;
|
|
1651
1816
|
/** @description contact phone number */
|
|
1652
1817
|
phone?: string | null;
|
|
1653
1818
|
/** @description phone is verified */
|
|
1654
1819
|
phone_verified: boolean;
|
|
1820
|
+
/** @description How `phone_verified` was last set. Same enum as `email_verified_method`. */
|
|
1821
|
+
phone_verified_method?: "manual" | "verification_flow" | "passwordless_otp" | "team_invite" | "email_change" | "federated" | null;
|
|
1822
|
+
/** @description ISO 8601 timestamp of when `phone_verified` was last flipped to true. */
|
|
1823
|
+
phone_verified_at?: string | null;
|
|
1655
1824
|
/** @description country iso code */
|
|
1656
1825
|
country_iso?: string | null;
|
|
1657
1826
|
/** @description user birth_date */
|
|
@@ -1792,12 +1961,16 @@ export interface components {
|
|
|
1792
1961
|
given_name?: string;
|
|
1793
1962
|
/** @description family name */
|
|
1794
1963
|
family_name?: string;
|
|
1795
|
-
/** @description
|
|
1964
|
+
/** @description Contact email. Changing the email to a new value automatically resets `email_verified` to false (and clears `email_verified_method` / `email_verified_at`) unless the same patch sets `email_verified` explicitly. The override is the documented way to import a pre-verified user from another IdP. */
|
|
1796
1965
|
email?: string;
|
|
1966
|
+
/** @description Flip the email verification flag. Setting `true` marks the email as verified by the admin (`email_verified_method=manual`). Setting `false` clears the verification metadata. */
|
|
1967
|
+
email_verified?: boolean;
|
|
1797
1968
|
/** @description New password for this user */
|
|
1798
1969
|
password?: string;
|
|
1799
|
-
/** @description
|
|
1970
|
+
/** @description Contact phone number. Changing it to a new value automatically resets `phone_verified` to false (and clears `phone_verified_method` / `phone_verified_at`) unless the same patch sets `phone_verified` explicitly. */
|
|
1800
1971
|
phone?: string;
|
|
1972
|
+
/** @description Flip the phone verification flag. Setting `true` marks the phone as verified by the admin (`phone_verified_method=manual`). */
|
|
1973
|
+
phone_verified?: boolean;
|
|
1801
1974
|
/** @description user country as iso string */
|
|
1802
1975
|
country_iso?: string;
|
|
1803
1976
|
/** @description user birth_date */
|
|
@@ -1833,6 +2006,8 @@ export interface components {
|
|
|
1833
2006
|
access_token?: string;
|
|
1834
2007
|
access_token_secret?: string;
|
|
1835
2008
|
refresh_token?: string;
|
|
2009
|
+
/** @description ISO 8601 timestamp when the stored provider `access_token` expires. Stamped from the provider `expires_in` on (re-)authorization and refresh. Absent when the provider issues non-expiring tokens. */
|
|
2010
|
+
access_token_expires_at?: string;
|
|
1836
2011
|
profile_data: unknown;
|
|
1837
2012
|
/** @description Object is related with this account */
|
|
1838
2013
|
account: string;
|
|
@@ -2138,6 +2313,14 @@ export interface components {
|
|
|
2138
2313
|
allow_offline_access: boolean;
|
|
2139
2314
|
/** @description When true, the consent prompt is skipped for first-party clients (clients owned by the same tenant as the API). */
|
|
2140
2315
|
skip_consent: boolean;
|
|
2316
|
+
/** @description When true, access_tokens issued for this API carry a `teams` claim listing the slugs of the teams the subject is a member of within the tenant. */
|
|
2317
|
+
include_teams_in_access_token: boolean;
|
|
2318
|
+
/** @description When true, access_tokens issued for this API carry a `roles` claim listing the names of the roles the subject holds across their team memberships within the tenant. */
|
|
2319
|
+
include_roles_in_access_token: boolean;
|
|
2320
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `teams` claim with the subject team slugs. The id_token only sees the flag when the client requested `audience=` so this API is resolved at issuance time. */
|
|
2321
|
+
include_teams_in_id_token: boolean;
|
|
2322
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `roles` claim with the subject role names. Same audience caveat as `include_teams_in_id_token`. */
|
|
2323
|
+
include_roles_in_id_token: boolean;
|
|
2141
2324
|
/** @description Object is related with this account */
|
|
2142
2325
|
account: string;
|
|
2143
2326
|
/**
|
|
@@ -2190,6 +2373,14 @@ export interface components {
|
|
|
2190
2373
|
allow_offline_access?: boolean;
|
|
2191
2374
|
/** @description When true, skip the consent prompt for first-party clients. */
|
|
2192
2375
|
skip_consent?: boolean;
|
|
2376
|
+
/** @description When true, access_tokens issued for this API carry a `teams` claim with the subject team slugs. */
|
|
2377
|
+
include_teams_in_access_token?: boolean;
|
|
2378
|
+
/** @description When true, access_tokens issued for this API carry a `roles` claim with the subject role names. */
|
|
2379
|
+
include_roles_in_access_token?: boolean;
|
|
2380
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `teams` claim with the subject team slugs. */
|
|
2381
|
+
include_teams_in_id_token?: boolean;
|
|
2382
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `roles` claim with the subject role names. */
|
|
2383
|
+
include_roles_in_id_token?: boolean;
|
|
2193
2384
|
};
|
|
2194
2385
|
/** @description Partial update for an Api. `identifier` is immutable and not present here; recreate the API if you need to change it. */
|
|
2195
2386
|
ApiUpdate: {
|
|
@@ -2211,6 +2402,14 @@ export interface components {
|
|
|
2211
2402
|
allow_offline_access?: boolean;
|
|
2212
2403
|
/** @description When true, skip the consent prompt for first-party clients. */
|
|
2213
2404
|
skip_consent?: boolean;
|
|
2405
|
+
/** @description When true, access_tokens issued for this API carry a `teams` claim with the subject team slugs. */
|
|
2406
|
+
include_teams_in_access_token?: boolean;
|
|
2407
|
+
/** @description When true, access_tokens issued for this API carry a `roles` claim with the subject role names. */
|
|
2408
|
+
include_roles_in_access_token?: boolean;
|
|
2409
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `teams` claim with the subject team slugs. */
|
|
2410
|
+
include_teams_in_id_token?: boolean;
|
|
2411
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `roles` claim with the subject role names. */
|
|
2412
|
+
include_roles_in_id_token?: boolean;
|
|
2214
2413
|
};
|
|
2215
2414
|
/** @description Action */
|
|
2216
2415
|
Action: {
|
|
@@ -2559,6 +2758,17 @@ export interface components {
|
|
|
2559
2758
|
message?: string;
|
|
2560
2759
|
/** @description Type-specific structured payload */
|
|
2561
2760
|
data?: unknown;
|
|
2761
|
+
user?: components["schemas"]["User"] | string | unknown;
|
|
2762
|
+
client?: components["schemas"]["Client"] | string | unknown;
|
|
2763
|
+
connection?: components["schemas"]["Connection"] | string | unknown;
|
|
2764
|
+
team?: components["schemas"]["Team"] | string | unknown;
|
|
2765
|
+
identity?: components["schemas"]["Identity"] | string | unknown;
|
|
2766
|
+
ticket?: string;
|
|
2767
|
+
/**
|
|
2768
|
+
* Format: date-time
|
|
2769
|
+
* @description When this log row will be auto-deleted by the Mongo TTL monitor. Absent on rows recorded without `ttl_seconds`.
|
|
2770
|
+
*/
|
|
2771
|
+
expires_at?: string;
|
|
2562
2772
|
/** @description Object is related with this account */
|
|
2563
2773
|
account: string;
|
|
2564
2774
|
/**
|
|
@@ -2714,6 +2924,18 @@ export interface components {
|
|
|
2714
2924
|
callback_hostnames?: string[];
|
|
2715
2925
|
default_connection?: string | null;
|
|
2716
2926
|
enabled_locales?: string[];
|
|
2927
|
+
notification_settings?: {
|
|
2928
|
+
/**
|
|
2929
|
+
* @description Send the built-in welcome email on user.created
|
|
2930
|
+
* @default false
|
|
2931
|
+
*/
|
|
2932
|
+
welcome_email_enabled: boolean;
|
|
2933
|
+
/**
|
|
2934
|
+
* @description Send a verification email automatically when a user is created with `email_verified=false` and an email address. The link in the email lands on `GET /verify-email?ticket=...` and flips `email_verified=true` with `email_verified_method=verification_flow`. When `false`, verification emails must be requested explicitly via `POST /user/:id/verify-email/start`.
|
|
2935
|
+
* @default false
|
|
2936
|
+
*/
|
|
2937
|
+
verify_email_auto_send: boolean;
|
|
2938
|
+
};
|
|
2717
2939
|
};
|
|
2718
2940
|
OAuthTokenParams: {
|
|
2719
2941
|
/** @description Grant Type. https://oauth.net/2/grant-types/ */
|
|
@@ -2730,8 +2952,10 @@ export interface components {
|
|
|
2730
2952
|
subject_token_type?: string;
|
|
2731
2953
|
/** @description The device code returned by the authorization server. */
|
|
2732
2954
|
device_code?: string;
|
|
2733
|
-
/** @description
|
|
2955
|
+
/** @description Auth0-compatible alias for `resource` (RFC 8707). When both are provided they must match. */
|
|
2734
2956
|
audience?: string;
|
|
2957
|
+
/** @description RFC 8707 Resource Indicator. Absolute URI of the target Api, no fragment. Matched against `Api.identifier` in the tenant. */
|
|
2958
|
+
resource?: string;
|
|
2735
2959
|
} & {
|
|
2736
2960
|
[key: string]: unknown;
|
|
2737
2961
|
};
|
|
@@ -2757,8 +2981,10 @@ export interface components {
|
|
|
2757
2981
|
/** @description OIDC §3.1.2.1 — maximum allowable elapsed time in seconds since the last End-User authentication. If exceeded, the OP re-authenticates and `auth_time` is REQUIRED in the resulting id_token. */
|
|
2758
2982
|
max_age?: number;
|
|
2759
2983
|
prompt?: string;
|
|
2760
|
-
/** @description
|
|
2984
|
+
/** @description Auth0-compatible alias for `resource` (RFC 8707). When both are sent they must match. Identifier of the Api the client wants to access; persisted in the auth state so the token issued at /oauth/token targets the matching Api resource. */
|
|
2761
2985
|
audience?: string;
|
|
2986
|
+
/** @description RFC 8707 Resource Indicator. MUST be an absolute URI without fragment. When matched against a registered Api in the tenant the issued access_token gets `aud = <api.identifier>`. */
|
|
2987
|
+
resource?: string;
|
|
2762
2988
|
};
|
|
2763
2989
|
LoginCallbackBody: {
|
|
2764
2990
|
/** @description is always wsignin1.0 */
|
|
@@ -2817,6 +3043,11 @@ export interface operations {
|
|
|
2817
3043
|
* @default false
|
|
2818
3044
|
*/
|
|
2819
3045
|
welcome_email_enabled: boolean;
|
|
3046
|
+
/**
|
|
3047
|
+
* @description Send a verification email automatically when a user is created with `email_verified=false` and an email address. The link in the email lands on `GET /verify-email?ticket=...` and flips `email_verified=true` with `email_verified_method=verification_flow`. When `false`, verification emails must be requested explicitly via `POST /user/:id/verify-email/start`.
|
|
3048
|
+
* @default false
|
|
3049
|
+
*/
|
|
3050
|
+
verify_email_auto_send: boolean;
|
|
2820
3051
|
};
|
|
2821
3052
|
/** @description Policy for the user email-change flow. `new_only` (default) sends a single confirmation link to the new email. `old_and_new` requires the user to also click a link sent to the previous email before the swap takes effect — stricter, useful for tenants with higher-risk users. */
|
|
2822
3053
|
email_change_verification_mode?: "new_only" | "old_and_new";
|
|
@@ -2923,6 +3154,11 @@ export interface operations {
|
|
|
2923
3154
|
* @default false
|
|
2924
3155
|
*/
|
|
2925
3156
|
welcome_email_enabled: boolean;
|
|
3157
|
+
/**
|
|
3158
|
+
* @description Send a verification email automatically when a user is created with `email_verified=false` and an email address. The link in the email lands on `GET /verify-email?ticket=...` and flips `email_verified=true` with `email_verified_method=verification_flow`. When `false`, verification emails must be requested explicitly via `POST /user/:id/verify-email/start`.
|
|
3159
|
+
* @default false
|
|
3160
|
+
*/
|
|
3161
|
+
verify_email_auto_send: boolean;
|
|
2926
3162
|
};
|
|
2927
3163
|
/** @description Policy for the user email-change flow. `new_only` (default) sends a single confirmation link to the new email. `old_and_new` requires the user to also click a link sent to the previous email before the swap takes effect — stricter, useful for tenants with higher-risk users. */
|
|
2928
3164
|
email_change_verification_mode?: "new_only" | "old_and_new";
|
|
@@ -2984,6 +3220,11 @@ export interface operations {
|
|
|
2984
3220
|
* @default false
|
|
2985
3221
|
*/
|
|
2986
3222
|
welcome_email_enabled: boolean;
|
|
3223
|
+
/**
|
|
3224
|
+
* @description Send a verification email automatically when a user is created with `email_verified=false` and an email address. The link in the email lands on `GET /verify-email?ticket=...` and flips `email_verified=true` with `email_verified_method=verification_flow`. When `false`, verification emails must be requested explicitly via `POST /user/:id/verify-email/start`.
|
|
3225
|
+
* @default false
|
|
3226
|
+
*/
|
|
3227
|
+
verify_email_auto_send: boolean;
|
|
2987
3228
|
};
|
|
2988
3229
|
/** @description Policy for the user email-change flow. `new_only` (default) sends a single confirmation link to the new email. `old_and_new` requires the user to also click a link sent to the previous email before the swap takes effect — stricter, useful for tenants with higher-risk users. */
|
|
2989
3230
|
email_change_verification_mode?: "new_only" | "old_and_new";
|
|
@@ -3021,6 +3262,18 @@ export interface operations {
|
|
|
3021
3262
|
callback_hostnames?: string[];
|
|
3022
3263
|
default_connection?: string | null;
|
|
3023
3264
|
enabled_locales?: string[];
|
|
3265
|
+
notification_settings?: {
|
|
3266
|
+
/**
|
|
3267
|
+
* @description Send the built-in welcome email on user.created
|
|
3268
|
+
* @default false
|
|
3269
|
+
*/
|
|
3270
|
+
welcome_email_enabled?: boolean;
|
|
3271
|
+
/**
|
|
3272
|
+
* @description Send a verification email automatically when a user is created with `email_verified=false` and an email address. The link in the email lands on `GET /verify-email?ticket=...` and flips `email_verified=true` with `email_verified_method=verification_flow`. When `false`, verification emails must be requested explicitly via `POST /user/:id/verify-email/start`.
|
|
3273
|
+
* @default false
|
|
3274
|
+
*/
|
|
3275
|
+
verify_email_auto_send?: boolean;
|
|
3276
|
+
};
|
|
3024
3277
|
};
|
|
3025
3278
|
};
|
|
3026
3279
|
};
|
|
@@ -3053,6 +3306,11 @@ export interface operations {
|
|
|
3053
3306
|
* @default false
|
|
3054
3307
|
*/
|
|
3055
3308
|
welcome_email_enabled: boolean;
|
|
3309
|
+
/**
|
|
3310
|
+
* @description Send a verification email automatically when a user is created with `email_verified=false` and an email address. The link in the email lands on `GET /verify-email?ticket=...` and flips `email_verified=true` with `email_verified_method=verification_flow`. When `false`, verification emails must be requested explicitly via `POST /user/:id/verify-email/start`.
|
|
3311
|
+
* @default false
|
|
3312
|
+
*/
|
|
3313
|
+
verify_email_auto_send: boolean;
|
|
3056
3314
|
};
|
|
3057
3315
|
/** @description Policy for the user email-change flow. `new_only` (default) sends a single confirmation link to the new email. `old_and_new` requires the user to also click a link sent to the previous email before the swap takes effect — stricter, useful for tenants with higher-risk users. */
|
|
3058
3316
|
email_change_verification_mode?: "new_only" | "old_and_new";
|
|
@@ -3123,6 +3381,11 @@ export interface operations {
|
|
|
3123
3381
|
* @default false
|
|
3124
3382
|
*/
|
|
3125
3383
|
welcome_email_enabled: boolean;
|
|
3384
|
+
/**
|
|
3385
|
+
* @description Send a verification email automatically when a user is created with `email_verified=false` and an email address. The link in the email lands on `GET /verify-email?ticket=...` and flips `email_verified=true` with `email_verified_method=verification_flow`. When `false`, verification emails must be requested explicitly via `POST /user/:id/verify-email/start`.
|
|
3386
|
+
* @default false
|
|
3387
|
+
*/
|
|
3388
|
+
verify_email_auto_send: boolean;
|
|
3126
3389
|
};
|
|
3127
3390
|
/** @description Policy for the user email-change flow. `new_only` (default) sends a single confirmation link to the new email. `old_and_new` requires the user to also click a link sent to the previous email before the swap takes effect — stricter, useful for tenants with higher-risk users. */
|
|
3128
3391
|
email_change_verification_mode?: "new_only" | "old_and_new";
|
|
@@ -3145,14 +3408,16 @@ export interface operations {
|
|
|
3145
3408
|
"connection/list": {
|
|
3146
3409
|
parameters: {
|
|
3147
3410
|
query?: {
|
|
3148
|
-
/** @description
|
|
3411
|
+
/** @description Number of items per page (max 200) */
|
|
3412
|
+
pageSize?: number;
|
|
3413
|
+
/** @description Cursor for next page */
|
|
3149
3414
|
cursor?: string;
|
|
3150
|
-
/** @description
|
|
3415
|
+
/** @description Cursor returned by the previous page */
|
|
3151
3416
|
next?: string;
|
|
3152
|
-
/** @description Size of the results array */
|
|
3153
|
-
pageSize?: number;
|
|
3154
3417
|
/** @description Filter using a FaableQL query */
|
|
3155
3418
|
query?: string;
|
|
3419
|
+
/** @description Full-text search across: `connection_name`, `connection_type`. */
|
|
3420
|
+
q?: string;
|
|
3156
3421
|
};
|
|
3157
3422
|
header?: never;
|
|
3158
3423
|
path?: never;
|
|
@@ -3160,16 +3425,14 @@ export interface operations {
|
|
|
3160
3425
|
};
|
|
3161
3426
|
requestBody?: never;
|
|
3162
3427
|
responses: {
|
|
3163
|
-
/** @description
|
|
3428
|
+
/** @description Default Response */
|
|
3164
3429
|
200: {
|
|
3165
3430
|
headers: {
|
|
3166
3431
|
[name: string]: unknown;
|
|
3167
3432
|
};
|
|
3168
3433
|
content: {
|
|
3169
3434
|
"application/json": {
|
|
3170
|
-
/** @description next cursor */
|
|
3171
3435
|
next: string | null;
|
|
3172
|
-
/** @description List of results */
|
|
3173
3436
|
results: components["schemas"]["Connection"][];
|
|
3174
3437
|
};
|
|
3175
3438
|
};
|
|
@@ -3207,6 +3470,13 @@ export interface operations {
|
|
|
3207
3470
|
authorize_params?: {
|
|
3208
3471
|
[key: string]: string;
|
|
3209
3472
|
};
|
|
3473
|
+
/**
|
|
3474
|
+
* @description Controls what happens to `user.email` on subsequent OAuth/federated logins when the user previously changed their email manually through this auth server (i.e. `user.email_change_locked_at` is set).
|
|
3475
|
+
*
|
|
3476
|
+
* - `preserve_manual` (default): the manually-set email wins. The federated provider's email is ignored on re-sync; `email` and `email_verified` are not touched. The identity link stays valid via `provider_user_id`, so the user can still log in with Google/etc.
|
|
3477
|
+
* - `always_sync`: the federated provider's email is always written back, overwriting any manual change. Useful for tenants whose source of truth for identity is the IdP (corporate SSO, etc.).
|
|
3478
|
+
*/
|
|
3479
|
+
email_oauth_sync_policy?: "preserve_manual" | "always_sync";
|
|
3210
3480
|
/** @description Add Metadata */
|
|
3211
3481
|
metadata?: {
|
|
3212
3482
|
[key: string]: unknown;
|
|
@@ -3255,6 +3525,13 @@ export interface operations {
|
|
|
3255
3525
|
authorize_params: {
|
|
3256
3526
|
[key: string]: string;
|
|
3257
3527
|
};
|
|
3528
|
+
claims_mapping?: {
|
|
3529
|
+
[key: string]: string;
|
|
3530
|
+
};
|
|
3531
|
+
/** @description Derived: true when the connection_type has shared Faable defaults AND the tenant has not set its own client_id/client_secret. Read-only — set by the server on every read. */
|
|
3532
|
+
readonly is_using_default_credentials: boolean;
|
|
3533
|
+
/** @description Per-connection override of `Account.email_oauth_sync_policy`. When set on a Connection, takes precedence over the Account-level setting for logins through this IdP. When unset (default), the Account-level policy applies. Use this to allow `always_sync` for a trusted IdP (e.g. corporate SSO) while keeping `preserve_manual` for others within the same tenant. */
|
|
3534
|
+
email_oauth_sync_policy?: "preserve_manual" | "always_sync";
|
|
3258
3535
|
/** @description Object is related with this account */
|
|
3259
3536
|
account: string;
|
|
3260
3537
|
/**
|
|
@@ -3324,6 +3601,13 @@ export interface operations {
|
|
|
3324
3601
|
authorize_params: {
|
|
3325
3602
|
[key: string]: string;
|
|
3326
3603
|
};
|
|
3604
|
+
claims_mapping?: {
|
|
3605
|
+
[key: string]: string;
|
|
3606
|
+
};
|
|
3607
|
+
/** @description Derived: true when the connection_type has shared Faable defaults AND the tenant has not set its own client_id/client_secret. Read-only — set by the server on every read. */
|
|
3608
|
+
readonly is_using_default_credentials: boolean;
|
|
3609
|
+
/** @description Per-connection override of `Account.email_oauth_sync_policy`. When set on a Connection, takes precedence over the Account-level setting for logins through this IdP. When unset (default), the Account-level policy applies. Use this to allow `always_sync` for a trusted IdP (e.g. corporate SSO) while keeping `preserve_manual` for others within the same tenant. */
|
|
3610
|
+
email_oauth_sync_policy?: "preserve_manual" | "always_sync";
|
|
3327
3611
|
/** @description Object is related with this account */
|
|
3328
3612
|
account: string;
|
|
3329
3613
|
/**
|
|
@@ -3342,7 +3626,7 @@ export interface operations {
|
|
|
3342
3626
|
};
|
|
3343
3627
|
};
|
|
3344
3628
|
};
|
|
3345
|
-
"connection/
|
|
3629
|
+
"connection/update": {
|
|
3346
3630
|
parameters: {
|
|
3347
3631
|
query?: never;
|
|
3348
3632
|
header?: never;
|
|
@@ -3351,68 +3635,229 @@ export interface operations {
|
|
|
3351
3635
|
};
|
|
3352
3636
|
cookie?: never;
|
|
3353
3637
|
};
|
|
3354
|
-
|
|
3355
|
-
|
|
3356
|
-
|
|
3357
|
-
|
|
3358
|
-
|
|
3359
|
-
|
|
3638
|
+
/** @description Partial update for a Connection. Only the supplied fields are modified. `connection_type` is intentionally excluded — changing it would orphan every identity already linked to this connection. */
|
|
3639
|
+
requestBody: {
|
|
3640
|
+
content: {
|
|
3641
|
+
"application/json": {
|
|
3642
|
+
connection_name?: string;
|
|
3643
|
+
enabled?: boolean;
|
|
3644
|
+
enabled_clients?: string[];
|
|
3645
|
+
scope?: string[];
|
|
3646
|
+
client_id?: string;
|
|
3647
|
+
client_secret?: string;
|
|
3648
|
+
issuer?: string;
|
|
3649
|
+
authorize_url?: string;
|
|
3650
|
+
token_url?: string;
|
|
3651
|
+
userinfo_url?: string;
|
|
3652
|
+
jwks_url?: string;
|
|
3653
|
+
response_type?: string;
|
|
3654
|
+
/**
|
|
3655
|
+
* @description Authorize params
|
|
3656
|
+
* @default {}
|
|
3657
|
+
*/
|
|
3658
|
+
authorize_params?: {
|
|
3659
|
+
[key: string]: string;
|
|
3660
|
+
};
|
|
3661
|
+
claims_mapping?: {
|
|
3662
|
+
[key: string]: string;
|
|
3663
|
+
};
|
|
3664
|
+
email_oauth_sync_policy?: "preserve_manual" | "always_sync" | null;
|
|
3360
3665
|
};
|
|
3361
|
-
content?: never;
|
|
3362
|
-
};
|
|
3363
|
-
};
|
|
3364
|
-
};
|
|
3365
|
-
"client/list": {
|
|
3366
|
-
parameters: {
|
|
3367
|
-
query?: {
|
|
3368
|
-
/** @description Start from this cursor */
|
|
3369
|
-
cursor?: string;
|
|
3370
|
-
/** @description Start from this cursor */
|
|
3371
|
-
next?: string;
|
|
3372
|
-
/** @description Size of the results array */
|
|
3373
|
-
pageSize?: number;
|
|
3374
|
-
/** @description Filter using a FaableQL query */
|
|
3375
|
-
query?: string;
|
|
3376
3666
|
};
|
|
3377
|
-
header?: never;
|
|
3378
|
-
path?: never;
|
|
3379
|
-
cookie?: never;
|
|
3380
3667
|
};
|
|
3381
|
-
requestBody?: never;
|
|
3382
3668
|
responses: {
|
|
3383
|
-
/** @description
|
|
3669
|
+
/** @description Connection */
|
|
3384
3670
|
200: {
|
|
3385
3671
|
headers: {
|
|
3386
3672
|
[name: string]: unknown;
|
|
3387
3673
|
};
|
|
3388
3674
|
content: {
|
|
3389
3675
|
"application/json": {
|
|
3390
|
-
/** @description
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3396
|
-
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
|
|
3405
|
-
|
|
3406
|
-
|
|
3407
|
-
|
|
3408
|
-
|
|
3409
|
-
|
|
3410
|
-
|
|
3411
|
-
|
|
3412
|
-
|
|
3413
|
-
|
|
3414
|
-
|
|
3415
|
-
|
|
3676
|
+
/** @description Connection ID */
|
|
3677
|
+
id: string;
|
|
3678
|
+
connection_name: string;
|
|
3679
|
+
/** @enum {unknown} */
|
|
3680
|
+
connection_type: "database" | "custom" | "github" | "figma" | "google_oauth2" | "oidc" | "passwordless_email";
|
|
3681
|
+
/** @default null */
|
|
3682
|
+
authorize_url: string;
|
|
3683
|
+
/** @default null */
|
|
3684
|
+
token_url: string;
|
|
3685
|
+
/** @default null */
|
|
3686
|
+
userinfo_url: string;
|
|
3687
|
+
/** @default null */
|
|
3688
|
+
client_id: string;
|
|
3689
|
+
/** @default null */
|
|
3690
|
+
client_secret: string;
|
|
3691
|
+
/** @default null */
|
|
3692
|
+
issuer: string;
|
|
3693
|
+
/** @default null */
|
|
3694
|
+
jwks_url: string;
|
|
3695
|
+
/** @default null */
|
|
3696
|
+
response_type: string;
|
|
3697
|
+
enabled: boolean;
|
|
3698
|
+
/** @default null */
|
|
3699
|
+
enabled_clients: string[] | null;
|
|
3700
|
+
/** @default [] */
|
|
3701
|
+
scope: string[];
|
|
3702
|
+
/**
|
|
3703
|
+
* @description Authorize params
|
|
3704
|
+
* @default {}
|
|
3705
|
+
*/
|
|
3706
|
+
authorize_params: {
|
|
3707
|
+
[key: string]: string;
|
|
3708
|
+
};
|
|
3709
|
+
claims_mapping?: {
|
|
3710
|
+
[key: string]: string;
|
|
3711
|
+
};
|
|
3712
|
+
/** @description Derived: true when the connection_type has shared Faable defaults AND the tenant has not set its own client_id/client_secret. Read-only — set by the server on every read. */
|
|
3713
|
+
readonly is_using_default_credentials: boolean;
|
|
3714
|
+
/** @description Per-connection override of `Account.email_oauth_sync_policy`. When set on a Connection, takes precedence over the Account-level setting for logins through this IdP. When unset (default), the Account-level policy applies. Use this to allow `always_sync` for a trusted IdP (e.g. corporate SSO) while keeping `preserve_manual` for others within the same tenant. */
|
|
3715
|
+
email_oauth_sync_policy?: "preserve_manual" | "always_sync";
|
|
3716
|
+
/** @description Object is related with this account */
|
|
3717
|
+
account: string;
|
|
3718
|
+
/**
|
|
3719
|
+
* @description ConnectionMetadata
|
|
3720
|
+
* @default {}
|
|
3721
|
+
*/
|
|
3722
|
+
metadata: {
|
|
3723
|
+
[key: string]: unknown;
|
|
3724
|
+
};
|
|
3725
|
+
/** @description Connection creation date */
|
|
3726
|
+
createdAt: string;
|
|
3727
|
+
/** @description Connection updated date */
|
|
3728
|
+
updatedAt?: string;
|
|
3729
|
+
};
|
|
3730
|
+
};
|
|
3731
|
+
};
|
|
3732
|
+
};
|
|
3733
|
+
};
|
|
3734
|
+
"connection/delete": {
|
|
3735
|
+
parameters: {
|
|
3736
|
+
query?: never;
|
|
3737
|
+
header?: never;
|
|
3738
|
+
path: {
|
|
3739
|
+
connection_id: string;
|
|
3740
|
+
};
|
|
3741
|
+
cookie?: never;
|
|
3742
|
+
};
|
|
3743
|
+
requestBody?: never;
|
|
3744
|
+
responses: {
|
|
3745
|
+
/** @description Connection */
|
|
3746
|
+
200: {
|
|
3747
|
+
headers: {
|
|
3748
|
+
[name: string]: unknown;
|
|
3749
|
+
};
|
|
3750
|
+
content: {
|
|
3751
|
+
"application/json": {
|
|
3752
|
+
/** @description Connection ID */
|
|
3753
|
+
id: string;
|
|
3754
|
+
connection_name: string;
|
|
3755
|
+
/** @enum {unknown} */
|
|
3756
|
+
connection_type: "database" | "custom" | "github" | "figma" | "google_oauth2" | "oidc" | "passwordless_email";
|
|
3757
|
+
/** @default null */
|
|
3758
|
+
authorize_url: string;
|
|
3759
|
+
/** @default null */
|
|
3760
|
+
token_url: string;
|
|
3761
|
+
/** @default null */
|
|
3762
|
+
userinfo_url: string;
|
|
3763
|
+
/** @default null */
|
|
3764
|
+
client_id: string;
|
|
3765
|
+
/** @default null */
|
|
3766
|
+
client_secret: string;
|
|
3767
|
+
/** @default null */
|
|
3768
|
+
issuer: string;
|
|
3769
|
+
/** @default null */
|
|
3770
|
+
jwks_url: string;
|
|
3771
|
+
/** @default null */
|
|
3772
|
+
response_type: string;
|
|
3773
|
+
enabled: boolean;
|
|
3774
|
+
/** @default null */
|
|
3775
|
+
enabled_clients: string[] | null;
|
|
3776
|
+
/** @default [] */
|
|
3777
|
+
scope: string[];
|
|
3778
|
+
/**
|
|
3779
|
+
* @description Authorize params
|
|
3780
|
+
* @default {}
|
|
3781
|
+
*/
|
|
3782
|
+
authorize_params: {
|
|
3783
|
+
[key: string]: string;
|
|
3784
|
+
};
|
|
3785
|
+
claims_mapping?: {
|
|
3786
|
+
[key: string]: string;
|
|
3787
|
+
};
|
|
3788
|
+
/** @description Derived: true when the connection_type has shared Faable defaults AND the tenant has not set its own client_id/client_secret. Read-only — set by the server on every read. */
|
|
3789
|
+
readonly is_using_default_credentials: boolean;
|
|
3790
|
+
/** @description Per-connection override of `Account.email_oauth_sync_policy`. When set on a Connection, takes precedence over the Account-level setting for logins through this IdP. When unset (default), the Account-level policy applies. Use this to allow `always_sync` for a trusted IdP (e.g. corporate SSO) while keeping `preserve_manual` for others within the same tenant. */
|
|
3791
|
+
email_oauth_sync_policy?: "preserve_manual" | "always_sync";
|
|
3792
|
+
/** @description Object is related with this account */
|
|
3793
|
+
account: string;
|
|
3794
|
+
/**
|
|
3795
|
+
* @description ConnectionMetadata
|
|
3796
|
+
* @default {}
|
|
3797
|
+
*/
|
|
3798
|
+
metadata: {
|
|
3799
|
+
[key: string]: unknown;
|
|
3800
|
+
};
|
|
3801
|
+
/** @description Connection creation date */
|
|
3802
|
+
createdAt: string;
|
|
3803
|
+
/** @description Connection updated date */
|
|
3804
|
+
updatedAt?: string;
|
|
3805
|
+
};
|
|
3806
|
+
};
|
|
3807
|
+
};
|
|
3808
|
+
};
|
|
3809
|
+
};
|
|
3810
|
+
"client/list": {
|
|
3811
|
+
parameters: {
|
|
3812
|
+
query?: {
|
|
3813
|
+
/** @description Number of items per page (max 200) */
|
|
3814
|
+
pageSize?: number;
|
|
3815
|
+
/** @description Cursor for next page */
|
|
3816
|
+
cursor?: string;
|
|
3817
|
+
/** @description Cursor returned by the previous page */
|
|
3818
|
+
next?: string;
|
|
3819
|
+
/** @description Filter using a FaableQL query */
|
|
3820
|
+
query?: string;
|
|
3821
|
+
/** @description Full-text search across: `name`, `description`, `client_id`. */
|
|
3822
|
+
q?: string;
|
|
3823
|
+
};
|
|
3824
|
+
header?: never;
|
|
3825
|
+
path?: never;
|
|
3826
|
+
cookie?: never;
|
|
3827
|
+
};
|
|
3828
|
+
requestBody?: never;
|
|
3829
|
+
responses: {
|
|
3830
|
+
/** @description Default Response */
|
|
3831
|
+
200: {
|
|
3832
|
+
headers: {
|
|
3833
|
+
[name: string]: unknown;
|
|
3834
|
+
};
|
|
3835
|
+
content: {
|
|
3836
|
+
"application/json": {
|
|
3837
|
+
next: string | null;
|
|
3838
|
+
results: components["schemas"]["Client"][];
|
|
3839
|
+
};
|
|
3840
|
+
};
|
|
3841
|
+
};
|
|
3842
|
+
};
|
|
3843
|
+
};
|
|
3844
|
+
"client/create": {
|
|
3845
|
+
parameters: {
|
|
3846
|
+
query?: never;
|
|
3847
|
+
header?: never;
|
|
3848
|
+
path?: never;
|
|
3849
|
+
cookie?: never;
|
|
3850
|
+
};
|
|
3851
|
+
/** @description ClientCreate */
|
|
3852
|
+
requestBody: {
|
|
3853
|
+
content: {
|
|
3854
|
+
"application/json": {
|
|
3855
|
+
name: string;
|
|
3856
|
+
description?: string;
|
|
3857
|
+
callbacks?: string[];
|
|
3858
|
+
logout_urls?: string[];
|
|
3859
|
+
/** @description Add Metadata */
|
|
3860
|
+
metadata?: {
|
|
3416
3861
|
[key: string]: unknown;
|
|
3417
3862
|
};
|
|
3418
3863
|
};
|
|
@@ -3534,7 +3979,103 @@ export interface operations {
|
|
|
3534
3979
|
};
|
|
3535
3980
|
};
|
|
3536
3981
|
};
|
|
3537
|
-
"client/
|
|
3982
|
+
"client/update": {
|
|
3983
|
+
parameters: {
|
|
3984
|
+
query?: never;
|
|
3985
|
+
header?: never;
|
|
3986
|
+
path: {
|
|
3987
|
+
client_id: string;
|
|
3988
|
+
};
|
|
3989
|
+
cookie?: never;
|
|
3990
|
+
};
|
|
3991
|
+
/** @description Partial update for a Client. Only the supplied fields are modified. `client_id` and `client_secret` are not editable through this endpoint to prevent accidental rotation; use a dedicated endpoint when secret rotation is added. */
|
|
3992
|
+
requestBody: {
|
|
3993
|
+
content: {
|
|
3994
|
+
"application/json": {
|
|
3995
|
+
/** @description Human-readable client name shown in consent screens. */
|
|
3996
|
+
name?: string;
|
|
3997
|
+
/** @description Free-form description for internal admin use. */
|
|
3998
|
+
description?: string;
|
|
3999
|
+
/** @description Whitelist of allowed OAuth `redirect_uri` values. */
|
|
4000
|
+
callbacks?: string[];
|
|
4001
|
+
/** @description Whitelist of allowed `post_logout_redirect_uri` values. */
|
|
4002
|
+
logout_urls?: string[];
|
|
4003
|
+
refresh_token?: {
|
|
4004
|
+
/** @enum {unknown} */
|
|
4005
|
+
expiration_mode: "expire" | "not-expire";
|
|
4006
|
+
infinite_token_lifetime: boolean;
|
|
4007
|
+
token_lifetime: number;
|
|
4008
|
+
};
|
|
4009
|
+
client_uri?: string | null;
|
|
4010
|
+
logo_uri?: string | null;
|
|
4011
|
+
tos_uri?: string | null;
|
|
4012
|
+
policy_uri?: string | null;
|
|
4013
|
+
contacts?: string[];
|
|
4014
|
+
grant_types?: string[];
|
|
4015
|
+
response_types?: string[];
|
|
4016
|
+
token_endpoint_auth_method?: string;
|
|
4017
|
+
application_type?: string;
|
|
4018
|
+
software_id?: string | null;
|
|
4019
|
+
software_version?: string | null;
|
|
4020
|
+
frontchannel_logout_uri?: string | null;
|
|
4021
|
+
frontchannel_logout_session_required?: boolean;
|
|
4022
|
+
};
|
|
4023
|
+
};
|
|
4024
|
+
};
|
|
4025
|
+
responses: {
|
|
4026
|
+
/** @description Client */
|
|
4027
|
+
200: {
|
|
4028
|
+
headers: {
|
|
4029
|
+
[name: string]: unknown;
|
|
4030
|
+
};
|
|
4031
|
+
content: {
|
|
4032
|
+
"application/json": {
|
|
4033
|
+
/** @description Client ID */
|
|
4034
|
+
id: string;
|
|
4035
|
+
name: string;
|
|
4036
|
+
description: string;
|
|
4037
|
+
client_id: string;
|
|
4038
|
+
client_secret: string;
|
|
4039
|
+
callbacks: string[];
|
|
4040
|
+
logout_urls: string[];
|
|
4041
|
+
refresh_token: {
|
|
4042
|
+
/** @enum {unknown} */
|
|
4043
|
+
expiration_mode: "expire" | "not-expire";
|
|
4044
|
+
infinite_token_lifetime: boolean;
|
|
4045
|
+
token_lifetime: number;
|
|
4046
|
+
};
|
|
4047
|
+
client_uri?: string | null;
|
|
4048
|
+
logo_uri?: string | null;
|
|
4049
|
+
tos_uri?: string | null;
|
|
4050
|
+
policy_uri?: string | null;
|
|
4051
|
+
contacts?: string[];
|
|
4052
|
+
grant_types?: string[];
|
|
4053
|
+
response_types?: string[];
|
|
4054
|
+
token_endpoint_auth_method?: string;
|
|
4055
|
+
application_type?: string;
|
|
4056
|
+
software_id?: string | null;
|
|
4057
|
+
software_version?: string | null;
|
|
4058
|
+
frontchannel_logout_uri?: string | null;
|
|
4059
|
+
frontchannel_logout_session_required?: boolean;
|
|
4060
|
+
/** @description Object is related with this account */
|
|
4061
|
+
account: string;
|
|
4062
|
+
/**
|
|
4063
|
+
* @description ClientMetadata
|
|
4064
|
+
* @default {}
|
|
4065
|
+
*/
|
|
4066
|
+
metadata: {
|
|
4067
|
+
[key: string]: unknown;
|
|
4068
|
+
};
|
|
4069
|
+
/** @description Client creation date */
|
|
4070
|
+
createdAt: string;
|
|
4071
|
+
/** @description Client updated date */
|
|
4072
|
+
updatedAt?: string;
|
|
4073
|
+
};
|
|
4074
|
+
};
|
|
4075
|
+
};
|
|
4076
|
+
};
|
|
4077
|
+
};
|
|
4078
|
+
"client/delete": {
|
|
3538
4079
|
parameters: {
|
|
3539
4080
|
query?: never;
|
|
3540
4081
|
header?: never;
|
|
@@ -3545,26 +4086,134 @@ export interface operations {
|
|
|
3545
4086
|
};
|
|
3546
4087
|
requestBody?: never;
|
|
3547
4088
|
responses: {
|
|
3548
|
-
/** @description
|
|
4089
|
+
/** @description Client */
|
|
3549
4090
|
200: {
|
|
3550
4091
|
headers: {
|
|
3551
4092
|
[name: string]: unknown;
|
|
3552
4093
|
};
|
|
3553
|
-
content
|
|
4094
|
+
content: {
|
|
4095
|
+
"application/json": {
|
|
4096
|
+
/** @description Client ID */
|
|
4097
|
+
id: string;
|
|
4098
|
+
name: string;
|
|
4099
|
+
description: string;
|
|
4100
|
+
client_id: string;
|
|
4101
|
+
client_secret: string;
|
|
4102
|
+
callbacks: string[];
|
|
4103
|
+
logout_urls: string[];
|
|
4104
|
+
refresh_token: {
|
|
4105
|
+
/** @enum {unknown} */
|
|
4106
|
+
expiration_mode: "expire" | "not-expire";
|
|
4107
|
+
infinite_token_lifetime: boolean;
|
|
4108
|
+
token_lifetime: number;
|
|
4109
|
+
};
|
|
4110
|
+
client_uri?: string | null;
|
|
4111
|
+
logo_uri?: string | null;
|
|
4112
|
+
tos_uri?: string | null;
|
|
4113
|
+
policy_uri?: string | null;
|
|
4114
|
+
contacts?: string[];
|
|
4115
|
+
grant_types?: string[];
|
|
4116
|
+
response_types?: string[];
|
|
4117
|
+
token_endpoint_auth_method?: string;
|
|
4118
|
+
application_type?: string;
|
|
4119
|
+
software_id?: string | null;
|
|
4120
|
+
software_version?: string | null;
|
|
4121
|
+
frontchannel_logout_uri?: string | null;
|
|
4122
|
+
frontchannel_logout_session_required?: boolean;
|
|
4123
|
+
/** @description Object is related with this account */
|
|
4124
|
+
account: string;
|
|
4125
|
+
/**
|
|
4126
|
+
* @description ClientMetadata
|
|
4127
|
+
* @default {}
|
|
4128
|
+
*/
|
|
4129
|
+
metadata: {
|
|
4130
|
+
[key: string]: unknown;
|
|
4131
|
+
};
|
|
4132
|
+
/** @description Client creation date */
|
|
4133
|
+
createdAt: string;
|
|
4134
|
+
/** @description Client updated date */
|
|
4135
|
+
updatedAt?: string;
|
|
4136
|
+
};
|
|
4137
|
+
};
|
|
4138
|
+
};
|
|
4139
|
+
};
|
|
4140
|
+
};
|
|
4141
|
+
"client/rotateSecret": {
|
|
4142
|
+
parameters: {
|
|
4143
|
+
query?: never;
|
|
4144
|
+
header?: never;
|
|
4145
|
+
path: {
|
|
4146
|
+
client_id: string;
|
|
4147
|
+
};
|
|
4148
|
+
cookie?: never;
|
|
4149
|
+
};
|
|
4150
|
+
requestBody?: never;
|
|
4151
|
+
responses: {
|
|
4152
|
+
/** @description Client */
|
|
4153
|
+
200: {
|
|
4154
|
+
headers: {
|
|
4155
|
+
[name: string]: unknown;
|
|
4156
|
+
};
|
|
4157
|
+
content: {
|
|
4158
|
+
"application/json": {
|
|
4159
|
+
/** @description Client ID */
|
|
4160
|
+
id: string;
|
|
4161
|
+
name: string;
|
|
4162
|
+
description: string;
|
|
4163
|
+
client_id: string;
|
|
4164
|
+
client_secret: string;
|
|
4165
|
+
callbacks: string[];
|
|
4166
|
+
logout_urls: string[];
|
|
4167
|
+
refresh_token: {
|
|
4168
|
+
/** @enum {unknown} */
|
|
4169
|
+
expiration_mode: "expire" | "not-expire";
|
|
4170
|
+
infinite_token_lifetime: boolean;
|
|
4171
|
+
token_lifetime: number;
|
|
4172
|
+
};
|
|
4173
|
+
client_uri?: string | null;
|
|
4174
|
+
logo_uri?: string | null;
|
|
4175
|
+
tos_uri?: string | null;
|
|
4176
|
+
policy_uri?: string | null;
|
|
4177
|
+
contacts?: string[];
|
|
4178
|
+
grant_types?: string[];
|
|
4179
|
+
response_types?: string[];
|
|
4180
|
+
token_endpoint_auth_method?: string;
|
|
4181
|
+
application_type?: string;
|
|
4182
|
+
software_id?: string | null;
|
|
4183
|
+
software_version?: string | null;
|
|
4184
|
+
frontchannel_logout_uri?: string | null;
|
|
4185
|
+
frontchannel_logout_session_required?: boolean;
|
|
4186
|
+
/** @description Object is related with this account */
|
|
4187
|
+
account: string;
|
|
4188
|
+
/**
|
|
4189
|
+
* @description ClientMetadata
|
|
4190
|
+
* @default {}
|
|
4191
|
+
*/
|
|
4192
|
+
metadata: {
|
|
4193
|
+
[key: string]: unknown;
|
|
4194
|
+
};
|
|
4195
|
+
/** @description Client creation date */
|
|
4196
|
+
createdAt: string;
|
|
4197
|
+
/** @description Client updated date */
|
|
4198
|
+
updatedAt?: string;
|
|
4199
|
+
};
|
|
4200
|
+
};
|
|
3554
4201
|
};
|
|
3555
4202
|
};
|
|
3556
4203
|
};
|
|
3557
4204
|
"user/list": {
|
|
3558
4205
|
parameters: {
|
|
3559
4206
|
query?: {
|
|
3560
|
-
/** @description
|
|
4207
|
+
/** @description Number of items per page (max 200) */
|
|
4208
|
+
pageSize?: number;
|
|
4209
|
+
/** @description Cursor for next page */
|
|
3561
4210
|
cursor?: string;
|
|
3562
|
-
/** @description
|
|
4211
|
+
/** @description Cursor returned by the previous page */
|
|
3563
4212
|
next?: string;
|
|
3564
|
-
/** @description Size of the results array */
|
|
3565
|
-
pageSize?: number;
|
|
3566
4213
|
/** @description Filter using a FaableQL query */
|
|
3567
4214
|
query?: string;
|
|
4215
|
+
/** @description Full-text search across: `name`, `email`, `phone`. */
|
|
4216
|
+
q?: string;
|
|
3568
4217
|
};
|
|
3569
4218
|
header?: never;
|
|
3570
4219
|
path?: never;
|
|
@@ -3572,16 +4221,14 @@ export interface operations {
|
|
|
3572
4221
|
};
|
|
3573
4222
|
requestBody?: never;
|
|
3574
4223
|
responses: {
|
|
3575
|
-
/** @description
|
|
4224
|
+
/** @description Default Response */
|
|
3576
4225
|
200: {
|
|
3577
4226
|
headers: {
|
|
3578
4227
|
[name: string]: unknown;
|
|
3579
4228
|
};
|
|
3580
4229
|
content: {
|
|
3581
4230
|
"application/json": {
|
|
3582
|
-
/** @description next cursor */
|
|
3583
4231
|
next: string | null;
|
|
3584
|
-
/** @description List of results */
|
|
3585
4232
|
results: components["schemas"]["User"][];
|
|
3586
4233
|
};
|
|
3587
4234
|
};
|
|
@@ -3657,12 +4304,20 @@ export interface operations {
|
|
|
3657
4304
|
* @default false
|
|
3658
4305
|
*/
|
|
3659
4306
|
email_verified: boolean;
|
|
4307
|
+
/** @description How `email_verified` was last set. `manual` — admin flipped the flag via `POST /user/:id`. `verification_flow` — user clicked the verification link. `passwordless_otp` — user completed passwordless OTP login. `team_invite` — user clicked a team invitation link. `email_change` — user confirmed a self-service email change. `federated` — verified by the external IdP on OAuth callback. `null` — the field was cleared (admin un-verified the email). */
|
|
4308
|
+
email_verified_method?: "manual" | "verification_flow" | "passwordless_otp" | "team_invite" | "email_change" | "federated" | null;
|
|
4309
|
+
/** @description ISO 8601 timestamp of when `email_verified` was last flipped to true. */
|
|
4310
|
+
email_verified_at?: string | null;
|
|
3660
4311
|
/** @description ISO 8601 timestamp of the user's last verified email change. When set, OAuth callbacks will not overwrite `email`/`email_verified` from the federated provider — the manually-chosen email wins. */
|
|
3661
4312
|
email_change_locked_at?: string | null;
|
|
3662
4313
|
/** @description contact phone number */
|
|
3663
4314
|
phone?: string | null;
|
|
3664
4315
|
/** @description phone is verified */
|
|
3665
4316
|
phone_verified: boolean;
|
|
4317
|
+
/** @description How `phone_verified` was last set. Same enum as `email_verified_method`. */
|
|
4318
|
+
phone_verified_method?: "manual" | "verification_flow" | "passwordless_otp" | "team_invite" | "email_change" | "federated" | null;
|
|
4319
|
+
/** @description ISO 8601 timestamp of when `phone_verified` was last flipped to true. */
|
|
4320
|
+
phone_verified_at?: string | null;
|
|
3666
4321
|
/** @description country iso code */
|
|
3667
4322
|
country_iso?: string | null;
|
|
3668
4323
|
/** @description user birth_date */
|
|
@@ -3768,12 +4423,20 @@ export interface operations {
|
|
|
3768
4423
|
* @default false
|
|
3769
4424
|
*/
|
|
3770
4425
|
email_verified: boolean;
|
|
4426
|
+
/** @description How `email_verified` was last set. `manual` — admin flipped the flag via `POST /user/:id`. `verification_flow` — user clicked the verification link. `passwordless_otp` — user completed passwordless OTP login. `team_invite` — user clicked a team invitation link. `email_change` — user confirmed a self-service email change. `federated` — verified by the external IdP on OAuth callback. `null` — the field was cleared (admin un-verified the email). */
|
|
4427
|
+
email_verified_method?: "manual" | "verification_flow" | "passwordless_otp" | "team_invite" | "email_change" | "federated" | null;
|
|
4428
|
+
/** @description ISO 8601 timestamp of when `email_verified` was last flipped to true. */
|
|
4429
|
+
email_verified_at?: string | null;
|
|
3771
4430
|
/** @description ISO 8601 timestamp of the user's last verified email change. When set, OAuth callbacks will not overwrite `email`/`email_verified` from the federated provider — the manually-chosen email wins. */
|
|
3772
4431
|
email_change_locked_at?: string | null;
|
|
3773
4432
|
/** @description contact phone number */
|
|
3774
4433
|
phone?: string | null;
|
|
3775
4434
|
/** @description phone is verified */
|
|
3776
4435
|
phone_verified: boolean;
|
|
4436
|
+
/** @description How `phone_verified` was last set. Same enum as `email_verified_method`. */
|
|
4437
|
+
phone_verified_method?: "manual" | "verification_flow" | "passwordless_otp" | "team_invite" | "email_change" | "federated" | null;
|
|
4438
|
+
/** @description ISO 8601 timestamp of when `phone_verified` was last flipped to true. */
|
|
4439
|
+
phone_verified_at?: string | null;
|
|
3777
4440
|
/** @description country iso code */
|
|
3778
4441
|
country_iso?: string | null;
|
|
3779
4442
|
/** @description user birth_date */
|
|
@@ -3859,12 +4522,16 @@ export interface operations {
|
|
|
3859
4522
|
given_name?: string;
|
|
3860
4523
|
/** @description family name */
|
|
3861
4524
|
family_name?: string;
|
|
3862
|
-
/** @description
|
|
4525
|
+
/** @description Contact email. Changing the email to a new value automatically resets `email_verified` to false (and clears `email_verified_method` / `email_verified_at`) unless the same patch sets `email_verified` explicitly. The override is the documented way to import a pre-verified user from another IdP. */
|
|
3863
4526
|
email?: string;
|
|
4527
|
+
/** @description Flip the email verification flag. Setting `true` marks the email as verified by the admin (`email_verified_method=manual`). Setting `false` clears the verification metadata. */
|
|
4528
|
+
email_verified?: boolean;
|
|
3864
4529
|
/** @description New password for this user */
|
|
3865
4530
|
password?: string;
|
|
3866
|
-
/** @description
|
|
4531
|
+
/** @description Contact phone number. Changing it to a new value automatically resets `phone_verified` to false (and clears `phone_verified_method` / `phone_verified_at`) unless the same patch sets `phone_verified` explicitly. */
|
|
3867
4532
|
phone?: string;
|
|
4533
|
+
/** @description Flip the phone verification flag. Setting `true` marks the phone as verified by the admin (`phone_verified_method=manual`). */
|
|
4534
|
+
phone_verified?: boolean;
|
|
3868
4535
|
/** @description user country as iso string */
|
|
3869
4536
|
country_iso?: string;
|
|
3870
4537
|
/** @description user birth_date */
|
|
@@ -3913,12 +4580,139 @@ export interface operations {
|
|
|
3913
4580
|
* @default false
|
|
3914
4581
|
*/
|
|
3915
4582
|
email_verified: boolean;
|
|
4583
|
+
/** @description How `email_verified` was last set. `manual` — admin flipped the flag via `POST /user/:id`. `verification_flow` — user clicked the verification link. `passwordless_otp` — user completed passwordless OTP login. `team_invite` — user clicked a team invitation link. `email_change` — user confirmed a self-service email change. `federated` — verified by the external IdP on OAuth callback. `null` — the field was cleared (admin un-verified the email). */
|
|
4584
|
+
email_verified_method?: "manual" | "verification_flow" | "passwordless_otp" | "team_invite" | "email_change" | "federated" | null;
|
|
4585
|
+
/** @description ISO 8601 timestamp of when `email_verified` was last flipped to true. */
|
|
4586
|
+
email_verified_at?: string | null;
|
|
4587
|
+
/** @description ISO 8601 timestamp of the user's last verified email change. When set, OAuth callbacks will not overwrite `email`/`email_verified` from the federated provider — the manually-chosen email wins. */
|
|
4588
|
+
email_change_locked_at?: string | null;
|
|
4589
|
+
/** @description contact phone number */
|
|
4590
|
+
phone?: string | null;
|
|
4591
|
+
/** @description phone is verified */
|
|
4592
|
+
phone_verified: boolean;
|
|
4593
|
+
/** @description How `phone_verified` was last set. Same enum as `email_verified_method`. */
|
|
4594
|
+
phone_verified_method?: "manual" | "verification_flow" | "passwordless_otp" | "team_invite" | "email_change" | "federated" | null;
|
|
4595
|
+
/** @description ISO 8601 timestamp of when `phone_verified` was last flipped to true. */
|
|
4596
|
+
phone_verified_at?: string | null;
|
|
4597
|
+
/** @description country iso code */
|
|
4598
|
+
country_iso?: string | null;
|
|
4599
|
+
/** @description user birth_date */
|
|
4600
|
+
birth_date?: string | null;
|
|
4601
|
+
/** @description User gender (free-form, OIDC §5.1) */
|
|
4602
|
+
gender?: string | null;
|
|
4603
|
+
/** @description IANA time-zone name (e.g. "Europe/Madrid"). OIDC §5.1 — used for the `zoneinfo` claim. */
|
|
4604
|
+
zoneinfo?: string | null;
|
|
4605
|
+
/** @description user main language */
|
|
4606
|
+
locale?: string;
|
|
4607
|
+
/** @description customer region */
|
|
4608
|
+
region?: string | null;
|
|
4609
|
+
/** @description URL of the User's personal Web page or blog (OIDC §5.1) */
|
|
4610
|
+
website?: string | null;
|
|
4611
|
+
address?: {
|
|
4612
|
+
/** @description Full mailing address, formatted for display (may contain newlines) */
|
|
4613
|
+
formatted?: string | null;
|
|
4614
|
+
street_address?: string | null;
|
|
4615
|
+
/** @description City or locality */
|
|
4616
|
+
locality?: string | null;
|
|
4617
|
+
/** @description State, province, or region */
|
|
4618
|
+
region?: string | null;
|
|
4619
|
+
postal_code?: string | null;
|
|
4620
|
+
/** @description Country name */
|
|
4621
|
+
country?: string | null;
|
|
4622
|
+
} | null;
|
|
4623
|
+
/** @description User picture url */
|
|
4624
|
+
picture?: string | null;
|
|
4625
|
+
/** @description Total number of logins this user has performed. */
|
|
4626
|
+
logins_count: number;
|
|
4627
|
+
/** @description Last IP address from which this user logged in */
|
|
4628
|
+
last_ip?: string | null;
|
|
4629
|
+
/** @description Last date and time this user logged in (ISO_8601 format) */
|
|
4630
|
+
last_login?: string | null;
|
|
4631
|
+
/**
|
|
4632
|
+
* @description User Metadata
|
|
4633
|
+
* @default {}
|
|
4634
|
+
*/
|
|
4635
|
+
user_metadata: {
|
|
4636
|
+
[key: string]: unknown;
|
|
4637
|
+
};
|
|
4638
|
+
/**
|
|
4639
|
+
* @description App Metadata
|
|
4640
|
+
* @default {}
|
|
4641
|
+
*/
|
|
4642
|
+
app_metadata: {
|
|
4643
|
+
[key: string]: unknown;
|
|
4644
|
+
};
|
|
4645
|
+
/** @description Object is related with this account */
|
|
4646
|
+
account: string;
|
|
4647
|
+
/**
|
|
4648
|
+
* @description UserMetadata
|
|
4649
|
+
* @default {}
|
|
4650
|
+
*/
|
|
4651
|
+
metadata: {
|
|
4652
|
+
[key: string]: unknown;
|
|
4653
|
+
};
|
|
4654
|
+
/** @description User creation date */
|
|
4655
|
+
createdAt: string;
|
|
4656
|
+
/** @description User updated date */
|
|
4657
|
+
updatedAt?: string;
|
|
4658
|
+
};
|
|
4659
|
+
};
|
|
4660
|
+
};
|
|
4661
|
+
};
|
|
4662
|
+
};
|
|
4663
|
+
"user/delete": {
|
|
4664
|
+
parameters: {
|
|
4665
|
+
query?: never;
|
|
4666
|
+
header?: never;
|
|
4667
|
+
path: {
|
|
4668
|
+
user_id: string;
|
|
4669
|
+
};
|
|
4670
|
+
cookie?: never;
|
|
4671
|
+
};
|
|
4672
|
+
requestBody?: never;
|
|
4673
|
+
responses: {
|
|
4674
|
+
/** @description User */
|
|
4675
|
+
200: {
|
|
4676
|
+
headers: {
|
|
4677
|
+
[name: string]: unknown;
|
|
4678
|
+
};
|
|
4679
|
+
content: {
|
|
4680
|
+
"application/json": {
|
|
4681
|
+
/** @description User ID */
|
|
4682
|
+
id: string;
|
|
4683
|
+
/** @description User name */
|
|
4684
|
+
name?: string | null;
|
|
4685
|
+
/** @description unique username for this user */
|
|
4686
|
+
username?: string | null;
|
|
4687
|
+
/** @description Given name */
|
|
4688
|
+
given_name?: string | null;
|
|
4689
|
+
/** @description Family name */
|
|
4690
|
+
family_name?: string | null;
|
|
4691
|
+
/** @description Middle name (OIDC §5.1) */
|
|
4692
|
+
middle_name?: string | null;
|
|
4693
|
+
/** @description Casual name. Distinct from given_name (e.g. "Mike" vs "Michael"). OIDC §5.1 */
|
|
4694
|
+
nickname?: string | null;
|
|
4695
|
+
/** @description User email */
|
|
4696
|
+
email?: string | null;
|
|
4697
|
+
/**
|
|
4698
|
+
* @description true if email is verified
|
|
4699
|
+
* @default false
|
|
4700
|
+
*/
|
|
4701
|
+
email_verified: boolean;
|
|
4702
|
+
/** @description How `email_verified` was last set. `manual` — admin flipped the flag via `POST /user/:id`. `verification_flow` — user clicked the verification link. `passwordless_otp` — user completed passwordless OTP login. `team_invite` — user clicked a team invitation link. `email_change` — user confirmed a self-service email change. `federated` — verified by the external IdP on OAuth callback. `null` — the field was cleared (admin un-verified the email). */
|
|
4703
|
+
email_verified_method?: "manual" | "verification_flow" | "passwordless_otp" | "team_invite" | "email_change" | "federated" | null;
|
|
4704
|
+
/** @description ISO 8601 timestamp of when `email_verified` was last flipped to true. */
|
|
4705
|
+
email_verified_at?: string | null;
|
|
3916
4706
|
/** @description ISO 8601 timestamp of the user's last verified email change. When set, OAuth callbacks will not overwrite `email`/`email_verified` from the federated provider — the manually-chosen email wins. */
|
|
3917
4707
|
email_change_locked_at?: string | null;
|
|
3918
4708
|
/** @description contact phone number */
|
|
3919
4709
|
phone?: string | null;
|
|
3920
4710
|
/** @description phone is verified */
|
|
3921
4711
|
phone_verified: boolean;
|
|
4712
|
+
/** @description How `phone_verified` was last set. Same enum as `email_verified_method`. */
|
|
4713
|
+
phone_verified_method?: "manual" | "verification_flow" | "passwordless_otp" | "team_invite" | "email_change" | "federated" | null;
|
|
4714
|
+
/** @description ISO 8601 timestamp of when `phone_verified` was last flipped to true. */
|
|
4715
|
+
phone_verified_at?: string | null;
|
|
3922
4716
|
/** @description country iso code */
|
|
3923
4717
|
country_iso?: string | null;
|
|
3924
4718
|
/** @description user birth_date */
|
|
@@ -3985,7 +4779,7 @@ export interface operations {
|
|
|
3985
4779
|
};
|
|
3986
4780
|
};
|
|
3987
4781
|
};
|
|
3988
|
-
"user/
|
|
4782
|
+
"user/changeEmail": {
|
|
3989
4783
|
parameters: {
|
|
3990
4784
|
query?: never;
|
|
3991
4785
|
header?: never;
|
|
@@ -3994,6 +4788,45 @@ export interface operations {
|
|
|
3994
4788
|
};
|
|
3995
4789
|
cookie?: never;
|
|
3996
4790
|
};
|
|
4791
|
+
/** @description Payload for `POST /user/:user_id/change-email`. Triggers the verification flow: a Ticket is created and an email is sent to the new address with a confirmation link. */
|
|
4792
|
+
requestBody: {
|
|
4793
|
+
content: {
|
|
4794
|
+
"application/json": {
|
|
4795
|
+
/** @description The email address the user wants to switch to. */
|
|
4796
|
+
new_email: string;
|
|
4797
|
+
/** @description Override the account-wide policy. Can only raise the bar: passing `old_and_new` forces double verification; `new_only` is ignored if the account requires `old_and_new`. */
|
|
4798
|
+
verification_mode?: "new_only" | "old_and_new";
|
|
4799
|
+
/** @description Where to send the user after they click the link in the verification email. The status of the operation is appended as a `?status=applied|pending_old` query param so the calling app can render the right screen. When omitted, the user lands on the auth host's `/flow/email-change-done` fallback. */
|
|
4800
|
+
redirect_uri?: string;
|
|
4801
|
+
};
|
|
4802
|
+
};
|
|
4803
|
+
};
|
|
4804
|
+
responses: {
|
|
4805
|
+
/** @description Default Response */
|
|
4806
|
+
200: {
|
|
4807
|
+
headers: {
|
|
4808
|
+
[name: string]: unknown;
|
|
4809
|
+
};
|
|
4810
|
+
content: {
|
|
4811
|
+
"application/json": {
|
|
4812
|
+
/** @enum {string} */
|
|
4813
|
+
status: "verification_sent";
|
|
4814
|
+
ticket_id: string;
|
|
4815
|
+
verification_mode: "new_only" | "old_and_new";
|
|
4816
|
+
};
|
|
4817
|
+
};
|
|
4818
|
+
};
|
|
4819
|
+
};
|
|
4820
|
+
};
|
|
4821
|
+
user_change_email_verify: {
|
|
4822
|
+
parameters: {
|
|
4823
|
+
query: {
|
|
4824
|
+
ticket: string;
|
|
4825
|
+
};
|
|
4826
|
+
header?: never;
|
|
4827
|
+
path?: never;
|
|
4828
|
+
cookie?: never;
|
|
4829
|
+
};
|
|
3997
4830
|
requestBody?: never;
|
|
3998
4831
|
responses: {
|
|
3999
4832
|
/** @description Default Response */
|
|
@@ -4005,7 +4838,7 @@ export interface operations {
|
|
|
4005
4838
|
};
|
|
4006
4839
|
};
|
|
4007
4840
|
};
|
|
4008
|
-
"user/
|
|
4841
|
+
"user/verifyEmailStart": {
|
|
4009
4842
|
parameters: {
|
|
4010
4843
|
query?: never;
|
|
4011
4844
|
header?: never;
|
|
@@ -4014,15 +4847,11 @@ export interface operations {
|
|
|
4014
4847
|
};
|
|
4015
4848
|
cookie?: never;
|
|
4016
4849
|
};
|
|
4017
|
-
/** @description
|
|
4850
|
+
/** @description Optional payload for `POST /user/:user_id/verify-email/start`. Trigger a verification email send for the given user. */
|
|
4018
4851
|
requestBody: {
|
|
4019
4852
|
content: {
|
|
4020
4853
|
"application/json": {
|
|
4021
|
-
/** @description The
|
|
4022
|
-
new_email: string;
|
|
4023
|
-
/** @description Override the account-wide policy. Can only raise the bar: passing `old_and_new` forces double verification; `new_only` is ignored if the account requires `old_and_new`. */
|
|
4024
|
-
verification_mode?: "new_only" | "old_and_new";
|
|
4025
|
-
/** @description Where to send the user after they click the link in the verification email. The status of the operation is appended as a `?status=applied|pending_old` query param so the calling app can render the right screen. When omitted, the user lands on the auth host's `/flow/email-change-done` fallback. */
|
|
4854
|
+
/** @description Where to send the user after they click the link. The status of the operation is appended as `?status=verified|already_verified|invalid_link|expired` so the calling app can render the right screen. When omitted, the user lands on the auth host's `/flow/verify-email-done` fallback. */
|
|
4026
4855
|
redirect_uri?: string;
|
|
4027
4856
|
};
|
|
4028
4857
|
};
|
|
@@ -4035,16 +4864,14 @@ export interface operations {
|
|
|
4035
4864
|
};
|
|
4036
4865
|
content: {
|
|
4037
4866
|
"application/json": {
|
|
4038
|
-
|
|
4039
|
-
|
|
4040
|
-
ticket_id: string;
|
|
4041
|
-
verification_mode: "new_only" | "old_and_new";
|
|
4867
|
+
status: "verification_sent" | "already_verified";
|
|
4868
|
+
ticket_id?: string;
|
|
4042
4869
|
};
|
|
4043
4870
|
};
|
|
4044
4871
|
};
|
|
4045
4872
|
};
|
|
4046
4873
|
};
|
|
4047
|
-
|
|
4874
|
+
user_verify_email_confirm: {
|
|
4048
4875
|
parameters: {
|
|
4049
4876
|
query: {
|
|
4050
4877
|
ticket: string;
|
|
@@ -4067,12 +4894,12 @@ export interface operations {
|
|
|
4067
4894
|
"identity/list": {
|
|
4068
4895
|
parameters: {
|
|
4069
4896
|
query?: {
|
|
4070
|
-
/** @description
|
|
4897
|
+
/** @description Number of items per page (max 200) */
|
|
4898
|
+
pageSize?: number;
|
|
4899
|
+
/** @description Cursor for next page */
|
|
4071
4900
|
cursor?: string;
|
|
4072
|
-
/** @description
|
|
4901
|
+
/** @description Cursor returned by the previous page */
|
|
4073
4902
|
next?: string;
|
|
4074
|
-
/** @description Size of the results array */
|
|
4075
|
-
pageSize?: number;
|
|
4076
4903
|
/** @description Filter using a FaableQL query */
|
|
4077
4904
|
query?: string;
|
|
4078
4905
|
/** @description Expand id-only fields in the response. Pass one path per entry (e.g. `?expand=user`). */
|
|
@@ -4084,16 +4911,14 @@ export interface operations {
|
|
|
4084
4911
|
};
|
|
4085
4912
|
requestBody?: never;
|
|
4086
4913
|
responses: {
|
|
4087
|
-
/** @description
|
|
4914
|
+
/** @description Default Response */
|
|
4088
4915
|
200: {
|
|
4089
4916
|
headers: {
|
|
4090
4917
|
[name: string]: unknown;
|
|
4091
4918
|
};
|
|
4092
4919
|
content: {
|
|
4093
4920
|
"application/json": {
|
|
4094
|
-
/** @description next cursor */
|
|
4095
4921
|
next: string | null;
|
|
4096
|
-
/** @description List of results */
|
|
4097
4922
|
results: components["schemas"]["Identity"][];
|
|
4098
4923
|
};
|
|
4099
4924
|
};
|
|
@@ -4137,6 +4962,8 @@ export interface operations {
|
|
|
4137
4962
|
access_token?: string;
|
|
4138
4963
|
access_token_secret?: string;
|
|
4139
4964
|
refresh_token?: string;
|
|
4965
|
+
/** @description ISO 8601 timestamp when the stored provider `access_token` expires. Stamped from the provider `expires_in` on (re-)authorization and refresh. Absent when the provider issues non-expiring tokens. */
|
|
4966
|
+
access_token_expires_at?: string;
|
|
4140
4967
|
profile_data: unknown;
|
|
4141
4968
|
/** @description Object is related with this account */
|
|
4142
4969
|
account: string;
|
|
@@ -4185,6 +5012,8 @@ export interface operations {
|
|
|
4185
5012
|
access_token?: string;
|
|
4186
5013
|
access_token_secret?: string;
|
|
4187
5014
|
refresh_token?: string;
|
|
5015
|
+
/** @description ISO 8601 timestamp when the stored provider `access_token` expires. Stamped from the provider `expires_in` on (re-)authorization and refresh. Absent when the provider issues non-expiring tokens. */
|
|
5016
|
+
access_token_expires_at?: string;
|
|
4188
5017
|
profile_data: unknown;
|
|
4189
5018
|
/** @description Object is related with this account */
|
|
4190
5019
|
account: string;
|
|
@@ -4204,7 +5033,7 @@ export interface operations {
|
|
|
4204
5033
|
};
|
|
4205
5034
|
};
|
|
4206
5035
|
};
|
|
4207
|
-
"identity/
|
|
5036
|
+
"identity/delete": {
|
|
4208
5037
|
parameters: {
|
|
4209
5038
|
query?: never;
|
|
4210
5039
|
header?: never;
|
|
@@ -4214,27 +5043,85 @@ export interface operations {
|
|
|
4214
5043
|
cookie?: never;
|
|
4215
5044
|
};
|
|
4216
5045
|
requestBody?: never;
|
|
5046
|
+
responses: {
|
|
5047
|
+
/** @description Identity */
|
|
5048
|
+
200: {
|
|
5049
|
+
headers: {
|
|
5050
|
+
[name: string]: unknown;
|
|
5051
|
+
};
|
|
5052
|
+
content: {
|
|
5053
|
+
"application/json": {
|
|
5054
|
+
/** @description Identity ID */
|
|
5055
|
+
id: string;
|
|
5056
|
+
connection: components["schemas"]["Connection"] | string | unknown;
|
|
5057
|
+
user: components["schemas"]["User"] | string | unknown;
|
|
5058
|
+
identity_id: string;
|
|
5059
|
+
access_token?: string;
|
|
5060
|
+
access_token_secret?: string;
|
|
5061
|
+
refresh_token?: string;
|
|
5062
|
+
/** @description ISO 8601 timestamp when the stored provider `access_token` expires. Stamped from the provider `expires_in` on (re-)authorization and refresh. Absent when the provider issues non-expiring tokens. */
|
|
5063
|
+
access_token_expires_at?: string;
|
|
5064
|
+
profile_data: unknown;
|
|
5065
|
+
/** @description Object is related with this account */
|
|
5066
|
+
account: string;
|
|
5067
|
+
/**
|
|
5068
|
+
* @description IdentityMetadata
|
|
5069
|
+
* @default {}
|
|
5070
|
+
*/
|
|
5071
|
+
metadata: {
|
|
5072
|
+
[key: string]: unknown;
|
|
5073
|
+
};
|
|
5074
|
+
/** @description Identity creation date */
|
|
5075
|
+
createdAt: string;
|
|
5076
|
+
/** @description Identity updated date */
|
|
5077
|
+
updatedAt?: string;
|
|
5078
|
+
};
|
|
5079
|
+
};
|
|
5080
|
+
};
|
|
5081
|
+
};
|
|
5082
|
+
};
|
|
5083
|
+
"identity/getProviderToken": {
|
|
5084
|
+
parameters: {
|
|
5085
|
+
query?: {
|
|
5086
|
+
/** @description Force a refresh against the provider even when the stored token still looks valid. */
|
|
5087
|
+
fresh?: boolean;
|
|
5088
|
+
};
|
|
5089
|
+
header?: never;
|
|
5090
|
+
path: {
|
|
5091
|
+
identity_id: string;
|
|
5092
|
+
};
|
|
5093
|
+
cookie?: never;
|
|
5094
|
+
};
|
|
5095
|
+
requestBody?: never;
|
|
4217
5096
|
responses: {
|
|
4218
5097
|
/** @description Default Response */
|
|
4219
5098
|
200: {
|
|
4220
5099
|
headers: {
|
|
4221
5100
|
[name: string]: unknown;
|
|
4222
5101
|
};
|
|
4223
|
-
content
|
|
5102
|
+
content: {
|
|
5103
|
+
"application/json": {
|
|
5104
|
+
access_token: string;
|
|
5105
|
+
access_token_expires_at?: string;
|
|
5106
|
+
refreshed: boolean;
|
|
5107
|
+
};
|
|
5108
|
+
};
|
|
4224
5109
|
};
|
|
4225
5110
|
};
|
|
4226
5111
|
};
|
|
4227
5112
|
"role/list": {
|
|
4228
5113
|
parameters: {
|
|
4229
5114
|
query?: {
|
|
4230
|
-
/** @description
|
|
5115
|
+
/** @description Number of items per page (max 200) */
|
|
5116
|
+
pageSize?: number;
|
|
5117
|
+
/** @description Cursor for next page */
|
|
4231
5118
|
cursor?: string;
|
|
4232
|
-
/** @description
|
|
5119
|
+
/** @description Cursor returned by the previous page */
|
|
4233
5120
|
next?: string;
|
|
4234
|
-
/** @description Size of the results array */
|
|
4235
|
-
pageSize?: number;
|
|
4236
5121
|
/** @description Filter using a FaableQL query */
|
|
4237
5122
|
query?: string;
|
|
5123
|
+
/** @description Full-text search across: `name`, `description`. */
|
|
5124
|
+
q?: string;
|
|
4238
5125
|
};
|
|
4239
5126
|
header?: never;
|
|
4240
5127
|
path?: never;
|
|
@@ -4242,16 +5129,14 @@ export interface operations {
|
|
|
4242
5129
|
};
|
|
4243
5130
|
requestBody?: never;
|
|
4244
5131
|
responses: {
|
|
4245
|
-
/** @description
|
|
5132
|
+
/** @description Default Response */
|
|
4246
5133
|
200: {
|
|
4247
5134
|
headers: {
|
|
4248
5135
|
[name: string]: unknown;
|
|
4249
5136
|
};
|
|
4250
5137
|
content: {
|
|
4251
5138
|
"application/json": {
|
|
4252
|
-
/** @description next cursor */
|
|
4253
5139
|
next: string | null;
|
|
4254
|
-
/** @description List of results */
|
|
4255
5140
|
results: components["schemas"]["Role"][];
|
|
4256
5141
|
};
|
|
4257
5142
|
};
|
|
@@ -4418,7 +5303,7 @@ export interface operations {
|
|
|
4418
5303
|
};
|
|
4419
5304
|
};
|
|
4420
5305
|
};
|
|
4421
|
-
"role/
|
|
5306
|
+
"role/delete": {
|
|
4422
5307
|
parameters: {
|
|
4423
5308
|
query?: never;
|
|
4424
5309
|
header?: never;
|
|
@@ -4429,12 +5314,37 @@ export interface operations {
|
|
|
4429
5314
|
};
|
|
4430
5315
|
requestBody?: never;
|
|
4431
5316
|
responses: {
|
|
4432
|
-
/** @description
|
|
5317
|
+
/** @description Role */
|
|
4433
5318
|
200: {
|
|
4434
5319
|
headers: {
|
|
4435
5320
|
[name: string]: unknown;
|
|
4436
5321
|
};
|
|
4437
|
-
content
|
|
5322
|
+
content: {
|
|
5323
|
+
"application/json": {
|
|
5324
|
+
/** @description Role ID */
|
|
5325
|
+
id: string;
|
|
5326
|
+
/**
|
|
5327
|
+
* @description Short, human-readable identifier for the role (e.g. `admin`, `editor`, `billing-manager`). Surfaced in the dashboard role pickers.
|
|
5328
|
+
* @example admin
|
|
5329
|
+
*/
|
|
5330
|
+
name: string;
|
|
5331
|
+
/** @description Free-form explanation of what users in this role are expected to do or have access to. Shown alongside the role in the dashboard. */
|
|
5332
|
+
description: string;
|
|
5333
|
+
/** @description Object is related with this account */
|
|
5334
|
+
account: string;
|
|
5335
|
+
/**
|
|
5336
|
+
* @description RoleMetadata
|
|
5337
|
+
* @default {}
|
|
5338
|
+
*/
|
|
5339
|
+
metadata: {
|
|
5340
|
+
[key: string]: unknown;
|
|
5341
|
+
};
|
|
5342
|
+
/** @description Role creation date */
|
|
5343
|
+
createdAt: string;
|
|
5344
|
+
/** @description Role updated date */
|
|
5345
|
+
updatedAt?: string;
|
|
5346
|
+
};
|
|
5347
|
+
};
|
|
4438
5348
|
};
|
|
4439
5349
|
};
|
|
4440
5350
|
};
|
|
@@ -4508,12 +5418,12 @@ export interface operations {
|
|
|
4508
5418
|
"rolemember/list": {
|
|
4509
5419
|
parameters: {
|
|
4510
5420
|
query?: {
|
|
4511
|
-
/** @description
|
|
5421
|
+
/** @description Number of items per page (max 200) */
|
|
5422
|
+
pageSize?: number;
|
|
5423
|
+
/** @description Cursor for next page */
|
|
4512
5424
|
cursor?: string;
|
|
4513
|
-
/** @description
|
|
5425
|
+
/** @description Cursor returned by the previous page */
|
|
4514
5426
|
next?: string;
|
|
4515
|
-
/** @description Size of the results array */
|
|
4516
|
-
pageSize?: number;
|
|
4517
5427
|
/** @description Filter using a FaableQL query */
|
|
4518
5428
|
query?: string;
|
|
4519
5429
|
/** @description Expand id-only fields in the response. Pass one path per entry (e.g. `?expand=user`). */
|
|
@@ -4525,16 +5435,14 @@ export interface operations {
|
|
|
4525
5435
|
};
|
|
4526
5436
|
requestBody?: never;
|
|
4527
5437
|
responses: {
|
|
4528
|
-
/** @description
|
|
5438
|
+
/** @description Default Response */
|
|
4529
5439
|
200: {
|
|
4530
5440
|
headers: {
|
|
4531
5441
|
[name: string]: unknown;
|
|
4532
5442
|
};
|
|
4533
5443
|
content: {
|
|
4534
5444
|
"application/json": {
|
|
4535
|
-
/** @description next cursor */
|
|
4536
5445
|
next: string | null;
|
|
4537
|
-
/** @description List of results */
|
|
4538
5446
|
results: components["schemas"]["RoleMember"][];
|
|
4539
5447
|
};
|
|
4540
5448
|
};
|
|
@@ -4639,7 +5547,7 @@ export interface operations {
|
|
|
4639
5547
|
};
|
|
4640
5548
|
};
|
|
4641
5549
|
};
|
|
4642
|
-
"rolemember/
|
|
5550
|
+
"rolemember/delete": {
|
|
4643
5551
|
parameters: {
|
|
4644
5552
|
query?: never;
|
|
4645
5553
|
header?: never;
|
|
@@ -4650,26 +5558,50 @@ export interface operations {
|
|
|
4650
5558
|
};
|
|
4651
5559
|
requestBody?: never;
|
|
4652
5560
|
responses: {
|
|
4653
|
-
/** @description
|
|
5561
|
+
/** @description RoleMember */
|
|
4654
5562
|
200: {
|
|
4655
5563
|
headers: {
|
|
4656
5564
|
[name: string]: unknown;
|
|
4657
5565
|
};
|
|
4658
|
-
content
|
|
5566
|
+
content: {
|
|
5567
|
+
"application/json": {
|
|
5568
|
+
/** @description RoleMember ID */
|
|
5569
|
+
id: string;
|
|
5570
|
+
/** @description Role granted to the user. Returned as an id by default; pass `?expand=role` to inline the full Role object. */
|
|
5571
|
+
role: components["schemas"]["Role"] | string | unknown;
|
|
5572
|
+
/** @description User the role is granted to. Returned as an id by default; pass `?expand=user` to inline the full User object. */
|
|
5573
|
+
user: components["schemas"]["User"] | string | unknown;
|
|
5574
|
+
/** @description Object is related with this account */
|
|
5575
|
+
account: string;
|
|
5576
|
+
/**
|
|
5577
|
+
* @description RoleMemberMetadata
|
|
5578
|
+
* @default {}
|
|
5579
|
+
*/
|
|
5580
|
+
metadata: {
|
|
5581
|
+
[key: string]: unknown;
|
|
5582
|
+
};
|
|
5583
|
+
/** @description RoleMember creation date */
|
|
5584
|
+
createdAt: string;
|
|
5585
|
+
/** @description RoleMember updated date */
|
|
5586
|
+
updatedAt?: string;
|
|
5587
|
+
};
|
|
5588
|
+
};
|
|
4659
5589
|
};
|
|
4660
5590
|
};
|
|
4661
5591
|
};
|
|
4662
5592
|
"team/list": {
|
|
4663
5593
|
parameters: {
|
|
4664
5594
|
query?: {
|
|
4665
|
-
/** @description
|
|
5595
|
+
/** @description Number of items per page (max 200) */
|
|
5596
|
+
pageSize?: number;
|
|
5597
|
+
/** @description Cursor for next page */
|
|
4666
5598
|
cursor?: string;
|
|
4667
|
-
/** @description
|
|
5599
|
+
/** @description Cursor returned by the previous page */
|
|
4668
5600
|
next?: string;
|
|
4669
|
-
/** @description Size of the results array */
|
|
4670
|
-
pageSize?: number;
|
|
4671
5601
|
/** @description Filter using a FaableQL query */
|
|
4672
5602
|
query?: string;
|
|
5603
|
+
/** @description Full-text search across: `name`, `slug`. */
|
|
5604
|
+
q?: string;
|
|
4673
5605
|
};
|
|
4674
5606
|
header?: never;
|
|
4675
5607
|
path?: never;
|
|
@@ -4677,16 +5609,14 @@ export interface operations {
|
|
|
4677
5609
|
};
|
|
4678
5610
|
requestBody?: never;
|
|
4679
5611
|
responses: {
|
|
4680
|
-
/** @description
|
|
5612
|
+
/** @description Default Response */
|
|
4681
5613
|
200: {
|
|
4682
5614
|
headers: {
|
|
4683
5615
|
[name: string]: unknown;
|
|
4684
5616
|
};
|
|
4685
5617
|
content: {
|
|
4686
5618
|
"application/json": {
|
|
4687
|
-
/** @description next cursor */
|
|
4688
5619
|
next: string | null;
|
|
4689
|
-
/** @description List of results */
|
|
4690
5620
|
results: components["schemas"]["Team"][];
|
|
4691
5621
|
};
|
|
4692
5622
|
};
|
|
@@ -4878,7 +5808,7 @@ export interface operations {
|
|
|
4878
5808
|
};
|
|
4879
5809
|
};
|
|
4880
5810
|
};
|
|
4881
|
-
"team/
|
|
5811
|
+
"team/delete": {
|
|
4882
5812
|
parameters: {
|
|
4883
5813
|
query?: never;
|
|
4884
5814
|
header?: never;
|
|
@@ -4889,24 +5819,56 @@ export interface operations {
|
|
|
4889
5819
|
};
|
|
4890
5820
|
requestBody?: never;
|
|
4891
5821
|
responses: {
|
|
4892
|
-
/** @description
|
|
5822
|
+
/** @description Team */
|
|
4893
5823
|
200: {
|
|
4894
5824
|
headers: {
|
|
4895
5825
|
[name: string]: unknown;
|
|
4896
5826
|
};
|
|
4897
|
-
content
|
|
5827
|
+
content: {
|
|
5828
|
+
"application/json": {
|
|
5829
|
+
/** @description Team ID */
|
|
5830
|
+
id: string;
|
|
5831
|
+
/**
|
|
5832
|
+
* @description Human-readable name of the team. Shown in the dashboard and in team-picker UI.
|
|
5833
|
+
* @example Acme Engineering
|
|
5834
|
+
*/
|
|
5835
|
+
name: string;
|
|
5836
|
+
/**
|
|
5837
|
+
* @description URL-safe identifier auto-derived from `name`. Unique within the tenant; used in routes that address a team by slug.
|
|
5838
|
+
* @example acme-engineering
|
|
5839
|
+
*/
|
|
5840
|
+
slug: string;
|
|
5841
|
+
/** @description Optional free-form description of the team. */
|
|
5842
|
+
description: string | null;
|
|
5843
|
+
/** @description Optional URL of an image used as the team avatar/logo. */
|
|
5844
|
+
logo_url: string | null;
|
|
5845
|
+
/** @description Object is related with this account */
|
|
5846
|
+
account: string;
|
|
5847
|
+
/**
|
|
5848
|
+
* @description TeamMetadata
|
|
5849
|
+
* @default {}
|
|
5850
|
+
*/
|
|
5851
|
+
metadata: {
|
|
5852
|
+
[key: string]: unknown;
|
|
5853
|
+
};
|
|
5854
|
+
/** @description Team creation date */
|
|
5855
|
+
createdAt: string;
|
|
5856
|
+
/** @description Team updated date */
|
|
5857
|
+
updatedAt?: string;
|
|
5858
|
+
};
|
|
5859
|
+
};
|
|
4898
5860
|
};
|
|
4899
5861
|
};
|
|
4900
5862
|
};
|
|
4901
5863
|
"teammember/list": {
|
|
4902
5864
|
parameters: {
|
|
4903
5865
|
query?: {
|
|
4904
|
-
/** @description
|
|
5866
|
+
/** @description Number of items per page (max 200) */
|
|
5867
|
+
pageSize?: number;
|
|
5868
|
+
/** @description Cursor for next page */
|
|
4905
5869
|
cursor?: string;
|
|
4906
|
-
/** @description
|
|
5870
|
+
/** @description Cursor returned by the previous page */
|
|
4907
5871
|
next?: string;
|
|
4908
|
-
/** @description Size of the results array */
|
|
4909
|
-
pageSize?: number;
|
|
4910
5872
|
/** @description Filter using a FaableQL query */
|
|
4911
5873
|
query?: string;
|
|
4912
5874
|
/** @description Expand id-only fields in the response. Pass one path per entry (e.g. `?expand=user`). */
|
|
@@ -4918,16 +5880,14 @@ export interface operations {
|
|
|
4918
5880
|
};
|
|
4919
5881
|
requestBody?: never;
|
|
4920
5882
|
responses: {
|
|
4921
|
-
/** @description
|
|
5883
|
+
/** @description Default Response */
|
|
4922
5884
|
200: {
|
|
4923
5885
|
headers: {
|
|
4924
5886
|
[name: string]: unknown;
|
|
4925
5887
|
};
|
|
4926
5888
|
content: {
|
|
4927
5889
|
"application/json": {
|
|
4928
|
-
/** @description next cursor */
|
|
4929
5890
|
next: string | null;
|
|
4930
|
-
/** @description List of results */
|
|
4931
5891
|
results: components["schemas"]["TeamMember"][];
|
|
4932
5892
|
};
|
|
4933
5893
|
};
|
|
@@ -5044,7 +6004,7 @@ export interface operations {
|
|
|
5044
6004
|
};
|
|
5045
6005
|
};
|
|
5046
6006
|
};
|
|
5047
|
-
"teammember/
|
|
6007
|
+
"teammember/delete": {
|
|
5048
6008
|
parameters: {
|
|
5049
6009
|
query?: never;
|
|
5050
6010
|
header?: never;
|
|
@@ -5055,12 +6015,36 @@ export interface operations {
|
|
|
5055
6015
|
};
|
|
5056
6016
|
requestBody?: never;
|
|
5057
6017
|
responses: {
|
|
5058
|
-
/** @description
|
|
6018
|
+
/** @description TeamMember */
|
|
5059
6019
|
200: {
|
|
5060
6020
|
headers: {
|
|
5061
6021
|
[name: string]: unknown;
|
|
5062
6022
|
};
|
|
5063
|
-
content
|
|
6023
|
+
content: {
|
|
6024
|
+
"application/json": {
|
|
6025
|
+
/** @description TeamMember ID */
|
|
6026
|
+
id: string;
|
|
6027
|
+
/** @description User that belongs to the team. Returned as an id by default; pass `?expand=user` to inline the full User object. */
|
|
6028
|
+
user: components["schemas"]["User"] | string | unknown;
|
|
6029
|
+
/** @description Team the user belongs to. Returned as an id by default; pass `?expand=team` to inline the full Team object. */
|
|
6030
|
+
team: components["schemas"]["Team"] | string | unknown;
|
|
6031
|
+
/** @description Roles granted to the user *within this team*. Distinct from account-wide RoleMember grants — these only apply in the scope of the team. Each entry is an id by default; pass `?expand=roles` to inline. */
|
|
6032
|
+
roles: (components["schemas"]["Role"] | string | unknown)[];
|
|
6033
|
+
/** @description Object is related with this account */
|
|
6034
|
+
account: string;
|
|
6035
|
+
/**
|
|
6036
|
+
* @description TeamMemberMetadata
|
|
6037
|
+
* @default {}
|
|
6038
|
+
*/
|
|
6039
|
+
metadata: {
|
|
6040
|
+
[key: string]: unknown;
|
|
6041
|
+
};
|
|
6042
|
+
/** @description TeamMember creation date */
|
|
6043
|
+
createdAt: string;
|
|
6044
|
+
/** @description TeamMember updated date */
|
|
6045
|
+
updatedAt?: string;
|
|
6046
|
+
};
|
|
6047
|
+
};
|
|
5064
6048
|
};
|
|
5065
6049
|
};
|
|
5066
6050
|
};
|
|
@@ -5073,6 +6057,8 @@ export interface operations {
|
|
|
5073
6057
|
next?: string;
|
|
5074
6058
|
/** @description Size of the results array */
|
|
5075
6059
|
pageSize?: number;
|
|
6060
|
+
/** @description Expand id-only fields in the response. Accepts repeated params (`expand=user&expand=roles`) or comma-separated (`expand=user,roles`). */
|
|
6061
|
+
expand?: ("user" | "team" | "roles")[];
|
|
5076
6062
|
};
|
|
5077
6063
|
header?: never;
|
|
5078
6064
|
path: {
|
|
@@ -5394,14 +6380,16 @@ export interface operations {
|
|
|
5394
6380
|
"api/list": {
|
|
5395
6381
|
parameters: {
|
|
5396
6382
|
query?: {
|
|
5397
|
-
/** @description
|
|
6383
|
+
/** @description Number of items per page (max 200) */
|
|
6384
|
+
pageSize?: number;
|
|
6385
|
+
/** @description Cursor for next page */
|
|
5398
6386
|
cursor?: string;
|
|
5399
|
-
/** @description
|
|
6387
|
+
/** @description Cursor returned by the previous page */
|
|
5400
6388
|
next?: string;
|
|
5401
|
-
/** @description Size of the results array */
|
|
5402
|
-
pageSize?: number;
|
|
5403
6389
|
/** @description Filter using a FaableQL query */
|
|
5404
6390
|
query?: string;
|
|
6391
|
+
/** @description Full-text search across: `name`, `description`, `identifier`, `slug`. */
|
|
6392
|
+
q?: string;
|
|
5405
6393
|
};
|
|
5406
6394
|
header?: never;
|
|
5407
6395
|
path?: never;
|
|
@@ -5409,16 +6397,14 @@ export interface operations {
|
|
|
5409
6397
|
};
|
|
5410
6398
|
requestBody?: never;
|
|
5411
6399
|
responses: {
|
|
5412
|
-
/** @description
|
|
6400
|
+
/** @description Default Response */
|
|
5413
6401
|
200: {
|
|
5414
6402
|
headers: {
|
|
5415
6403
|
[name: string]: unknown;
|
|
5416
6404
|
};
|
|
5417
6405
|
content: {
|
|
5418
6406
|
"application/json": {
|
|
5419
|
-
/** @description next cursor */
|
|
5420
6407
|
next: string | null;
|
|
5421
|
-
/** @description List of results */
|
|
5422
6408
|
results: components["schemas"]["Api"][];
|
|
5423
6409
|
};
|
|
5424
6410
|
};
|
|
@@ -5465,6 +6451,14 @@ export interface operations {
|
|
|
5465
6451
|
allow_offline_access?: boolean;
|
|
5466
6452
|
/** @description When true, skip the consent prompt for first-party clients. */
|
|
5467
6453
|
skip_consent?: boolean;
|
|
6454
|
+
/** @description When true, access_tokens issued for this API carry a `teams` claim with the subject team slugs. */
|
|
6455
|
+
include_teams_in_access_token?: boolean;
|
|
6456
|
+
/** @description When true, access_tokens issued for this API carry a `roles` claim with the subject role names. */
|
|
6457
|
+
include_roles_in_access_token?: boolean;
|
|
6458
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `teams` claim with the subject team slugs. */
|
|
6459
|
+
include_teams_in_id_token?: boolean;
|
|
6460
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `roles` claim with the subject role names. */
|
|
6461
|
+
include_roles_in_id_token?: boolean;
|
|
5468
6462
|
};
|
|
5469
6463
|
};
|
|
5470
6464
|
};
|
|
@@ -5506,6 +6500,14 @@ export interface operations {
|
|
|
5506
6500
|
allow_offline_access: boolean;
|
|
5507
6501
|
/** @description When true, the consent prompt is skipped for first-party clients (clients owned by the same tenant as the API). */
|
|
5508
6502
|
skip_consent: boolean;
|
|
6503
|
+
/** @description When true, access_tokens issued for this API carry a `teams` claim listing the slugs of the teams the subject is a member of within the tenant. */
|
|
6504
|
+
include_teams_in_access_token: boolean;
|
|
6505
|
+
/** @description When true, access_tokens issued for this API carry a `roles` claim listing the names of the roles the subject holds across their team memberships within the tenant. */
|
|
6506
|
+
include_roles_in_access_token: boolean;
|
|
6507
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `teams` claim with the subject team slugs. The id_token only sees the flag when the client requested `audience=` so this API is resolved at issuance time. */
|
|
6508
|
+
include_teams_in_id_token: boolean;
|
|
6509
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `roles` claim with the subject role names. Same audience caveat as `include_teams_in_id_token`. */
|
|
6510
|
+
include_roles_in_id_token: boolean;
|
|
5509
6511
|
/** @description Object is related with this account */
|
|
5510
6512
|
account: string;
|
|
5511
6513
|
/**
|
|
@@ -5572,6 +6574,14 @@ export interface operations {
|
|
|
5572
6574
|
allow_offline_access: boolean;
|
|
5573
6575
|
/** @description When true, the consent prompt is skipped for first-party clients (clients owned by the same tenant as the API). */
|
|
5574
6576
|
skip_consent: boolean;
|
|
6577
|
+
/** @description When true, access_tokens issued for this API carry a `teams` claim listing the slugs of the teams the subject is a member of within the tenant. */
|
|
6578
|
+
include_teams_in_access_token: boolean;
|
|
6579
|
+
/** @description When true, access_tokens issued for this API carry a `roles` claim listing the names of the roles the subject holds across their team memberships within the tenant. */
|
|
6580
|
+
include_roles_in_access_token: boolean;
|
|
6581
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `teams` claim with the subject team slugs. The id_token only sees the flag when the client requested `audience=` so this API is resolved at issuance time. */
|
|
6582
|
+
include_teams_in_id_token: boolean;
|
|
6583
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `roles` claim with the subject role names. Same audience caveat as `include_teams_in_id_token`. */
|
|
6584
|
+
include_roles_in_id_token: boolean;
|
|
5575
6585
|
/** @description Object is related with this account */
|
|
5576
6586
|
account: string;
|
|
5577
6587
|
/**
|
|
@@ -5621,6 +6631,14 @@ export interface operations {
|
|
|
5621
6631
|
allow_offline_access?: boolean;
|
|
5622
6632
|
/** @description When true, skip the consent prompt for first-party clients. */
|
|
5623
6633
|
skip_consent?: boolean;
|
|
6634
|
+
/** @description When true, access_tokens issued for this API carry a `teams` claim with the subject team slugs. */
|
|
6635
|
+
include_teams_in_access_token?: boolean;
|
|
6636
|
+
/** @description When true, access_tokens issued for this API carry a `roles` claim with the subject role names. */
|
|
6637
|
+
include_roles_in_access_token?: boolean;
|
|
6638
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `teams` claim with the subject team slugs. */
|
|
6639
|
+
include_teams_in_id_token?: boolean;
|
|
6640
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `roles` claim with the subject role names. */
|
|
6641
|
+
include_roles_in_id_token?: boolean;
|
|
5624
6642
|
};
|
|
5625
6643
|
};
|
|
5626
6644
|
};
|
|
@@ -5662,6 +6680,14 @@ export interface operations {
|
|
|
5662
6680
|
allow_offline_access: boolean;
|
|
5663
6681
|
/** @description When true, the consent prompt is skipped for first-party clients (clients owned by the same tenant as the API). */
|
|
5664
6682
|
skip_consent: boolean;
|
|
6683
|
+
/** @description When true, access_tokens issued for this API carry a `teams` claim listing the slugs of the teams the subject is a member of within the tenant. */
|
|
6684
|
+
include_teams_in_access_token: boolean;
|
|
6685
|
+
/** @description When true, access_tokens issued for this API carry a `roles` claim listing the names of the roles the subject holds across their team memberships within the tenant. */
|
|
6686
|
+
include_roles_in_access_token: boolean;
|
|
6687
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `teams` claim with the subject team slugs. The id_token only sees the flag when the client requested `audience=` so this API is resolved at issuance time. */
|
|
6688
|
+
include_teams_in_id_token: boolean;
|
|
6689
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `roles` claim with the subject role names. Same audience caveat as `include_teams_in_id_token`. */
|
|
6690
|
+
include_roles_in_id_token: boolean;
|
|
5665
6691
|
/** @description Object is related with this account */
|
|
5666
6692
|
account: string;
|
|
5667
6693
|
/**
|
|
@@ -5680,7 +6706,7 @@ export interface operations {
|
|
|
5680
6706
|
};
|
|
5681
6707
|
};
|
|
5682
6708
|
};
|
|
5683
|
-
"api/
|
|
6709
|
+
"api/delete": {
|
|
5684
6710
|
parameters: {
|
|
5685
6711
|
query?: never;
|
|
5686
6712
|
header?: never;
|
|
@@ -5691,12 +6717,66 @@ export interface operations {
|
|
|
5691
6717
|
};
|
|
5692
6718
|
requestBody?: never;
|
|
5693
6719
|
responses: {
|
|
5694
|
-
/** @description
|
|
6720
|
+
/** @description Api */
|
|
5695
6721
|
200: {
|
|
5696
6722
|
headers: {
|
|
5697
6723
|
[name: string]: unknown;
|
|
5698
6724
|
};
|
|
5699
|
-
content
|
|
6725
|
+
content: {
|
|
6726
|
+
"application/json": {
|
|
6727
|
+
/** @description Api ID */
|
|
6728
|
+
id: string;
|
|
6729
|
+
/**
|
|
6730
|
+
* @description Human-readable name for the API. Shown in the dashboard and consent prompts.
|
|
6731
|
+
* @example My Backend API
|
|
6732
|
+
*/
|
|
6733
|
+
name: string;
|
|
6734
|
+
/** @description URL-safe identifier auto-derived from `name`. Unique within the tenant. */
|
|
6735
|
+
slug: string;
|
|
6736
|
+
/**
|
|
6737
|
+
* @description Audience URL that clients pass as `audience=` when requesting a token for this API. Becomes the `aud` claim in the issued access_token. Immutable after creation and unique within the tenant.
|
|
6738
|
+
* @example https://api.faable.com
|
|
6739
|
+
*/
|
|
6740
|
+
identifier: string;
|
|
6741
|
+
/** @description Optional human-readable description of the API. */
|
|
6742
|
+
description?: string;
|
|
6743
|
+
/** @description Set of permissions (scopes) this API exposes. When a token is issued with `audience=identifier`, the requested `scope` is intersected with this list to populate the `permissions` claim. */
|
|
6744
|
+
permissions: components["schemas"]["Permission"][];
|
|
6745
|
+
/** @description JWA algorithm used to sign access_tokens issued for this API. Currently only RS256 (the account keystore default) is implemented. */
|
|
6746
|
+
signing_alg: "RS256";
|
|
6747
|
+
/** @description Shape of access_tokens issued for this API. `access_token` emits the standard OAuth2 token. `access_token_authz` additionally embeds a `permissions` claim listing the permissions granted to the subject for this API. */
|
|
6748
|
+
token_dialect: "access_token" | "access_token_authz";
|
|
6749
|
+
/** @description Access_token lifetime in seconds. Default 86400 (24h). Applied at token issuance time (overrides the generic default). */
|
|
6750
|
+
token_lifetime: number;
|
|
6751
|
+
/** @description When true, only scopes that match a permission in `permissions` are forwarded into the access_token. When false, requested scopes are echoed back verbatim with no filtering. */
|
|
6752
|
+
enforce_policies: boolean;
|
|
6753
|
+
/** @description When true, the API is eligible to be the target of a `refresh_token` (i.e. clients can request `offline_access` against it). */
|
|
6754
|
+
allow_offline_access: boolean;
|
|
6755
|
+
/** @description When true, the consent prompt is skipped for first-party clients (clients owned by the same tenant as the API). */
|
|
6756
|
+
skip_consent: boolean;
|
|
6757
|
+
/** @description When true, access_tokens issued for this API carry a `teams` claim listing the slugs of the teams the subject is a member of within the tenant. */
|
|
6758
|
+
include_teams_in_access_token: boolean;
|
|
6759
|
+
/** @description When true, access_tokens issued for this API carry a `roles` claim listing the names of the roles the subject holds across their team memberships within the tenant. */
|
|
6760
|
+
include_roles_in_access_token: boolean;
|
|
6761
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `teams` claim with the subject team slugs. The id_token only sees the flag when the client requested `audience=` so this API is resolved at issuance time. */
|
|
6762
|
+
include_teams_in_id_token: boolean;
|
|
6763
|
+
/** @description When true, id_tokens issued together with an access_token for this API carry a `roles` claim with the subject role names. Same audience caveat as `include_teams_in_id_token`. */
|
|
6764
|
+
include_roles_in_id_token: boolean;
|
|
6765
|
+
/** @description Object is related with this account */
|
|
6766
|
+
account: string;
|
|
6767
|
+
/**
|
|
6768
|
+
* @description ApiMetadata
|
|
6769
|
+
* @default {}
|
|
6770
|
+
*/
|
|
6771
|
+
metadata: {
|
|
6772
|
+
[key: string]: unknown;
|
|
6773
|
+
};
|
|
6774
|
+
/** @description Api creation date */
|
|
6775
|
+
createdAt: string;
|
|
6776
|
+
/** @description Api updated date */
|
|
6777
|
+
updatedAt?: string;
|
|
6778
|
+
};
|
|
6779
|
+
};
|
|
5700
6780
|
};
|
|
5701
6781
|
};
|
|
5702
6782
|
};
|
|
@@ -5765,12 +6845,12 @@ export interface operations {
|
|
|
5765
6845
|
"action/list": {
|
|
5766
6846
|
parameters: {
|
|
5767
6847
|
query?: {
|
|
5768
|
-
/** @description
|
|
6848
|
+
/** @description Number of items per page (max 200) */
|
|
6849
|
+
pageSize?: number;
|
|
6850
|
+
/** @description Cursor for next page */
|
|
5769
6851
|
cursor?: string;
|
|
5770
|
-
/** @description
|
|
6852
|
+
/** @description Cursor returned by the previous page */
|
|
5771
6853
|
next?: string;
|
|
5772
|
-
/** @description Size of the results array */
|
|
5773
|
-
pageSize?: number;
|
|
5774
6854
|
/** @description Filter using a FaableQL query */
|
|
5775
6855
|
query?: string;
|
|
5776
6856
|
};
|
|
@@ -5780,16 +6860,14 @@ export interface operations {
|
|
|
5780
6860
|
};
|
|
5781
6861
|
requestBody?: never;
|
|
5782
6862
|
responses: {
|
|
5783
|
-
/** @description
|
|
6863
|
+
/** @description Default Response */
|
|
5784
6864
|
200: {
|
|
5785
6865
|
headers: {
|
|
5786
6866
|
[name: string]: unknown;
|
|
5787
6867
|
};
|
|
5788
6868
|
content: {
|
|
5789
6869
|
"application/json": {
|
|
5790
|
-
/** @description next cursor */
|
|
5791
6870
|
next: string | null;
|
|
5792
|
-
/** @description List of results */
|
|
5793
6871
|
results: components["schemas"]["Action"][];
|
|
5794
6872
|
};
|
|
5795
6873
|
};
|
|
@@ -5931,7 +7009,7 @@ export interface operations {
|
|
|
5931
7009
|
};
|
|
5932
7010
|
};
|
|
5933
7011
|
};
|
|
5934
|
-
"action/
|
|
7012
|
+
"action/delete": {
|
|
5935
7013
|
parameters: {
|
|
5936
7014
|
query?: never;
|
|
5937
7015
|
header?: never;
|
|
@@ -5942,24 +7020,62 @@ export interface operations {
|
|
|
5942
7020
|
};
|
|
5943
7021
|
requestBody?: never;
|
|
5944
7022
|
responses: {
|
|
5945
|
-
/** @description
|
|
7023
|
+
/** @description Action */
|
|
5946
7024
|
200: {
|
|
5947
7025
|
headers: {
|
|
5948
7026
|
[name: string]: unknown;
|
|
5949
7027
|
};
|
|
5950
|
-
content
|
|
7028
|
+
content: {
|
|
7029
|
+
"application/json": {
|
|
7030
|
+
/** @description Action ID */
|
|
7031
|
+
id: string;
|
|
7032
|
+
/** @description Action Name */
|
|
7033
|
+
name: string;
|
|
7034
|
+
/**
|
|
7035
|
+
* @description Trigger event name
|
|
7036
|
+
* @default post-login
|
|
7037
|
+
* @enum {unknown}
|
|
7038
|
+
*/
|
|
7039
|
+
trigger: "continue" | "post-login";
|
|
7040
|
+
/** @description JavaScript Code to execute */
|
|
7041
|
+
code: string;
|
|
7042
|
+
/**
|
|
7043
|
+
* @description Is this action active?
|
|
7044
|
+
* @default true
|
|
7045
|
+
*/
|
|
7046
|
+
enabled: boolean;
|
|
7047
|
+
/**
|
|
7048
|
+
* @description Execution order
|
|
7049
|
+
* @default 0
|
|
7050
|
+
*/
|
|
7051
|
+
order: number;
|
|
7052
|
+
/** @description Object is related with this account */
|
|
7053
|
+
account: string;
|
|
7054
|
+
/**
|
|
7055
|
+
* @description ActionMetadata
|
|
7056
|
+
* @default {}
|
|
7057
|
+
*/
|
|
7058
|
+
metadata: {
|
|
7059
|
+
[key: string]: unknown;
|
|
7060
|
+
};
|
|
7061
|
+
/** @description Action creation date */
|
|
7062
|
+
createdAt: string;
|
|
7063
|
+
/** @description Action updated date */
|
|
7064
|
+
updatedAt?: string;
|
|
7065
|
+
};
|
|
7066
|
+
};
|
|
5951
7067
|
};
|
|
5952
7068
|
};
|
|
5953
7069
|
};
|
|
5954
7070
|
"notificationsubscription/list": {
|
|
5955
7071
|
parameters: {
|
|
5956
7072
|
query?: {
|
|
5957
|
-
/** @description
|
|
7073
|
+
/** @description Number of items per page (max 200) */
|
|
7074
|
+
pageSize?: number;
|
|
7075
|
+
/** @description Cursor for next page */
|
|
5958
7076
|
cursor?: string;
|
|
5959
|
-
/** @description
|
|
7077
|
+
/** @description Cursor returned by the previous page */
|
|
5960
7078
|
next?: string;
|
|
5961
|
-
/** @description Size of the results array */
|
|
5962
|
-
pageSize?: number;
|
|
5963
7079
|
/** @description Filter using a FaableQL query */
|
|
5964
7080
|
query?: string;
|
|
5965
7081
|
};
|
|
@@ -5969,16 +7085,14 @@ export interface operations {
|
|
|
5969
7085
|
};
|
|
5970
7086
|
requestBody?: never;
|
|
5971
7087
|
responses: {
|
|
5972
|
-
/** @description
|
|
7088
|
+
/** @description Default Response */
|
|
5973
7089
|
200: {
|
|
5974
7090
|
headers: {
|
|
5975
7091
|
[name: string]: unknown;
|
|
5976
7092
|
};
|
|
5977
7093
|
content: {
|
|
5978
7094
|
"application/json": {
|
|
5979
|
-
/** @description next cursor */
|
|
5980
7095
|
next: string | null;
|
|
5981
|
-
/** @description List of results */
|
|
5982
7096
|
results: components["schemas"]["NotificationSubscription"][];
|
|
5983
7097
|
};
|
|
5984
7098
|
};
|
|
@@ -6285,7 +7399,7 @@ export interface operations {
|
|
|
6285
7399
|
};
|
|
6286
7400
|
};
|
|
6287
7401
|
};
|
|
6288
|
-
"notificationsubscription/
|
|
7402
|
+
"notificationsubscription/delete": {
|
|
6289
7403
|
parameters: {
|
|
6290
7404
|
query?: never;
|
|
6291
7405
|
header?: never;
|
|
@@ -6296,26 +7410,86 @@ export interface operations {
|
|
|
6296
7410
|
};
|
|
6297
7411
|
requestBody?: never;
|
|
6298
7412
|
responses: {
|
|
6299
|
-
/** @description
|
|
7413
|
+
/** @description NotificationSubscription */
|
|
6300
7414
|
200: {
|
|
6301
7415
|
headers: {
|
|
6302
7416
|
[name: string]: unknown;
|
|
6303
7417
|
};
|
|
6304
|
-
content
|
|
7418
|
+
content: {
|
|
7419
|
+
"application/json": {
|
|
7420
|
+
/** @description NotificationSubscriptionEmail ID */
|
|
7421
|
+
id: string;
|
|
7422
|
+
events: string[];
|
|
7423
|
+
/** @enum {string} */
|
|
7424
|
+
channel: "email";
|
|
7425
|
+
/** @description Whether the subscription is active */
|
|
7426
|
+
active: boolean;
|
|
7427
|
+
config: {
|
|
7428
|
+
recipients: string[];
|
|
7429
|
+
};
|
|
7430
|
+
/** @description Object is related with this account */
|
|
7431
|
+
account: string;
|
|
7432
|
+
/**
|
|
7433
|
+
* @description NotificationSubscriptionEmailMetadata
|
|
7434
|
+
* @default {}
|
|
7435
|
+
*/
|
|
7436
|
+
metadata: {
|
|
7437
|
+
[key: string]: unknown;
|
|
7438
|
+
};
|
|
7439
|
+
/** @description NotificationSubscriptionEmail creation date */
|
|
7440
|
+
createdAt: string;
|
|
7441
|
+
/** @description NotificationSubscriptionEmail updated date */
|
|
7442
|
+
updatedAt?: string;
|
|
7443
|
+
} | {
|
|
7444
|
+
/** @description NotificationSubscriptionWebhook ID */
|
|
7445
|
+
id: string;
|
|
7446
|
+
events: string[];
|
|
7447
|
+
/** @enum {string} */
|
|
7448
|
+
channel: "webhook";
|
|
7449
|
+
/** @description Whether the subscription is active */
|
|
7450
|
+
active: boolean;
|
|
7451
|
+
config: {
|
|
7452
|
+
/**
|
|
7453
|
+
* Format: uri
|
|
7454
|
+
* @description Webhook URL
|
|
7455
|
+
*/
|
|
7456
|
+
url: string;
|
|
7457
|
+
/** @description Secret used to sign the webhook payload */
|
|
7458
|
+
secret: string;
|
|
7459
|
+
};
|
|
7460
|
+
/** @description Object is related with this account */
|
|
7461
|
+
account: string;
|
|
7462
|
+
/**
|
|
7463
|
+
* @description NotificationSubscriptionWebhookMetadata
|
|
7464
|
+
* @default {}
|
|
7465
|
+
*/
|
|
7466
|
+
metadata: {
|
|
7467
|
+
[key: string]: unknown;
|
|
7468
|
+
};
|
|
7469
|
+
/** @description NotificationSubscriptionWebhook creation date */
|
|
7470
|
+
createdAt: string;
|
|
7471
|
+
/** @description NotificationSubscriptionWebhook updated date */
|
|
7472
|
+
updatedAt?: string;
|
|
7473
|
+
};
|
|
7474
|
+
};
|
|
6305
7475
|
};
|
|
6306
7476
|
};
|
|
6307
7477
|
};
|
|
6308
7478
|
"log/list": {
|
|
6309
7479
|
parameters: {
|
|
6310
7480
|
query?: {
|
|
6311
|
-
/** @description
|
|
7481
|
+
/** @description Number of items per page (max 200) */
|
|
7482
|
+
pageSize?: number;
|
|
7483
|
+
/** @description Cursor for next page */
|
|
6312
7484
|
cursor?: string;
|
|
6313
|
-
/** @description
|
|
7485
|
+
/** @description Cursor returned by the previous page */
|
|
6314
7486
|
next?: string;
|
|
6315
|
-
/** @description Size of the results array */
|
|
6316
|
-
pageSize?: number;
|
|
6317
7487
|
/** @description Filter using a FaableQL query */
|
|
6318
7488
|
query?: string;
|
|
7489
|
+
/** @description Expand id-only fields in the response. Pass one path per entry (e.g. `?expand=user`). */
|
|
7490
|
+
expand?: ("user" | "client" | "connection" | "team" | "identity")[];
|
|
7491
|
+
/** @description Full-text search across: `message`. */
|
|
7492
|
+
q?: string;
|
|
6319
7493
|
};
|
|
6320
7494
|
header?: never;
|
|
6321
7495
|
path?: never;
|
|
@@ -6323,16 +7497,14 @@ export interface operations {
|
|
|
6323
7497
|
};
|
|
6324
7498
|
requestBody?: never;
|
|
6325
7499
|
responses: {
|
|
6326
|
-
/** @description
|
|
7500
|
+
/** @description Default Response */
|
|
6327
7501
|
200: {
|
|
6328
7502
|
headers: {
|
|
6329
7503
|
[name: string]: unknown;
|
|
6330
7504
|
};
|
|
6331
7505
|
content: {
|
|
6332
7506
|
"application/json": {
|
|
6333
|
-
/** @description next cursor */
|
|
6334
7507
|
next: string | null;
|
|
6335
|
-
/** @description List of results */
|
|
6336
7508
|
results: components["schemas"]["Log"][];
|
|
6337
7509
|
};
|
|
6338
7510
|
};
|
|
@@ -6341,7 +7513,10 @@ export interface operations {
|
|
|
6341
7513
|
};
|
|
6342
7514
|
"log/get": {
|
|
6343
7515
|
parameters: {
|
|
6344
|
-
query?:
|
|
7516
|
+
query?: {
|
|
7517
|
+
/** @description Expand id-only fields in the response. Pass one path per entry (e.g. `?expand=user`). */
|
|
7518
|
+
expand?: ("user" | "client" | "connection" | "team" | "identity")[];
|
|
7519
|
+
};
|
|
6345
7520
|
header?: never;
|
|
6346
7521
|
path: {
|
|
6347
7522
|
log_id: string;
|
|
@@ -6367,6 +7542,17 @@ export interface operations {
|
|
|
6367
7542
|
message?: string;
|
|
6368
7543
|
/** @description Type-specific structured payload */
|
|
6369
7544
|
data?: unknown;
|
|
7545
|
+
user?: components["schemas"]["User"] | string | unknown;
|
|
7546
|
+
client?: components["schemas"]["Client"] | string | unknown;
|
|
7547
|
+
connection?: components["schemas"]["Connection"] | string | unknown;
|
|
7548
|
+
team?: components["schemas"]["Team"] | string | unknown;
|
|
7549
|
+
identity?: components["schemas"]["Identity"] | string | unknown;
|
|
7550
|
+
ticket?: string;
|
|
7551
|
+
/**
|
|
7552
|
+
* Format: date-time
|
|
7553
|
+
* @description When this log row will be auto-deleted by the Mongo TTL monitor. Absent on rows recorded without `ttl_seconds`.
|
|
7554
|
+
*/
|
|
7555
|
+
expires_at?: string;
|
|
6370
7556
|
/** @description Object is related with this account */
|
|
6371
7557
|
account: string;
|
|
6372
7558
|
/**
|
|
@@ -6408,14 +7594,16 @@ export interface operations {
|
|
|
6408
7594
|
"customdomain/list": {
|
|
6409
7595
|
parameters: {
|
|
6410
7596
|
query?: {
|
|
6411
|
-
/** @description
|
|
7597
|
+
/** @description Number of items per page (max 200) */
|
|
7598
|
+
pageSize?: number;
|
|
7599
|
+
/** @description Cursor for next page */
|
|
6412
7600
|
cursor?: string;
|
|
6413
|
-
/** @description
|
|
7601
|
+
/** @description Cursor returned by the previous page */
|
|
6414
7602
|
next?: string;
|
|
6415
|
-
/** @description Size of the results array */
|
|
6416
|
-
pageSize?: number;
|
|
6417
7603
|
/** @description Filter using a FaableQL query */
|
|
6418
7604
|
query?: string;
|
|
7605
|
+
/** @description Full-text search across: `domain`. */
|
|
7606
|
+
q?: string;
|
|
6419
7607
|
};
|
|
6420
7608
|
header?: never;
|
|
6421
7609
|
path?: never;
|
|
@@ -6423,16 +7611,14 @@ export interface operations {
|
|
|
6423
7611
|
};
|
|
6424
7612
|
requestBody?: never;
|
|
6425
7613
|
responses: {
|
|
6426
|
-
/** @description
|
|
7614
|
+
/** @description Default Response */
|
|
6427
7615
|
200: {
|
|
6428
7616
|
headers: {
|
|
6429
7617
|
[name: string]: unknown;
|
|
6430
7618
|
};
|
|
6431
7619
|
content: {
|
|
6432
7620
|
"application/json": {
|
|
6433
|
-
/** @description next cursor */
|
|
6434
7621
|
next: string | null;
|
|
6435
|
-
/** @description List of results */
|
|
6436
7622
|
results: components["schemas"]["Customdomain"][];
|
|
6437
7623
|
};
|
|
6438
7624
|
};
|
|
@@ -6550,7 +7736,7 @@ export interface operations {
|
|
|
6550
7736
|
};
|
|
6551
7737
|
};
|
|
6552
7738
|
};
|
|
6553
|
-
"customdomain/
|
|
7739
|
+
"customdomain/delete": {
|
|
6554
7740
|
parameters: {
|
|
6555
7741
|
query?: never;
|
|
6556
7742
|
header?: never;
|
|
@@ -6561,12 +7747,43 @@ export interface operations {
|
|
|
6561
7747
|
};
|
|
6562
7748
|
requestBody?: never;
|
|
6563
7749
|
responses: {
|
|
6564
|
-
/** @description
|
|
7750
|
+
/** @description Customdomain */
|
|
6565
7751
|
200: {
|
|
6566
7752
|
headers: {
|
|
6567
7753
|
[name: string]: unknown;
|
|
6568
7754
|
};
|
|
6569
|
-
content
|
|
7755
|
+
content: {
|
|
7756
|
+
"application/json": {
|
|
7757
|
+
/** @description Customdomain ID */
|
|
7758
|
+
id: string;
|
|
7759
|
+
domain: string;
|
|
7760
|
+
token: string;
|
|
7761
|
+
/** @enum {unknown} */
|
|
7762
|
+
status: "PENDING" | "VERIFYING" | "ACTIVE" | "FAILED" | "DEGRADED";
|
|
7763
|
+
attempts: number;
|
|
7764
|
+
/** Format: date-time */
|
|
7765
|
+
nextCheck?: string;
|
|
7766
|
+
/** Format: date-time */
|
|
7767
|
+
lastCheck?: string;
|
|
7768
|
+
/** @description User feedback error from last check */
|
|
7769
|
+
errorLog?: string;
|
|
7770
|
+
/** Format: date-time */
|
|
7771
|
+
verifiedAt?: string;
|
|
7772
|
+
/** @description Object is related with this account */
|
|
7773
|
+
account: string;
|
|
7774
|
+
/**
|
|
7775
|
+
* @description CustomdomainMetadata
|
|
7776
|
+
* @default {}
|
|
7777
|
+
*/
|
|
7778
|
+
metadata: {
|
|
7779
|
+
[key: string]: unknown;
|
|
7780
|
+
};
|
|
7781
|
+
/** @description Customdomain creation date */
|
|
7782
|
+
createdAt: string;
|
|
7783
|
+
/** @description Customdomain updated date */
|
|
7784
|
+
updatedAt?: string;
|
|
7785
|
+
};
|
|
7786
|
+
};
|
|
6570
7787
|
};
|
|
6571
7788
|
};
|
|
6572
7789
|
};
|
|
@@ -6658,12 +7875,20 @@ export interface operations {
|
|
|
6658
7875
|
* @default false
|
|
6659
7876
|
*/
|
|
6660
7877
|
email_verified: boolean;
|
|
7878
|
+
/** @description How `email_verified` was last set. `manual` — admin flipped the flag via `POST /user/:id`. `verification_flow` — user clicked the verification link. `passwordless_otp` — user completed passwordless OTP login. `team_invite` — user clicked a team invitation link. `email_change` — user confirmed a self-service email change. `federated` — verified by the external IdP on OAuth callback. `null` — the field was cleared (admin un-verified the email). */
|
|
7879
|
+
email_verified_method?: "manual" | "verification_flow" | "passwordless_otp" | "team_invite" | "email_change" | "federated" | null;
|
|
7880
|
+
/** @description ISO 8601 timestamp of when `email_verified` was last flipped to true. */
|
|
7881
|
+
email_verified_at?: string | null;
|
|
6661
7882
|
/** @description ISO 8601 timestamp of the user's last verified email change. When set, OAuth callbacks will not overwrite `email`/`email_verified` from the federated provider — the manually-chosen email wins. */
|
|
6662
7883
|
email_change_locked_at?: string | null;
|
|
6663
7884
|
/** @description contact phone number */
|
|
6664
7885
|
phone?: string | null;
|
|
6665
7886
|
/** @description phone is verified */
|
|
6666
7887
|
phone_verified: boolean;
|
|
7888
|
+
/** @description How `phone_verified` was last set. Same enum as `email_verified_method`. */
|
|
7889
|
+
phone_verified_method?: "manual" | "verification_flow" | "passwordless_otp" | "team_invite" | "email_change" | "federated" | null;
|
|
7890
|
+
/** @description ISO 8601 timestamp of when `phone_verified` was last flipped to true. */
|
|
7891
|
+
phone_verified_at?: string | null;
|
|
6667
7892
|
/** @description country iso code */
|
|
6668
7893
|
country_iso?: string | null;
|
|
6669
7894
|
/** @description user birth_date */
|
|
@@ -6786,8 +8011,10 @@ export interface operations {
|
|
|
6786
8011
|
/** @description OIDC §3.1.2.1 — maximum allowable elapsed time in seconds since the last End-User authentication. If exceeded, the OP re-authenticates and `auth_time` is REQUIRED in the resulting id_token. */
|
|
6787
8012
|
max_age?: number;
|
|
6788
8013
|
prompt?: string;
|
|
6789
|
-
/** @description
|
|
8014
|
+
/** @description Auth0-compatible alias for `resource` (RFC 8707). When both are sent they must match. Identifier of the Api the client wants to access; persisted in the auth state so the token issued at /oauth/token targets the matching Api resource. */
|
|
6790
8015
|
audience?: string;
|
|
8016
|
+
/** @description RFC 8707 Resource Indicator. MUST be an absolute URI without fragment. When matched against a registered Api in the tenant the issued access_token gets `aud = <api.identifier>`. */
|
|
8017
|
+
resource?: string;
|
|
6791
8018
|
};
|
|
6792
8019
|
header?: never;
|
|
6793
8020
|
path?: never;
|
|
@@ -6821,8 +8048,10 @@ export interface operations {
|
|
|
6821
8048
|
subject_token_type?: string;
|
|
6822
8049
|
/** @description The device code returned by the authorization server. */
|
|
6823
8050
|
device_code?: string;
|
|
6824
|
-
/** @description
|
|
8051
|
+
/** @description Auth0-compatible alias for `resource` (RFC 8707). When both are provided they must match. */
|
|
6825
8052
|
audience?: string;
|
|
8053
|
+
/** @description RFC 8707 Resource Indicator. Absolute URI of the target Api, no fragment. Matched against `Api.identifier` in the tenant. */
|
|
8054
|
+
resource?: string;
|
|
6826
8055
|
};
|
|
6827
8056
|
header?: never;
|
|
6828
8057
|
path?: never;
|
|
@@ -6865,8 +8094,10 @@ export interface operations {
|
|
|
6865
8094
|
subject_token_type?: string;
|
|
6866
8095
|
/** @description The device code returned by the authorization server. */
|
|
6867
8096
|
device_code?: string;
|
|
6868
|
-
/** @description
|
|
8097
|
+
/** @description Auth0-compatible alias for `resource` (RFC 8707). When both are provided they must match. */
|
|
6869
8098
|
audience?: string;
|
|
8099
|
+
/** @description RFC 8707 Resource Indicator. Absolute URI of the target Api, no fragment. Matched against `Api.identifier` in the tenant. */
|
|
8100
|
+
resource?: string;
|
|
6870
8101
|
};
|
|
6871
8102
|
header?: never;
|
|
6872
8103
|
path?: never;
|
|
@@ -6889,8 +8120,10 @@ export interface operations {
|
|
|
6889
8120
|
subject_token_type?: string;
|
|
6890
8121
|
/** @description The device code returned by the authorization server. */
|
|
6891
8122
|
device_code?: string;
|
|
6892
|
-
/** @description
|
|
8123
|
+
/** @description Auth0-compatible alias for `resource` (RFC 8707). When both are provided they must match. */
|
|
6893
8124
|
audience?: string;
|
|
8125
|
+
/** @description RFC 8707 Resource Indicator. Absolute URI of the target Api, no fragment. Matched against `Api.identifier` in the tenant. */
|
|
8126
|
+
resource?: string;
|
|
6894
8127
|
} & {
|
|
6895
8128
|
[key: string]: unknown;
|
|
6896
8129
|
};
|
|
@@ -7320,8 +8553,10 @@ export interface operations {
|
|
|
7320
8553
|
/** @description OIDC §3.1.2.1 — maximum allowable elapsed time in seconds since the last End-User authentication. If exceeded, the OP re-authenticates and `auth_time` is REQUIRED in the resulting id_token. */
|
|
7321
8554
|
max_age?: number;
|
|
7322
8555
|
prompt?: string;
|
|
7323
|
-
/** @description
|
|
8556
|
+
/** @description Auth0-compatible alias for `resource` (RFC 8707). When both are sent they must match. Identifier of the Api the client wants to access; persisted in the auth state so the token issued at /oauth/token targets the matching Api resource. */
|
|
7324
8557
|
audience?: string;
|
|
8558
|
+
/** @description RFC 8707 Resource Indicator. MUST be an absolute URI without fragment. When matched against a registered Api in the tenant the issued access_token gets `aud = <api.identifier>`. */
|
|
8559
|
+
resource?: string;
|
|
7325
8560
|
};
|
|
7326
8561
|
};
|
|
7327
8562
|
};
|