@faable/auth-sdk 1.3.23 → 1.3.24

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/spec/openapi.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "info": {
4
4
  "title": "@faablecloud/auth",
5
5
  "description": "Auth Platform made by Faable. Manage Users and Roles",
6
- "version": "1.9.1",
6
+ "version": "1.9.2",
7
7
  "license": {
8
8
  "name": "private",
9
9
  "url": "https://faable.com/docs/platform/privacy-policy"
@@ -81,7 +81,9 @@
81
81
  "anyOf": [
82
82
  {
83
83
  "type": "string",
84
- "enum": ["RS256"]
84
+ "enum": [
85
+ "RS256"
86
+ ]
85
87
  }
86
88
  ],
87
89
  "description": "JWA algorithm used to sign tokens issued by this Account. Today only RS256 is implemented."
@@ -109,7 +111,10 @@
109
111
  },
110
112
  "notification_settings": {
111
113
  "type": "object",
112
- "required": ["welcome_email_enabled", "verify_email_auto_send"],
114
+ "required": [
115
+ "welcome_email_enabled",
116
+ "verify_email_auto_send"
117
+ ],
113
118
  "properties": {
114
119
  "welcome_email_enabled": {
115
120
  "type": "boolean",
@@ -128,11 +133,15 @@
128
133
  "anyOf": [
129
134
  {
130
135
  "type": "string",
131
- "enum": ["new_only"]
136
+ "enum": [
137
+ "new_only"
138
+ ]
132
139
  },
133
140
  {
134
141
  "type": "string",
135
- "enum": ["old_and_new"]
142
+ "enum": [
143
+ "old_and_new"
144
+ ]
136
145
  }
137
146
  ],
138
147
  "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."
@@ -141,11 +150,15 @@
141
150
  "anyOf": [
142
151
  {
143
152
  "type": "string",
144
- "enum": ["preserve_manual"]
153
+ "enum": [
154
+ "preserve_manual"
155
+ ]
145
156
  },
146
157
  {
147
158
  "type": "string",
148
- "enum": ["always_sync"]
159
+ "enum": [
160
+ "always_sync"
161
+ ]
149
162
  }
150
163
  ],
151
164
  "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).\n\n- `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.\n- `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.)."
@@ -165,14 +178,19 @@
165
178
  "anyOf": [
166
179
  {
167
180
  "type": "string",
168
- "enum": ["RS256"]
181
+ "enum": [
182
+ "RS256"
183
+ ]
169
184
  }
170
185
  ],
171
186
  "description": "JWA algorithm used to sign tokens issued by this Account. Today only RS256 is implemented."
172
187
  },
173
188
  "AccountNotificationSettings": {
174
189
  "type": "object",
175
- "required": ["welcome_email_enabled", "verify_email_auto_send"],
190
+ "required": [
191
+ "welcome_email_enabled",
192
+ "verify_email_auto_send"
193
+ ],
176
194
  "properties": {
177
195
  "welcome_email_enabled": {
178
196
  "type": "boolean",
@@ -191,11 +209,15 @@
191
209
  "anyOf": [
192
210
  {
193
211
  "type": "string",
194
- "enum": ["new_only"]
212
+ "enum": [
213
+ "new_only"
214
+ ]
195
215
  },
196
216
  {
197
217
  "type": "string",
198
- "enum": ["old_and_new"]
218
+ "enum": [
219
+ "old_and_new"
220
+ ]
199
221
  }
200
222
  ],
201
223
  "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."
@@ -314,11 +336,15 @@
314
336
  "anyOf": [
315
337
  {
316
338
  "type": "string",
317
- "enum": ["preserve_manual"]
339
+ "enum": [
340
+ "preserve_manual"
341
+ ]
318
342
  },
319
343
  {
320
344
  "type": "string",
321
- "enum": ["always_sync"]
345
+ "enum": [
346
+ "always_sync"
347
+ ]
322
348
  }
323
349
  ],
324
350
  "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."
@@ -354,7 +380,10 @@
354
380
  },
355
381
  "ConnectionCreate": {
356
382
  "type": "object",
357
- "required": ["connection_name", "connection_type"],
383
+ "required": [
384
+ "connection_name",
385
+ "connection_type"
386
+ ],
358
387
  "properties": {
359
388
  "connection_name": {
360
389
  "type": "string"
@@ -412,11 +441,15 @@
412
441
  "anyOf": [
413
442
  {
414
443
  "type": "string",
415
- "enum": ["preserve_manual"]
444
+ "enum": [
445
+ "preserve_manual"
446
+ ]
416
447
  },
417
448
  {
418
449
  "type": "string",
419
- "enum": ["always_sync"]
450
+ "enum": [
451
+ "always_sync"
452
+ ]
420
453
  }
421
454
  ],
422
455
  "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).\n\n- `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.\n- `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.)."
@@ -500,11 +533,15 @@
500
533
  "anyOf": [
501
534
  {
502
535
  "type": "string",
503
- "enum": ["preserve_manual"]
536
+ "enum": [
537
+ "preserve_manual"
538
+ ]
504
539
  },
505
540
  {
506
541
  "type": "string",
507
- "enum": ["always_sync"]
542
+ "enum": [
543
+ "always_sync"
544
+ ]
508
545
  },
509
546
  {
510
547
  "type": "null"
@@ -567,7 +604,10 @@
567
604
  ],
568
605
  "properties": {
569
606
  "expiration_mode": {
570
- "enum": ["expire", "not-expire"]
607
+ "enum": [
608
+ "expire",
609
+ "not-expire"
610
+ ]
571
611
  },
572
612
  "infinite_token_lifetime": {
573
613
  "type": "boolean"
@@ -663,7 +703,9 @@
663
703
  },
664
704
  "ClientCreate": {
665
705
  "type": "object",
666
- "required": ["name"],
706
+ "required": [
707
+ "name"
708
+ ],
667
709
  "properties": {
668
710
  "name": {
669
711
  "type": "string"
@@ -733,7 +775,10 @@
733
775
  ],
734
776
  "properties": {
735
777
  "expiration_mode": {
736
- "enum": ["expire", "not-expire"]
778
+ "enum": [
779
+ "expire",
780
+ "not-expire"
781
+ ]
737
782
  },
738
783
  "infinite_token_lifetime": {
739
784
  "type": "boolean"
@@ -863,27 +908,39 @@
863
908
  "anyOf": [
864
909
  {
865
910
  "type": "string",
866
- "enum": ["manual"]
911
+ "enum": [
912
+ "manual"
913
+ ]
867
914
  },
868
915
  {
869
916
  "type": "string",
870
- "enum": ["verification_flow"]
917
+ "enum": [
918
+ "verification_flow"
919
+ ]
871
920
  },
872
921
  {
873
922
  "type": "string",
874
- "enum": ["passwordless_otp"]
923
+ "enum": [
924
+ "passwordless_otp"
925
+ ]
875
926
  },
876
927
  {
877
928
  "type": "string",
878
- "enum": ["team_invite"]
929
+ "enum": [
930
+ "team_invite"
931
+ ]
879
932
  },
880
933
  {
881
934
  "type": "string",
882
- "enum": ["email_change"]
935
+ "enum": [
936
+ "email_change"
937
+ ]
883
938
  },
884
939
  {
885
940
  "type": "string",
886
- "enum": ["federated"]
941
+ "enum": [
942
+ "federated"
943
+ ]
887
944
  },
888
945
  {
889
946
  "type": "null"
@@ -914,27 +971,39 @@
914
971
  "anyOf": [
915
972
  {
916
973
  "type": "string",
917
- "enum": ["manual"]
974
+ "enum": [
975
+ "manual"
976
+ ]
918
977
  },
919
978
  {
920
979
  "type": "string",
921
- "enum": ["verification_flow"]
980
+ "enum": [
981
+ "verification_flow"
982
+ ]
922
983
  },
923
984
  {
924
985
  "type": "string",
925
- "enum": ["passwordless_otp"]
986
+ "enum": [
987
+ "passwordless_otp"
988
+ ]
926
989
  },
927
990
  {
928
991
  "type": "string",
929
- "enum": ["team_invite"]
992
+ "enum": [
993
+ "team_invite"
994
+ ]
930
995
  },
931
996
  {
932
997
  "type": "string",
933
- "enum": ["email_change"]
998
+ "enum": [
999
+ "email_change"
1000
+ ]
934
1001
  },
935
1002
  {
936
1003
  "type": "string",
937
- "enum": ["federated"]
1004
+ "enum": [
1005
+ "federated"
1006
+ ]
938
1007
  },
939
1008
  {
940
1009
  "type": "null"
@@ -1385,7 +1454,13 @@
1385
1454
  },
1386
1455
  "Credential": {
1387
1456
  "type": "object",
1388
- "required": ["id", "connection", "user", "account", "createdAt"],
1457
+ "required": [
1458
+ "id",
1459
+ "connection",
1460
+ "user",
1461
+ "account",
1462
+ "createdAt"
1463
+ ],
1389
1464
  "properties": {
1390
1465
  "id": {
1391
1466
  "type": "string",
@@ -1452,7 +1527,10 @@
1452
1527
  },
1453
1528
  "CredentialsCreate": {
1454
1529
  "type": "object",
1455
- "required": ["user", "connection"],
1530
+ "required": [
1531
+ "user",
1532
+ "connection"
1533
+ ],
1456
1534
  "properties": {
1457
1535
  "user": {
1458
1536
  "type": "string"
@@ -1482,7 +1560,13 @@
1482
1560
  },
1483
1561
  "Role": {
1484
1562
  "type": "object",
1485
- "required": ["id", "name", "description", "account", "createdAt"],
1563
+ "required": [
1564
+ "id",
1565
+ "name",
1566
+ "description",
1567
+ "account",
1568
+ "createdAt"
1569
+ ],
1486
1570
  "properties": {
1487
1571
  "id": {
1488
1572
  "type": "string",
@@ -1528,7 +1612,9 @@
1528
1612
  },
1529
1613
  "RoleCreate": {
1530
1614
  "type": "object",
1531
- "required": ["name"],
1615
+ "required": [
1616
+ "name"
1617
+ ],
1532
1618
  "properties": {
1533
1619
  "name": {
1534
1620
  "type": "string",
@@ -1572,7 +1658,13 @@
1572
1658
  },
1573
1659
  "RoleMember": {
1574
1660
  "type": "object",
1575
- "required": ["id", "role", "user", "account", "createdAt"],
1661
+ "required": [
1662
+ "id",
1663
+ "role",
1664
+ "user",
1665
+ "account",
1666
+ "createdAt"
1667
+ ],
1576
1668
  "properties": {
1577
1669
  "id": {
1578
1670
  "type": "string",
@@ -1633,7 +1725,9 @@
1633
1725
  },
1634
1726
  "RoleMemberCreate": {
1635
1727
  "type": "object",
1636
- "required": ["users"],
1728
+ "required": [
1729
+ "users"
1730
+ ],
1637
1731
  "properties": {
1638
1732
  "users": {
1639
1733
  "type": "array",
@@ -1641,7 +1735,9 @@
1641
1735
  "type": "string"
1642
1736
  },
1643
1737
  "description": "List of User ids to grant the role to. Existing role memberships are preserved; passing a user that already holds the role is a no-op.",
1644
- "example": ["user_6555fd293acc2f0fac0e3452"]
1738
+ "example": [
1739
+ "user_6555fd293acc2f0fac0e3452"
1740
+ ]
1645
1741
  }
1646
1742
  },
1647
1743
  "additionalProperties": false,
@@ -1714,7 +1810,9 @@
1714
1810
  },
1715
1811
  "TeamCreate": {
1716
1812
  "type": "object",
1717
- "required": ["name"],
1813
+ "required": [
1814
+ "name"
1815
+ ],
1718
1816
  "properties": {
1719
1817
  "name": {
1720
1818
  "type": "string",
@@ -1770,7 +1868,14 @@
1770
1868
  },
1771
1869
  "TeamMember": {
1772
1870
  "type": "object",
1773
- "required": ["id", "user", "team", "roles", "account", "createdAt"],
1871
+ "required": [
1872
+ "id",
1873
+ "user",
1874
+ "team",
1875
+ "roles",
1876
+ "account",
1877
+ "createdAt"
1878
+ ],
1774
1879
  "properties": {
1775
1880
  "id": {
1776
1881
  "type": "string",
@@ -1846,7 +1951,9 @@
1846
1951
  },
1847
1952
  "TeamMemberCreate": {
1848
1953
  "type": "object",
1849
- "required": ["users"],
1954
+ "required": [
1955
+ "users"
1956
+ ],
1850
1957
  "properties": {
1851
1958
  "users": {
1852
1959
  "type": "array",
@@ -1854,7 +1961,9 @@
1854
1961
  "type": "string"
1855
1962
  },
1856
1963
  "description": "List of User ids to add as members of the team. Users already in the team are skipped.",
1857
- "example": ["user_6555fd293acc2f0fac0e3452"]
1964
+ "example": [
1965
+ "user_6555fd293acc2f0fac0e3452"
1966
+ ]
1858
1967
  },
1859
1968
  "roles": {
1860
1969
  "type": "array",
@@ -1863,7 +1972,9 @@
1863
1972
  },
1864
1973
  "description": "Role ids to grant to the added members within the scope of this team.",
1865
1974
  "default": [],
1866
- "example": ["role_6555fd293acc2f0fac0e3452"]
1975
+ "example": [
1976
+ "role_6555fd293acc2f0fac0e3452"
1977
+ ]
1867
1978
  }
1868
1979
  },
1869
1980
  "additionalProperties": false,
@@ -1871,7 +1982,9 @@
1871
1982
  },
1872
1983
  "Permission": {
1873
1984
  "type": "object",
1874
- "required": ["value"],
1985
+ "required": [
1986
+ "value"
1987
+ ],
1875
1988
  "properties": {
1876
1989
  "value": {
1877
1990
  "type": "string",
@@ -1887,7 +2000,9 @@
1887
2000
  },
1888
2001
  "PermissionCreate": {
1889
2002
  "type": "object",
1890
- "required": ["value"],
2003
+ "required": [
2004
+ "value"
2005
+ ],
1891
2006
  "properties": {
1892
2007
  "value": {
1893
2008
  "type": "string",
@@ -1906,7 +2021,9 @@
1906
2021
  "anyOf": [
1907
2022
  {
1908
2023
  "type": "string",
1909
- "enum": ["RS256"]
2024
+ "enum": [
2025
+ "RS256"
2026
+ ]
1910
2027
  }
1911
2028
  ],
1912
2029
  "description": "JWA algorithm used to sign access_tokens issued for this API. Currently only RS256 (the account keystore default) is implemented."
@@ -1915,11 +2032,15 @@
1915
2032
  "anyOf": [
1916
2033
  {
1917
2034
  "type": "string",
1918
- "enum": ["access_token"]
2035
+ "enum": [
2036
+ "access_token"
2037
+ ]
1919
2038
  },
1920
2039
  {
1921
2040
  "type": "string",
1922
- "enum": ["access_token_authz"]
2041
+ "enum": [
2042
+ "access_token_authz"
2043
+ ]
1923
2044
  }
1924
2045
  ],
1925
2046
  "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."
@@ -1979,7 +2100,9 @@
1979
2100
  "anyOf": [
1980
2101
  {
1981
2102
  "type": "string",
1982
- "enum": ["RS256"]
2103
+ "enum": [
2104
+ "RS256"
2105
+ ]
1983
2106
  }
1984
2107
  ],
1985
2108
  "description": "JWA algorithm used to sign access_tokens issued for this API. Currently only RS256 (the account keystore default) is implemented."
@@ -1988,11 +2111,15 @@
1988
2111
  "anyOf": [
1989
2112
  {
1990
2113
  "type": "string",
1991
- "enum": ["access_token"]
2114
+ "enum": [
2115
+ "access_token"
2116
+ ]
1992
2117
  },
1993
2118
  {
1994
2119
  "type": "string",
1995
- "enum": ["access_token_authz"]
2120
+ "enum": [
2121
+ "access_token_authz"
2122
+ ]
1996
2123
  }
1997
2124
  ],
1998
2125
  "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."
@@ -2062,7 +2189,10 @@
2062
2189
  },
2063
2190
  "ApiCreate": {
2064
2191
  "type": "object",
2065
- "required": ["name", "identifier"],
2192
+ "required": [
2193
+ "name",
2194
+ "identifier"
2195
+ ],
2066
2196
  "properties": {
2067
2197
  "name": {
2068
2198
  "type": "string",
@@ -2090,7 +2220,9 @@
2090
2220
  "anyOf": [
2091
2221
  {
2092
2222
  "type": "string",
2093
- "enum": ["RS256"]
2223
+ "enum": [
2224
+ "RS256"
2225
+ ]
2094
2226
  }
2095
2227
  ],
2096
2228
  "description": "JWA algorithm used to sign access_tokens issued for this API. Currently only RS256 (the account keystore default) is implemented."
@@ -2099,11 +2231,15 @@
2099
2231
  "anyOf": [
2100
2232
  {
2101
2233
  "type": "string",
2102
- "enum": ["access_token"]
2234
+ "enum": [
2235
+ "access_token"
2236
+ ]
2103
2237
  },
2104
2238
  {
2105
2239
  "type": "string",
2106
- "enum": ["access_token_authz"]
2240
+ "enum": [
2241
+ "access_token_authz"
2242
+ ]
2107
2243
  }
2108
2244
  ],
2109
2245
  "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."
@@ -2168,7 +2304,9 @@
2168
2304
  "anyOf": [
2169
2305
  {
2170
2306
  "type": "string",
2171
- "enum": ["RS256"]
2307
+ "enum": [
2308
+ "RS256"
2309
+ ]
2172
2310
  }
2173
2311
  ],
2174
2312
  "description": "JWA algorithm used to sign access_tokens issued for this API. Currently only RS256 (the account keystore default) is implemented."
@@ -2177,11 +2315,15 @@
2177
2315
  "anyOf": [
2178
2316
  {
2179
2317
  "type": "string",
2180
- "enum": ["access_token"]
2318
+ "enum": [
2319
+ "access_token"
2320
+ ]
2181
2321
  },
2182
2322
  {
2183
2323
  "type": "string",
2184
- "enum": ["access_token_authz"]
2324
+ "enum": [
2325
+ "access_token_authz"
2326
+ ]
2185
2327
  }
2186
2328
  ],
2187
2329
  "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."
@@ -2246,7 +2388,10 @@
2246
2388
  "maxLength": 200
2247
2389
  },
2248
2390
  "trigger": {
2249
- "enum": ["continue", "post-login"],
2391
+ "enum": [
2392
+ "continue",
2393
+ "post-login"
2394
+ ],
2250
2395
  "description": "Trigger event name",
2251
2396
  "default": "post-login"
2252
2397
  },
@@ -2295,7 +2440,10 @@
2295
2440
  },
2296
2441
  "ActionCreate": {
2297
2442
  "type": "object",
2298
- "required": ["name", "trigger"],
2443
+ "required": [
2444
+ "name",
2445
+ "trigger"
2446
+ ],
2299
2447
  "properties": {
2300
2448
  "name": {
2301
2449
  "type": "string",
@@ -2349,7 +2497,9 @@
2349
2497
  },
2350
2498
  "channel": {
2351
2499
  "type": "string",
2352
- "enum": ["email"]
2500
+ "enum": [
2501
+ "email"
2502
+ ]
2353
2503
  },
2354
2504
  "active": {
2355
2505
  "type": "boolean",
@@ -2357,7 +2507,9 @@
2357
2507
  },
2358
2508
  "config": {
2359
2509
  "type": "object",
2360
- "required": ["recipients"],
2510
+ "required": [
2511
+ "recipients"
2512
+ ],
2361
2513
  "properties": {
2362
2514
  "recipients": {
2363
2515
  "type": "array",
@@ -2417,7 +2569,9 @@
2417
2569
  },
2418
2570
  "channel": {
2419
2571
  "type": "string",
2420
- "enum": ["webhook"]
2572
+ "enum": [
2573
+ "webhook"
2574
+ ]
2421
2575
  },
2422
2576
  "active": {
2423
2577
  "type": "boolean",
@@ -2425,7 +2579,10 @@
2425
2579
  },
2426
2580
  "config": {
2427
2581
  "type": "object",
2428
- "required": ["url", "secret"],
2582
+ "required": [
2583
+ "url",
2584
+ "secret"
2585
+ ],
2429
2586
  "properties": {
2430
2587
  "url": {
2431
2588
  "type": "string",
@@ -2489,7 +2646,9 @@
2489
2646
  },
2490
2647
  "channel": {
2491
2648
  "type": "string",
2492
- "enum": ["email"]
2649
+ "enum": [
2650
+ "email"
2651
+ ]
2493
2652
  },
2494
2653
  "active": {
2495
2654
  "type": "boolean",
@@ -2497,7 +2656,9 @@
2497
2656
  },
2498
2657
  "config": {
2499
2658
  "type": "object",
2500
- "required": ["recipients"],
2659
+ "required": [
2660
+ "recipients"
2661
+ ],
2501
2662
  "properties": {
2502
2663
  "recipients": {
2503
2664
  "type": "array",
@@ -2534,7 +2695,9 @@
2534
2695
  },
2535
2696
  "NotificationSubscriptionEmailConfig": {
2536
2697
  "type": "object",
2537
- "required": ["recipients"],
2698
+ "required": [
2699
+ "recipients"
2700
+ ],
2538
2701
  "properties": {
2539
2702
  "recipients": {
2540
2703
  "type": "array",
@@ -2579,7 +2742,9 @@
2579
2742
  },
2580
2743
  "channel": {
2581
2744
  "type": "string",
2582
- "enum": ["webhook"]
2745
+ "enum": [
2746
+ "webhook"
2747
+ ]
2583
2748
  },
2584
2749
  "active": {
2585
2750
  "type": "boolean",
@@ -2587,7 +2752,10 @@
2587
2752
  },
2588
2753
  "config": {
2589
2754
  "type": "object",
2590
- "required": ["url", "secret"],
2755
+ "required": [
2756
+ "url",
2757
+ "secret"
2758
+ ],
2591
2759
  "properties": {
2592
2760
  "url": {
2593
2761
  "type": "string",
@@ -2625,7 +2793,10 @@
2625
2793
  },
2626
2794
  "NotificationSubscriptionWebhookConfig": {
2627
2795
  "type": "object",
2628
- "required": ["url", "secret"],
2796
+ "required": [
2797
+ "url",
2798
+ "secret"
2799
+ ],
2629
2800
  "properties": {
2630
2801
  "url": {
2631
2802
  "type": "string",
@@ -2650,7 +2821,11 @@
2650
2821
  "anyOf": [
2651
2822
  {
2652
2823
  "type": "object",
2653
- "required": ["events", "channel", "config"],
2824
+ "required": [
2825
+ "events",
2826
+ "channel",
2827
+ "config"
2828
+ ],
2654
2829
  "properties": {
2655
2830
  "events": {
2656
2831
  "type": "array",
@@ -2661,7 +2836,9 @@
2661
2836
  },
2662
2837
  "channel": {
2663
2838
  "type": "string",
2664
- "enum": ["email"]
2839
+ "enum": [
2840
+ "email"
2841
+ ]
2665
2842
  },
2666
2843
  "active": {
2667
2844
  "type": "boolean",
@@ -2669,7 +2846,9 @@
2669
2846
  },
2670
2847
  "config": {
2671
2848
  "type": "object",
2672
- "required": ["recipients"],
2849
+ "required": [
2850
+ "recipients"
2851
+ ],
2673
2852
  "properties": {
2674
2853
  "recipients": {
2675
2854
  "type": "array",
@@ -2694,7 +2873,11 @@
2694
2873
  },
2695
2874
  {
2696
2875
  "type": "object",
2697
- "required": ["events", "channel", "config"],
2876
+ "required": [
2877
+ "events",
2878
+ "channel",
2879
+ "config"
2880
+ ],
2698
2881
  "properties": {
2699
2882
  "events": {
2700
2883
  "type": "array",
@@ -2705,7 +2888,9 @@
2705
2888
  },
2706
2889
  "channel": {
2707
2890
  "type": "string",
2708
- "enum": ["webhook"]
2891
+ "enum": [
2892
+ "webhook"
2893
+ ]
2709
2894
  },
2710
2895
  "active": {
2711
2896
  "type": "boolean",
@@ -2713,7 +2898,10 @@
2713
2898
  },
2714
2899
  "config": {
2715
2900
  "type": "object",
2716
- "required": ["url", "secret"],
2901
+ "required": [
2902
+ "url",
2903
+ "secret"
2904
+ ],
2717
2905
  "properties": {
2718
2906
  "url": {
2719
2907
  "type": "string",
@@ -2742,7 +2930,11 @@
2742
2930
  },
2743
2931
  "NotificationSubscriptionEmailCreate": {
2744
2932
  "type": "object",
2745
- "required": ["events", "channel", "config"],
2933
+ "required": [
2934
+ "events",
2935
+ "channel",
2936
+ "config"
2937
+ ],
2746
2938
  "properties": {
2747
2939
  "events": {
2748
2940
  "type": "array",
@@ -2753,7 +2945,9 @@
2753
2945
  },
2754
2946
  "channel": {
2755
2947
  "type": "string",
2756
- "enum": ["email"]
2948
+ "enum": [
2949
+ "email"
2950
+ ]
2757
2951
  },
2758
2952
  "active": {
2759
2953
  "type": "boolean",
@@ -2761,7 +2955,9 @@
2761
2955
  },
2762
2956
  "config": {
2763
2957
  "type": "object",
2764
- "required": ["recipients"],
2958
+ "required": [
2959
+ "recipients"
2960
+ ],
2765
2961
  "properties": {
2766
2962
  "recipients": {
2767
2963
  "type": "array",
@@ -2786,7 +2982,9 @@
2786
2982
  },
2787
2983
  "NotificationSubscriptionEmailConfigCreate": {
2788
2984
  "type": "object",
2789
- "required": ["recipients"],
2985
+ "required": [
2986
+ "recipients"
2987
+ ],
2790
2988
  "properties": {
2791
2989
  "recipients": {
2792
2990
  "type": "array",
@@ -2807,7 +3005,11 @@
2807
3005
  },
2808
3006
  "NotificationSubscriptionWebhookCreate": {
2809
3007
  "type": "object",
2810
- "required": ["events", "channel", "config"],
3008
+ "required": [
3009
+ "events",
3010
+ "channel",
3011
+ "config"
3012
+ ],
2811
3013
  "properties": {
2812
3014
  "events": {
2813
3015
  "type": "array",
@@ -2818,7 +3020,9 @@
2818
3020
  },
2819
3021
  "channel": {
2820
3022
  "type": "string",
2821
- "enum": ["webhook"]
3023
+ "enum": [
3024
+ "webhook"
3025
+ ]
2822
3026
  },
2823
3027
  "active": {
2824
3028
  "type": "boolean",
@@ -2826,7 +3030,10 @@
2826
3030
  },
2827
3031
  "config": {
2828
3032
  "type": "object",
2829
- "required": ["url", "secret"],
3033
+ "required": [
3034
+ "url",
3035
+ "secret"
3036
+ ],
2830
3037
  "properties": {
2831
3038
  "url": {
2832
3039
  "type": "string",
@@ -2852,7 +3059,10 @@
2852
3059
  },
2853
3060
  "NotificationSubscriptionWebhookConfigCreate": {
2854
3061
  "type": "object",
2855
- "required": ["url", "secret"],
3062
+ "required": [
3063
+ "url",
3064
+ "secret"
3065
+ ],
2856
3066
  "properties": {
2857
3067
  "url": {
2858
3068
  "type": "string",
@@ -2886,7 +3096,9 @@
2886
3096
  },
2887
3097
  "channel": {
2888
3098
  "type": "string",
2889
- "enum": ["email"]
3099
+ "enum": [
3100
+ "email"
3101
+ ]
2890
3102
  },
2891
3103
  "active": {
2892
3104
  "type": "boolean",
@@ -2925,7 +3137,9 @@
2925
3137
  },
2926
3138
  "channel": {
2927
3139
  "type": "string",
2928
- "enum": ["webhook"]
3140
+ "enum": [
3141
+ "webhook"
3142
+ ]
2929
3143
  },
2930
3144
  "active": {
2931
3145
  "type": "boolean",
@@ -2970,7 +3184,13 @@
2970
3184
  },
2971
3185
  "Log": {
2972
3186
  "type": "object",
2973
- "required": ["id", "type", "status", "account", "createdAt"],
3187
+ "required": [
3188
+ "id",
3189
+ "type",
3190
+ "status",
3191
+ "account",
3192
+ "createdAt"
3193
+ ],
2974
3194
  "properties": {
2975
3195
  "id": {
2976
3196
  "type": "string",
@@ -2984,19 +3204,27 @@
2984
3204
  "anyOf": [
2985
3205
  {
2986
3206
  "type": "string",
2987
- "enum": ["success"]
3207
+ "enum": [
3208
+ "success"
3209
+ ]
2988
3210
  },
2989
3211
  {
2990
3212
  "type": "string",
2991
- "enum": ["failed"]
3213
+ "enum": [
3214
+ "failed"
3215
+ ]
2992
3216
  },
2993
3217
  {
2994
3218
  "type": "string",
2995
- "enum": ["skipped"]
3219
+ "enum": [
3220
+ "skipped"
3221
+ ]
2996
3222
  },
2997
3223
  {
2998
3224
  "type": "string",
2999
- "enum": ["info"]
3225
+ "enum": [
3226
+ "info"
3227
+ ]
3000
3228
  }
3001
3229
  ],
3002
3230
  "description": "Log status"
@@ -3123,7 +3351,13 @@
3123
3351
  "type": "string"
3124
3352
  },
3125
3353
  "status": {
3126
- "enum": ["PENDING", "VERIFYING", "ACTIVE", "FAILED", "DEGRADED"]
3354
+ "enum": [
3355
+ "PENDING",
3356
+ "VERIFYING",
3357
+ "ACTIVE",
3358
+ "FAILED",
3359
+ "DEGRADED"
3360
+ ]
3127
3361
  },
3128
3362
  "attempts": {
3129
3363
  "type": "number"
@@ -3175,7 +3409,9 @@
3175
3409
  },
3176
3410
  "CustomdomainCreate": {
3177
3411
  "type": "object",
3178
- "required": ["domain"],
3412
+ "required": [
3413
+ "domain"
3414
+ ],
3179
3415
  "properties": {
3180
3416
  "domain": {
3181
3417
  "type": "string"
@@ -3198,7 +3434,9 @@
3198
3434
  },
3199
3435
  "ClientRegistrationRequest": {
3200
3436
  "type": "object",
3201
- "required": ["redirect_uris"],
3437
+ "required": [
3438
+ "redirect_uris"
3439
+ ],
3202
3440
  "properties": {
3203
3441
  "redirect_uris": {
3204
3442
  "type": "array",
@@ -3255,11 +3493,15 @@
3255
3493
  "anyOf": [
3256
3494
  {
3257
3495
  "type": "string",
3258
- "enum": ["web"]
3496
+ "enum": [
3497
+ "web"
3498
+ ]
3259
3499
  },
3260
3500
  {
3261
3501
  "type": "string",
3262
- "enum": ["native"]
3502
+ "enum": [
3503
+ "native"
3504
+ ]
3263
3505
  }
3264
3506
  ],
3265
3507
  "description": "OIDC §2 — application type. Defaults to \"web\"."
@@ -3391,7 +3633,10 @@
3391
3633
  },
3392
3634
  "AuthAccountCreate": {
3393
3635
  "type": "object",
3394
- "required": ["name", "team"],
3636
+ "required": [
3637
+ "name",
3638
+ "team"
3639
+ ],
3395
3640
  "properties": {
3396
3641
  "name": {
3397
3642
  "type": "string"
@@ -3483,31 +3728,45 @@
3483
3728
  "anyOf": [
3484
3729
  {
3485
3730
  "type": "string",
3486
- "enum": ["authorization_code"]
3731
+ "enum": [
3732
+ "authorization_code"
3733
+ ]
3487
3734
  },
3488
3735
  {
3489
3736
  "type": "string",
3490
- "enum": ["client_credentials"]
3737
+ "enum": [
3738
+ "client_credentials"
3739
+ ]
3491
3740
  },
3492
3741
  {
3493
3742
  "type": "string",
3494
- "enum": ["refresh_token"]
3743
+ "enum": [
3744
+ "refresh_token"
3745
+ ]
3495
3746
  },
3496
3747
  {
3497
3748
  "type": "string",
3498
- "enum": ["password"]
3749
+ "enum": [
3750
+ "password"
3751
+ ]
3499
3752
  },
3500
3753
  {
3501
3754
  "type": "string",
3502
- "enum": ["http://auth0.com/oauth/grant-type/passwordless/otp"]
3755
+ "enum": [
3756
+ "http://auth0.com/oauth/grant-type/passwordless/otp"
3757
+ ]
3503
3758
  },
3504
3759
  {
3505
3760
  "type": "string",
3506
- "enum": ["urn:ietf:params:oauth:grant-type:token-exchange"]
3761
+ "enum": [
3762
+ "urn:ietf:params:oauth:grant-type:token-exchange"
3763
+ ]
3507
3764
  },
3508
3765
  {
3509
3766
  "type": "string",
3510
- "enum": ["urn:ietf:params:oauth:grant-type:device_code"]
3767
+ "enum": [
3768
+ "urn:ietf:params:oauth:grant-type:device_code"
3769
+ ]
3511
3770
  }
3512
3771
  ],
3513
3772
  "description": "Grant Type. https://oauth.net/2/grant-types/"
@@ -3561,38 +3820,56 @@
3561
3820
  "anyOf": [
3562
3821
  {
3563
3822
  "type": "string",
3564
- "enum": ["authorization_code"]
3823
+ "enum": [
3824
+ "authorization_code"
3825
+ ]
3565
3826
  },
3566
3827
  {
3567
3828
  "type": "string",
3568
- "enum": ["client_credentials"]
3829
+ "enum": [
3830
+ "client_credentials"
3831
+ ]
3569
3832
  },
3570
3833
  {
3571
3834
  "type": "string",
3572
- "enum": ["refresh_token"]
3835
+ "enum": [
3836
+ "refresh_token"
3837
+ ]
3573
3838
  },
3574
3839
  {
3575
3840
  "type": "string",
3576
- "enum": ["password"]
3841
+ "enum": [
3842
+ "password"
3843
+ ]
3577
3844
  },
3578
3845
  {
3579
3846
  "type": "string",
3580
- "enum": ["http://auth0.com/oauth/grant-type/passwordless/otp"]
3847
+ "enum": [
3848
+ "http://auth0.com/oauth/grant-type/passwordless/otp"
3849
+ ]
3581
3850
  },
3582
3851
  {
3583
3852
  "type": "string",
3584
- "enum": ["urn:ietf:params:oauth:grant-type:token-exchange"]
3853
+ "enum": [
3854
+ "urn:ietf:params:oauth:grant-type:token-exchange"
3855
+ ]
3585
3856
  },
3586
3857
  {
3587
3858
  "type": "string",
3588
- "enum": ["urn:ietf:params:oauth:grant-type:device_code"]
3859
+ "enum": [
3860
+ "urn:ietf:params:oauth:grant-type:device_code"
3861
+ ]
3589
3862
  }
3590
3863
  ],
3591
3864
  "description": "Grant Type. https://oauth.net/2/grant-types/"
3592
3865
  },
3593
3866
  "UsernamepasswordLoginBody": {
3594
3867
  "type": "object",
3595
- "required": ["username", "password", "client_id"],
3868
+ "required": [
3869
+ "username",
3870
+ "password",
3871
+ "client_id"
3872
+ ],
3596
3873
  "properties": {
3597
3874
  "username": {
3598
3875
  "type": "string"
@@ -3655,7 +3932,11 @@
3655
3932
  },
3656
3933
  "LoginCallbackBody": {
3657
3934
  "type": "object",
3658
- "required": ["wa", "wresult", "wctx"],
3935
+ "required": [
3936
+ "wa",
3937
+ "wresult",
3938
+ "wctx"
3939
+ ],
3659
3940
  "properties": {
3660
3941
  "wa": {
3661
3942
  "type": "string",
@@ -3678,7 +3959,9 @@
3678
3959
  "get": {
3679
3960
  "operationId": "account/current",
3680
3961
  "summary": "Get current Account",
3681
- "tags": ["account"],
3962
+ "tags": [
3963
+ "account"
3964
+ ],
3682
3965
  "description": "Returns the Account resolved from request context (header, hostname, or team id). Use `expand` to populate nested references.",
3683
3966
  "parameters": [
3684
3967
  {
@@ -3750,7 +4033,9 @@
3750
4033
  "anyOf": [
3751
4034
  {
3752
4035
  "type": "string",
3753
- "enum": ["RS256"]
4036
+ "enum": [
4037
+ "RS256"
4038
+ ]
3754
4039
  }
3755
4040
  ],
3756
4041
  "description": "JWA algorithm used to sign tokens issued by this Account. Today only RS256 is implemented."
@@ -3800,11 +4085,15 @@
3800
4085
  "anyOf": [
3801
4086
  {
3802
4087
  "type": "string",
3803
- "enum": ["new_only"]
4088
+ "enum": [
4089
+ "new_only"
4090
+ ]
3804
4091
  },
3805
4092
  {
3806
4093
  "type": "string",
3807
- "enum": ["old_and_new"]
4094
+ "enum": [
4095
+ "old_and_new"
4096
+ ]
3808
4097
  }
3809
4098
  ],
3810
4099
  "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."
@@ -3813,11 +4102,15 @@
3813
4102
  "anyOf": [
3814
4103
  {
3815
4104
  "type": "string",
3816
- "enum": ["preserve_manual"]
4105
+ "enum": [
4106
+ "preserve_manual"
4107
+ ]
3817
4108
  },
3818
4109
  {
3819
4110
  "type": "string",
3820
- "enum": ["always_sync"]
4111
+ "enum": [
4112
+ "always_sync"
4113
+ ]
3821
4114
  }
3822
4115
  ],
3823
4116
  "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).\n\n- `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.\n- `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.)."
@@ -3843,7 +4136,9 @@
3843
4136
  "post": {
3844
4137
  "operationId": "account/create",
3845
4138
  "summary": "Create an Account",
3846
- "tags": ["account"],
4139
+ "tags": [
4140
+ "account"
4141
+ ],
3847
4142
  "description": "Creates a new Auth Account. The slug is derived from the name and used to build the default `*.auth.faable.link` domain.",
3848
4143
  "requestBody": {
3849
4144
  "required": true,
@@ -3851,7 +4146,10 @@
3851
4146
  "application/json": {
3852
4147
  "schema": {
3853
4148
  "type": "object",
3854
- "required": ["name", "team"],
4149
+ "required": [
4150
+ "name",
4151
+ "team"
4152
+ ],
3855
4153
  "properties": {
3856
4154
  "name": {
3857
4155
  "type": "string"
@@ -3943,7 +4241,9 @@
3943
4241
  "anyOf": [
3944
4242
  {
3945
4243
  "type": "string",
3946
- "enum": ["RS256"]
4244
+ "enum": [
4245
+ "RS256"
4246
+ ]
3947
4247
  }
3948
4248
  ],
3949
4249
  "description": "JWA algorithm used to sign tokens issued by this Account. Today only RS256 is implemented."
@@ -3993,11 +4293,15 @@
3993
4293
  "anyOf": [
3994
4294
  {
3995
4295
  "type": "string",
3996
- "enum": ["new_only"]
4296
+ "enum": [
4297
+ "new_only"
4298
+ ]
3997
4299
  },
3998
4300
  {
3999
4301
  "type": "string",
4000
- "enum": ["old_and_new"]
4302
+ "enum": [
4303
+ "old_and_new"
4304
+ ]
4001
4305
  }
4002
4306
  ],
4003
4307
  "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."
@@ -4006,11 +4310,15 @@
4006
4310
  "anyOf": [
4007
4311
  {
4008
4312
  "type": "string",
4009
- "enum": ["preserve_manual"]
4313
+ "enum": [
4314
+ "preserve_manual"
4315
+ ]
4010
4316
  },
4011
4317
  {
4012
4318
  "type": "string",
4013
- "enum": ["always_sync"]
4319
+ "enum": [
4320
+ "always_sync"
4321
+ ]
4014
4322
  }
4015
4323
  ],
4016
4324
  "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).\n\n- `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.\n- `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.)."
@@ -4034,7 +4342,9 @@
4034
4342
  "get": {
4035
4343
  "operationId": "account/list",
4036
4344
  "summary": "List Accounts",
4037
- "tags": ["account"],
4345
+ "tags": [
4346
+ "account"
4347
+ ],
4038
4348
  "description": "List Accounts owned by the requesting project/team. Supports cursor pagination and `expand`.",
4039
4349
  "parameters": [
4040
4350
  {
@@ -4085,7 +4395,10 @@
4085
4395
  "application/json": {
4086
4396
  "schema": {
4087
4397
  "type": "object",
4088
- "required": ["next", "results"],
4398
+ "required": [
4399
+ "next",
4400
+ "results"
4401
+ ],
4089
4402
  "properties": {
4090
4403
  "next": {
4091
4404
  "type": "string",
@@ -4113,7 +4426,9 @@
4113
4426
  "get": {
4114
4427
  "operationId": "account/get",
4115
4428
  "summary": "Get an Account",
4116
- "tags": ["account"],
4429
+ "tags": [
4430
+ "account"
4431
+ ],
4117
4432
  "description": "Fetch a single Account by its id. Use `expand` to populate id-only fields (e.g. `default_connection`) inline.",
4118
4433
  "parameters": [
4119
4434
  {
@@ -4193,7 +4508,9 @@
4193
4508
  "anyOf": [
4194
4509
  {
4195
4510
  "type": "string",
4196
- "enum": ["RS256"]
4511
+ "enum": [
4512
+ "RS256"
4513
+ ]
4197
4514
  }
4198
4515
  ],
4199
4516
  "description": "JWA algorithm used to sign tokens issued by this Account. Today only RS256 is implemented."
@@ -4243,11 +4560,15 @@
4243
4560
  "anyOf": [
4244
4561
  {
4245
4562
  "type": "string",
4246
- "enum": ["new_only"]
4563
+ "enum": [
4564
+ "new_only"
4565
+ ]
4247
4566
  },
4248
4567
  {
4249
4568
  "type": "string",
4250
- "enum": ["old_and_new"]
4569
+ "enum": [
4570
+ "old_and_new"
4571
+ ]
4251
4572
  }
4252
4573
  ],
4253
4574
  "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."
@@ -4256,11 +4577,15 @@
4256
4577
  "anyOf": [
4257
4578
  {
4258
4579
  "type": "string",
4259
- "enum": ["preserve_manual"]
4580
+ "enum": [
4581
+ "preserve_manual"
4582
+ ]
4260
4583
  },
4261
4584
  {
4262
4585
  "type": "string",
4263
- "enum": ["always_sync"]
4586
+ "enum": [
4587
+ "always_sync"
4588
+ ]
4264
4589
  }
4265
4590
  ],
4266
4591
  "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).\n\n- `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.\n- `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.)."
@@ -4284,7 +4609,9 @@
4284
4609
  "post": {
4285
4610
  "operationId": "account/update",
4286
4611
  "summary": "Update an Account",
4287
- "tags": ["account"],
4612
+ "tags": [
4613
+ "account"
4614
+ ],
4288
4615
  "description": "Update the Account configuration such as branding (logo and icon URLs).",
4289
4616
  "requestBody": {
4290
4617
  "required": true,
@@ -4405,7 +4732,9 @@
4405
4732
  "anyOf": [
4406
4733
  {
4407
4734
  "type": "string",
4408
- "enum": ["RS256"]
4735
+ "enum": [
4736
+ "RS256"
4737
+ ]
4409
4738
  }
4410
4739
  ],
4411
4740
  "description": "JWA algorithm used to sign tokens issued by this Account. Today only RS256 is implemented."
@@ -4455,11 +4784,15 @@
4455
4784
  "anyOf": [
4456
4785
  {
4457
4786
  "type": "string",
4458
- "enum": ["new_only"]
4787
+ "enum": [
4788
+ "new_only"
4789
+ ]
4459
4790
  },
4460
4791
  {
4461
4792
  "type": "string",
4462
- "enum": ["old_and_new"]
4793
+ "enum": [
4794
+ "old_and_new"
4795
+ ]
4463
4796
  }
4464
4797
  ],
4465
4798
  "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."
@@ -4468,11 +4801,15 @@
4468
4801
  "anyOf": [
4469
4802
  {
4470
4803
  "type": "string",
4471
- "enum": ["preserve_manual"]
4804
+ "enum": [
4805
+ "preserve_manual"
4806
+ ]
4472
4807
  },
4473
4808
  {
4474
4809
  "type": "string",
4475
- "enum": ["always_sync"]
4810
+ "enum": [
4811
+ "always_sync"
4812
+ ]
4476
4813
  }
4477
4814
  ],
4478
4815
  "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).\n\n- `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.\n- `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.)."
@@ -4496,7 +4833,9 @@
4496
4833
  "delete": {
4497
4834
  "operationId": "account/delete",
4498
4835
  "summary": "Delete an Account",
4499
- "tags": ["account"],
4836
+ "tags": [
4837
+ "account"
4838
+ ],
4500
4839
  "description": "Permanently removes an Account and its associated data. This action cannot be undone.",
4501
4840
  "parameters": [
4502
4841
  {
@@ -4515,7 +4854,9 @@
4515
4854
  "get": {
4516
4855
  "operationId": "account/getByHost",
4517
4856
  "summary": "Find Account by host",
4518
- "tags": ["account"],
4857
+ "tags": [
4858
+ "account"
4859
+ ],
4519
4860
  "description": "Looks up the Account that owns the given hostname, checking both the built-in `*.auth.faable.link` slug and any verified custom domains.",
4520
4861
  "parameters": [
4521
4862
  {
@@ -4582,7 +4923,9 @@
4582
4923
  "anyOf": [
4583
4924
  {
4584
4925
  "type": "string",
4585
- "enum": ["RS256"]
4926
+ "enum": [
4927
+ "RS256"
4928
+ ]
4586
4929
  }
4587
4930
  ],
4588
4931
  "description": "JWA algorithm used to sign tokens issued by this Account. Today only RS256 is implemented."
@@ -4632,11 +4975,15 @@
4632
4975
  "anyOf": [
4633
4976
  {
4634
4977
  "type": "string",
4635
- "enum": ["new_only"]
4978
+ "enum": [
4979
+ "new_only"
4980
+ ]
4636
4981
  },
4637
4982
  {
4638
4983
  "type": "string",
4639
- "enum": ["old_and_new"]
4984
+ "enum": [
4985
+ "old_and_new"
4986
+ ]
4640
4987
  }
4641
4988
  ],
4642
4989
  "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."
@@ -4645,11 +4992,15 @@
4645
4992
  "anyOf": [
4646
4993
  {
4647
4994
  "type": "string",
4648
- "enum": ["preserve_manual"]
4995
+ "enum": [
4996
+ "preserve_manual"
4997
+ ]
4649
4998
  },
4650
4999
  {
4651
5000
  "type": "string",
4652
- "enum": ["always_sync"]
5001
+ "enum": [
5002
+ "always_sync"
5003
+ ]
4653
5004
  }
4654
5005
  ],
4655
5006
  "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).\n\n- `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.\n- `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.)."
@@ -4675,7 +5026,9 @@
4675
5026
  "get": {
4676
5027
  "operationId": "connection/list",
4677
5028
  "summary": "List Connections",
4678
- "tags": ["connection"],
5029
+ "tags": [
5030
+ "connection"
5031
+ ],
4679
5032
  "description": "List Connections",
4680
5033
  "parameters": [
4681
5034
  {
@@ -4735,7 +5088,10 @@
4735
5088
  "application/json": {
4736
5089
  "schema": {
4737
5090
  "type": "object",
4738
- "required": ["next", "results"],
5091
+ "required": [
5092
+ "next",
5093
+ "results"
5094
+ ],
4739
5095
  "properties": {
4740
5096
  "next": {
4741
5097
  "anyOf": [
@@ -4764,7 +5120,9 @@
4764
5120
  "post": {
4765
5121
  "operationId": "connection/create",
4766
5122
  "summary": "Create Connection",
4767
- "tags": ["connection"],
5123
+ "tags": [
5124
+ "connection"
5125
+ ],
4768
5126
  "description": "Create Connection",
4769
5127
  "requestBody": {
4770
5128
  "required": true,
@@ -4772,7 +5130,10 @@
4772
5130
  "application/json": {
4773
5131
  "schema": {
4774
5132
  "type": "object",
4775
- "required": ["connection_name", "connection_type"],
5133
+ "required": [
5134
+ "connection_name",
5135
+ "connection_type"
5136
+ ],
4776
5137
  "properties": {
4777
5138
  "connection_name": {
4778
5139
  "type": "string"
@@ -4830,11 +5191,15 @@
4830
5191
  "anyOf": [
4831
5192
  {
4832
5193
  "type": "string",
4833
- "enum": ["preserve_manual"]
5194
+ "enum": [
5195
+ "preserve_manual"
5196
+ ]
4834
5197
  },
4835
5198
  {
4836
5199
  "type": "string",
4837
- "enum": ["always_sync"]
5200
+ "enum": [
5201
+ "always_sync"
5202
+ ]
4838
5203
  }
4839
5204
  ],
4840
5205
  "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).\n\n- `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.\n- `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.)."
@@ -4972,11 +5337,15 @@
4972
5337
  "anyOf": [
4973
5338
  {
4974
5339
  "type": "string",
4975
- "enum": ["preserve_manual"]
5340
+ "enum": [
5341
+ "preserve_manual"
5342
+ ]
4976
5343
  },
4977
5344
  {
4978
5345
  "type": "string",
4979
- "enum": ["always_sync"]
5346
+ "enum": [
5347
+ "always_sync"
5348
+ ]
4980
5349
  }
4981
5350
  ],
4982
5351
  "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."
@@ -5013,7 +5382,9 @@
5013
5382
  "get": {
5014
5383
  "operationId": "connection/get",
5015
5384
  "summary": "Get Connection",
5016
- "tags": ["connection"],
5385
+ "tags": [
5386
+ "connection"
5387
+ ],
5017
5388
  "description": "Get Connection",
5018
5389
  "parameters": [
5019
5390
  {
@@ -5144,11 +5515,15 @@
5144
5515
  "anyOf": [
5145
5516
  {
5146
5517
  "type": "string",
5147
- "enum": ["preserve_manual"]
5518
+ "enum": [
5519
+ "preserve_manual"
5520
+ ]
5148
5521
  },
5149
5522
  {
5150
5523
  "type": "string",
5151
- "enum": ["always_sync"]
5524
+ "enum": [
5525
+ "always_sync"
5526
+ ]
5152
5527
  }
5153
5528
  ],
5154
5529
  "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."
@@ -5183,7 +5558,9 @@
5183
5558
  "post": {
5184
5559
  "operationId": "connection/update",
5185
5560
  "summary": "Update Connection",
5186
- "tags": ["connection"],
5561
+ "tags": [
5562
+ "connection"
5563
+ ],
5187
5564
  "description": "Update Connection",
5188
5565
  "requestBody": {
5189
5566
  "required": true,
@@ -5252,11 +5629,15 @@
5252
5629
  "anyOf": [
5253
5630
  {
5254
5631
  "type": "string",
5255
- "enum": ["preserve_manual"]
5632
+ "enum": [
5633
+ "preserve_manual"
5634
+ ]
5256
5635
  },
5257
5636
  {
5258
5637
  "type": "string",
5259
- "enum": ["always_sync"]
5638
+ "enum": [
5639
+ "always_sync"
5640
+ ]
5260
5641
  },
5261
5642
  {
5262
5643
  "type": "null"
@@ -5400,11 +5781,15 @@
5400
5781
  "anyOf": [
5401
5782
  {
5402
5783
  "type": "string",
5403
- "enum": ["preserve_manual"]
5784
+ "enum": [
5785
+ "preserve_manual"
5786
+ ]
5404
5787
  },
5405
5788
  {
5406
5789
  "type": "string",
5407
- "enum": ["always_sync"]
5790
+ "enum": [
5791
+ "always_sync"
5792
+ ]
5408
5793
  }
5409
5794
  ],
5410
5795
  "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."
@@ -5439,7 +5824,9 @@
5439
5824
  "delete": {
5440
5825
  "operationId": "connection/delete",
5441
5826
  "summary": "Delete Connection",
5442
- "tags": ["connection"],
5827
+ "tags": [
5828
+ "connection"
5829
+ ],
5443
5830
  "description": "Delete Connection",
5444
5831
  "parameters": [
5445
5832
  {
@@ -5570,11 +5957,15 @@
5570
5957
  "anyOf": [
5571
5958
  {
5572
5959
  "type": "string",
5573
- "enum": ["preserve_manual"]
5960
+ "enum": [
5961
+ "preserve_manual"
5962
+ ]
5574
5963
  },
5575
5964
  {
5576
5965
  "type": "string",
5577
- "enum": ["always_sync"]
5966
+ "enum": [
5967
+ "always_sync"
5968
+ ]
5578
5969
  }
5579
5970
  ],
5580
5971
  "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."
@@ -5611,7 +6002,9 @@
5611
6002
  "get": {
5612
6003
  "operationId": "client/list",
5613
6004
  "summary": "List Clients",
5614
- "tags": ["client"],
6005
+ "tags": [
6006
+ "client"
6007
+ ],
5615
6008
  "description": "List Clients",
5616
6009
  "parameters": [
5617
6010
  {
@@ -5671,7 +6064,10 @@
5671
6064
  "application/json": {
5672
6065
  "schema": {
5673
6066
  "type": "object",
5674
- "required": ["next", "results"],
6067
+ "required": [
6068
+ "next",
6069
+ "results"
6070
+ ],
5675
6071
  "properties": {
5676
6072
  "next": {
5677
6073
  "anyOf": [
@@ -5700,7 +6096,9 @@
5700
6096
  "post": {
5701
6097
  "operationId": "client/create",
5702
6098
  "summary": "Create Client",
5703
- "tags": ["client"],
6099
+ "tags": [
6100
+ "client"
6101
+ ],
5704
6102
  "description": "Create Client",
5705
6103
  "requestBody": {
5706
6104
  "required": true,
@@ -5708,7 +6106,9 @@
5708
6106
  "application/json": {
5709
6107
  "schema": {
5710
6108
  "type": "object",
5711
- "required": ["name"],
6109
+ "required": [
6110
+ "name"
6111
+ ],
5712
6112
  "properties": {
5713
6113
  "name": {
5714
6114
  "type": "string"
@@ -5799,7 +6199,10 @@
5799
6199
  ],
5800
6200
  "properties": {
5801
6201
  "expiration_mode": {
5802
- "enum": ["expire", "not-expire"]
6202
+ "enum": [
6203
+ "expire",
6204
+ "not-expire"
6205
+ ]
5803
6206
  },
5804
6207
  "infinite_token_lifetime": {
5805
6208
  "type": "boolean"
@@ -5896,7 +6299,9 @@
5896
6299
  "get": {
5897
6300
  "operationId": "client/get",
5898
6301
  "summary": "Get Client",
5899
- "tags": ["client"],
6302
+ "tags": [
6303
+ "client"
6304
+ ],
5900
6305
  "description": "Get Client",
5901
6306
  "parameters": [
5902
6307
  {
@@ -5965,7 +6370,10 @@
5965
6370
  ],
5966
6371
  "properties": {
5967
6372
  "expiration_mode": {
5968
- "enum": ["expire", "not-expire"]
6373
+ "enum": [
6374
+ "expire",
6375
+ "not-expire"
6376
+ ]
5969
6377
  },
5970
6378
  "infinite_token_lifetime": {
5971
6379
  "type": "boolean"
@@ -6060,7 +6468,9 @@
6060
6468
  "post": {
6061
6469
  "operationId": "client/update",
6062
6470
  "summary": "Update Client",
6063
- "tags": ["client"],
6471
+ "tags": [
6472
+ "client"
6473
+ ],
6064
6474
  "description": "Update Client",
6065
6475
  "requestBody": {
6066
6476
  "required": true,
@@ -6100,7 +6510,10 @@
6100
6510
  ],
6101
6511
  "properties": {
6102
6512
  "expiration_mode": {
6103
- "enum": ["expire", "not-expire"]
6513
+ "enum": [
6514
+ "expire",
6515
+ "not-expire"
6516
+ ]
6104
6517
  },
6105
6518
  "infinite_token_lifetime": {
6106
6519
  "type": "boolean"
@@ -6240,7 +6653,10 @@
6240
6653
  ],
6241
6654
  "properties": {
6242
6655
  "expiration_mode": {
6243
- "enum": ["expire", "not-expire"]
6656
+ "enum": [
6657
+ "expire",
6658
+ "not-expire"
6659
+ ]
6244
6660
  },
6245
6661
  "infinite_token_lifetime": {
6246
6662
  "type": "boolean"
@@ -6335,7 +6751,9 @@
6335
6751
  "delete": {
6336
6752
  "operationId": "client/delete",
6337
6753
  "summary": "Delete Client",
6338
- "tags": ["client"],
6754
+ "tags": [
6755
+ "client"
6756
+ ],
6339
6757
  "description": "Delete Client",
6340
6758
  "parameters": [
6341
6759
  {
@@ -6404,7 +6822,10 @@
6404
6822
  ],
6405
6823
  "properties": {
6406
6824
  "expiration_mode": {
6407
- "enum": ["expire", "not-expire"]
6825
+ "enum": [
6826
+ "expire",
6827
+ "not-expire"
6828
+ ]
6408
6829
  },
6409
6830
  "infinite_token_lifetime": {
6410
6831
  "type": "boolean"
@@ -6501,7 +6922,9 @@
6501
6922
  "post": {
6502
6923
  "operationId": "client/rotateSecret",
6503
6924
  "summary": "Rotate a Client's secret",
6504
- "tags": ["client"],
6925
+ "tags": [
6926
+ "client"
6927
+ ],
6505
6928
  "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.",
6506
6929
  "parameters": [
6507
6930
  {
@@ -6570,7 +6993,10 @@
6570
6993
  ],
6571
6994
  "properties": {
6572
6995
  "expiration_mode": {
6573
- "enum": ["expire", "not-expire"]
6996
+ "enum": [
6997
+ "expire",
6998
+ "not-expire"
6999
+ ]
6574
7000
  },
6575
7001
  "infinite_token_lifetime": {
6576
7002
  "type": "boolean"
@@ -6667,7 +7093,9 @@
6667
7093
  "get": {
6668
7094
  "operationId": "user/list",
6669
7095
  "summary": "List Users",
6670
- "tags": ["user"],
7096
+ "tags": [
7097
+ "user"
7098
+ ],
6671
7099
  "description": "List Users",
6672
7100
  "parameters": [
6673
7101
  {
@@ -6727,7 +7155,10 @@
6727
7155
  "application/json": {
6728
7156
  "schema": {
6729
7157
  "type": "object",
6730
- "required": ["next", "results"],
7158
+ "required": [
7159
+ "next",
7160
+ "results"
7161
+ ],
6731
7162
  "properties": {
6732
7163
  "next": {
6733
7164
  "anyOf": [
@@ -6756,7 +7187,9 @@
6756
7187
  "post": {
6757
7188
  "operationId": "user/create",
6758
7189
  "summary": "Create User",
6759
- "tags": ["user"],
7190
+ "tags": [
7191
+ "user"
7192
+ ],
6760
7193
  "description": "Create User",
6761
7194
  "requestBody": {
6762
7195
  "required": true,
@@ -6883,27 +7316,39 @@
6883
7316
  "anyOf": [
6884
7317
  {
6885
7318
  "type": "string",
6886
- "enum": ["manual"]
7319
+ "enum": [
7320
+ "manual"
7321
+ ]
6887
7322
  },
6888
7323
  {
6889
7324
  "type": "string",
6890
- "enum": ["verification_flow"]
7325
+ "enum": [
7326
+ "verification_flow"
7327
+ ]
6891
7328
  },
6892
7329
  {
6893
7330
  "type": "string",
6894
- "enum": ["passwordless_otp"]
7331
+ "enum": [
7332
+ "passwordless_otp"
7333
+ ]
6895
7334
  },
6896
7335
  {
6897
7336
  "type": "string",
6898
- "enum": ["team_invite"]
7337
+ "enum": [
7338
+ "team_invite"
7339
+ ]
6899
7340
  },
6900
7341
  {
6901
7342
  "type": "string",
6902
- "enum": ["email_change"]
7343
+ "enum": [
7344
+ "email_change"
7345
+ ]
6903
7346
  },
6904
7347
  {
6905
7348
  "type": "string",
6906
- "enum": ["federated"]
7349
+ "enum": [
7350
+ "federated"
7351
+ ]
6907
7352
  },
6908
7353
  {
6909
7354
  "type": "null"
@@ -6934,27 +7379,39 @@
6934
7379
  "anyOf": [
6935
7380
  {
6936
7381
  "type": "string",
6937
- "enum": ["manual"]
7382
+ "enum": [
7383
+ "manual"
7384
+ ]
6938
7385
  },
6939
7386
  {
6940
7387
  "type": "string",
6941
- "enum": ["verification_flow"]
7388
+ "enum": [
7389
+ "verification_flow"
7390
+ ]
6942
7391
  },
6943
7392
  {
6944
7393
  "type": "string",
6945
- "enum": ["passwordless_otp"]
7394
+ "enum": [
7395
+ "passwordless_otp"
7396
+ ]
6946
7397
  },
6947
7398
  {
6948
7399
  "type": "string",
6949
- "enum": ["team_invite"]
7400
+ "enum": [
7401
+ "team_invite"
7402
+ ]
6950
7403
  },
6951
7404
  {
6952
7405
  "type": "string",
6953
- "enum": ["email_change"]
7406
+ "enum": [
7407
+ "email_change"
7408
+ ]
6954
7409
  },
6955
7410
  {
6956
7411
  "type": "string",
6957
- "enum": ["federated"]
7412
+ "enum": [
7413
+ "federated"
7414
+ ]
6958
7415
  },
6959
7416
  {
6960
7417
  "type": "null"
@@ -7101,7 +7558,9 @@
7101
7558
  "get": {
7102
7559
  "operationId": "user/get",
7103
7560
  "summary": "Get User",
7104
- "tags": ["user"],
7561
+ "tags": [
7562
+ "user"
7563
+ ],
7105
7564
  "description": "Get User",
7106
7565
  "parameters": [
7107
7566
  {
@@ -7179,27 +7638,39 @@
7179
7638
  "anyOf": [
7180
7639
  {
7181
7640
  "type": "string",
7182
- "enum": ["manual"]
7641
+ "enum": [
7642
+ "manual"
7643
+ ]
7183
7644
  },
7184
7645
  {
7185
7646
  "type": "string",
7186
- "enum": ["verification_flow"]
7647
+ "enum": [
7648
+ "verification_flow"
7649
+ ]
7187
7650
  },
7188
7651
  {
7189
7652
  "type": "string",
7190
- "enum": ["passwordless_otp"]
7653
+ "enum": [
7654
+ "passwordless_otp"
7655
+ ]
7191
7656
  },
7192
7657
  {
7193
7658
  "type": "string",
7194
- "enum": ["team_invite"]
7659
+ "enum": [
7660
+ "team_invite"
7661
+ ]
7195
7662
  },
7196
7663
  {
7197
7664
  "type": "string",
7198
- "enum": ["email_change"]
7665
+ "enum": [
7666
+ "email_change"
7667
+ ]
7199
7668
  },
7200
7669
  {
7201
7670
  "type": "string",
7202
- "enum": ["federated"]
7671
+ "enum": [
7672
+ "federated"
7673
+ ]
7203
7674
  },
7204
7675
  {
7205
7676
  "type": "null"
@@ -7230,27 +7701,39 @@
7230
7701
  "anyOf": [
7231
7702
  {
7232
7703
  "type": "string",
7233
- "enum": ["manual"]
7704
+ "enum": [
7705
+ "manual"
7706
+ ]
7234
7707
  },
7235
7708
  {
7236
7709
  "type": "string",
7237
- "enum": ["verification_flow"]
7710
+ "enum": [
7711
+ "verification_flow"
7712
+ ]
7238
7713
  },
7239
7714
  {
7240
7715
  "type": "string",
7241
- "enum": ["passwordless_otp"]
7716
+ "enum": [
7717
+ "passwordless_otp"
7718
+ ]
7242
7719
  },
7243
7720
  {
7244
7721
  "type": "string",
7245
- "enum": ["team_invite"]
7722
+ "enum": [
7723
+ "team_invite"
7724
+ ]
7246
7725
  },
7247
7726
  {
7248
7727
  "type": "string",
7249
- "enum": ["email_change"]
7728
+ "enum": [
7729
+ "email_change"
7730
+ ]
7250
7731
  },
7251
7732
  {
7252
7733
  "type": "string",
7253
- "enum": ["federated"]
7734
+ "enum": [
7735
+ "federated"
7736
+ ]
7254
7737
  },
7255
7738
  {
7256
7739
  "type": "null"
@@ -7395,7 +7878,9 @@
7395
7878
  "post": {
7396
7879
  "operationId": "user/update",
7397
7880
  "summary": "Update User",
7398
- "tags": ["user"],
7881
+ "tags": [
7882
+ "user"
7883
+ ],
7399
7884
  "description": "Update User",
7400
7885
  "requestBody": {
7401
7886
  "required": true,
@@ -7544,27 +8029,39 @@
7544
8029
  "anyOf": [
7545
8030
  {
7546
8031
  "type": "string",
7547
- "enum": ["manual"]
8032
+ "enum": [
8033
+ "manual"
8034
+ ]
7548
8035
  },
7549
8036
  {
7550
8037
  "type": "string",
7551
- "enum": ["verification_flow"]
8038
+ "enum": [
8039
+ "verification_flow"
8040
+ ]
7552
8041
  },
7553
8042
  {
7554
8043
  "type": "string",
7555
- "enum": ["passwordless_otp"]
8044
+ "enum": [
8045
+ "passwordless_otp"
8046
+ ]
7556
8047
  },
7557
8048
  {
7558
8049
  "type": "string",
7559
- "enum": ["team_invite"]
8050
+ "enum": [
8051
+ "team_invite"
8052
+ ]
7560
8053
  },
7561
8054
  {
7562
8055
  "type": "string",
7563
- "enum": ["email_change"]
8056
+ "enum": [
8057
+ "email_change"
8058
+ ]
7564
8059
  },
7565
8060
  {
7566
8061
  "type": "string",
7567
- "enum": ["federated"]
8062
+ "enum": [
8063
+ "federated"
8064
+ ]
7568
8065
  },
7569
8066
  {
7570
8067
  "type": "null"
@@ -7595,27 +8092,39 @@
7595
8092
  "anyOf": [
7596
8093
  {
7597
8094
  "type": "string",
7598
- "enum": ["manual"]
8095
+ "enum": [
8096
+ "manual"
8097
+ ]
7599
8098
  },
7600
8099
  {
7601
8100
  "type": "string",
7602
- "enum": ["verification_flow"]
8101
+ "enum": [
8102
+ "verification_flow"
8103
+ ]
7603
8104
  },
7604
8105
  {
7605
8106
  "type": "string",
7606
- "enum": ["passwordless_otp"]
8107
+ "enum": [
8108
+ "passwordless_otp"
8109
+ ]
7607
8110
  },
7608
8111
  {
7609
8112
  "type": "string",
7610
- "enum": ["team_invite"]
8113
+ "enum": [
8114
+ "team_invite"
8115
+ ]
7611
8116
  },
7612
8117
  {
7613
8118
  "type": "string",
7614
- "enum": ["email_change"]
8119
+ "enum": [
8120
+ "email_change"
8121
+ ]
7615
8122
  },
7616
8123
  {
7617
8124
  "type": "string",
7618
- "enum": ["federated"]
8125
+ "enum": [
8126
+ "federated"
8127
+ ]
7619
8128
  },
7620
8129
  {
7621
8130
  "type": "null"
@@ -7760,7 +8269,9 @@
7760
8269
  "delete": {
7761
8270
  "operationId": "user/delete",
7762
8271
  "summary": "Delete User",
7763
- "tags": ["user"],
8272
+ "tags": [
8273
+ "user"
8274
+ ],
7764
8275
  "description": "Delete User",
7765
8276
  "parameters": [
7766
8277
  {
@@ -7838,27 +8349,39 @@
7838
8349
  "anyOf": [
7839
8350
  {
7840
8351
  "type": "string",
7841
- "enum": ["manual"]
8352
+ "enum": [
8353
+ "manual"
8354
+ ]
7842
8355
  },
7843
8356
  {
7844
8357
  "type": "string",
7845
- "enum": ["verification_flow"]
8358
+ "enum": [
8359
+ "verification_flow"
8360
+ ]
7846
8361
  },
7847
8362
  {
7848
8363
  "type": "string",
7849
- "enum": ["passwordless_otp"]
8364
+ "enum": [
8365
+ "passwordless_otp"
8366
+ ]
7850
8367
  },
7851
8368
  {
7852
8369
  "type": "string",
7853
- "enum": ["team_invite"]
8370
+ "enum": [
8371
+ "team_invite"
8372
+ ]
7854
8373
  },
7855
8374
  {
7856
8375
  "type": "string",
7857
- "enum": ["email_change"]
8376
+ "enum": [
8377
+ "email_change"
8378
+ ]
7858
8379
  },
7859
8380
  {
7860
8381
  "type": "string",
7861
- "enum": ["federated"]
8382
+ "enum": [
8383
+ "federated"
8384
+ ]
7862
8385
  },
7863
8386
  {
7864
8387
  "type": "null"
@@ -7889,27 +8412,39 @@
7889
8412
  "anyOf": [
7890
8413
  {
7891
8414
  "type": "string",
7892
- "enum": ["manual"]
8415
+ "enum": [
8416
+ "manual"
8417
+ ]
7893
8418
  },
7894
8419
  {
7895
8420
  "type": "string",
7896
- "enum": ["verification_flow"]
8421
+ "enum": [
8422
+ "verification_flow"
8423
+ ]
7897
8424
  },
7898
8425
  {
7899
8426
  "type": "string",
7900
- "enum": ["passwordless_otp"]
8427
+ "enum": [
8428
+ "passwordless_otp"
8429
+ ]
7901
8430
  },
7902
8431
  {
7903
8432
  "type": "string",
7904
- "enum": ["team_invite"]
8433
+ "enum": [
8434
+ "team_invite"
8435
+ ]
7905
8436
  },
7906
8437
  {
7907
8438
  "type": "string",
7908
- "enum": ["email_change"]
8439
+ "enum": [
8440
+ "email_change"
8441
+ ]
7909
8442
  },
7910
8443
  {
7911
8444
  "type": "string",
7912
- "enum": ["federated"]
8445
+ "enum": [
8446
+ "federated"
8447
+ ]
7913
8448
  },
7914
8449
  {
7915
8450
  "type": "null"
@@ -8056,7 +8591,9 @@
8056
8591
  "post": {
8057
8592
  "operationId": "user/changeEmail",
8058
8593
  "summary": "Start the user's email change flow",
8059
- "tags": ["user"],
8594
+ "tags": [
8595
+ "user"
8596
+ ],
8060
8597
  "description": "Initiates the email-change flow for the given user. Validates the new email, ensures it is not already in use in the tenant, revokes any pending change for the same user, creates a Ticket (`type='change_email'`), and sends a verification email to the new address. Re-authentication is not required — an active session/Bearer is enough. The change does NOT take effect until the user clicks the link in the email and confirms via `/change-email-confirm`.",
8061
8598
  "requestBody": {
8062
8599
  "required": true,
@@ -8064,7 +8601,9 @@
8064
8601
  "application/json": {
8065
8602
  "schema": {
8066
8603
  "type": "object",
8067
- "required": ["new_email"],
8604
+ "required": [
8605
+ "new_email"
8606
+ ],
8068
8607
  "properties": {
8069
8608
  "new_email": {
8070
8609
  "type": "string",
@@ -8074,11 +8613,15 @@
8074
8613
  "anyOf": [
8075
8614
  {
8076
8615
  "type": "string",
8077
- "enum": ["new_only"]
8616
+ "enum": [
8617
+ "new_only"
8618
+ ]
8078
8619
  },
8079
8620
  {
8080
8621
  "type": "string",
8081
- "enum": ["old_and_new"]
8622
+ "enum": [
8623
+ "old_and_new"
8624
+ ]
8082
8625
  }
8083
8626
  ],
8084
8627
  "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`."
@@ -8112,11 +8655,17 @@
8112
8655
  "application/json": {
8113
8656
  "schema": {
8114
8657
  "type": "object",
8115
- "required": ["status", "ticket_id", "verification_mode"],
8658
+ "required": [
8659
+ "status",
8660
+ "ticket_id",
8661
+ "verification_mode"
8662
+ ],
8116
8663
  "properties": {
8117
8664
  "status": {
8118
8665
  "type": "string",
8119
- "enum": ["verification_sent"]
8666
+ "enum": [
8667
+ "verification_sent"
8668
+ ]
8120
8669
  },
8121
8670
  "ticket_id": {
8122
8671
  "type": "string"
@@ -8125,11 +8674,15 @@
8125
8674
  "anyOf": [
8126
8675
  {
8127
8676
  "type": "string",
8128
- "enum": ["new_only"]
8677
+ "enum": [
8678
+ "new_only"
8679
+ ]
8129
8680
  },
8130
8681
  {
8131
8682
  "type": "string",
8132
- "enum": ["old_and_new"]
8683
+ "enum": [
8684
+ "old_and_new"
8685
+ ]
8133
8686
  }
8134
8687
  ]
8135
8688
  }
@@ -8145,7 +8698,9 @@
8145
8698
  "get": {
8146
8699
  "operationId": "user_change_email_verify",
8147
8700
  "summary": "Verify a change-email ticket and apply the change",
8148
- "tags": ["user"],
8701
+ "tags": [
8702
+ "user"
8703
+ ],
8149
8704
  "description": "Entry point for the link sent to the new email. Consumes the ticket, applies the email swap (in `new_only` mode) or issues a secondary verification ticket to the old email (in `old_and_new` mode, first step). Redirects to the `redirect_uri` supplied at flow start with `?status=applied|pending_old` appended; falls back to `/flow/email-change-done` on the auth host when no `redirect_uri` was given.",
8150
8705
  "parameters": [
8151
8706
  {
@@ -8168,7 +8723,9 @@
8168
8723
  "post": {
8169
8724
  "operationId": "user/verifyEmailStart",
8170
8725
  "summary": "Start the user's email verification flow",
8171
- "tags": ["user"],
8726
+ "tags": [
8727
+ "user"
8728
+ ],
8172
8729
  "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.",
8173
8730
  "requestBody": {
8174
8731
  "required": true,
@@ -8206,17 +8763,23 @@
8206
8763
  "application/json": {
8207
8764
  "schema": {
8208
8765
  "type": "object",
8209
- "required": ["status"],
8766
+ "required": [
8767
+ "status"
8768
+ ],
8210
8769
  "properties": {
8211
8770
  "status": {
8212
8771
  "anyOf": [
8213
8772
  {
8214
8773
  "type": "string",
8215
- "enum": ["verification_sent"]
8774
+ "enum": [
8775
+ "verification_sent"
8776
+ ]
8216
8777
  },
8217
8778
  {
8218
8779
  "type": "string",
8219
- "enum": ["already_verified"]
8780
+ "enum": [
8781
+ "already_verified"
8782
+ ]
8220
8783
  }
8221
8784
  ]
8222
8785
  },
@@ -8235,7 +8798,9 @@
8235
8798
  "get": {
8236
8799
  "operationId": "user_verify_email_confirm",
8237
8800
  "summary": "Verify a verify-email ticket and mark the user verified",
8238
- "tags": ["user"],
8801
+ "tags": [
8802
+ "user"
8803
+ ],
8239
8804
  "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`.",
8240
8805
  "parameters": [
8241
8806
  {
@@ -8258,7 +8823,9 @@
8258
8823
  "get": {
8259
8824
  "operationId": "identity/list",
8260
8825
  "summary": "List Identitys",
8261
- "tags": ["identity"],
8826
+ "tags": [
8827
+ "identity"
8828
+ ],
8262
8829
  "description": "List Identitys",
8263
8830
  "parameters": [
8264
8831
  {
@@ -8304,7 +8871,10 @@
8304
8871
  "type": "array",
8305
8872
  "items": {
8306
8873
  "type": "string",
8307
- "enum": ["user", "connection"],
8874
+ "enum": [
8875
+ "user",
8876
+ "connection"
8877
+ ],
8308
8878
  "description": "Allowed expand paths on `identity`: `user`, `connection`."
8309
8879
  },
8310
8880
  "maxItems": 2
@@ -8322,7 +8892,10 @@
8322
8892
  "application/json": {
8323
8893
  "schema": {
8324
8894
  "type": "object",
8325
- "required": ["next", "results"],
8895
+ "required": [
8896
+ "next",
8897
+ "results"
8898
+ ],
8326
8899
  "properties": {
8327
8900
  "next": {
8328
8901
  "anyOf": [
@@ -8351,7 +8924,9 @@
8351
8924
  "post": {
8352
8925
  "operationId": "identity/create",
8353
8926
  "summary": "Create Identity",
8354
- "tags": ["identity"],
8927
+ "tags": [
8928
+ "identity"
8929
+ ],
8355
8930
  "description": "Create Identity",
8356
8931
  "requestBody": {
8357
8932
  "required": true,
@@ -8486,7 +9061,9 @@
8486
9061
  "get": {
8487
9062
  "operationId": "identity/get",
8488
9063
  "summary": "Get Identity",
8489
- "tags": ["identity"],
9064
+ "tags": [
9065
+ "identity"
9066
+ ],
8490
9067
  "description": "Get Identity",
8491
9068
  "parameters": [
8492
9069
  {
@@ -8494,7 +9071,10 @@
8494
9071
  "type": "array",
8495
9072
  "items": {
8496
9073
  "type": "string",
8497
- "enum": ["user", "connection"],
9074
+ "enum": [
9075
+ "user",
9076
+ "connection"
9077
+ ],
8498
9078
  "description": "Allowed expand paths on `identity`: `user`, `connection`."
8499
9079
  },
8500
9080
  "maxItems": 2
@@ -8603,7 +9183,9 @@
8603
9183
  "delete": {
8604
9184
  "operationId": "identity/delete",
8605
9185
  "summary": "Delete Identity",
8606
- "tags": ["identity"],
9186
+ "tags": [
9187
+ "identity"
9188
+ ],
8607
9189
  "description": "Delete Identity",
8608
9190
  "parameters": [
8609
9191
  {
@@ -8707,7 +9289,9 @@
8707
9289
  "get": {
8708
9290
  "operationId": "identity/getProviderToken",
8709
9291
  "summary": "Get a guaranteed-valid provider access_token",
8710
- "tags": ["identity"],
9292
+ "tags": [
9293
+ "identity"
9294
+ ],
8711
9295
  "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).",
8712
9296
  "parameters": [
8713
9297
  {
@@ -8735,7 +9319,10 @@
8735
9319
  "application/json": {
8736
9320
  "schema": {
8737
9321
  "type": "object",
8738
- "required": ["access_token", "refreshed"],
9322
+ "required": [
9323
+ "access_token",
9324
+ "refreshed"
9325
+ ],
8739
9326
  "properties": {
8740
9327
  "access_token": {
8741
9328
  "type": "string"
@@ -8758,7 +9345,9 @@
8758
9345
  "get": {
8759
9346
  "operationId": "credentials/list",
8760
9347
  "summary": "List Credentialss",
8761
- "tags": ["credentials"],
9348
+ "tags": [
9349
+ "credentials"
9350
+ ],
8762
9351
  "description": "List Credentialss",
8763
9352
  "parameters": [
8764
9353
  {
@@ -8804,7 +9393,10 @@
8804
9393
  "type": "array",
8805
9394
  "items": {
8806
9395
  "type": "string",
8807
- "enum": ["user", "connection"],
9396
+ "enum": [
9397
+ "user",
9398
+ "connection"
9399
+ ],
8808
9400
  "description": "Allowed expand paths on `credentials`: `user`, `connection`."
8809
9401
  },
8810
9402
  "maxItems": 2
@@ -8833,7 +9425,10 @@
8833
9425
  "application/json": {
8834
9426
  "schema": {
8835
9427
  "type": "object",
8836
- "required": ["next", "results"],
9428
+ "required": [
9429
+ "next",
9430
+ "results"
9431
+ ],
8837
9432
  "properties": {
8838
9433
  "next": {
8839
9434
  "anyOf": [
@@ -8862,7 +9457,9 @@
8862
9457
  "post": {
8863
9458
  "operationId": "credentials/create",
8864
9459
  "summary": "Create Credentials",
8865
- "tags": ["credentials"],
9460
+ "tags": [
9461
+ "credentials"
9462
+ ],
8866
9463
  "description": "Create Credentials",
8867
9464
  "requestBody": {
8868
9465
  "required": true,
@@ -8870,7 +9467,10 @@
8870
9467
  "application/json": {
8871
9468
  "schema": {
8872
9469
  "type": "object",
8873
- "required": ["user", "connection"],
9470
+ "required": [
9471
+ "user",
9472
+ "connection"
9473
+ ],
8874
9474
  "properties": {
8875
9475
  "user": {
8876
9476
  "type": "string"
@@ -8970,7 +9570,9 @@
8970
9570
  "get": {
8971
9571
  "operationId": "credentials/get",
8972
9572
  "summary": "Get Credentials",
8973
- "tags": ["credentials"],
9573
+ "tags": [
9574
+ "credentials"
9575
+ ],
8974
9576
  "description": "Get Credentials",
8975
9577
  "parameters": [
8976
9578
  {
@@ -8978,7 +9580,10 @@
8978
9580
  "type": "array",
8979
9581
  "items": {
8980
9582
  "type": "string",
8981
- "enum": ["user", "connection"],
9583
+ "enum": [
9584
+ "user",
9585
+ "connection"
9586
+ ],
8982
9587
  "description": "Allowed expand paths on `credentials`: `user`, `connection`."
8983
9588
  },
8984
9589
  "maxItems": 2
@@ -9076,7 +9681,9 @@
9076
9681
  "post": {
9077
9682
  "operationId": "credentials/update",
9078
9683
  "summary": "Update Credentials",
9079
- "tags": ["credentials"],
9684
+ "tags": [
9685
+ "credentials"
9686
+ ],
9080
9687
  "description": "Update Credentials",
9081
9688
  "requestBody": {
9082
9689
  "required": true,
@@ -9186,7 +9793,9 @@
9186
9793
  "delete": {
9187
9794
  "operationId": "credentials/delete",
9188
9795
  "summary": "Delete Credentials",
9189
- "tags": ["credentials"],
9796
+ "tags": [
9797
+ "credentials"
9798
+ ],
9190
9799
  "description": "Delete Credentials",
9191
9800
  "parameters": [
9192
9801
  {
@@ -9279,7 +9888,9 @@
9279
9888
  "post": {
9280
9889
  "operationId": "credentials/setPassword",
9281
9890
  "summary": "Set a credential's password",
9282
- "tags": ["credentials"],
9891
+ "tags": [
9892
+ "credentials"
9893
+ ],
9283
9894
  "description": "Sets or rotates the password for a database credential. The previous password is invalidated immediately. Records a `credential.password_changed` audit entry (initiated_by=admin) for traceability. The password is never returned.",
9284
9895
  "requestBody": {
9285
9896
  "required": true,
@@ -9287,7 +9898,9 @@
9287
9898
  "application/json": {
9288
9899
  "schema": {
9289
9900
  "type": "object",
9290
- "required": ["password"],
9901
+ "required": [
9902
+ "password"
9903
+ ],
9291
9904
  "properties": {
9292
9905
  "password": {
9293
9906
  "type": "string",
@@ -9390,7 +10003,9 @@
9390
10003
  "get": {
9391
10004
  "operationId": "role/list",
9392
10005
  "summary": "List Roles",
9393
- "tags": ["role"],
10006
+ "tags": [
10007
+ "role"
10008
+ ],
9394
10009
  "description": "List Roles",
9395
10010
  "parameters": [
9396
10011
  {
@@ -9450,7 +10065,10 @@
9450
10065
  "application/json": {
9451
10066
  "schema": {
9452
10067
  "type": "object",
9453
- "required": ["next", "results"],
10068
+ "required": [
10069
+ "next",
10070
+ "results"
10071
+ ],
9454
10072
  "properties": {
9455
10073
  "next": {
9456
10074
  "anyOf": [
@@ -9479,7 +10097,9 @@
9479
10097
  "post": {
9480
10098
  "operationId": "role/create",
9481
10099
  "summary": "Create Role",
9482
- "tags": ["role"],
10100
+ "tags": [
10101
+ "role"
10102
+ ],
9483
10103
  "description": "Create Role",
9484
10104
  "requestBody": {
9485
10105
  "required": true,
@@ -9487,7 +10107,9 @@
9487
10107
  "application/json": {
9488
10108
  "schema": {
9489
10109
  "type": "object",
9490
- "required": ["name"],
10110
+ "required": [
10111
+ "name"
10112
+ ],
9491
10113
  "properties": {
9492
10114
  "name": {
9493
10115
  "type": "string",
@@ -9572,7 +10194,9 @@
9572
10194
  "get": {
9573
10195
  "operationId": "role/get",
9574
10196
  "summary": "Get Role",
9575
- "tags": ["role"],
10197
+ "tags": [
10198
+ "role"
10199
+ ],
9576
10200
  "description": "Get Role",
9577
10201
  "parameters": [
9578
10202
  {
@@ -9642,7 +10266,9 @@
9642
10266
  "post": {
9643
10267
  "operationId": "role/update",
9644
10268
  "summary": "Update Role",
9645
- "tags": ["role"],
10269
+ "tags": [
10270
+ "role"
10271
+ ],
9646
10272
  "description": "Update Role",
9647
10273
  "requestBody": {
9648
10274
  "required": true,
@@ -9735,7 +10361,9 @@
9735
10361
  "delete": {
9736
10362
  "operationId": "role/delete",
9737
10363
  "summary": "Delete Role",
9738
- "tags": ["role"],
10364
+ "tags": [
10365
+ "role"
10366
+ ],
9739
10367
  "description": "Delete Role",
9740
10368
  "parameters": [
9741
10369
  {
@@ -9807,7 +10435,9 @@
9807
10435
  "get": {
9808
10436
  "operationId": "role/users",
9809
10437
  "summary": "List Users with Role",
9810
- "tags": ["role"],
10438
+ "tags": [
10439
+ "role"
10440
+ ],
9811
10441
  "description": "List Users with Role",
9812
10442
  "parameters": [
9813
10443
  {
@@ -9853,7 +10483,10 @@
9853
10483
  "application/json": {
9854
10484
  "schema": {
9855
10485
  "type": "object",
9856
- "required": ["next", "results"],
10486
+ "required": [
10487
+ "next",
10488
+ "results"
10489
+ ],
9857
10490
  "properties": {
9858
10491
  "next": {
9859
10492
  "type": "string",
@@ -9879,7 +10512,9 @@
9879
10512
  "post": {
9880
10513
  "operationId": "role/assign_users",
9881
10514
  "summary": "Assign Users to Role",
9882
- "tags": ["role"],
10515
+ "tags": [
10516
+ "role"
10517
+ ],
9883
10518
  "description": "Assign Users to Role",
9884
10519
  "requestBody": {
9885
10520
  "required": true,
@@ -9887,7 +10522,9 @@
9887
10522
  "application/json": {
9888
10523
  "schema": {
9889
10524
  "type": "object",
9890
- "required": ["users"],
10525
+ "required": [
10526
+ "users"
10527
+ ],
9891
10528
  "properties": {
9892
10529
  "users": {
9893
10530
  "type": "array",
@@ -9895,7 +10532,9 @@
9895
10532
  "type": "string"
9896
10533
  },
9897
10534
  "description": "List of User ids to grant the role to. Existing role memberships are preserved; passing a user that already holds the role is a no-op.",
9898
- "example": ["user_6555fd293acc2f0fac0e3452"]
10535
+ "example": [
10536
+ "user_6555fd293acc2f0fac0e3452"
10537
+ ]
9899
10538
  }
9900
10539
  },
9901
10540
  "additionalProperties": false,
@@ -9926,7 +10565,9 @@
9926
10565
  "get": {
9927
10566
  "operationId": "rolemember/list",
9928
10567
  "summary": "List Rolemembers",
9929
- "tags": ["rolemember"],
10568
+ "tags": [
10569
+ "rolemember"
10570
+ ],
9930
10571
  "description": "List Rolemembers",
9931
10572
  "parameters": [
9932
10573
  {
@@ -9972,7 +10613,10 @@
9972
10613
  "type": "array",
9973
10614
  "items": {
9974
10615
  "type": "string",
9975
- "enum": ["user", "role"],
10616
+ "enum": [
10617
+ "user",
10618
+ "role"
10619
+ ],
9976
10620
  "description": "Allowed expand paths on `rolemember`: `user`, `role`."
9977
10621
  },
9978
10622
  "maxItems": 2
@@ -9990,7 +10634,10 @@
9990
10634
  "application/json": {
9991
10635
  "schema": {
9992
10636
  "type": "object",
9993
- "required": ["next", "results"],
10637
+ "required": [
10638
+ "next",
10639
+ "results"
10640
+ ],
9994
10641
  "properties": {
9995
10642
  "next": {
9996
10643
  "anyOf": [
@@ -10019,7 +10666,9 @@
10019
10666
  "post": {
10020
10667
  "operationId": "rolemember/create",
10021
10668
  "summary": "Create Rolemember",
10022
- "tags": ["rolemember"],
10669
+ "tags": [
10670
+ "rolemember"
10671
+ ],
10023
10672
  "description": "Create Rolemember",
10024
10673
  "requestBody": {
10025
10674
  "required": true,
@@ -10027,7 +10676,9 @@
10027
10676
  "application/json": {
10028
10677
  "schema": {
10029
10678
  "type": "object",
10030
- "required": ["users"],
10679
+ "required": [
10680
+ "users"
10681
+ ],
10031
10682
  "properties": {
10032
10683
  "users": {
10033
10684
  "type": "array",
@@ -10035,7 +10686,9 @@
10035
10686
  "type": "string"
10036
10687
  },
10037
10688
  "description": "List of User ids to grant the role to. Existing role memberships are preserved; passing a user that already holds the role is a no-op.",
10038
- "example": ["user_6555fd293acc2f0fac0e3452"]
10689
+ "example": [
10690
+ "user_6555fd293acc2f0fac0e3452"
10691
+ ]
10039
10692
  }
10040
10693
  },
10041
10694
  "additionalProperties": false,
@@ -10052,7 +10705,13 @@
10052
10705
  "application/json": {
10053
10706
  "schema": {
10054
10707
  "type": "object",
10055
- "required": ["id", "role", "user", "account", "createdAt"],
10708
+ "required": [
10709
+ "id",
10710
+ "role",
10711
+ "user",
10712
+ "account",
10713
+ "createdAt"
10714
+ ],
10056
10715
  "properties": {
10057
10716
  "id": {
10058
10717
  "type": "string",
@@ -10114,7 +10773,9 @@
10114
10773
  "get": {
10115
10774
  "operationId": "rolemember/get",
10116
10775
  "summary": "Get Rolemember",
10117
- "tags": ["rolemember"],
10776
+ "tags": [
10777
+ "rolemember"
10778
+ ],
10118
10779
  "description": "Get Rolemember",
10119
10780
  "parameters": [
10120
10781
  {
@@ -10122,7 +10783,10 @@
10122
10783
  "type": "array",
10123
10784
  "items": {
10124
10785
  "type": "string",
10125
- "enum": ["user", "role"],
10786
+ "enum": [
10787
+ "user",
10788
+ "role"
10789
+ ],
10126
10790
  "description": "Allowed expand paths on `rolemember`: `user`, `role`."
10127
10791
  },
10128
10792
  "maxItems": 2
@@ -10148,7 +10812,13 @@
10148
10812
  "application/json": {
10149
10813
  "schema": {
10150
10814
  "type": "object",
10151
- "required": ["id", "role", "user", "account", "createdAt"],
10815
+ "required": [
10816
+ "id",
10817
+ "role",
10818
+ "user",
10819
+ "account",
10820
+ "createdAt"
10821
+ ],
10152
10822
  "properties": {
10153
10823
  "id": {
10154
10824
  "type": "string",
@@ -10208,7 +10878,9 @@
10208
10878
  "delete": {
10209
10879
  "operationId": "rolemember/delete",
10210
10880
  "summary": "Delete Rolemember",
10211
- "tags": ["rolemember"],
10881
+ "tags": [
10882
+ "rolemember"
10883
+ ],
10212
10884
  "description": "Delete Rolemember",
10213
10885
  "parameters": [
10214
10886
  {
@@ -10227,7 +10899,13 @@
10227
10899
  "application/json": {
10228
10900
  "schema": {
10229
10901
  "type": "object",
10230
- "required": ["id", "role", "user", "account", "createdAt"],
10902
+ "required": [
10903
+ "id",
10904
+ "role",
10905
+ "user",
10906
+ "account",
10907
+ "createdAt"
10908
+ ],
10231
10909
  "properties": {
10232
10910
  "id": {
10233
10911
  "type": "string",
@@ -10289,7 +10967,9 @@
10289
10967
  "get": {
10290
10968
  "operationId": "team/list",
10291
10969
  "summary": "List Teams",
10292
- "tags": ["team"],
10970
+ "tags": [
10971
+ "team"
10972
+ ],
10293
10973
  "description": "List Teams",
10294
10974
  "parameters": [
10295
10975
  {
@@ -10349,7 +11029,10 @@
10349
11029
  "application/json": {
10350
11030
  "schema": {
10351
11031
  "type": "object",
10352
- "required": ["next", "results"],
11032
+ "required": [
11033
+ "next",
11034
+ "results"
11035
+ ],
10353
11036
  "properties": {
10354
11037
  "next": {
10355
11038
  "anyOf": [
@@ -10378,7 +11061,9 @@
10378
11061
  "post": {
10379
11062
  "operationId": "team/create",
10380
11063
  "summary": "Create Team",
10381
- "tags": ["team"],
11064
+ "tags": [
11065
+ "team"
11066
+ ],
10382
11067
  "description": "Create Team",
10383
11068
  "requestBody": {
10384
11069
  "required": true,
@@ -10386,7 +11071,9 @@
10386
11071
  "application/json": {
10387
11072
  "schema": {
10388
11073
  "type": "object",
10389
- "required": ["name"],
11074
+ "required": [
11075
+ "name"
11076
+ ],
10390
11077
  "properties": {
10391
11078
  "name": {
10392
11079
  "type": "string",
@@ -10484,7 +11171,9 @@
10484
11171
  "get": {
10485
11172
  "operationId": "team/get",
10486
11173
  "summary": "Get Team",
10487
- "tags": ["team"],
11174
+ "tags": [
11175
+ "team"
11176
+ ],
10488
11177
  "description": "Get Team",
10489
11178
  "parameters": [
10490
11179
  {
@@ -10567,7 +11256,9 @@
10567
11256
  "post": {
10568
11257
  "operationId": "team/update",
10569
11258
  "summary": "Update Team",
10570
- "tags": ["team"],
11259
+ "tags": [
11260
+ "team"
11261
+ ],
10571
11262
  "description": "Update Team",
10572
11263
  "requestBody": {
10573
11264
  "required": true,
@@ -10679,7 +11370,9 @@
10679
11370
  "delete": {
10680
11371
  "operationId": "team/delete",
10681
11372
  "summary": "Delete Team",
10682
- "tags": ["team"],
11373
+ "tags": [
11374
+ "team"
11375
+ ],
10683
11376
  "description": "Delete Team",
10684
11377
  "parameters": [
10685
11378
  {
@@ -10764,7 +11457,9 @@
10764
11457
  "get": {
10765
11458
  "operationId": "teammember/list",
10766
11459
  "summary": "List Teammembers",
10767
- "tags": ["teammember"],
11460
+ "tags": [
11461
+ "teammember"
11462
+ ],
10768
11463
  "description": "List Teammembers",
10769
11464
  "parameters": [
10770
11465
  {
@@ -10810,7 +11505,11 @@
10810
11505
  "type": "array",
10811
11506
  "items": {
10812
11507
  "type": "string",
10813
- "enum": ["user", "team", "roles"],
11508
+ "enum": [
11509
+ "user",
11510
+ "team",
11511
+ "roles"
11512
+ ],
10814
11513
  "description": "Allowed expand paths on `teammember`: `user`, `team`, `roles`."
10815
11514
  },
10816
11515
  "maxItems": 3
@@ -10828,7 +11527,10 @@
10828
11527
  "application/json": {
10829
11528
  "schema": {
10830
11529
  "type": "object",
10831
- "required": ["next", "results"],
11530
+ "required": [
11531
+ "next",
11532
+ "results"
11533
+ ],
10832
11534
  "properties": {
10833
11535
  "next": {
10834
11536
  "anyOf": [
@@ -10857,7 +11559,9 @@
10857
11559
  "post": {
10858
11560
  "operationId": "teammember/create",
10859
11561
  "summary": "Create Teammember",
10860
- "tags": ["teammember"],
11562
+ "tags": [
11563
+ "teammember"
11564
+ ],
10861
11565
  "description": "Create Teammember",
10862
11566
  "requestBody": {
10863
11567
  "required": true,
@@ -10865,7 +11569,9 @@
10865
11569
  "application/json": {
10866
11570
  "schema": {
10867
11571
  "type": "object",
10868
- "required": ["users"],
11572
+ "required": [
11573
+ "users"
11574
+ ],
10869
11575
  "properties": {
10870
11576
  "users": {
10871
11577
  "type": "array",
@@ -10873,7 +11579,9 @@
10873
11579
  "type": "string"
10874
11580
  },
10875
11581
  "description": "List of User ids to add as members of the team. Users already in the team are skipped.",
10876
- "example": ["user_6555fd293acc2f0fac0e3452"]
11582
+ "example": [
11583
+ "user_6555fd293acc2f0fac0e3452"
11584
+ ]
10877
11585
  },
10878
11586
  "roles": {
10879
11587
  "type": "array",
@@ -10882,7 +11590,9 @@
10882
11590
  },
10883
11591
  "description": "Role ids to grant to the added members within the scope of this team.",
10884
11592
  "default": [],
10885
- "example": ["role_6555fd293acc2f0fac0e3452"]
11593
+ "example": [
11594
+ "role_6555fd293acc2f0fac0e3452"
11595
+ ]
10886
11596
  }
10887
11597
  },
10888
11598
  "additionalProperties": false,
@@ -10983,7 +11693,9 @@
10983
11693
  "get": {
10984
11694
  "operationId": "teammember/get",
10985
11695
  "summary": "Get Teammember",
10986
- "tags": ["teammember"],
11696
+ "tags": [
11697
+ "teammember"
11698
+ ],
10987
11699
  "description": "Get Teammember",
10988
11700
  "parameters": [
10989
11701
  {
@@ -10991,7 +11703,11 @@
10991
11703
  "type": "array",
10992
11704
  "items": {
10993
11705
  "type": "string",
10994
- "enum": ["user", "team", "roles"],
11706
+ "enum": [
11707
+ "user",
11708
+ "team",
11709
+ "roles"
11710
+ ],
10995
11711
  "description": "Allowed expand paths on `teammember`: `user`, `team`, `roles`."
10996
11712
  },
10997
11713
  "maxItems": 3
@@ -11099,7 +11815,9 @@
11099
11815
  "delete": {
11100
11816
  "operationId": "teammember/delete",
11101
11817
  "summary": "Delete Teammember",
11102
- "tags": ["teammember"],
11818
+ "tags": [
11819
+ "teammember"
11820
+ ],
11103
11821
  "description": "Delete Teammember",
11104
11822
  "parameters": [
11105
11823
  {
@@ -11202,7 +11920,9 @@
11202
11920
  "get": {
11203
11921
  "operationId": "team/listMembers",
11204
11922
  "summary": "List Team Members",
11205
- "tags": ["team"],
11923
+ "tags": [
11924
+ "team"
11925
+ ],
11206
11926
  "description": "List all Users that belong to the given Team in the current Account. Supports `?expand=user,team,roles` to inline referenced rows.",
11207
11927
  "parameters": [
11208
11928
  {
@@ -11237,7 +11957,11 @@
11237
11957
  "type": "array",
11238
11958
  "items": {
11239
11959
  "type": "string",
11240
- "enum": ["user", "team", "roles"],
11960
+ "enum": [
11961
+ "user",
11962
+ "team",
11963
+ "roles"
11964
+ ],
11241
11965
  "description": "Allowed expand paths: `user`, `team`, `roles`."
11242
11966
  }
11243
11967
  },
@@ -11262,7 +11986,10 @@
11262
11986
  "application/json": {
11263
11987
  "schema": {
11264
11988
  "type": "object",
11265
- "required": ["next", "results"],
11989
+ "required": [
11990
+ "next",
11991
+ "results"
11992
+ ],
11266
11993
  "properties": {
11267
11994
  "next": {
11268
11995
  "type": "string",
@@ -11288,7 +12015,9 @@
11288
12015
  "post": {
11289
12016
  "operationId": "team/addMembers",
11290
12017
  "summary": "Add Users to a Team",
11291
- "tags": ["team"],
12018
+ "tags": [
12019
+ "team"
12020
+ ],
11292
12021
  "description": "Adds one or more Users as members of the given Team. Returns the resulting TeamMember record.",
11293
12022
  "requestBody": {
11294
12023
  "required": true,
@@ -11296,7 +12025,9 @@
11296
12025
  "application/json": {
11297
12026
  "schema": {
11298
12027
  "type": "object",
11299
- "required": ["users"],
12028
+ "required": [
12029
+ "users"
12030
+ ],
11300
12031
  "properties": {
11301
12032
  "users": {
11302
12033
  "type": "array",
@@ -11304,7 +12035,9 @@
11304
12035
  "type": "string"
11305
12036
  },
11306
12037
  "description": "List of User ids to add as members of the team. Users already in the team are skipped.",
11307
- "example": ["user_6555fd293acc2f0fac0e3452"]
12038
+ "example": [
12039
+ "user_6555fd293acc2f0fac0e3452"
12040
+ ]
11308
12041
  },
11309
12042
  "roles": {
11310
12043
  "type": "array",
@@ -11313,7 +12046,9 @@
11313
12046
  },
11314
12047
  "description": "Role ids to grant to the added members within the scope of this team.",
11315
12048
  "default": [],
11316
- "example": ["role_6555fd293acc2f0fac0e3452"]
12049
+ "example": [
12050
+ "role_6555fd293acc2f0fac0e3452"
12051
+ ]
11317
12052
  }
11318
12053
  },
11319
12054
  "additionalProperties": false,
@@ -11424,7 +12159,9 @@
11424
12159
  "get": {
11425
12160
  "operationId": "team/checkMember",
11426
12161
  "summary": "Check User is member of a Team",
11427
- "tags": ["team"],
12162
+ "tags": [
12163
+ "team"
12164
+ ],
11428
12165
  "description": "Returns the TeamMember record if the User belongs to the given Team, or 404 otherwise.",
11429
12166
  "parameters": [
11430
12167
  {
@@ -11562,7 +12299,9 @@
11562
12299
  "post": {
11563
12300
  "operationId": "team/invite",
11564
12301
  "summary": "Invite a user to a Team by email",
11565
- "tags": ["team"],
12302
+ "tags": [
12303
+ "team"
12304
+ ],
11566
12305
  "description": "Invites a user by email. `mode='auto'` (default) adds the user directly when the email already corresponds to a user in this tenant and falls back to a ticketed invite + email otherwise. `mode='invite'` always issues a ticket + email even when the user exists. Re-inviting the same email to the same team invalidates the previous pending invite.",
11567
12306
  "requestBody": {
11568
12307
  "required": true,
@@ -11570,7 +12309,9 @@
11570
12309
  "application/json": {
11571
12310
  "schema": {
11572
12311
  "type": "object",
11573
- "required": ["email"],
12312
+ "required": [
12313
+ "email"
12314
+ ],
11574
12315
  "properties": {
11575
12316
  "email": {
11576
12317
  "type": "string",
@@ -11589,11 +12330,15 @@
11589
12330
  "anyOf": [
11590
12331
  {
11591
12332
  "type": "string",
11592
- "enum": ["auto"]
12333
+ "enum": [
12334
+ "auto"
12335
+ ]
11593
12336
  },
11594
12337
  {
11595
12338
  "type": "string",
11596
- "enum": ["invite"]
12339
+ "enum": [
12340
+ "invite"
12341
+ ]
11597
12342
  }
11598
12343
  ],
11599
12344
  "description": "`auto` adds the user directly if they already exist in the tenant and only falls back to a ticketed invite when the email is unknown. `invite` always issues a ticket + email regardless of whether the user exists."
@@ -11627,17 +12372,23 @@
11627
12372
  "application/json": {
11628
12373
  "schema": {
11629
12374
  "type": "object",
11630
- "required": ["status"],
12375
+ "required": [
12376
+ "status"
12377
+ ],
11631
12378
  "properties": {
11632
12379
  "status": {
11633
12380
  "anyOf": [
11634
12381
  {
11635
12382
  "type": "string",
11636
- "enum": ["invited"]
12383
+ "enum": [
12384
+ "invited"
12385
+ ]
11637
12386
  },
11638
12387
  {
11639
12388
  "type": "string",
11640
- "enum": ["added"]
12389
+ "enum": [
12390
+ "added"
12391
+ ]
11641
12392
  }
11642
12393
  ],
11643
12394
  "description": "`invited` when a ticket + email was issued, `added` when the user was added directly (auto mode + existing user)."
@@ -11733,7 +12484,9 @@
11733
12484
  "get": {
11734
12485
  "operationId": "team/listInvites",
11735
12486
  "summary": "List pending invites for a Team",
11736
- "tags": ["team"],
12487
+ "tags": [
12488
+ "team"
12489
+ ],
11737
12490
  "description": "Returns all pending (not consumed, not expired) team invites for the given team. Accepts a FaableQL `query` parameter on the `email` field.",
11738
12491
  "parameters": [
11739
12492
  {
@@ -11761,7 +12514,9 @@
11761
12514
  "application/json": {
11762
12515
  "schema": {
11763
12516
  "type": "object",
11764
- "required": ["data"],
12517
+ "required": [
12518
+ "data"
12519
+ ],
11765
12520
  "properties": {
11766
12521
  "data": {
11767
12522
  "type": "array",
@@ -11821,11 +12576,15 @@
11821
12576
  "anyOf": [
11822
12577
  {
11823
12578
  "type": "string",
11824
- "enum": ["auto"]
12579
+ "enum": [
12580
+ "auto"
12581
+ ]
11825
12582
  },
11826
12583
  {
11827
12584
  "type": "string",
11828
- "enum": ["invite"]
12585
+ "enum": [
12586
+ "invite"
12587
+ ]
11829
12588
  }
11830
12589
  ],
11831
12590
  "description": "`auto` adds the user directly if they already exist in the tenant and only falls back to a ticketed invite when the email is unknown. `invite` always issues a ticket + email regardless of whether the user exists."
@@ -11877,7 +12636,9 @@
11877
12636
  "delete": {
11878
12637
  "operationId": "team/revokeInvite",
11879
12638
  "summary": "Revoke a pending team invite",
11880
- "tags": ["team"],
12639
+ "tags": [
12640
+ "team"
12641
+ ],
11881
12642
  "description": "Marks a pending team invite as consumed so it can no longer be accepted. Returns 400 if the invite is already consumed and 404 if it does not exist or belongs to a different team.",
11882
12643
  "parameters": [
11883
12644
  {
@@ -11904,11 +12665,15 @@
11904
12665
  "application/json": {
11905
12666
  "schema": {
11906
12667
  "type": "object",
11907
- "required": ["status"],
12668
+ "required": [
12669
+ "status"
12670
+ ],
11908
12671
  "properties": {
11909
12672
  "status": {
11910
12673
  "type": "string",
11911
- "enum": ["revoked"]
12674
+ "enum": [
12675
+ "revoked"
12676
+ ]
11912
12677
  }
11913
12678
  }
11914
12679
  }
@@ -11922,7 +12687,9 @@
11922
12687
  "get": {
11923
12688
  "operationId": "team_invite_verify",
11924
12689
  "summary": "Verify a team-invite ticket and add the user to the team",
11925
- "tags": ["team"],
12690
+ "tags": [
12691
+ "team"
12692
+ ],
11926
12693
  "description": "Entry point for the link sent to the invitee. Consumes the ticket, creates the user if needed (with `email_verified=true` — the click proves ownership), and adds them to the team with the invited roles. Then redirects to the `redirect_uri` supplied at invite time with `?status=accepted` appended; falls back to `/flow/team-invite-done` on the auth host when no `redirect_uri` was given. Idempotent if the user is already a member.",
11927
12694
  "parameters": [
11928
12695
  {
@@ -11945,7 +12712,9 @@
11945
12712
  "get": {
11946
12713
  "operationId": "api/list",
11947
12714
  "summary": "List Apis",
11948
- "tags": ["api"],
12715
+ "tags": [
12716
+ "api"
12717
+ ],
11949
12718
  "description": "List Apis",
11950
12719
  "parameters": [
11951
12720
  {
@@ -12005,7 +12774,10 @@
12005
12774
  "application/json": {
12006
12775
  "schema": {
12007
12776
  "type": "object",
12008
- "required": ["next", "results"],
12777
+ "required": [
12778
+ "next",
12779
+ "results"
12780
+ ],
12009
12781
  "properties": {
12010
12782
  "next": {
12011
12783
  "anyOf": [
@@ -12034,7 +12806,9 @@
12034
12806
  "post": {
12035
12807
  "operationId": "api/create",
12036
12808
  "summary": "Create Api",
12037
- "tags": ["api"],
12809
+ "tags": [
12810
+ "api"
12811
+ ],
12038
12812
  "description": "Create Api",
12039
12813
  "requestBody": {
12040
12814
  "required": true,
@@ -12042,7 +12816,10 @@
12042
12816
  "application/json": {
12043
12817
  "schema": {
12044
12818
  "type": "object",
12045
- "required": ["name", "identifier"],
12819
+ "required": [
12820
+ "name",
12821
+ "identifier"
12822
+ ],
12046
12823
  "properties": {
12047
12824
  "name": {
12048
12825
  "type": "string",
@@ -12070,7 +12847,9 @@
12070
12847
  "anyOf": [
12071
12848
  {
12072
12849
  "type": "string",
12073
- "enum": ["RS256"]
12850
+ "enum": [
12851
+ "RS256"
12852
+ ]
12074
12853
  }
12075
12854
  ],
12076
12855
  "description": "JWA algorithm used to sign access_tokens issued for this API. Currently only RS256 (the account keystore default) is implemented."
@@ -12079,11 +12858,15 @@
12079
12858
  "anyOf": [
12080
12859
  {
12081
12860
  "type": "string",
12082
- "enum": ["access_token"]
12861
+ "enum": [
12862
+ "access_token"
12863
+ ]
12083
12864
  },
12084
12865
  {
12085
12866
  "type": "string",
12086
- "enum": ["access_token_authz"]
12867
+ "enum": [
12868
+ "access_token_authz"
12869
+ ]
12087
12870
  }
12088
12871
  ],
12089
12872
  "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."
@@ -12190,7 +12973,9 @@
12190
12973
  "anyOf": [
12191
12974
  {
12192
12975
  "type": "string",
12193
- "enum": ["RS256"]
12976
+ "enum": [
12977
+ "RS256"
12978
+ ]
12194
12979
  }
12195
12980
  ],
12196
12981
  "description": "JWA algorithm used to sign access_tokens issued for this API. Currently only RS256 (the account keystore default) is implemented."
@@ -12199,11 +12984,15 @@
12199
12984
  "anyOf": [
12200
12985
  {
12201
12986
  "type": "string",
12202
- "enum": ["access_token"]
12987
+ "enum": [
12988
+ "access_token"
12989
+ ]
12203
12990
  },
12204
12991
  {
12205
12992
  "type": "string",
12206
- "enum": ["access_token_authz"]
12993
+ "enum": [
12994
+ "access_token_authz"
12995
+ ]
12207
12996
  }
12208
12997
  ],
12209
12998
  "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."
@@ -12274,7 +13063,9 @@
12274
13063
  "get": {
12275
13064
  "operationId": "api/get",
12276
13065
  "summary": "Get Api",
12277
- "tags": ["api"],
13066
+ "tags": [
13067
+ "api"
13068
+ ],
12278
13069
  "description": "Get Api",
12279
13070
  "parameters": [
12280
13071
  {
@@ -12346,7 +13137,9 @@
12346
13137
  "anyOf": [
12347
13138
  {
12348
13139
  "type": "string",
12349
- "enum": ["RS256"]
13140
+ "enum": [
13141
+ "RS256"
13142
+ ]
12350
13143
  }
12351
13144
  ],
12352
13145
  "description": "JWA algorithm used to sign access_tokens issued for this API. Currently only RS256 (the account keystore default) is implemented."
@@ -12355,11 +13148,15 @@
12355
13148
  "anyOf": [
12356
13149
  {
12357
13150
  "type": "string",
12358
- "enum": ["access_token"]
13151
+ "enum": [
13152
+ "access_token"
13153
+ ]
12359
13154
  },
12360
13155
  {
12361
13156
  "type": "string",
12362
- "enum": ["access_token_authz"]
13157
+ "enum": [
13158
+ "access_token_authz"
13159
+ ]
12363
13160
  }
12364
13161
  ],
12365
13162
  "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."
@@ -12428,7 +13225,9 @@
12428
13225
  "post": {
12429
13226
  "operationId": "api/update",
12430
13227
  "summary": "Update Api",
12431
- "tags": ["api"],
13228
+ "tags": [
13229
+ "api"
13230
+ ],
12432
13231
  "description": "Update Api",
12433
13232
  "requestBody": {
12434
13233
  "required": true,
@@ -12456,7 +13255,9 @@
12456
13255
  "anyOf": [
12457
13256
  {
12458
13257
  "type": "string",
12459
- "enum": ["RS256"]
13258
+ "enum": [
13259
+ "RS256"
13260
+ ]
12460
13261
  }
12461
13262
  ],
12462
13263
  "description": "JWA algorithm used to sign access_tokens issued for this API. Currently only RS256 (the account keystore default) is implemented."
@@ -12465,11 +13266,15 @@
12465
13266
  "anyOf": [
12466
13267
  {
12467
13268
  "type": "string",
12468
- "enum": ["access_token"]
13269
+ "enum": [
13270
+ "access_token"
13271
+ ]
12469
13272
  },
12470
13273
  {
12471
13274
  "type": "string",
12472
- "enum": ["access_token_authz"]
13275
+ "enum": [
13276
+ "access_token_authz"
13277
+ ]
12473
13278
  }
12474
13279
  ],
12475
13280
  "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."
@@ -12586,7 +13391,9 @@
12586
13391
  "anyOf": [
12587
13392
  {
12588
13393
  "type": "string",
12589
- "enum": ["RS256"]
13394
+ "enum": [
13395
+ "RS256"
13396
+ ]
12590
13397
  }
12591
13398
  ],
12592
13399
  "description": "JWA algorithm used to sign access_tokens issued for this API. Currently only RS256 (the account keystore default) is implemented."
@@ -12595,11 +13402,15 @@
12595
13402
  "anyOf": [
12596
13403
  {
12597
13404
  "type": "string",
12598
- "enum": ["access_token"]
13405
+ "enum": [
13406
+ "access_token"
13407
+ ]
12599
13408
  },
12600
13409
  {
12601
13410
  "type": "string",
12602
- "enum": ["access_token_authz"]
13411
+ "enum": [
13412
+ "access_token_authz"
13413
+ ]
12603
13414
  }
12604
13415
  ],
12605
13416
  "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."
@@ -12668,7 +13479,9 @@
12668
13479
  "delete": {
12669
13480
  "operationId": "api/delete",
12670
13481
  "summary": "Delete Api",
12671
- "tags": ["api"],
13482
+ "tags": [
13483
+ "api"
13484
+ ],
12672
13485
  "description": "Delete Api",
12673
13486
  "parameters": [
12674
13487
  {
@@ -12740,7 +13553,9 @@
12740
13553
  "anyOf": [
12741
13554
  {
12742
13555
  "type": "string",
12743
- "enum": ["RS256"]
13556
+ "enum": [
13557
+ "RS256"
13558
+ ]
12744
13559
  }
12745
13560
  ],
12746
13561
  "description": "JWA algorithm used to sign access_tokens issued for this API. Currently only RS256 (the account keystore default) is implemented."
@@ -12749,11 +13564,15 @@
12749
13564
  "anyOf": [
12750
13565
  {
12751
13566
  "type": "string",
12752
- "enum": ["access_token"]
13567
+ "enum": [
13568
+ "access_token"
13569
+ ]
12753
13570
  },
12754
13571
  {
12755
13572
  "type": "string",
12756
- "enum": ["access_token_authz"]
13573
+ "enum": [
13574
+ "access_token_authz"
13575
+ ]
12757
13576
  }
12758
13577
  ],
12759
13578
  "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."
@@ -12824,7 +13643,9 @@
12824
13643
  "get": {
12825
13644
  "operationId": "account/getKeys",
12826
13645
  "summary": "Get Account signing keys info",
12827
- "tags": ["account"],
13646
+ "tags": [
13647
+ "account"
13648
+ ],
12828
13649
  "description": "Returns metadata for the Account signing keys: the current production kid, the kid queued for next rotation, and all kids currently published in the JWK Set. Does not expose private key material.",
12829
13650
  "responses": {
12830
13651
  "200": {
@@ -12867,7 +13688,9 @@
12867
13688
  "post": {
12868
13689
  "operationId": "account/rotateKeys",
12869
13690
  "summary": "Rotate Account signing keys",
12870
- "tags": ["account"],
13691
+ "tags": [
13692
+ "account"
13693
+ ],
12871
13694
  "description": "Promotes the queued key to production and generates a fresh queued key. The previously-active key is retained inside the JWK Set so tokens already issued remain verifiable via `/.well-known/jwks.json`.",
12872
13695
  "requestBody": {
12873
13696
  "required": true,
@@ -12932,7 +13755,9 @@
12932
13755
  "get": {
12933
13756
  "operationId": "action/list",
12934
13757
  "summary": "List Actions",
12935
- "tags": ["action"],
13758
+ "tags": [
13759
+ "action"
13760
+ ],
12936
13761
  "description": "List Actions",
12937
13762
  "parameters": [
12938
13763
  {
@@ -12981,7 +13806,10 @@
12981
13806
  "application/json": {
12982
13807
  "schema": {
12983
13808
  "type": "object",
12984
- "required": ["next", "results"],
13809
+ "required": [
13810
+ "next",
13811
+ "results"
13812
+ ],
12985
13813
  "properties": {
12986
13814
  "next": {
12987
13815
  "anyOf": [
@@ -13010,7 +13838,9 @@
13010
13838
  "post": {
13011
13839
  "operationId": "action/create",
13012
13840
  "summary": "Create Action",
13013
- "tags": ["action"],
13841
+ "tags": [
13842
+ "action"
13843
+ ],
13014
13844
  "description": "Create Action",
13015
13845
  "requestBody": {
13016
13846
  "required": true,
@@ -13018,7 +13848,10 @@
13018
13848
  "application/json": {
13019
13849
  "schema": {
13020
13850
  "type": "object",
13021
- "required": ["name", "trigger"],
13851
+ "required": [
13852
+ "name",
13853
+ "trigger"
13854
+ ],
13022
13855
  "properties": {
13023
13856
  "name": {
13024
13857
  "type": "string",
@@ -13075,7 +13908,10 @@
13075
13908
  "maxLength": 200
13076
13909
  },
13077
13910
  "trigger": {
13078
- "enum": ["continue", "post-login"],
13911
+ "enum": [
13912
+ "continue",
13913
+ "post-login"
13914
+ ],
13079
13915
  "description": "Trigger event name",
13080
13916
  "default": "post-login"
13081
13917
  },
@@ -13125,7 +13961,9 @@
13125
13961
  "get": {
13126
13962
  "operationId": "action/get",
13127
13963
  "summary": "Get Action",
13128
- "tags": ["action"],
13964
+ "tags": [
13965
+ "action"
13966
+ ],
13129
13967
  "description": "Get Action",
13130
13968
  "parameters": [
13131
13969
  {
@@ -13164,7 +14002,10 @@
13164
14002
  "maxLength": 200
13165
14003
  },
13166
14004
  "trigger": {
13167
- "enum": ["continue", "post-login"],
14005
+ "enum": [
14006
+ "continue",
14007
+ "post-login"
14008
+ ],
13168
14009
  "description": "Trigger event name",
13169
14010
  "default": "post-login"
13170
14011
  },
@@ -13212,7 +14053,9 @@
13212
14053
  "delete": {
13213
14054
  "operationId": "action/delete",
13214
14055
  "summary": "Delete Action",
13215
- "tags": ["action"],
14056
+ "tags": [
14057
+ "action"
14058
+ ],
13216
14059
  "description": "Delete Action",
13217
14060
  "parameters": [
13218
14061
  {
@@ -13251,7 +14094,10 @@
13251
14094
  "maxLength": 200
13252
14095
  },
13253
14096
  "trigger": {
13254
- "enum": ["continue", "post-login"],
14097
+ "enum": [
14098
+ "continue",
14099
+ "post-login"
14100
+ ],
13255
14101
  "description": "Trigger event name",
13256
14102
  "default": "post-login"
13257
14103
  },
@@ -13301,7 +14147,9 @@
13301
14147
  "get": {
13302
14148
  "operationId": "notificationsubscription/list",
13303
14149
  "summary": "List Notificationsubscriptions",
13304
- "tags": ["notificationsubscription"],
14150
+ "tags": [
14151
+ "notificationsubscription"
14152
+ ],
13305
14153
  "description": "List Notificationsubscriptions",
13306
14154
  "parameters": [
13307
14155
  {
@@ -13350,7 +14198,10 @@
13350
14198
  "application/json": {
13351
14199
  "schema": {
13352
14200
  "type": "object",
13353
- "required": ["next", "results"],
14201
+ "required": [
14202
+ "next",
14203
+ "results"
14204
+ ],
13354
14205
  "properties": {
13355
14206
  "next": {
13356
14207
  "anyOf": [
@@ -13379,7 +14230,9 @@
13379
14230
  "post": {
13380
14231
  "operationId": "notificationsubscription/create",
13381
14232
  "summary": "Create Notificationsubscription",
13382
- "tags": ["notificationsubscription"],
14233
+ "tags": [
14234
+ "notificationsubscription"
14235
+ ],
13383
14236
  "description": "Create Notificationsubscription",
13384
14237
  "requestBody": {
13385
14238
  "required": true,
@@ -13389,7 +14242,11 @@
13389
14242
  "anyOf": [
13390
14243
  {
13391
14244
  "type": "object",
13392
- "required": ["events", "channel", "config"],
14245
+ "required": [
14246
+ "events",
14247
+ "channel",
14248
+ "config"
14249
+ ],
13393
14250
  "properties": {
13394
14251
  "events": {
13395
14252
  "type": "array",
@@ -13400,7 +14257,9 @@
13400
14257
  },
13401
14258
  "channel": {
13402
14259
  "type": "string",
13403
- "enum": ["email"]
14260
+ "enum": [
14261
+ "email"
14262
+ ]
13404
14263
  },
13405
14264
  "active": {
13406
14265
  "type": "boolean",
@@ -13408,7 +14267,9 @@
13408
14267
  },
13409
14268
  "config": {
13410
14269
  "type": "object",
13411
- "required": ["recipients"],
14270
+ "required": [
14271
+ "recipients"
14272
+ ],
13412
14273
  "properties": {
13413
14274
  "recipients": {
13414
14275
  "type": "array",
@@ -13433,7 +14294,11 @@
13433
14294
  },
13434
14295
  {
13435
14296
  "type": "object",
13436
- "required": ["events", "channel", "config"],
14297
+ "required": [
14298
+ "events",
14299
+ "channel",
14300
+ "config"
14301
+ ],
13437
14302
  "properties": {
13438
14303
  "events": {
13439
14304
  "type": "array",
@@ -13444,7 +14309,9 @@
13444
14309
  },
13445
14310
  "channel": {
13446
14311
  "type": "string",
13447
- "enum": ["webhook"]
14312
+ "enum": [
14313
+ "webhook"
14314
+ ]
13448
14315
  },
13449
14316
  "active": {
13450
14317
  "type": "boolean",
@@ -13452,7 +14319,10 @@
13452
14319
  },
13453
14320
  "config": {
13454
14321
  "type": "object",
13455
- "required": ["url", "secret"],
14322
+ "required": [
14323
+ "url",
14324
+ "secret"
14325
+ ],
13456
14326
  "properties": {
13457
14327
  "url": {
13458
14328
  "type": "string",
@@ -13515,7 +14385,9 @@
13515
14385
  },
13516
14386
  "channel": {
13517
14387
  "type": "string",
13518
- "enum": ["email"]
14388
+ "enum": [
14389
+ "email"
14390
+ ]
13519
14391
  },
13520
14392
  "active": {
13521
14393
  "type": "boolean",
@@ -13523,7 +14395,9 @@
13523
14395
  },
13524
14396
  "config": {
13525
14397
  "type": "object",
13526
- "required": ["recipients"],
14398
+ "required": [
14399
+ "recipients"
14400
+ ],
13527
14401
  "properties": {
13528
14402
  "recipients": {
13529
14403
  "type": "array",
@@ -13583,7 +14457,9 @@
13583
14457
  },
13584
14458
  "channel": {
13585
14459
  "type": "string",
13586
- "enum": ["webhook"]
14460
+ "enum": [
14461
+ "webhook"
14462
+ ]
13587
14463
  },
13588
14464
  "active": {
13589
14465
  "type": "boolean",
@@ -13591,7 +14467,10 @@
13591
14467
  },
13592
14468
  "config": {
13593
14469
  "type": "object",
13594
- "required": ["url", "secret"],
14470
+ "required": [
14471
+ "url",
14472
+ "secret"
14473
+ ],
13595
14474
  "properties": {
13596
14475
  "url": {
13597
14476
  "type": "string",
@@ -13640,7 +14519,9 @@
13640
14519
  "get": {
13641
14520
  "operationId": "notificationsubscription/get",
13642
14521
  "summary": "Get Notificationsubscription",
13643
- "tags": ["notificationsubscription"],
14522
+ "tags": [
14523
+ "notificationsubscription"
14524
+ ],
13644
14525
  "description": "Get Notificationsubscription",
13645
14526
  "parameters": [
13646
14527
  {
@@ -13684,7 +14565,9 @@
13684
14565
  },
13685
14566
  "channel": {
13686
14567
  "type": "string",
13687
- "enum": ["email"]
14568
+ "enum": [
14569
+ "email"
14570
+ ]
13688
14571
  },
13689
14572
  "active": {
13690
14573
  "type": "boolean",
@@ -13692,7 +14575,9 @@
13692
14575
  },
13693
14576
  "config": {
13694
14577
  "type": "object",
13695
- "required": ["recipients"],
14578
+ "required": [
14579
+ "recipients"
14580
+ ],
13696
14581
  "properties": {
13697
14582
  "recipients": {
13698
14583
  "type": "array",
@@ -13752,7 +14637,9 @@
13752
14637
  },
13753
14638
  "channel": {
13754
14639
  "type": "string",
13755
- "enum": ["webhook"]
14640
+ "enum": [
14641
+ "webhook"
14642
+ ]
13756
14643
  },
13757
14644
  "active": {
13758
14645
  "type": "boolean",
@@ -13760,7 +14647,10 @@
13760
14647
  },
13761
14648
  "config": {
13762
14649
  "type": "object",
13763
- "required": ["url", "secret"],
14650
+ "required": [
14651
+ "url",
14652
+ "secret"
14653
+ ],
13764
14654
  "properties": {
13765
14655
  "url": {
13766
14656
  "type": "string",
@@ -13807,7 +14697,9 @@
13807
14697
  "post": {
13808
14698
  "operationId": "notificationsubscription/update",
13809
14699
  "summary": "Update Notificationsubscription",
13810
- "tags": ["notificationsubscription"],
14700
+ "tags": [
14701
+ "notificationsubscription"
14702
+ ],
13811
14703
  "description": "Update Notificationsubscription",
13812
14704
  "requestBody": {
13813
14705
  "required": true,
@@ -13827,7 +14719,9 @@
13827
14719
  },
13828
14720
  "channel": {
13829
14721
  "type": "string",
13830
- "enum": ["email"]
14722
+ "enum": [
14723
+ "email"
14724
+ ]
13831
14725
  },
13832
14726
  "active": {
13833
14727
  "type": "boolean",
@@ -13866,7 +14760,9 @@
13866
14760
  },
13867
14761
  "channel": {
13868
14762
  "type": "string",
13869
- "enum": ["webhook"]
14763
+ "enum": [
14764
+ "webhook"
14765
+ ]
13870
14766
  },
13871
14767
  "active": {
13872
14768
  "type": "boolean",
@@ -13943,7 +14839,9 @@
13943
14839
  },
13944
14840
  "channel": {
13945
14841
  "type": "string",
13946
- "enum": ["email"]
14842
+ "enum": [
14843
+ "email"
14844
+ ]
13947
14845
  },
13948
14846
  "active": {
13949
14847
  "type": "boolean",
@@ -13951,7 +14849,9 @@
13951
14849
  },
13952
14850
  "config": {
13953
14851
  "type": "object",
13954
- "required": ["recipients"],
14852
+ "required": [
14853
+ "recipients"
14854
+ ],
13955
14855
  "properties": {
13956
14856
  "recipients": {
13957
14857
  "type": "array",
@@ -14011,7 +14911,9 @@
14011
14911
  },
14012
14912
  "channel": {
14013
14913
  "type": "string",
14014
- "enum": ["webhook"]
14914
+ "enum": [
14915
+ "webhook"
14916
+ ]
14015
14917
  },
14016
14918
  "active": {
14017
14919
  "type": "boolean",
@@ -14019,7 +14921,10 @@
14019
14921
  },
14020
14922
  "config": {
14021
14923
  "type": "object",
14022
- "required": ["url", "secret"],
14924
+ "required": [
14925
+ "url",
14926
+ "secret"
14927
+ ],
14023
14928
  "properties": {
14024
14929
  "url": {
14025
14930
  "type": "string",
@@ -14066,7 +14971,9 @@
14066
14971
  "delete": {
14067
14972
  "operationId": "notificationsubscription/delete",
14068
14973
  "summary": "Delete Notificationsubscription",
14069
- "tags": ["notificationsubscription"],
14974
+ "tags": [
14975
+ "notificationsubscription"
14976
+ ],
14070
14977
  "description": "Delete Notificationsubscription",
14071
14978
  "parameters": [
14072
14979
  {
@@ -14110,7 +15017,9 @@
14110
15017
  },
14111
15018
  "channel": {
14112
15019
  "type": "string",
14113
- "enum": ["email"]
15020
+ "enum": [
15021
+ "email"
15022
+ ]
14114
15023
  },
14115
15024
  "active": {
14116
15025
  "type": "boolean",
@@ -14118,7 +15027,9 @@
14118
15027
  },
14119
15028
  "config": {
14120
15029
  "type": "object",
14121
- "required": ["recipients"],
15030
+ "required": [
15031
+ "recipients"
15032
+ ],
14122
15033
  "properties": {
14123
15034
  "recipients": {
14124
15035
  "type": "array",
@@ -14178,7 +15089,9 @@
14178
15089
  },
14179
15090
  "channel": {
14180
15091
  "type": "string",
14181
- "enum": ["webhook"]
15092
+ "enum": [
15093
+ "webhook"
15094
+ ]
14182
15095
  },
14183
15096
  "active": {
14184
15097
  "type": "boolean",
@@ -14186,7 +15099,10 @@
14186
15099
  },
14187
15100
  "config": {
14188
15101
  "type": "object",
14189
- "required": ["url", "secret"],
15102
+ "required": [
15103
+ "url",
15104
+ "secret"
15105
+ ],
14190
15106
  "properties": {
14191
15107
  "url": {
14192
15108
  "type": "string",
@@ -14235,7 +15151,9 @@
14235
15151
  "get": {
14236
15152
  "operationId": "log/list",
14237
15153
  "summary": "List Logs",
14238
- "tags": ["log"],
15154
+ "tags": [
15155
+ "log"
15156
+ ],
14239
15157
  "description": "List Logs",
14240
15158
  "parameters": [
14241
15159
  {
@@ -14281,7 +15199,13 @@
14281
15199
  "type": "array",
14282
15200
  "items": {
14283
15201
  "type": "string",
14284
- "enum": ["user", "client", "connection", "team", "identity"],
15202
+ "enum": [
15203
+ "user",
15204
+ "client",
15205
+ "connection",
15206
+ "team",
15207
+ "identity"
15208
+ ],
14285
15209
  "description": "Allowed expand paths on `log`: `user`, `client`, `connection`, `team`, `identity`."
14286
15210
  },
14287
15211
  "maxItems": 5
@@ -14310,7 +15234,10 @@
14310
15234
  "application/json": {
14311
15235
  "schema": {
14312
15236
  "type": "object",
14313
- "required": ["next", "results"],
15237
+ "required": [
15238
+ "next",
15239
+ "results"
15240
+ ],
14314
15241
  "properties": {
14315
15242
  "next": {
14316
15243
  "anyOf": [
@@ -14341,7 +15268,9 @@
14341
15268
  "get": {
14342
15269
  "operationId": "log/get",
14343
15270
  "summary": "Get Log",
14344
- "tags": ["log"],
15271
+ "tags": [
15272
+ "log"
15273
+ ],
14345
15274
  "description": "Get Log",
14346
15275
  "parameters": [
14347
15276
  {
@@ -14349,7 +15278,13 @@
14349
15278
  "type": "array",
14350
15279
  "items": {
14351
15280
  "type": "string",
14352
- "enum": ["user", "client", "connection", "team", "identity"],
15281
+ "enum": [
15282
+ "user",
15283
+ "client",
15284
+ "connection",
15285
+ "team",
15286
+ "identity"
15287
+ ],
14353
15288
  "description": "Allowed expand paths on `log`: `user`, `client`, `connection`, `team`, `identity`."
14354
15289
  },
14355
15290
  "maxItems": 5
@@ -14375,7 +15310,13 @@
14375
15310
  "application/json": {
14376
15311
  "schema": {
14377
15312
  "type": "object",
14378
- "required": ["id", "type", "status", "account", "createdAt"],
15313
+ "required": [
15314
+ "id",
15315
+ "type",
15316
+ "status",
15317
+ "account",
15318
+ "createdAt"
15319
+ ],
14379
15320
  "properties": {
14380
15321
  "id": {
14381
15322
  "type": "string",
@@ -14389,19 +15330,27 @@
14389
15330
  "anyOf": [
14390
15331
  {
14391
15332
  "type": "string",
14392
- "enum": ["success"]
15333
+ "enum": [
15334
+ "success"
15335
+ ]
14393
15336
  },
14394
15337
  {
14395
15338
  "type": "string",
14396
- "enum": ["failed"]
15339
+ "enum": [
15340
+ "failed"
15341
+ ]
14397
15342
  },
14398
15343
  {
14399
15344
  "type": "string",
14400
- "enum": ["skipped"]
15345
+ "enum": [
15346
+ "skipped"
15347
+ ]
14401
15348
  },
14402
15349
  {
14403
15350
  "type": "string",
14404
- "enum": ["info"]
15351
+ "enum": [
15352
+ "info"
15353
+ ]
14405
15354
  }
14406
15355
  ],
14407
15356
  "description": "Log status"
@@ -14508,7 +15457,9 @@
14508
15457
  "post": {
14509
15458
  "operationId": "customdomain/retry",
14510
15459
  "summary": "Retry manual domain verification",
14511
- "tags": ["customdomain"],
15460
+ "tags": [
15461
+ "customdomain"
15462
+ ],
14512
15463
  "description": "Forces a re-verification of a Custom Domain that is in FAILED, DEGRADED or VERIFYING state. Rate-limited to one retry per minute.",
14513
15464
  "parameters": [
14514
15465
  {
@@ -14531,7 +15482,9 @@
14531
15482
  "get": {
14532
15483
  "operationId": "customdomain/list",
14533
15484
  "summary": "List Customdomains",
14534
- "tags": ["customdomain"],
15485
+ "tags": [
15486
+ "customdomain"
15487
+ ],
14535
15488
  "description": "List Customdomains",
14536
15489
  "parameters": [
14537
15490
  {
@@ -14591,7 +15544,10 @@
14591
15544
  "application/json": {
14592
15545
  "schema": {
14593
15546
  "type": "object",
14594
- "required": ["next", "results"],
15547
+ "required": [
15548
+ "next",
15549
+ "results"
15550
+ ],
14595
15551
  "properties": {
14596
15552
  "next": {
14597
15553
  "anyOf": [
@@ -14620,7 +15576,9 @@
14620
15576
  "post": {
14621
15577
  "operationId": "customdomain/create",
14622
15578
  "summary": "Create Customdomain",
14623
- "tags": ["customdomain"],
15579
+ "tags": [
15580
+ "customdomain"
15581
+ ],
14624
15582
  "description": "Create Customdomain",
14625
15583
  "requestBody": {
14626
15584
  "required": true,
@@ -14628,7 +15586,9 @@
14628
15586
  "application/json": {
14629
15587
  "schema": {
14630
15588
  "type": "object",
14631
- "required": ["domain"],
15589
+ "required": [
15590
+ "domain"
15591
+ ],
14632
15592
  "properties": {
14633
15593
  "domain": {
14634
15594
  "type": "string"
@@ -14734,7 +15694,9 @@
14734
15694
  "get": {
14735
15695
  "operationId": "customdomain/get",
14736
15696
  "summary": "Get Customdomain",
14737
- "tags": ["customdomain"],
15697
+ "tags": [
15698
+ "customdomain"
15699
+ ],
14738
15700
  "description": "Get Customdomain",
14739
15701
  "parameters": [
14740
15702
  {
@@ -14831,7 +15793,9 @@
14831
15793
  "delete": {
14832
15794
  "operationId": "customdomain/delete",
14833
15795
  "summary": "Delete Customdomain",
14834
- "tags": ["customdomain"],
15796
+ "tags": [
15797
+ "customdomain"
15798
+ ],
14835
15799
  "description": "Delete Customdomain",
14836
15800
  "parameters": [
14837
15801
  {
@@ -14930,7 +15894,9 @@
14930
15894
  "get": {
14931
15895
  "operationId": "passwordless/verify_redirect",
14932
15896
  "summary": "Receive a passwordless token via email link and convert it to a valid session",
14933
- "tags": ["passwordless"],
15897
+ "tags": [
15898
+ "passwordless"
15899
+ ],
14934
15900
  "description": "Receive a passwordless token and convert it to a valid session",
14935
15901
  "parameters": [
14936
15902
  {
@@ -14953,7 +15919,9 @@
14953
15919
  "post": {
14954
15920
  "operationId": "passwordless/start",
14955
15921
  "summary": "Start Passwordless authentication flow",
14956
- "tags": ["passwordless"],
15922
+ "tags": [
15923
+ "passwordless"
15924
+ ],
14957
15925
  "description": "Start Passwordless authentication flow",
14958
15926
  "requestBody": {
14959
15927
  "required": true,
@@ -14961,7 +15929,11 @@
14961
15929
  "application/json": {
14962
15930
  "schema": {
14963
15931
  "type": "object",
14964
- "required": ["client_id", "email", "send"],
15932
+ "required": [
15933
+ "client_id",
15934
+ "email",
15935
+ "send"
15936
+ ],
14965
15937
  "properties": {
14966
15938
  "client_id": {
14967
15939
  "type": "string"
@@ -14998,7 +15970,9 @@
14998
15970
  "get": {
14999
15971
  "operationId": "session/me",
15000
15972
  "summary": "Get current User",
15001
- "tags": ["session"],
15973
+ "tags": [
15974
+ "session"
15975
+ ],
15002
15976
  "description": "Returns the User behind the current session or bearer token. Requires a valid session cookie or `Authorization: Bearer <access_token>` header.",
15003
15977
  "responses": {
15004
15978
  "200": {
@@ -15066,27 +16040,39 @@
15066
16040
  "anyOf": [
15067
16041
  {
15068
16042
  "type": "string",
15069
- "enum": ["manual"]
16043
+ "enum": [
16044
+ "manual"
16045
+ ]
15070
16046
  },
15071
16047
  {
15072
16048
  "type": "string",
15073
- "enum": ["verification_flow"]
16049
+ "enum": [
16050
+ "verification_flow"
16051
+ ]
15074
16052
  },
15075
16053
  {
15076
16054
  "type": "string",
15077
- "enum": ["passwordless_otp"]
16055
+ "enum": [
16056
+ "passwordless_otp"
16057
+ ]
15078
16058
  },
15079
16059
  {
15080
16060
  "type": "string",
15081
- "enum": ["team_invite"]
16061
+ "enum": [
16062
+ "team_invite"
16063
+ ]
15082
16064
  },
15083
16065
  {
15084
16066
  "type": "string",
15085
- "enum": ["email_change"]
16067
+ "enum": [
16068
+ "email_change"
16069
+ ]
15086
16070
  },
15087
16071
  {
15088
16072
  "type": "string",
15089
- "enum": ["federated"]
16073
+ "enum": [
16074
+ "federated"
16075
+ ]
15090
16076
  },
15091
16077
  {
15092
16078
  "type": "null"
@@ -15117,27 +16103,39 @@
15117
16103
  "anyOf": [
15118
16104
  {
15119
16105
  "type": "string",
15120
- "enum": ["manual"]
16106
+ "enum": [
16107
+ "manual"
16108
+ ]
15121
16109
  },
15122
16110
  {
15123
16111
  "type": "string",
15124
- "enum": ["verification_flow"]
16112
+ "enum": [
16113
+ "verification_flow"
16114
+ ]
15125
16115
  },
15126
16116
  {
15127
16117
  "type": "string",
15128
- "enum": ["passwordless_otp"]
16118
+ "enum": [
16119
+ "passwordless_otp"
16120
+ ]
15129
16121
  },
15130
16122
  {
15131
16123
  "type": "string",
15132
- "enum": ["team_invite"]
16124
+ "enum": [
16125
+ "team_invite"
16126
+ ]
15133
16127
  },
15134
16128
  {
15135
16129
  "type": "string",
15136
- "enum": ["email_change"]
16130
+ "enum": [
16131
+ "email_change"
16132
+ ]
15137
16133
  },
15138
16134
  {
15139
16135
  "type": "string",
15140
- "enum": ["federated"]
16136
+ "enum": [
16137
+ "federated"
16138
+ ]
15141
16139
  },
15142
16140
  {
15143
16141
  "type": "null"
@@ -15284,7 +16282,9 @@
15284
16282
  "get": {
15285
16283
  "operationId": "session/logout",
15286
16284
  "summary": "OpenID Connect RP-Initiated Logout",
15287
- "tags": ["session"],
16285
+ "tags": [
16286
+ "session"
16287
+ ],
15288
16288
  "description": "Destroys the current session. Implements OIDC RP-Initiated Logout 1.0 and Front-Channel Logout 1.0: when RPs with a registered `frontchannel_logout_uri` participated in the session, returns an HTML page with one iframe per RP and (when applicable) auto-redirects to `post_logout_redirect_uri`.",
15289
16289
  "parameters": [
15290
16290
  {
@@ -15362,7 +16362,9 @@
15362
16362
  "get": {
15363
16363
  "operationId": "authorize",
15364
16364
  "summary": "Authorization request",
15365
- "tags": ["oauth"],
16365
+ "tags": [
16366
+ "oauth"
16367
+ ],
15366
16368
  "description": "Authorization request",
15367
16369
  "parameters": [
15368
16370
  {
@@ -15509,7 +16511,9 @@
15509
16511
  "get": {
15510
16512
  "operationId": "oauth/tokenGet",
15511
16513
  "summary": "OAuth2 Token endpoint (GET)",
15512
- "tags": ["oauth"],
16514
+ "tags": [
16515
+ "oauth"
16516
+ ],
15513
16517
  "description": "OAuth2 Token endpoint (RFC 6749 §3.2). Exchanges credentials for tokens depending on `grant_type` (authorization_code, client_credentials, refresh_token, password, otp, token_exchange, device_code). The GET variant accepts the same parameters as querystring.",
15514
16518
  "parameters": [
15515
16519
  {
@@ -15517,31 +16521,45 @@
15517
16521
  "anyOf": [
15518
16522
  {
15519
16523
  "type": "string",
15520
- "enum": ["authorization_code"]
16524
+ "enum": [
16525
+ "authorization_code"
16526
+ ]
15521
16527
  },
15522
16528
  {
15523
16529
  "type": "string",
15524
- "enum": ["client_credentials"]
16530
+ "enum": [
16531
+ "client_credentials"
16532
+ ]
15525
16533
  },
15526
16534
  {
15527
16535
  "type": "string",
15528
- "enum": ["refresh_token"]
16536
+ "enum": [
16537
+ "refresh_token"
16538
+ ]
15529
16539
  },
15530
16540
  {
15531
16541
  "type": "string",
15532
- "enum": ["password"]
16542
+ "enum": [
16543
+ "password"
16544
+ ]
15533
16545
  },
15534
16546
  {
15535
16547
  "type": "string",
15536
- "enum": ["http://auth0.com/oauth/grant-type/passwordless/otp"]
16548
+ "enum": [
16549
+ "http://auth0.com/oauth/grant-type/passwordless/otp"
16550
+ ]
15537
16551
  },
15538
16552
  {
15539
16553
  "type": "string",
15540
- "enum": ["urn:ietf:params:oauth:grant-type:token-exchange"]
16554
+ "enum": [
16555
+ "urn:ietf:params:oauth:grant-type:token-exchange"
16556
+ ]
15541
16557
  },
15542
16558
  {
15543
16559
  "type": "string",
15544
- "enum": ["urn:ietf:params:oauth:grant-type:device_code"]
16560
+ "enum": [
16561
+ "urn:ietf:params:oauth:grant-type:device_code"
16562
+ ]
15545
16563
  }
15546
16564
  ]
15547
16565
  },
@@ -15665,7 +16683,11 @@
15665
16683
  "application/json": {
15666
16684
  "schema": {
15667
16685
  "type": "object",
15668
- "required": ["token_type", "expires_in", "access_token"],
16686
+ "required": [
16687
+ "token_type",
16688
+ "expires_in",
16689
+ "access_token"
16690
+ ],
15669
16691
  "properties": {
15670
16692
  "token_type": {
15671
16693
  "type": "string"
@@ -15695,7 +16717,9 @@
15695
16717
  "post": {
15696
16718
  "operationId": "oauth/token",
15697
16719
  "summary": "OAuth2 Token endpoint",
15698
- "tags": ["oauth"],
16720
+ "tags": [
16721
+ "oauth"
16722
+ ],
15699
16723
  "description": "OAuth2 Token endpoint (RFC 6749 §3.2). Exchanges credentials for tokens depending on `grant_type` (authorization_code, client_credentials, refresh_token, password, otp, token_exchange, device_code).",
15700
16724
  "requestBody": {
15701
16725
  "required": true,
@@ -15708,19 +16732,27 @@
15708
16732
  "anyOf": [
15709
16733
  {
15710
16734
  "type": "string",
15711
- "enum": ["authorization_code"]
16735
+ "enum": [
16736
+ "authorization_code"
16737
+ ]
15712
16738
  },
15713
16739
  {
15714
16740
  "type": "string",
15715
- "enum": ["client_credentials"]
16741
+ "enum": [
16742
+ "client_credentials"
16743
+ ]
15716
16744
  },
15717
16745
  {
15718
16746
  "type": "string",
15719
- "enum": ["refresh_token"]
16747
+ "enum": [
16748
+ "refresh_token"
16749
+ ]
15720
16750
  },
15721
16751
  {
15722
16752
  "type": "string",
15723
- "enum": ["password"]
16753
+ "enum": [
16754
+ "password"
16755
+ ]
15724
16756
  },
15725
16757
  {
15726
16758
  "type": "string",
@@ -15736,7 +16768,9 @@
15736
16768
  },
15737
16769
  {
15738
16770
  "type": "string",
15739
- "enum": ["urn:ietf:params:oauth:grant-type:device_code"]
16771
+ "enum": [
16772
+ "urn:ietf:params:oauth:grant-type:device_code"
16773
+ ]
15740
16774
  }
15741
16775
  ],
15742
16776
  "description": "Grant Type. https://oauth.net/2/grant-types/"
@@ -15795,31 +16829,45 @@
15795
16829
  "anyOf": [
15796
16830
  {
15797
16831
  "type": "string",
15798
- "enum": ["authorization_code"]
16832
+ "enum": [
16833
+ "authorization_code"
16834
+ ]
15799
16835
  },
15800
16836
  {
15801
16837
  "type": "string",
15802
- "enum": ["client_credentials"]
16838
+ "enum": [
16839
+ "client_credentials"
16840
+ ]
15803
16841
  },
15804
16842
  {
15805
16843
  "type": "string",
15806
- "enum": ["refresh_token"]
16844
+ "enum": [
16845
+ "refresh_token"
16846
+ ]
15807
16847
  },
15808
16848
  {
15809
16849
  "type": "string",
15810
- "enum": ["password"]
16850
+ "enum": [
16851
+ "password"
16852
+ ]
15811
16853
  },
15812
16854
  {
15813
16855
  "type": "string",
15814
- "enum": ["http://auth0.com/oauth/grant-type/passwordless/otp"]
16856
+ "enum": [
16857
+ "http://auth0.com/oauth/grant-type/passwordless/otp"
16858
+ ]
15815
16859
  },
15816
16860
  {
15817
16861
  "type": "string",
15818
- "enum": ["urn:ietf:params:oauth:grant-type:token-exchange"]
16862
+ "enum": [
16863
+ "urn:ietf:params:oauth:grant-type:token-exchange"
16864
+ ]
15819
16865
  },
15820
16866
  {
15821
16867
  "type": "string",
15822
- "enum": ["urn:ietf:params:oauth:grant-type:device_code"]
16868
+ "enum": [
16869
+ "urn:ietf:params:oauth:grant-type:device_code"
16870
+ ]
15823
16871
  }
15824
16872
  ]
15825
16873
  },
@@ -15943,7 +16991,11 @@
15943
16991
  "application/json": {
15944
16992
  "schema": {
15945
16993
  "type": "object",
15946
- "required": ["token_type", "expires_in", "access_token"],
16994
+ "required": [
16995
+ "token_type",
16996
+ "expires_in",
16997
+ "access_token"
16998
+ ],
15947
16999
  "properties": {
15948
17000
  "token_type": {
15949
17001
  "type": "string"
@@ -15975,7 +17027,9 @@
15975
17027
  "post": {
15976
17028
  "operationId": "oauth/deviceCode",
15977
17029
  "summary": "Device authorization request",
15978
- "tags": ["oauth"],
17030
+ "tags": [
17031
+ "oauth"
17032
+ ],
15979
17033
  "description": "OAuth2 Device Authorization Grant (RFC 8628) — start step. A device that cannot run a browser calls this endpoint to obtain a `device_code`, a `user_code` to show to the user, and the verification URLs to display.",
15980
17034
  "requestBody": {
15981
17035
  "required": true,
@@ -15983,7 +17037,9 @@
15983
17037
  "application/json": {
15984
17038
  "schema": {
15985
17039
  "type": "object",
15986
- "required": ["client_id"],
17040
+ "required": [
17041
+ "client_id"
17042
+ ],
15987
17043
  "properties": {
15988
17044
  "client_id": {
15989
17045
  "type": "string",
@@ -16048,7 +17104,9 @@
16048
17104
  "get": {
16049
17105
  "operationId": "oauth/deviceActivate",
16050
17106
  "summary": "Device activation redirect",
16051
- "tags": ["oauth"],
17107
+ "tags": [
17108
+ "oauth"
17109
+ ],
16052
17110
  "description": "Entry URL displayed on the device. Redirects the browser to the external `/flow/device-code/activate` UI where the user enters their `user_code`.",
16053
17111
  "parameters": [
16054
17112
  {
@@ -16071,7 +17129,9 @@
16071
17129
  "get": {
16072
17130
  "operationId": "oauth/deviceConfirm",
16073
17131
  "summary": "Device confirmation redirect",
16074
- "tags": ["oauth"],
17132
+ "tags": [
17133
+ "oauth"
17134
+ ],
16075
17135
  "description": "Redirects to the external `/flow/device-code/confirm` UI after the user enters their `user_code`. The UI then calls `/oauth/device/authorize` to grant the device.",
16076
17136
  "parameters": [
16077
17137
  {
@@ -16094,7 +17154,9 @@
16094
17154
  "post": {
16095
17155
  "operationId": "oauth/deviceVerify",
16096
17156
  "summary": "Verify a device user_code",
16097
- "tags": ["oauth"],
17157
+ "tags": [
17158
+ "oauth"
17159
+ ],
16098
17160
  "description": "Called by the external UI after the user enters their `user_code`. Returns the matching `device_code` and minimal client info so the UI can render \"Authorize <App>?\".",
16099
17161
  "requestBody": {
16100
17162
  "required": true,
@@ -16102,7 +17164,9 @@
16102
17164
  "application/json": {
16103
17165
  "schema": {
16104
17166
  "type": "object",
16105
- "required": ["user_code"],
17167
+ "required": [
17168
+ "user_code"
17169
+ ],
16106
17170
  "properties": {
16107
17171
  "user_code": {
16108
17172
  "type": "string"
@@ -16119,7 +17183,10 @@
16119
17183
  "application/json": {
16120
17184
  "schema": {
16121
17185
  "type": "object",
16122
- "required": ["device_code", "client"],
17186
+ "required": [
17187
+ "device_code",
17188
+ "client"
17189
+ ],
16123
17190
  "properties": {
16124
17191
  "device_code": {
16125
17192
  "type": "string"
@@ -16147,15 +17214,19 @@
16147
17214
  "post": {
16148
17215
  "operationId": "oauth/deviceAuthorize",
16149
17216
  "summary": "Authorize a pending device request",
16150
- "tags": ["oauth"],
16151
- "description": "Authorizes a `device_code` on behalf of the currently authenticated user, allowing the device to subsequently exchange that code for tokens at `/oauth/token`.",
17217
+ "tags": [
17218
+ "oauth"
17219
+ ],
17220
+ "description": "Authorizes a `device_code` on behalf of the currently authenticated user, allowing the device to subsequently exchange that code for tokens at `/oauth/token`. Called by the first-party device-code confirm page, so it authenticates with the browser `faable_sess` session — NOT a bearer token (the page has no access token to send).",
16152
17221
  "requestBody": {
16153
17222
  "required": true,
16154
17223
  "content": {
16155
17224
  "application/json": {
16156
17225
  "schema": {
16157
17226
  "type": "object",
16158
- "required": ["device_code"],
17227
+ "required": [
17228
+ "device_code"
17229
+ ],
16159
17230
  "properties": {
16160
17231
  "device_code": {
16161
17232
  "type": "string"
@@ -16172,7 +17243,9 @@
16172
17243
  "application/json": {
16173
17244
  "schema": {
16174
17245
  "type": "object",
16175
- "required": ["success"],
17246
+ "required": [
17247
+ "success"
17248
+ ],
16176
17249
  "properties": {
16177
17250
  "success": {
16178
17251
  "type": "boolean"
@@ -16189,7 +17262,9 @@
16189
17262
  "get": {
16190
17263
  "operationId": "callback",
16191
17264
  "summary": "OAuth2 Callback URL",
16192
- "tags": ["oauth"],
17265
+ "tags": [
17266
+ "oauth"
17267
+ ],
16193
17268
  "description": "OAuth2 Callback URL",
16194
17269
  "parameters": [
16195
17270
  {
@@ -16244,7 +17319,9 @@
16244
17319
  "get": {
16245
17320
  "operationId": "oauth_continue",
16246
17321
  "summary": "OAuth2 Resume URL",
16247
- "tags": ["oauth"],
17322
+ "tags": [
17323
+ "oauth"
17324
+ ],
16248
17325
  "description": "Resume OAuth flow after a progressive profiling action",
16249
17326
  "parameters": [
16250
17327
  {
@@ -16268,7 +17345,9 @@
16268
17345
  "get": {
16269
17346
  "operationId": "oauth/openidConfiguration",
16270
17347
  "summary": "OpenID Connect Discovery document",
16271
- "tags": ["oauth"],
17348
+ "tags": [
17349
+ "oauth"
17350
+ ],
16272
17351
  "description": "Returns the OpenID Provider Configuration document for this Account (issuer, supported endpoints, response types, signing algorithms, claims, etc.) as defined by OIDC Discovery 1.0.",
16273
17352
  "responses": {
16274
17353
  "200": {
@@ -16281,7 +17360,9 @@
16281
17360
  "get": {
16282
17361
  "operationId": "oauth/jwks",
16283
17362
  "summary": "JSON Web Key Set",
16284
- "tags": ["oauth"],
17363
+ "tags": [
17364
+ "oauth"
17365
+ ],
16285
17366
  "description": "Returns the public JWKs (RFC 7517) used to verify tokens issued by this Account. Consumers MUST use the `kid` from a token header to select the right key.",
16286
17367
  "responses": {
16287
17368
  "200": {
@@ -16294,7 +17375,9 @@
16294
17375
  "get": {
16295
17376
  "operationId": "oauth/userinfo",
16296
17377
  "summary": "OpenID Connect UserInfo endpoint",
16297
- "tags": ["oauth"],
17378
+ "tags": [
17379
+ "oauth"
17380
+ ],
16298
17381
  "description": "Returns claims about the authenticated User. Authentication is via a Bearer access token (RFC 6750). Returned claims are filtered by the `scope` claim of the access token (OIDC §5.3.2). The response always contains `sub`. See https://openid.net/specs/openid-connect-core-1_0.html#UserInfo.",
16299
17382
  "responses": {
16300
17383
  "200": {
@@ -16303,7 +17386,9 @@
16303
17386
  "application/json": {
16304
17387
  "schema": {
16305
17388
  "type": "object",
16306
- "required": ["sub"],
17389
+ "required": [
17390
+ "sub"
17391
+ ],
16307
17392
  "properties": {
16308
17393
  "sub": {
16309
17394
  "type": "string",
@@ -16360,7 +17445,9 @@
16360
17445
  "post": {
16361
17446
  "operationId": "oauth/userinfoPost",
16362
17447
  "summary": "OpenID Connect UserInfo endpoint (POST)",
16363
- "tags": ["oauth"],
17448
+ "tags": [
17449
+ "oauth"
17450
+ ],
16364
17451
  "description": "Same as `GET /userinfo`. Provided for clients that prefer to send the Bearer token in a POST body or are required to by spec compliance audits.",
16365
17452
  "responses": {
16366
17453
  "200": {
@@ -16369,7 +17456,9 @@
16369
17456
  "application/json": {
16370
17457
  "schema": {
16371
17458
  "type": "object",
16372
- "required": ["sub"],
17459
+ "required": [
17460
+ "sub"
17461
+ ],
16373
17462
  "properties": {
16374
17463
  "sub": {
16375
17464
  "type": "string",
@@ -16428,7 +17517,9 @@
16428
17517
  "post": {
16429
17518
  "operationId": "oauth/register",
16430
17519
  "summary": "OpenID Connect Dynamic Client Registration",
16431
- "tags": ["oauth"],
17520
+ "tags": [
17521
+ "oauth"
17522
+ ],
16432
17523
  "description": "Register a new OAuth/OIDC client dynamically (OIDC Dynamic Client Registration 1.0 / RFC 7591). The new client is bound to the Account resolved from the request context.",
16433
17524
  "requestBody": {
16434
17525
  "required": true,
@@ -16436,7 +17527,9 @@
16436
17527
  "application/json": {
16437
17528
  "schema": {
16438
17529
  "type": "object",
16439
- "required": ["redirect_uris"],
17530
+ "required": [
17531
+ "redirect_uris"
17532
+ ],
16440
17533
  "properties": {
16441
17534
  "redirect_uris": {
16442
17535
  "type": "array",
@@ -16493,11 +17586,15 @@
16493
17586
  "anyOf": [
16494
17587
  {
16495
17588
  "type": "string",
16496
- "enum": ["web"]
17589
+ "enum": [
17590
+ "web"
17591
+ ]
16497
17592
  },
16498
17593
  {
16499
17594
  "type": "string",
16500
- "enum": ["native"]
17595
+ "enum": [
17596
+ "native"
17597
+ ]
16501
17598
  }
16502
17599
  ],
16503
17600
  "description": "OIDC §2 — application type. Defaults to \"web\"."
@@ -16645,7 +17742,9 @@
16645
17742
  "post": {
16646
17743
  "operationId": "usernamepassword/login",
16647
17744
  "summary": "Username + password login",
16648
- "tags": ["usernamepassword"],
17745
+ "tags": [
17746
+ "usernamepassword"
17747
+ ],
16649
17748
  "description": "Authenticates a user with username/password credentials against the database connection and renders an auto-submitting form that posts the resulting token to `/login/callback`.",
16650
17749
  "requestBody": {
16651
17750
  "required": true,
@@ -16653,7 +17752,11 @@
16653
17752
  "application/json": {
16654
17753
  "schema": {
16655
17754
  "type": "object",
16656
- "required": ["username", "password", "client_id"],
17755
+ "required": [
17756
+ "username",
17757
+ "password",
17758
+ "client_id"
17759
+ ],
16657
17760
  "properties": {
16658
17761
  "username": {
16659
17762
  "type": "string"
@@ -16729,7 +17832,9 @@
16729
17832
  "post": {
16730
17833
  "operationId": "usernamepassword/loginCallback",
16731
17834
  "summary": "Username + password login callback",
16732
- "tags": ["usernamepassword"],
17835
+ "tags": [
17836
+ "usernamepassword"
17837
+ ],
16733
17838
  "description": "Completes the username/password login flow. The token issued by `/usernamepassword/login` is posted back here together with the serialized state (`wctx`) so the server can redirect the user agent to the original client `redirect_uri`.",
16734
17839
  "requestBody": {
16735
17840
  "required": true,
@@ -16737,7 +17842,11 @@
16737
17842
  "application/json": {
16738
17843
  "schema": {
16739
17844
  "type": "object",
16740
- "required": ["wa", "wresult", "wctx"],
17845
+ "required": [
17846
+ "wa",
17847
+ "wresult",
17848
+ "wctx"
17849
+ ],
16741
17850
  "properties": {
16742
17851
  "wa": {
16743
17852
  "type": "string",
@@ -16767,7 +17876,9 @@
16767
17876
  "post": {
16768
17877
  "operationId": "change_password",
16769
17878
  "summary": "Change password",
16770
- "tags": ["dbconnection"],
17879
+ "tags": [
17880
+ "dbconnection"
17881
+ ],
16771
17882
  "description": "Change password",
16772
17883
  "requestBody": {
16773
17884
  "required": true,
@@ -16775,7 +17886,9 @@
16775
17886
  "application/json": {
16776
17887
  "schema": {
16777
17888
  "type": "object",
16778
- "required": ["email"],
17889
+ "required": [
17890
+ "email"
17891
+ ],
16779
17892
  "properties": {
16780
17893
  "email": {
16781
17894
  "type": "string"
@@ -16796,7 +17909,9 @@
16796
17909
  "get": {
16797
17910
  "operationId": "change_password_verify",
16798
17911
  "summary": "Change password verify",
16799
- "tags": ["dbconnection"],
17912
+ "tags": [
17913
+ "dbconnection"
17914
+ ],
16800
17915
  "description": "Change password verify",
16801
17916
  "parameters": [
16802
17917
  {
@@ -16819,7 +17934,9 @@
16819
17934
  "post": {
16820
17935
  "operationId": "change_password_change",
16821
17936
  "summary": "Reset password change",
16822
- "tags": ["dbconnection"],
17937
+ "tags": [
17938
+ "dbconnection"
17939
+ ],
16823
17940
  "description": "Reset password change",
16824
17941
  "requestBody": {
16825
17942
  "required": true,
@@ -16827,7 +17944,10 @@
16827
17944
  "application/json": {
16828
17945
  "schema": {
16829
17946
  "type": "object",
16830
- "required": ["state", "new_password"],
17947
+ "required": [
17948
+ "state",
17949
+ "new_password"
17950
+ ],
16831
17951
  "properties": {
16832
17952
  "state": {
16833
17953
  "type": "string"
@@ -16910,4 +18030,4 @@
16910
18030
  }
16911
18031
  }
16912
18032
  ]
16913
- }
18033
+ }