@1claw/openapi-spec 0.48.2 → 0.50.0
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/openapi.json +336 -8
- package/openapi.yaml +255 -4
- package/package.json +1 -1
package/openapi.json
CHANGED
|
@@ -921,7 +921,19 @@
|
|
|
921
921
|
"Authentication"
|
|
922
922
|
],
|
|
923
923
|
"summary": "Complete passkey registration",
|
|
924
|
+
"description": "When the account already has a password, passkey, or TOTP,\n`X-Auth-Confirm` is required (purpose `security.passkey.register`).\n",
|
|
924
925
|
"operationId": "passkeyRegisterComplete",
|
|
926
|
+
"parameters": [
|
|
927
|
+
{
|
|
928
|
+
"name": "X-Auth-Confirm",
|
|
929
|
+
"in": "header",
|
|
930
|
+
"required": false,
|
|
931
|
+
"description": "Re-auth token (`rat_`) or account password",
|
|
932
|
+
"schema": {
|
|
933
|
+
"type": "string"
|
|
934
|
+
}
|
|
935
|
+
}
|
|
936
|
+
],
|
|
925
937
|
"requestBody": {
|
|
926
938
|
"required": true,
|
|
927
939
|
"content": {
|
|
@@ -1154,6 +1166,7 @@
|
|
|
1154
1166
|
"Authentication"
|
|
1155
1167
|
],
|
|
1156
1168
|
"summary": "Delete a passkey",
|
|
1169
|
+
"description": "Removes a registered passkey. Requires recent re-authentication\n(`X-Auth-Confirm` with a `rat_` token from `POST /v1/auth/reauth`\nusing purpose `security.passkey.delete`). Passkey or TOTP is\nrequired when either is enrolled. Deleting the last passkey is\nrefused while vault passkey unlock is enabled.\n",
|
|
1157
1170
|
"operationId": "deletePasskey",
|
|
1158
1171
|
"parameters": [
|
|
1159
1172
|
{
|
|
@@ -1164,11 +1177,23 @@
|
|
|
1164
1177
|
"type": "string",
|
|
1165
1178
|
"format": "uuid"
|
|
1166
1179
|
}
|
|
1180
|
+
},
|
|
1181
|
+
{
|
|
1182
|
+
"name": "X-Auth-Confirm",
|
|
1183
|
+
"in": "header",
|
|
1184
|
+
"required": true,
|
|
1185
|
+
"description": "Re-auth token (`rat_`) or account password",
|
|
1186
|
+
"schema": {
|
|
1187
|
+
"type": "string"
|
|
1188
|
+
}
|
|
1167
1189
|
}
|
|
1168
1190
|
],
|
|
1169
1191
|
"responses": {
|
|
1170
1192
|
"200": {
|
|
1171
1193
|
"description": "Passkey deleted"
|
|
1194
|
+
},
|
|
1195
|
+
"403": {
|
|
1196
|
+
"$ref": "#/components/responses/Forbidden"
|
|
1172
1197
|
}
|
|
1173
1198
|
}
|
|
1174
1199
|
}
|
|
@@ -1305,6 +1330,17 @@
|
|
|
1305
1330
|
],
|
|
1306
1331
|
"summary": "Delete current user account",
|
|
1307
1332
|
"operationId": "deleteMe",
|
|
1333
|
+
"parameters": [
|
|
1334
|
+
{
|
|
1335
|
+
"name": "X-Auth-Confirm",
|
|
1336
|
+
"in": "header",
|
|
1337
|
+
"required": true,
|
|
1338
|
+
"description": "Re-auth token (`rat_`, purpose `account.delete`) or password",
|
|
1339
|
+
"schema": {
|
|
1340
|
+
"type": "string"
|
|
1341
|
+
}
|
|
1342
|
+
}
|
|
1343
|
+
],
|
|
1308
1344
|
"requestBody": {
|
|
1309
1345
|
"required": true,
|
|
1310
1346
|
"content": {
|
|
@@ -1334,6 +1370,76 @@
|
|
|
1334
1370
|
}
|
|
1335
1371
|
}
|
|
1336
1372
|
},
|
|
1373
|
+
"/v1/auth/settings": {
|
|
1374
|
+
"get": {
|
|
1375
|
+
"tags": [
|
|
1376
|
+
"Authentication"
|
|
1377
|
+
],
|
|
1378
|
+
"summary": "Get user security settings",
|
|
1379
|
+
"operationId": "getSecuritySettings",
|
|
1380
|
+
"responses": {
|
|
1381
|
+
"200": {
|
|
1382
|
+
"description": "Security settings",
|
|
1383
|
+
"content": {
|
|
1384
|
+
"application/json": {
|
|
1385
|
+
"schema": {
|
|
1386
|
+
"type": "object",
|
|
1387
|
+
"properties": {
|
|
1388
|
+
"require_passkey_for_vaults": {
|
|
1389
|
+
"type": "boolean"
|
|
1390
|
+
},
|
|
1391
|
+
"passkey_count": {
|
|
1392
|
+
"type": "integer"
|
|
1393
|
+
}
|
|
1394
|
+
}
|
|
1395
|
+
}
|
|
1396
|
+
}
|
|
1397
|
+
}
|
|
1398
|
+
}
|
|
1399
|
+
}
|
|
1400
|
+
},
|
|
1401
|
+
"patch": {
|
|
1402
|
+
"tags": [
|
|
1403
|
+
"Authentication"
|
|
1404
|
+
],
|
|
1405
|
+
"summary": "Update user security settings",
|
|
1406
|
+
"description": "Disabling `require_passkey_for_vaults` requires `X-Auth-Confirm`\n(purpose `security.vault_passkey.disable`) with a passkey or TOTP\nwhen either is enrolled.\n",
|
|
1407
|
+
"operationId": "updateSecuritySettings",
|
|
1408
|
+
"parameters": [
|
|
1409
|
+
{
|
|
1410
|
+
"name": "X-Auth-Confirm",
|
|
1411
|
+
"in": "header",
|
|
1412
|
+
"required": false,
|
|
1413
|
+
"schema": {
|
|
1414
|
+
"type": "string"
|
|
1415
|
+
}
|
|
1416
|
+
}
|
|
1417
|
+
],
|
|
1418
|
+
"requestBody": {
|
|
1419
|
+
"required": true,
|
|
1420
|
+
"content": {
|
|
1421
|
+
"application/json": {
|
|
1422
|
+
"schema": {
|
|
1423
|
+
"type": "object",
|
|
1424
|
+
"properties": {
|
|
1425
|
+
"require_passkey_for_vaults": {
|
|
1426
|
+
"type": "boolean"
|
|
1427
|
+
}
|
|
1428
|
+
}
|
|
1429
|
+
}
|
|
1430
|
+
}
|
|
1431
|
+
}
|
|
1432
|
+
},
|
|
1433
|
+
"responses": {
|
|
1434
|
+
"200": {
|
|
1435
|
+
"description": "Updated settings"
|
|
1436
|
+
},
|
|
1437
|
+
"403": {
|
|
1438
|
+
"$ref": "#/components/responses/Forbidden"
|
|
1439
|
+
}
|
|
1440
|
+
}
|
|
1441
|
+
}
|
|
1442
|
+
},
|
|
1337
1443
|
"/v1/auth/mfa/status": {
|
|
1338
1444
|
"get": {
|
|
1339
1445
|
"tags": [
|
|
@@ -1451,7 +1557,19 @@
|
|
|
1451
1557
|
"Authentication"
|
|
1452
1558
|
],
|
|
1453
1559
|
"summary": "Disable MFA",
|
|
1560
|
+
"description": "Requires a valid TOTP or recovery code in the body, or a passkey\nre-auth token in `X-Auth-Confirm` (purpose `security.mfa.disable`).\nAccount password alone is not accepted while TOTP is enabled.\n",
|
|
1454
1561
|
"operationId": "mfaDisable",
|
|
1562
|
+
"parameters": [
|
|
1563
|
+
{
|
|
1564
|
+
"name": "X-Auth-Confirm",
|
|
1565
|
+
"in": "header",
|
|
1566
|
+
"required": false,
|
|
1567
|
+
"description": "Passkey or TOTP re-auth token (`rat_`)",
|
|
1568
|
+
"schema": {
|
|
1569
|
+
"type": "string"
|
|
1570
|
+
}
|
|
1571
|
+
}
|
|
1572
|
+
],
|
|
1455
1573
|
"requestBody": {
|
|
1456
1574
|
"required": true,
|
|
1457
1575
|
"content": {
|
|
@@ -1699,8 +1817,18 @@
|
|
|
1699
1817
|
"Authentication"
|
|
1700
1818
|
],
|
|
1701
1819
|
"summary": "Export user data (GDPR)",
|
|
1702
|
-
"description": "Returns a full export of the authenticated user's data including\nprofile, vaults, agents, secrets metadata, and policies. Intended\nfor GDPR data-portability requests. Only available to human users\n(not agents).\n",
|
|
1820
|
+
"description": "Returns a full export of the authenticated user's data including\nprofile, vaults, agents, secrets metadata, and policies. Intended\nfor GDPR data-portability requests. Only available to human users\n(not agents). Requires `X-Auth-Confirm` (purpose `account.export`);\npasskey or TOTP when either is enrolled.\n",
|
|
1703
1821
|
"operationId": "exportUserData",
|
|
1822
|
+
"parameters": [
|
|
1823
|
+
{
|
|
1824
|
+
"name": "X-Auth-Confirm",
|
|
1825
|
+
"in": "header",
|
|
1826
|
+
"required": true,
|
|
1827
|
+
"schema": {
|
|
1828
|
+
"type": "string"
|
|
1829
|
+
}
|
|
1830
|
+
}
|
|
1831
|
+
],
|
|
1704
1832
|
"responses": {
|
|
1705
1833
|
"200": {
|
|
1706
1834
|
"description": "User data export",
|
|
@@ -16066,10 +16194,13 @@
|
|
|
16066
16194
|
"type": "object",
|
|
16067
16195
|
"properties": {
|
|
16068
16196
|
"code": {
|
|
16069
|
-
"type": "string"
|
|
16197
|
+
"type": "string",
|
|
16198
|
+
"description": "TOTP or recovery code"
|
|
16070
16199
|
},
|
|
16071
16200
|
"password": {
|
|
16072
|
-
"type": "string"
|
|
16201
|
+
"type": "string",
|
|
16202
|
+
"description": "Deprecated. Password is no longer sufficient to disable MFA.",
|
|
16203
|
+
"deprecated": true
|
|
16073
16204
|
}
|
|
16074
16205
|
}
|
|
16075
16206
|
},
|
|
@@ -25938,9 +26069,18 @@
|
|
|
25938
26069
|
},
|
|
25939
26070
|
"TxConditions": {
|
|
25940
26071
|
"type": "object",
|
|
25941
|
-
"description": "Signing-time
|
|
26072
|
+
"description": "Signing-time conditions on access policies (all tiers).\nIgnored on secret reads. Evaluated when a TransactionContext is present.\nFields are combined according to `match_mode` (default AND).\n",
|
|
25942
26073
|
"additionalProperties": true,
|
|
25943
26074
|
"properties": {
|
|
26075
|
+
"match_mode": {
|
|
26076
|
+
"type": "string",
|
|
26077
|
+
"enum": [
|
|
26078
|
+
"all",
|
|
26079
|
+
"any"
|
|
26080
|
+
],
|
|
26081
|
+
"default": "all",
|
|
26082
|
+
"description": "How individual condition fields are combined.\n\"all\" (default): every present field must match (AND).\n\"any\": at least one present field must match (OR).\n"
|
|
26083
|
+
},
|
|
25944
26084
|
"function_name_in": {
|
|
25945
26085
|
"type": "array",
|
|
25946
26086
|
"items": {
|
|
@@ -25958,7 +26098,43 @@
|
|
|
25958
26098
|
},
|
|
25959
26099
|
"value_above": {
|
|
25960
26100
|
"type": "string",
|
|
25961
|
-
"description": "Native value threshold in
|
|
26101
|
+
"description": "Native value threshold in wei (arbitrary-precision string)"
|
|
26102
|
+
},
|
|
26103
|
+
"eip712_primary_type_in": {
|
|
26104
|
+
"type": "array",
|
|
26105
|
+
"items": {
|
|
26106
|
+
"type": "string"
|
|
26107
|
+
},
|
|
26108
|
+
"description": "Match EIP-712 typed_data primaryType (case-sensitive)"
|
|
26109
|
+
},
|
|
26110
|
+
"eip712_verifying_contract_in": {
|
|
26111
|
+
"type": "array",
|
|
26112
|
+
"items": {
|
|
26113
|
+
"type": "string"
|
|
26114
|
+
},
|
|
26115
|
+
"description": "Match EIP-712 domain.verifyingContract (case-insensitive)"
|
|
26116
|
+
},
|
|
26117
|
+
"eip712_domain_name_in": {
|
|
26118
|
+
"type": "array",
|
|
26119
|
+
"items": {
|
|
26120
|
+
"type": "string"
|
|
26121
|
+
},
|
|
26122
|
+
"description": "Match EIP-712 domain.name"
|
|
26123
|
+
},
|
|
26124
|
+
"eip712_domain_chain_id_in": {
|
|
26125
|
+
"type": "array",
|
|
26126
|
+
"items": {
|
|
26127
|
+
"type": "integer",
|
|
26128
|
+
"format": "int64"
|
|
26129
|
+
},
|
|
26130
|
+
"description": "Match EIP-712 domain.chainId"
|
|
26131
|
+
},
|
|
26132
|
+
"eip7702_authorized_addresses_in": {
|
|
26133
|
+
"type": "array",
|
|
26134
|
+
"items": {
|
|
26135
|
+
"type": "string"
|
|
26136
|
+
},
|
|
26137
|
+
"description": "Match EIP-7702 authorization_list delegate addresses (case-insensitive)"
|
|
25962
26138
|
},
|
|
25963
26139
|
"to_address_in": {
|
|
25964
26140
|
"type": "array",
|
|
@@ -25986,6 +26162,11 @@
|
|
|
25986
26162
|
"items": {
|
|
25987
26163
|
"type": "string"
|
|
25988
26164
|
}
|
|
26165
|
+
},
|
|
26166
|
+
"deep_inspect": {
|
|
26167
|
+
"type": "boolean",
|
|
26168
|
+
"default": false,
|
|
26169
|
+
"description": "When true, conditions are also evaluated against inner calls\nextracted from wrapper transactions (multicall, Safe execTransaction,\nERC-4337 handleOps). A match on any inner call counts as an overall match.\n"
|
|
25989
26170
|
}
|
|
25990
26171
|
}
|
|
25991
26172
|
},
|
|
@@ -26013,6 +26194,101 @@
|
|
|
26013
26194
|
"self_approval_allowed": {
|
|
26014
26195
|
"type": "boolean",
|
|
26015
26196
|
"default": false
|
|
26197
|
+
},
|
|
26198
|
+
"skip_when": {
|
|
26199
|
+
"type": "array",
|
|
26200
|
+
"description": "When ALL conditions in ANY entry match, consensus is bypassed.\nUseful for exempting known-safe recipients or low-value transfers.\n",
|
|
26201
|
+
"items": {
|
|
26202
|
+
"$ref": "#/components/schemas/FlatConditionSet"
|
|
26203
|
+
}
|
|
26204
|
+
},
|
|
26205
|
+
"require_when": {
|
|
26206
|
+
"type": "array",
|
|
26207
|
+
"description": "Consensus is ONLY required when at least one entry matches.\nIf set and none match, consensus is skipped entirely.\n",
|
|
26208
|
+
"items": {
|
|
26209
|
+
"$ref": "#/components/schemas/FlatConditionSet"
|
|
26210
|
+
}
|
|
26211
|
+
},
|
|
26212
|
+
"deep_inspect": {
|
|
26213
|
+
"type": "boolean",
|
|
26214
|
+
"default": false,
|
|
26215
|
+
"description": "When true, also evaluate conditions against inner calls extracted\nfrom wrapper transactions (multicall, Safe execTransaction,\nERC-4337 handleOps).\n"
|
|
26216
|
+
}
|
|
26217
|
+
}
|
|
26218
|
+
},
|
|
26219
|
+
"FlatConditionSet": {
|
|
26220
|
+
"type": "object",
|
|
26221
|
+
"description": "Flat condition set used by consensus composability. Each present field\nis AND-combined within the set. At least one field must be specified\n(unless `always` is true).\n",
|
|
26222
|
+
"additionalProperties": false,
|
|
26223
|
+
"properties": {
|
|
26224
|
+
"value_above": {
|
|
26225
|
+
"type": "string",
|
|
26226
|
+
"description": "Native value threshold in gwei (numeric string)"
|
|
26227
|
+
},
|
|
26228
|
+
"chain_in": {
|
|
26229
|
+
"type": "array",
|
|
26230
|
+
"items": {
|
|
26231
|
+
"type": "string"
|
|
26232
|
+
}
|
|
26233
|
+
},
|
|
26234
|
+
"to_address_in": {
|
|
26235
|
+
"type": "array",
|
|
26236
|
+
"items": {
|
|
26237
|
+
"type": "string"
|
|
26238
|
+
}
|
|
26239
|
+
},
|
|
26240
|
+
"function_selector_in": {
|
|
26241
|
+
"type": "array",
|
|
26242
|
+
"items": {
|
|
26243
|
+
"type": "string"
|
|
26244
|
+
}
|
|
26245
|
+
},
|
|
26246
|
+
"erc20_amount_above": {
|
|
26247
|
+
"type": "string",
|
|
26248
|
+
"description": "ERC-20 raw token amount threshold (numeric string)"
|
|
26249
|
+
},
|
|
26250
|
+
"intent_type_in": {
|
|
26251
|
+
"type": "array",
|
|
26252
|
+
"items": {
|
|
26253
|
+
"type": "string"
|
|
26254
|
+
}
|
|
26255
|
+
},
|
|
26256
|
+
"always": {
|
|
26257
|
+
"type": "boolean",
|
|
26258
|
+
"description": "When true, this entry always matches regardless of other fields"
|
|
26259
|
+
}
|
|
26260
|
+
}
|
|
26261
|
+
},
|
|
26262
|
+
"TimeWindow": {
|
|
26263
|
+
"type": "object",
|
|
26264
|
+
"description": "Time window condition for policy evaluation. Used inside the policy\n`conditions` JSON to restrict when the policy is active.\n",
|
|
26265
|
+
"properties": {
|
|
26266
|
+
"start_hour": {
|
|
26267
|
+
"type": "integer",
|
|
26268
|
+
"minimum": 0,
|
|
26269
|
+
"maximum": 23
|
|
26270
|
+
},
|
|
26271
|
+
"end_hour": {
|
|
26272
|
+
"type": "integer",
|
|
26273
|
+
"minimum": 0,
|
|
26274
|
+
"maximum": 24
|
|
26275
|
+
},
|
|
26276
|
+
"days_of_week": {
|
|
26277
|
+
"type": "array",
|
|
26278
|
+
"description": "Days when policy is active (0=Sunday, 6=Saturday)",
|
|
26279
|
+
"items": {
|
|
26280
|
+
"type": "integer",
|
|
26281
|
+
"minimum": 0,
|
|
26282
|
+
"maximum": 6
|
|
26283
|
+
}
|
|
26284
|
+
},
|
|
26285
|
+
"timezone": {
|
|
26286
|
+
"type": "string",
|
|
26287
|
+
"description": "IANA timezone identifier (e.g. \"America/New_York\"). Defaults to UTC."
|
|
26288
|
+
},
|
|
26289
|
+
"cron_expr": {
|
|
26290
|
+
"type": "string",
|
|
26291
|
+
"description": "Cron expression (6-field with seconds) for fine-grained scheduling."
|
|
26016
26292
|
}
|
|
26017
26293
|
}
|
|
26018
26294
|
},
|
|
@@ -26021,8 +26297,7 @@
|
|
|
26021
26297
|
{
|
|
26022
26298
|
"type": "object",
|
|
26023
26299
|
"required": [
|
|
26024
|
-
"type"
|
|
26025
|
-
"threshold_gwei"
|
|
26300
|
+
"type"
|
|
26026
26301
|
],
|
|
26027
26302
|
"properties": {
|
|
26028
26303
|
"type": {
|
|
@@ -26031,9 +26306,15 @@
|
|
|
26031
26306
|
"value_above"
|
|
26032
26307
|
]
|
|
26033
26308
|
},
|
|
26309
|
+
"threshold_wei": {
|
|
26310
|
+
"type": "string",
|
|
26311
|
+
"description": "Value threshold in wei (arbitrary-precision string). Preferred over threshold_gwei."
|
|
26312
|
+
},
|
|
26034
26313
|
"threshold_gwei": {
|
|
26035
26314
|
"type": "integer",
|
|
26036
|
-
"format": "int64"
|
|
26315
|
+
"format": "int64",
|
|
26316
|
+
"deprecated": true,
|
|
26317
|
+
"description": "Deprecated — use threshold_wei for arbitrary precision"
|
|
26037
26318
|
}
|
|
26038
26319
|
}
|
|
26039
26320
|
},
|
|
@@ -26152,6 +26433,28 @@
|
|
|
26152
26433
|
]
|
|
26153
26434
|
}
|
|
26154
26435
|
}
|
|
26436
|
+
},
|
|
26437
|
+
{
|
|
26438
|
+
"type": "object",
|
|
26439
|
+
"required": [
|
|
26440
|
+
"type",
|
|
26441
|
+
"actions"
|
|
26442
|
+
],
|
|
26443
|
+
"properties": {
|
|
26444
|
+
"type": {
|
|
26445
|
+
"type": "string",
|
|
26446
|
+
"enum": [
|
|
26447
|
+
"action_in"
|
|
26448
|
+
]
|
|
26449
|
+
},
|
|
26450
|
+
"actions": {
|
|
26451
|
+
"type": "array",
|
|
26452
|
+
"items": {
|
|
26453
|
+
"type": "string"
|
|
26454
|
+
},
|
|
26455
|
+
"description": "Control-plane actions to match, e.g. policy.create, policy.update,\npolicy.delete, signing_key.export, member.role_change, member.remove\n"
|
|
26456
|
+
}
|
|
26457
|
+
}
|
|
26155
26458
|
}
|
|
26156
26459
|
]
|
|
26157
26460
|
},
|
|
@@ -26175,6 +26478,20 @@
|
|
|
26175
26478
|
"additionalProperties": {
|
|
26176
26479
|
"type": "integer"
|
|
26177
26480
|
}
|
|
26481
|
+
},
|
|
26482
|
+
"require_credential_types": {
|
|
26483
|
+
"type": "array",
|
|
26484
|
+
"items": {
|
|
26485
|
+
"type": "string",
|
|
26486
|
+
"enum": [
|
|
26487
|
+
"password",
|
|
26488
|
+
"passkey",
|
|
26489
|
+
"totp",
|
|
26490
|
+
"biometric",
|
|
26491
|
+
"api_key"
|
|
26492
|
+
]
|
|
26493
|
+
},
|
|
26494
|
+
"description": "At least one approval must use one of these credential types"
|
|
26178
26495
|
}
|
|
26179
26496
|
}
|
|
26180
26497
|
},
|
|
@@ -26242,6 +26559,17 @@
|
|
|
26242
26559
|
},
|
|
26243
26560
|
"reason": {
|
|
26244
26561
|
"type": "string"
|
|
26562
|
+
},
|
|
26563
|
+
"credential_type": {
|
|
26564
|
+
"type": "string",
|
|
26565
|
+
"enum": [
|
|
26566
|
+
"password",
|
|
26567
|
+
"passkey",
|
|
26568
|
+
"totp",
|
|
26569
|
+
"biometric",
|
|
26570
|
+
"api_key"
|
|
26571
|
+
],
|
|
26572
|
+
"description": "Authentication method used for this approval vote"
|
|
26245
26573
|
}
|
|
26246
26574
|
}
|
|
26247
26575
|
},
|
package/openapi.yaml
CHANGED
|
@@ -625,7 +625,17 @@ paths:
|
|
|
625
625
|
post:
|
|
626
626
|
tags: [Authentication]
|
|
627
627
|
summary: Complete passkey registration
|
|
628
|
+
description: |
|
|
629
|
+
When the account already has a password, passkey, or TOTP,
|
|
630
|
+
`X-Auth-Confirm` is required (purpose `security.passkey.register`).
|
|
628
631
|
operationId: passkeyRegisterComplete
|
|
632
|
+
parameters:
|
|
633
|
+
- name: X-Auth-Confirm
|
|
634
|
+
in: header
|
|
635
|
+
required: false
|
|
636
|
+
description: Re-auth token (`rat_`) or account password
|
|
637
|
+
schema:
|
|
638
|
+
type: string
|
|
629
639
|
requestBody:
|
|
630
640
|
required: true
|
|
631
641
|
content:
|
|
@@ -768,6 +778,12 @@ paths:
|
|
|
768
778
|
delete:
|
|
769
779
|
tags: [Authentication]
|
|
770
780
|
summary: Delete a passkey
|
|
781
|
+
description: |
|
|
782
|
+
Removes a registered passkey. Requires recent re-authentication
|
|
783
|
+
(`X-Auth-Confirm` with a `rat_` token from `POST /v1/auth/reauth`
|
|
784
|
+
using purpose `security.passkey.delete`). Passkey or TOTP is
|
|
785
|
+
required when either is enrolled. Deleting the last passkey is
|
|
786
|
+
refused while vault passkey unlock is enabled.
|
|
771
787
|
operationId: deletePasskey
|
|
772
788
|
parameters:
|
|
773
789
|
- name: passkey_id
|
|
@@ -776,9 +792,17 @@ paths:
|
|
|
776
792
|
schema:
|
|
777
793
|
type: string
|
|
778
794
|
format: uuid
|
|
795
|
+
- name: X-Auth-Confirm
|
|
796
|
+
in: header
|
|
797
|
+
required: true
|
|
798
|
+
description: Re-auth token (`rat_`) or account password
|
|
799
|
+
schema:
|
|
800
|
+
type: string
|
|
779
801
|
responses:
|
|
780
802
|
"200":
|
|
781
803
|
description: Passkey deleted
|
|
804
|
+
"403":
|
|
805
|
+
$ref: "#/components/responses/Forbidden"
|
|
782
806
|
|
|
783
807
|
/v1/approvals/request:
|
|
784
808
|
post:
|
|
@@ -861,6 +885,13 @@ paths:
|
|
|
861
885
|
tags: [Authentication]
|
|
862
886
|
summary: Delete current user account
|
|
863
887
|
operationId: deleteMe
|
|
888
|
+
parameters:
|
|
889
|
+
- name: X-Auth-Confirm
|
|
890
|
+
in: header
|
|
891
|
+
required: true
|
|
892
|
+
description: Re-auth token (`rat_`, purpose `account.delete`) or password
|
|
893
|
+
schema:
|
|
894
|
+
type: string
|
|
864
895
|
requestBody:
|
|
865
896
|
required: true
|
|
866
897
|
content:
|
|
@@ -878,6 +909,52 @@ paths:
|
|
|
878
909
|
"400":
|
|
879
910
|
$ref: "#/components/responses/BadRequest"
|
|
880
911
|
|
|
912
|
+
/v1/auth/settings:
|
|
913
|
+
get:
|
|
914
|
+
tags: [Authentication]
|
|
915
|
+
summary: Get user security settings
|
|
916
|
+
operationId: getSecuritySettings
|
|
917
|
+
responses:
|
|
918
|
+
"200":
|
|
919
|
+
description: Security settings
|
|
920
|
+
content:
|
|
921
|
+
application/json:
|
|
922
|
+
schema:
|
|
923
|
+
type: object
|
|
924
|
+
properties:
|
|
925
|
+
require_passkey_for_vaults:
|
|
926
|
+
type: boolean
|
|
927
|
+
passkey_count:
|
|
928
|
+
type: integer
|
|
929
|
+
patch:
|
|
930
|
+
tags: [Authentication]
|
|
931
|
+
summary: Update user security settings
|
|
932
|
+
description: |
|
|
933
|
+
Disabling `require_passkey_for_vaults` requires `X-Auth-Confirm`
|
|
934
|
+
(purpose `security.vault_passkey.disable`) with a passkey or TOTP
|
|
935
|
+
when either is enrolled.
|
|
936
|
+
operationId: updateSecuritySettings
|
|
937
|
+
parameters:
|
|
938
|
+
- name: X-Auth-Confirm
|
|
939
|
+
in: header
|
|
940
|
+
required: false
|
|
941
|
+
schema:
|
|
942
|
+
type: string
|
|
943
|
+
requestBody:
|
|
944
|
+
required: true
|
|
945
|
+
content:
|
|
946
|
+
application/json:
|
|
947
|
+
schema:
|
|
948
|
+
type: object
|
|
949
|
+
properties:
|
|
950
|
+
require_passkey_for_vaults:
|
|
951
|
+
type: boolean
|
|
952
|
+
responses:
|
|
953
|
+
"200":
|
|
954
|
+
description: Updated settings
|
|
955
|
+
"403":
|
|
956
|
+
$ref: "#/components/responses/Forbidden"
|
|
957
|
+
|
|
881
958
|
# MFA
|
|
882
959
|
|
|
883
960
|
/v1/auth/mfa/status:
|
|
@@ -953,7 +1030,18 @@ paths:
|
|
|
953
1030
|
delete:
|
|
954
1031
|
tags: [Authentication]
|
|
955
1032
|
summary: Disable MFA
|
|
1033
|
+
description: |
|
|
1034
|
+
Requires a valid TOTP or recovery code in the body, or a passkey
|
|
1035
|
+
re-auth token in `X-Auth-Confirm` (purpose `security.mfa.disable`).
|
|
1036
|
+
Account password alone is not accepted while TOTP is enabled.
|
|
956
1037
|
operationId: mfaDisable
|
|
1038
|
+
parameters:
|
|
1039
|
+
- name: X-Auth-Confirm
|
|
1040
|
+
in: header
|
|
1041
|
+
required: false
|
|
1042
|
+
description: Passkey or TOTP re-auth token (`rat_`)
|
|
1043
|
+
schema:
|
|
1044
|
+
type: string
|
|
957
1045
|
requestBody:
|
|
958
1046
|
required: true
|
|
959
1047
|
content:
|
|
@@ -1118,8 +1206,15 @@ paths:
|
|
|
1118
1206
|
Returns a full export of the authenticated user's data including
|
|
1119
1207
|
profile, vaults, agents, secrets metadata, and policies. Intended
|
|
1120
1208
|
for GDPR data-portability requests. Only available to human users
|
|
1121
|
-
(not agents).
|
|
1209
|
+
(not agents). Requires `X-Auth-Confirm` (purpose `account.export`);
|
|
1210
|
+
passkey or TOTP when either is enrolled.
|
|
1122
1211
|
operationId: exportUserData
|
|
1212
|
+
parameters:
|
|
1213
|
+
- name: X-Auth-Confirm
|
|
1214
|
+
in: header
|
|
1215
|
+
required: true
|
|
1216
|
+
schema:
|
|
1217
|
+
type: string
|
|
1123
1218
|
responses:
|
|
1124
1219
|
"200":
|
|
1125
1220
|
description: User data export
|
|
@@ -10278,8 +10373,11 @@ components:
|
|
|
10278
10373
|
properties:
|
|
10279
10374
|
code:
|
|
10280
10375
|
type: string
|
|
10376
|
+
description: TOTP or recovery code
|
|
10281
10377
|
password:
|
|
10282
10378
|
type: string
|
|
10379
|
+
description: Deprecated. Password is no longer sufficient to disable MFA.
|
|
10380
|
+
deprecated: true
|
|
10283
10381
|
|
|
10284
10382
|
# --- Device Auth ---
|
|
10285
10383
|
|
|
@@ -17084,10 +17182,19 @@ components:
|
|
|
17084
17182
|
TxConditions:
|
|
17085
17183
|
type: object
|
|
17086
17184
|
description: |
|
|
17087
|
-
Signing-time
|
|
17185
|
+
Signing-time conditions on access policies (all tiers).
|
|
17088
17186
|
Ignored on secret reads. Evaluated when a TransactionContext is present.
|
|
17187
|
+
Fields are combined according to `match_mode` (default AND).
|
|
17089
17188
|
additionalProperties: true
|
|
17090
17189
|
properties:
|
|
17190
|
+
match_mode:
|
|
17191
|
+
type: string
|
|
17192
|
+
enum: [all, any]
|
|
17193
|
+
default: all
|
|
17194
|
+
description: |
|
|
17195
|
+
How individual condition fields are combined.
|
|
17196
|
+
"all" (default): every present field must match (AND).
|
|
17197
|
+
"any": at least one present field must match (OR).
|
|
17091
17198
|
function_name_in:
|
|
17092
17199
|
type: array
|
|
17093
17200
|
items:
|
|
@@ -17100,7 +17207,33 @@ components:
|
|
|
17100
17207
|
type: string
|
|
17101
17208
|
value_above:
|
|
17102
17209
|
type: string
|
|
17103
|
-
description: Native value threshold in
|
|
17210
|
+
description: Native value threshold in wei (arbitrary-precision string)
|
|
17211
|
+
eip712_primary_type_in:
|
|
17212
|
+
type: array
|
|
17213
|
+
items:
|
|
17214
|
+
type: string
|
|
17215
|
+
description: Match EIP-712 typed_data primaryType (case-sensitive)
|
|
17216
|
+
eip712_verifying_contract_in:
|
|
17217
|
+
type: array
|
|
17218
|
+
items:
|
|
17219
|
+
type: string
|
|
17220
|
+
description: Match EIP-712 domain.verifyingContract (case-insensitive)
|
|
17221
|
+
eip712_domain_name_in:
|
|
17222
|
+
type: array
|
|
17223
|
+
items:
|
|
17224
|
+
type: string
|
|
17225
|
+
description: Match EIP-712 domain.name
|
|
17226
|
+
eip712_domain_chain_id_in:
|
|
17227
|
+
type: array
|
|
17228
|
+
items:
|
|
17229
|
+
type: integer
|
|
17230
|
+
format: int64
|
|
17231
|
+
description: Match EIP-712 domain.chainId
|
|
17232
|
+
eip7702_authorized_addresses_in:
|
|
17233
|
+
type: array
|
|
17234
|
+
items:
|
|
17235
|
+
type: string
|
|
17236
|
+
description: Match EIP-7702 authorization_list delegate addresses (case-insensitive)
|
|
17104
17237
|
to_address_in:
|
|
17105
17238
|
type: array
|
|
17106
17239
|
items:
|
|
@@ -17119,6 +17252,13 @@ components:
|
|
|
17119
17252
|
type: array
|
|
17120
17253
|
items:
|
|
17121
17254
|
type: string
|
|
17255
|
+
deep_inspect:
|
|
17256
|
+
type: boolean
|
|
17257
|
+
default: false
|
|
17258
|
+
description: |
|
|
17259
|
+
When true, conditions are also evaluated against inner calls
|
|
17260
|
+
extracted from wrapper transactions (multicall, Safe execTransaction,
|
|
17261
|
+
ERC-4337 handleOps). A match on any inner call counts as an overall match.
|
|
17122
17262
|
|
|
17123
17263
|
ConsensusTrigger:
|
|
17124
17264
|
type: object
|
|
@@ -17137,18 +17277,106 @@ components:
|
|
|
17137
17277
|
self_approval_allowed:
|
|
17138
17278
|
type: boolean
|
|
17139
17279
|
default: false
|
|
17280
|
+
skip_when:
|
|
17281
|
+
type: array
|
|
17282
|
+
description: |
|
|
17283
|
+
When ALL conditions in ANY entry match, consensus is bypassed.
|
|
17284
|
+
Useful for exempting known-safe recipients or low-value transfers.
|
|
17285
|
+
items:
|
|
17286
|
+
$ref: "#/components/schemas/FlatConditionSet"
|
|
17287
|
+
require_when:
|
|
17288
|
+
type: array
|
|
17289
|
+
description: |
|
|
17290
|
+
Consensus is ONLY required when at least one entry matches.
|
|
17291
|
+
If set and none match, consensus is skipped entirely.
|
|
17292
|
+
items:
|
|
17293
|
+
$ref: "#/components/schemas/FlatConditionSet"
|
|
17294
|
+
deep_inspect:
|
|
17295
|
+
type: boolean
|
|
17296
|
+
default: false
|
|
17297
|
+
description: |
|
|
17298
|
+
When true, also evaluate conditions against inner calls extracted
|
|
17299
|
+
from wrapper transactions (multicall, Safe execTransaction,
|
|
17300
|
+
ERC-4337 handleOps).
|
|
17301
|
+
|
|
17302
|
+
FlatConditionSet:
|
|
17303
|
+
type: object
|
|
17304
|
+
description: |
|
|
17305
|
+
Flat condition set used by consensus composability. Each present field
|
|
17306
|
+
is AND-combined within the set. At least one field must be specified
|
|
17307
|
+
(unless `always` is true).
|
|
17308
|
+
additionalProperties: false
|
|
17309
|
+
properties:
|
|
17310
|
+
value_above:
|
|
17311
|
+
type: string
|
|
17312
|
+
description: Native value threshold in gwei (numeric string)
|
|
17313
|
+
chain_in:
|
|
17314
|
+
type: array
|
|
17315
|
+
items:
|
|
17316
|
+
type: string
|
|
17317
|
+
to_address_in:
|
|
17318
|
+
type: array
|
|
17319
|
+
items:
|
|
17320
|
+
type: string
|
|
17321
|
+
function_selector_in:
|
|
17322
|
+
type: array
|
|
17323
|
+
items:
|
|
17324
|
+
type: string
|
|
17325
|
+
erc20_amount_above:
|
|
17326
|
+
type: string
|
|
17327
|
+
description: ERC-20 raw token amount threshold (numeric string)
|
|
17328
|
+
intent_type_in:
|
|
17329
|
+
type: array
|
|
17330
|
+
items:
|
|
17331
|
+
type: string
|
|
17332
|
+
always:
|
|
17333
|
+
type: boolean
|
|
17334
|
+
description: When true, this entry always matches regardless of other fields
|
|
17335
|
+
|
|
17336
|
+
TimeWindow:
|
|
17337
|
+
type: object
|
|
17338
|
+
description: |
|
|
17339
|
+
Time window condition for policy evaluation. Used inside the policy
|
|
17340
|
+
`conditions` JSON to restrict when the policy is active.
|
|
17341
|
+
properties:
|
|
17342
|
+
start_hour:
|
|
17343
|
+
type: integer
|
|
17344
|
+
minimum: 0
|
|
17345
|
+
maximum: 23
|
|
17346
|
+
end_hour:
|
|
17347
|
+
type: integer
|
|
17348
|
+
minimum: 0
|
|
17349
|
+
maximum: 24
|
|
17350
|
+
days_of_week:
|
|
17351
|
+
type: array
|
|
17352
|
+
description: Days when policy is active (0=Sunday, 6=Saturday)
|
|
17353
|
+
items:
|
|
17354
|
+
type: integer
|
|
17355
|
+
minimum: 0
|
|
17356
|
+
maximum: 6
|
|
17357
|
+
timezone:
|
|
17358
|
+
type: string
|
|
17359
|
+
description: IANA timezone identifier (e.g. "America/New_York"). Defaults to UTC.
|
|
17360
|
+
cron_expr:
|
|
17361
|
+
type: string
|
|
17362
|
+
description: Cron expression (6-field with seconds) for fine-grained scheduling.
|
|
17140
17363
|
|
|
17141
17364
|
ConsensusCondition:
|
|
17142
17365
|
oneOf:
|
|
17143
17366
|
- type: object
|
|
17144
|
-
required: [type
|
|
17367
|
+
required: [type]
|
|
17145
17368
|
properties:
|
|
17146
17369
|
type:
|
|
17147
17370
|
type: string
|
|
17148
17371
|
enum: [value_above]
|
|
17372
|
+
threshold_wei:
|
|
17373
|
+
type: string
|
|
17374
|
+
description: Value threshold in wei (arbitrary-precision string). Preferred over threshold_gwei.
|
|
17149
17375
|
threshold_gwei:
|
|
17150
17376
|
type: integer
|
|
17151
17377
|
format: int64
|
|
17378
|
+
deprecated: true
|
|
17379
|
+
description: Deprecated — use threshold_wei for arbitrary precision
|
|
17152
17380
|
- type: object
|
|
17153
17381
|
required: [type, chains]
|
|
17154
17382
|
properties:
|
|
@@ -17203,6 +17431,19 @@ components:
|
|
|
17203
17431
|
type:
|
|
17204
17432
|
type: string
|
|
17205
17433
|
enum: [always]
|
|
17434
|
+
- type: object
|
|
17435
|
+
required: [type, actions]
|
|
17436
|
+
properties:
|
|
17437
|
+
type:
|
|
17438
|
+
type: string
|
|
17439
|
+
enum: [action_in]
|
|
17440
|
+
actions:
|
|
17441
|
+
type: array
|
|
17442
|
+
items:
|
|
17443
|
+
type: string
|
|
17444
|
+
description: |
|
|
17445
|
+
Control-plane actions to match, e.g. policy.create, policy.update,
|
|
17446
|
+
policy.delete, signing_key.export, member.role_change, member.remove
|
|
17206
17447
|
|
|
17207
17448
|
ApprovalRequirement:
|
|
17208
17449
|
type: object
|
|
@@ -17218,6 +17459,12 @@ components:
|
|
|
17218
17459
|
type: object
|
|
17219
17460
|
additionalProperties:
|
|
17220
17461
|
type: integer
|
|
17462
|
+
require_credential_types:
|
|
17463
|
+
type: array
|
|
17464
|
+
items:
|
|
17465
|
+
type: string
|
|
17466
|
+
enum: [password, passkey, totp, biometric, api_key]
|
|
17467
|
+
description: At least one approval must use one of these credential types
|
|
17221
17468
|
|
|
17222
17469
|
SubmitPendingApprovalRequest:
|
|
17223
17470
|
type: object
|
|
@@ -17260,6 +17507,10 @@ components:
|
|
|
17260
17507
|
type: string
|
|
17261
17508
|
reason:
|
|
17262
17509
|
type: string
|
|
17510
|
+
credential_type:
|
|
17511
|
+
type: string
|
|
17512
|
+
enum: [password, passkey, totp, biometric, api_key]
|
|
17513
|
+
description: Authentication method used for this approval vote
|
|
17263
17514
|
|
|
17264
17515
|
PendingApprovalResponse:
|
|
17265
17516
|
type: object
|