@1claw/openapi-spec 0.52.0 → 0.53.1
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/README.md +14 -1
- package/openapi.json +1919 -529
- package/openapi.yaml +1121 -160
- package/package.json +1 -1
package/openapi.yaml
CHANGED
|
@@ -2,7 +2,7 @@ openapi: 3.1.0
|
|
|
2
2
|
|
|
3
3
|
info:
|
|
4
4
|
title: 1Claw API
|
|
5
|
-
version: 0.
|
|
5
|
+
version: 0.53.1
|
|
6
6
|
description: |
|
|
7
7
|
Secure secret management for AI agents. Provides vaults, secrets,
|
|
8
8
|
policy-based access control, agent identity, Intents API,
|
|
@@ -112,6 +112,12 @@ tags:
|
|
|
112
112
|
description: Unified balance aggregator
|
|
113
113
|
- name: Environment Variables
|
|
114
114
|
description: Per-vault and org-shared environment variable management
|
|
115
|
+
- name: Wallet Access
|
|
116
|
+
description: Role-based wallet access policies for agents and users
|
|
117
|
+
- name: Credential Recovery
|
|
118
|
+
description: MFA/passkey/password recovery escape hatch with admin approval
|
|
119
|
+
- name: Shamir KEK
|
|
120
|
+
description: Shamir secret-sharing for org-level Key Encryption Keys
|
|
115
121
|
|
|
116
122
|
# =============================================================================
|
|
117
123
|
# PATHS
|
|
@@ -2041,19 +2047,25 @@ paths:
|
|
|
2041
2047
|
get:
|
|
2042
2048
|
tags: [Environment Variables]
|
|
2043
2049
|
summary: Resolve environment variables
|
|
2044
|
-
description:
|
|
2050
|
+
description: |
|
|
2051
|
+
Resolve the final KEY=VALUE set for an environment with full precedence (shared < vault < branch override).
|
|
2052
|
+
When the caller is an agent with `env_auto_resolve: true`, the `environment` query parameter may be omitted —
|
|
2053
|
+
the server uses the agent's tagged environment from the JWT. Org setting `env.enforce_agent_environment_scope`
|
|
2054
|
+
blocks agents from resolving vars outside their tagged environment.
|
|
2045
2055
|
operationId: resolveEnvVars
|
|
2046
2056
|
parameters:
|
|
2047
2057
|
- $ref: "#/components/parameters/VaultId"
|
|
2048
2058
|
- name: environment
|
|
2049
2059
|
in: query
|
|
2050
|
-
required:
|
|
2060
|
+
required: false
|
|
2051
2061
|
schema:
|
|
2052
2062
|
type: string
|
|
2063
|
+
description: Target environment (production, preview, development, or custom). Required for human callers; optional for agents with env_auto_resolve when the agent has an environment tag.
|
|
2053
2064
|
- name: git_branch
|
|
2054
2065
|
in: query
|
|
2055
2066
|
schema:
|
|
2056
2067
|
type: string
|
|
2068
|
+
description: Optional git branch for preview branch overrides
|
|
2057
2069
|
responses:
|
|
2058
2070
|
"200":
|
|
2059
2071
|
description: Resolved environment variables
|
|
@@ -4123,6 +4135,40 @@ paths:
|
|
|
4123
4135
|
"402":
|
|
4124
4136
|
$ref: "#/components/responses/PaymentRequired"
|
|
4125
4137
|
|
|
4138
|
+
/v1/audit/verify:
|
|
4139
|
+
get:
|
|
4140
|
+
tags: [Audit]
|
|
4141
|
+
summary: Verify audit hash chain integrity
|
|
4142
|
+
operationId: verifyAuditChain
|
|
4143
|
+
description: |
|
|
4144
|
+
Verifies the HMAC-SHA256 integrity hash chain for audit events in the
|
|
4145
|
+
calling organization. Returns whether the chain is valid, how many
|
|
4146
|
+
events were verified, and the point of first break (if any).
|
|
4147
|
+
parameters:
|
|
4148
|
+
- name: from
|
|
4149
|
+
in: query
|
|
4150
|
+
schema:
|
|
4151
|
+
type: string
|
|
4152
|
+
format: date-time
|
|
4153
|
+
- name: to
|
|
4154
|
+
in: query
|
|
4155
|
+
schema:
|
|
4156
|
+
type: string
|
|
4157
|
+
format: date-time
|
|
4158
|
+
- name: limit
|
|
4159
|
+
in: query
|
|
4160
|
+
schema:
|
|
4161
|
+
type: integer
|
|
4162
|
+
default: 1000
|
|
4163
|
+
maximum: 10000
|
|
4164
|
+
responses:
|
|
4165
|
+
"200":
|
|
4166
|
+
description: Chain verification result
|
|
4167
|
+
content:
|
|
4168
|
+
application/json:
|
|
4169
|
+
schema:
|
|
4170
|
+
$ref: "#/components/schemas/AuditVerifyResponse"
|
|
4171
|
+
|
|
4126
4172
|
# ---------------------------------------------------------------------------
|
|
4127
4173
|
# Security (IP Rules)
|
|
4128
4174
|
# ---------------------------------------------------------------------------
|
|
@@ -5422,6 +5468,27 @@ paths:
|
|
|
5422
5468
|
|
|
5423
5469
|
# --- Shroud Activity ---
|
|
5424
5470
|
|
|
5471
|
+
/v1/shroud/attestation:
|
|
5472
|
+
get:
|
|
5473
|
+
tags: [Shroud]
|
|
5474
|
+
summary: TEE attestation proof (public)
|
|
5475
|
+
operationId: getShroudAttestation
|
|
5476
|
+
security: []
|
|
5477
|
+
description: |
|
|
5478
|
+
Public endpoint returning the TEE attestation proof for Shroud.
|
|
5479
|
+
Returns the GCE Confidential VM identity token and image hash so
|
|
5480
|
+
customers can verify Shroud is running inside a Confidential VM
|
|
5481
|
+
before signing contracts. Served from shroud.1claw.xyz.
|
|
5482
|
+
servers:
|
|
5483
|
+
- url: https://shroud.1claw.xyz
|
|
5484
|
+
responses:
|
|
5485
|
+
"200":
|
|
5486
|
+
description: Attestation proof
|
|
5487
|
+
content:
|
|
5488
|
+
application/json:
|
|
5489
|
+
schema:
|
|
5490
|
+
$ref: "#/components/schemas/ShroudAttestationResponse"
|
|
5491
|
+
|
|
5425
5492
|
/v1/shroud/activity:
|
|
5426
5493
|
get:
|
|
5427
5494
|
tags: [Shroud]
|
|
@@ -10184,167 +10251,575 @@ paths:
|
|
|
10184
10251
|
"403":
|
|
10185
10252
|
$ref: "#/components/responses/Forbidden"
|
|
10186
10253
|
|
|
10187
|
-
#
|
|
10188
|
-
#
|
|
10189
|
-
#
|
|
10254
|
+
# ---------------------------------------------------------------------------
|
|
10255
|
+
# Wallet Access Policies
|
|
10256
|
+
# ---------------------------------------------------------------------------
|
|
10190
10257
|
|
|
10191
|
-
|
|
10192
|
-
|
|
10193
|
-
|
|
10194
|
-
|
|
10195
|
-
|
|
10196
|
-
|
|
10197
|
-
|
|
10198
|
-
|
|
10199
|
-
|
|
10200
|
-
|
|
10258
|
+
/v1/wallets/access-policies:
|
|
10259
|
+
post:
|
|
10260
|
+
tags: [Wallet Access]
|
|
10261
|
+
summary: Create a wallet access policy
|
|
10262
|
+
description: |
|
|
10263
|
+
Create a role-based wallet access policy granting an agent or user
|
|
10264
|
+
specific permissions (send, swap, receive) on a treasury wallet chain.
|
|
10265
|
+
operationId: createWalletAccessPolicy
|
|
10266
|
+
security:
|
|
10267
|
+
- BearerAuth: []
|
|
10268
|
+
requestBody:
|
|
10269
|
+
required: true
|
|
10270
|
+
content:
|
|
10271
|
+
application/json:
|
|
10272
|
+
schema:
|
|
10273
|
+
$ref: "#/components/schemas/CreateWalletAccessPolicyRequest"
|
|
10274
|
+
responses:
|
|
10275
|
+
"201":
|
|
10276
|
+
description: Policy created
|
|
10277
|
+
content:
|
|
10278
|
+
application/json:
|
|
10279
|
+
schema:
|
|
10280
|
+
$ref: "#/components/schemas/WalletAccessPolicyResponse"
|
|
10281
|
+
"400":
|
|
10282
|
+
$ref: "#/components/responses/BadRequest"
|
|
10283
|
+
"401":
|
|
10284
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10285
|
+
"403":
|
|
10286
|
+
$ref: "#/components/responses/Forbidden"
|
|
10287
|
+
get:
|
|
10288
|
+
tags: [Wallet Access]
|
|
10289
|
+
summary: List wallet access policies for the org
|
|
10290
|
+
operationId: listWalletAccessPolicies
|
|
10291
|
+
security:
|
|
10292
|
+
- BearerAuth: []
|
|
10293
|
+
parameters:
|
|
10294
|
+
- name: wallet_chain
|
|
10295
|
+
in: query
|
|
10296
|
+
schema:
|
|
10297
|
+
type: string
|
|
10298
|
+
description: Filter by chain (e.g. ethereum, solana)
|
|
10299
|
+
- name: target_agent_id
|
|
10300
|
+
in: query
|
|
10301
|
+
schema:
|
|
10302
|
+
type: string
|
|
10303
|
+
format: uuid
|
|
10304
|
+
description: Filter by target agent
|
|
10305
|
+
responses:
|
|
10306
|
+
"200":
|
|
10307
|
+
description: Policy list
|
|
10308
|
+
content:
|
|
10309
|
+
application/json:
|
|
10310
|
+
schema:
|
|
10311
|
+
$ref: "#/components/schemas/WalletAccessPolicyListResponse"
|
|
10312
|
+
"401":
|
|
10313
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10201
10314
|
|
|
10202
|
-
|
|
10203
|
-
|
|
10204
|
-
|
|
10205
|
-
|
|
10206
|
-
|
|
10207
|
-
|
|
10208
|
-
|
|
10209
|
-
|
|
10210
|
-
|
|
10211
|
-
|
|
10212
|
-
|
|
10213
|
-
|
|
10214
|
-
|
|
10215
|
-
|
|
10216
|
-
|
|
10217
|
-
|
|
10218
|
-
|
|
10219
|
-
|
|
10220
|
-
|
|
10221
|
-
|
|
10222
|
-
|
|
10223
|
-
|
|
10224
|
-
|
|
10225
|
-
name: policy_id
|
|
10226
|
-
in: path
|
|
10227
|
-
required: true
|
|
10228
|
-
schema:
|
|
10229
|
-
type: string
|
|
10230
|
-
format: uuid
|
|
10231
|
-
CardId:
|
|
10232
|
-
name: card_id
|
|
10233
|
-
in: path
|
|
10234
|
-
required: true
|
|
10235
|
-
schema:
|
|
10236
|
-
type: string
|
|
10237
|
-
format: uuid
|
|
10238
|
-
IncludeSignedTx:
|
|
10239
|
-
name: include_signed_tx
|
|
10240
|
-
in: query
|
|
10241
|
-
required: false
|
|
10242
|
-
description: >
|
|
10243
|
-
Set to `true` or `1` to include the raw signed transaction hex in the response.
|
|
10244
|
-
Omitted by default to reduce key exfiltration risk. Only the literal values "true" or "1" enable inclusion; any other value or omission returns responses without signed_tx.
|
|
10245
|
-
Applies to GET /v1/agents/{agent_id}/transactions and GET /v1/agents/{agent_id}/transactions/{tx_id}.
|
|
10246
|
-
schema:
|
|
10247
|
-
type: boolean
|
|
10248
|
-
default: false
|
|
10249
|
-
example: false
|
|
10315
|
+
/v1/wallets/access-policies/{id}:
|
|
10316
|
+
delete:
|
|
10317
|
+
tags: [Wallet Access]
|
|
10318
|
+
summary: Delete a wallet access policy
|
|
10319
|
+
operationId: deleteWalletAccessPolicy
|
|
10320
|
+
security:
|
|
10321
|
+
- BearerAuth: []
|
|
10322
|
+
parameters:
|
|
10323
|
+
- name: id
|
|
10324
|
+
in: path
|
|
10325
|
+
required: true
|
|
10326
|
+
schema:
|
|
10327
|
+
type: string
|
|
10328
|
+
format: uuid
|
|
10329
|
+
responses:
|
|
10330
|
+
"204":
|
|
10331
|
+
description: Policy deleted
|
|
10332
|
+
"401":
|
|
10333
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10334
|
+
"403":
|
|
10335
|
+
$ref: "#/components/responses/Forbidden"
|
|
10336
|
+
"404":
|
|
10337
|
+
$ref: "#/components/responses/NotFound"
|
|
10250
10338
|
|
|
10251
|
-
|
|
10252
|
-
|
|
10253
|
-
|
|
10254
|
-
content:
|
|
10255
|
-
application/json:
|
|
10256
|
-
schema:
|
|
10257
|
-
$ref: "#/components/schemas/ProblemDetails"
|
|
10258
|
-
Unauthorized:
|
|
10259
|
-
description: Authentication required or invalid
|
|
10260
|
-
content:
|
|
10261
|
-
application/json:
|
|
10262
|
-
schema:
|
|
10263
|
-
$ref: "#/components/schemas/ProblemDetails"
|
|
10264
|
-
Forbidden:
|
|
10265
|
-
description: Insufficient permissions
|
|
10266
|
-
content:
|
|
10267
|
-
application/json:
|
|
10268
|
-
schema:
|
|
10269
|
-
$ref: "#/components/schemas/ProblemDetails"
|
|
10270
|
-
NotFound:
|
|
10271
|
-
description: Resource not found
|
|
10272
|
-
content:
|
|
10273
|
-
application/json:
|
|
10274
|
-
schema:
|
|
10275
|
-
$ref: "#/components/schemas/ProblemDetails"
|
|
10276
|
-
PaymentRequired:
|
|
10277
|
-
description: x402 payment required
|
|
10278
|
-
content:
|
|
10279
|
-
application/json:
|
|
10280
|
-
schema:
|
|
10281
|
-
$ref: "#/components/schemas/PaymentRequirement"
|
|
10282
|
-
Conflict:
|
|
10283
|
-
description: Resource already exists or conflict
|
|
10284
|
-
content:
|
|
10285
|
-
application/json:
|
|
10286
|
-
schema:
|
|
10287
|
-
$ref: "#/components/schemas/ProblemDetails"
|
|
10339
|
+
# ---------------------------------------------------------------------------
|
|
10340
|
+
# Credential Recovery
|
|
10341
|
+
# ---------------------------------------------------------------------------
|
|
10288
10342
|
|
|
10289
|
-
|
|
10290
|
-
|
|
10291
|
-
|
|
10292
|
-
|
|
10293
|
-
|
|
10294
|
-
|
|
10295
|
-
|
|
10296
|
-
|
|
10297
|
-
|
|
10298
|
-
|
|
10299
|
-
|
|
10300
|
-
|
|
10301
|
-
|
|
10302
|
-
|
|
10303
|
-
|
|
10304
|
-
|
|
10305
|
-
|
|
10306
|
-
|
|
10307
|
-
|
|
10308
|
-
|
|
10309
|
-
|
|
10310
|
-
|
|
10311
|
-
|
|
10312
|
-
|
|
10313
|
-
|
|
10314
|
-
|
|
10315
|
-
|
|
10316
|
-
|
|
10317
|
-
|
|
10318
|
-
|
|
10319
|
-
|
|
10320
|
-
|
|
10321
|
-
|
|
10322
|
-
|
|
10323
|
-
|
|
10324
|
-
|
|
10325
|
-
|
|
10326
|
-
|
|
10327
|
-
|
|
10328
|
-
|
|
10329
|
-
|
|
10330
|
-
|
|
10331
|
-
|
|
10332
|
-
|
|
10333
|
-
|
|
10334
|
-
|
|
10335
|
-
|
|
10336
|
-
|
|
10337
|
-
|
|
10338
|
-
|
|
10339
|
-
|
|
10340
|
-
|
|
10341
|
-
|
|
10342
|
-
|
|
10343
|
-
|
|
10344
|
-
|
|
10345
|
-
|
|
10346
|
-
|
|
10347
|
-
|
|
10343
|
+
/v1/auth/credential-recovery/request:
|
|
10344
|
+
post:
|
|
10345
|
+
tags: [Credential Recovery]
|
|
10346
|
+
summary: Initiate credential recovery
|
|
10347
|
+
description: |
|
|
10348
|
+
Start a credential recovery request for MFA reset, passkey reset,
|
|
10349
|
+
or password reset. Requires admin approval per org policy.
|
|
10350
|
+
operationId: requestCredentialRecovery
|
|
10351
|
+
security:
|
|
10352
|
+
- BearerAuth: []
|
|
10353
|
+
requestBody:
|
|
10354
|
+
required: true
|
|
10355
|
+
content:
|
|
10356
|
+
application/json:
|
|
10357
|
+
schema:
|
|
10358
|
+
$ref: "#/components/schemas/CredentialRecoveryRequest"
|
|
10359
|
+
responses:
|
|
10360
|
+
"201":
|
|
10361
|
+
description: Recovery request created
|
|
10362
|
+
content:
|
|
10363
|
+
application/json:
|
|
10364
|
+
schema:
|
|
10365
|
+
$ref: "#/components/schemas/CredentialRecoveryResponse"
|
|
10366
|
+
"400":
|
|
10367
|
+
$ref: "#/components/responses/BadRequest"
|
|
10368
|
+
"401":
|
|
10369
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10370
|
+
|
|
10371
|
+
/v1/auth/credential-recovery/requests:
|
|
10372
|
+
get:
|
|
10373
|
+
tags: [Credential Recovery]
|
|
10374
|
+
summary: List recovery requests for the org
|
|
10375
|
+
description: Admin/owner only. Returns pending, approved, and rejected recovery requests.
|
|
10376
|
+
operationId: listCredentialRecoveryRequests
|
|
10377
|
+
security:
|
|
10378
|
+
- BearerAuth: []
|
|
10379
|
+
parameters:
|
|
10380
|
+
- name: status
|
|
10381
|
+
in: query
|
|
10382
|
+
schema:
|
|
10383
|
+
type: string
|
|
10384
|
+
enum: [pending_approval, approved, rejected, expired]
|
|
10385
|
+
description: Filter by status
|
|
10386
|
+
responses:
|
|
10387
|
+
"200":
|
|
10388
|
+
description: Recovery request list
|
|
10389
|
+
content:
|
|
10390
|
+
application/json:
|
|
10391
|
+
schema:
|
|
10392
|
+
$ref: "#/components/schemas/CredentialRecoveryListResponse"
|
|
10393
|
+
"401":
|
|
10394
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10395
|
+
"403":
|
|
10396
|
+
$ref: "#/components/responses/Forbidden"
|
|
10397
|
+
|
|
10398
|
+
/v1/auth/credential-recovery/requests/{id}/approve:
|
|
10399
|
+
post:
|
|
10400
|
+
tags: [Credential Recovery]
|
|
10401
|
+
summary: Approve a recovery request
|
|
10402
|
+
description: Admin/owner approves a pending recovery request. May return a one-time recovery code.
|
|
10403
|
+
operationId: approveCredentialRecovery
|
|
10404
|
+
security:
|
|
10405
|
+
- BearerAuth: []
|
|
10406
|
+
parameters:
|
|
10407
|
+
- name: id
|
|
10408
|
+
in: path
|
|
10409
|
+
required: true
|
|
10410
|
+
schema:
|
|
10411
|
+
type: string
|
|
10412
|
+
format: uuid
|
|
10413
|
+
responses:
|
|
10414
|
+
"200":
|
|
10415
|
+
description: Request approved
|
|
10416
|
+
content:
|
|
10417
|
+
application/json:
|
|
10418
|
+
schema:
|
|
10419
|
+
$ref: "#/components/schemas/CredentialRecoveryApproveResponse"
|
|
10420
|
+
"401":
|
|
10421
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10422
|
+
"403":
|
|
10423
|
+
$ref: "#/components/responses/Forbidden"
|
|
10424
|
+
"404":
|
|
10425
|
+
$ref: "#/components/responses/NotFound"
|
|
10426
|
+
|
|
10427
|
+
/v1/auth/credential-recovery/requests/{id}/execute:
|
|
10428
|
+
post:
|
|
10429
|
+
tags: [Credential Recovery]
|
|
10430
|
+
summary: Execute an approved credential recovery request
|
|
10431
|
+
description: >-
|
|
10432
|
+
Execute an approved credential recovery request after the delay
|
|
10433
|
+
window has elapsed. Only org owners or admins can execute.
|
|
10434
|
+
operationId: executeCredentialRecovery
|
|
10435
|
+
security:
|
|
10436
|
+
- BearerAuth: []
|
|
10437
|
+
parameters:
|
|
10438
|
+
- name: id
|
|
10439
|
+
in: path
|
|
10440
|
+
required: true
|
|
10441
|
+
schema:
|
|
10442
|
+
type: string
|
|
10443
|
+
format: uuid
|
|
10444
|
+
responses:
|
|
10445
|
+
"200":
|
|
10446
|
+
description: Recovery executed
|
|
10447
|
+
content:
|
|
10448
|
+
application/json:
|
|
10449
|
+
schema:
|
|
10450
|
+
$ref: "#/components/schemas/CredentialRecoveryExecuteResponse"
|
|
10451
|
+
"401":
|
|
10452
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10453
|
+
"403":
|
|
10454
|
+
$ref: "#/components/responses/Forbidden"
|
|
10455
|
+
"404":
|
|
10456
|
+
$ref: "#/components/responses/NotFound"
|
|
10457
|
+
|
|
10458
|
+
/v1/auth/credential-recovery/requests/{id}:
|
|
10459
|
+
delete:
|
|
10460
|
+
tags: [Credential Recovery]
|
|
10461
|
+
summary: Cancel or reject a recovery request
|
|
10462
|
+
operationId: cancelCredentialRecovery
|
|
10463
|
+
security:
|
|
10464
|
+
- BearerAuth: []
|
|
10465
|
+
parameters:
|
|
10466
|
+
- name: id
|
|
10467
|
+
in: path
|
|
10468
|
+
required: true
|
|
10469
|
+
schema:
|
|
10470
|
+
type: string
|
|
10471
|
+
format: uuid
|
|
10472
|
+
responses:
|
|
10473
|
+
"204":
|
|
10474
|
+
description: Request cancelled
|
|
10475
|
+
"401":
|
|
10476
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10477
|
+
"403":
|
|
10478
|
+
$ref: "#/components/responses/Forbidden"
|
|
10479
|
+
"404":
|
|
10480
|
+
$ref: "#/components/responses/NotFound"
|
|
10481
|
+
|
|
10482
|
+
# ---------------------------------------------------------------------------
|
|
10483
|
+
# Org Credential Recovery Policy
|
|
10484
|
+
# ---------------------------------------------------------------------------
|
|
10485
|
+
|
|
10486
|
+
/v1/org/credential-recovery-policy:
|
|
10487
|
+
get:
|
|
10488
|
+
tags: [Credential Recovery]
|
|
10489
|
+
summary: Get org credential recovery policy
|
|
10490
|
+
operationId: getCredentialRecoveryPolicy
|
|
10491
|
+
security:
|
|
10492
|
+
- BearerAuth: []
|
|
10493
|
+
responses:
|
|
10494
|
+
"200":
|
|
10495
|
+
description: Recovery policy
|
|
10496
|
+
content:
|
|
10497
|
+
application/json:
|
|
10498
|
+
schema:
|
|
10499
|
+
$ref: "#/components/schemas/CredentialRecoveryPolicyResponse"
|
|
10500
|
+
"401":
|
|
10501
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10502
|
+
patch:
|
|
10503
|
+
tags: [Credential Recovery]
|
|
10504
|
+
summary: Update org credential recovery policy
|
|
10505
|
+
operationId: updateCredentialRecoveryPolicy
|
|
10506
|
+
security:
|
|
10507
|
+
- BearerAuth: []
|
|
10508
|
+
requestBody:
|
|
10509
|
+
required: true
|
|
10510
|
+
content:
|
|
10511
|
+
application/json:
|
|
10512
|
+
schema:
|
|
10513
|
+
$ref: "#/components/schemas/CredentialRecoveryPolicyRequest"
|
|
10514
|
+
responses:
|
|
10515
|
+
"200":
|
|
10516
|
+
description: Policy updated
|
|
10517
|
+
content:
|
|
10518
|
+
application/json:
|
|
10519
|
+
schema:
|
|
10520
|
+
$ref: "#/components/schemas/CredentialRecoveryPolicyResponse"
|
|
10521
|
+
"400":
|
|
10522
|
+
$ref: "#/components/responses/BadRequest"
|
|
10523
|
+
"401":
|
|
10524
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10525
|
+
"403":
|
|
10526
|
+
$ref: "#/components/responses/Forbidden"
|
|
10527
|
+
|
|
10528
|
+
# ---------------------------------------------------------------------------
|
|
10529
|
+
# Shamir KEK
|
|
10530
|
+
# ---------------------------------------------------------------------------
|
|
10531
|
+
|
|
10532
|
+
/v1/org/shamir-kek/setup:
|
|
10533
|
+
post:
|
|
10534
|
+
tags: [Shamir KEK]
|
|
10535
|
+
summary: Set up Shamir KEK for the org
|
|
10536
|
+
description: |
|
|
10537
|
+
Initialize a Shamir secret-sharing KEK for the org. Splits the master
|
|
10538
|
+
key into shares distributed to custodians. Shares are returned one-time
|
|
10539
|
+
only and must be stored securely by each custodian.
|
|
10540
|
+
operationId: setupShamirKek
|
|
10541
|
+
security:
|
|
10542
|
+
- BearerAuth: []
|
|
10543
|
+
requestBody:
|
|
10544
|
+
required: true
|
|
10545
|
+
content:
|
|
10546
|
+
application/json:
|
|
10547
|
+
schema:
|
|
10548
|
+
$ref: "#/components/schemas/ShamirKekSetupRequest"
|
|
10549
|
+
responses:
|
|
10550
|
+
"201":
|
|
10551
|
+
description: Shamir KEK configured (shares returned one-time)
|
|
10552
|
+
content:
|
|
10553
|
+
application/json:
|
|
10554
|
+
schema:
|
|
10555
|
+
$ref: "#/components/schemas/ShamirKekSetupResponse"
|
|
10556
|
+
"400":
|
|
10557
|
+
$ref: "#/components/responses/BadRequest"
|
|
10558
|
+
"401":
|
|
10559
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10560
|
+
"403":
|
|
10561
|
+
$ref: "#/components/responses/Forbidden"
|
|
10562
|
+
|
|
10563
|
+
/v1/org/shamir-kek:
|
|
10564
|
+
get:
|
|
10565
|
+
tags: [Shamir KEK]
|
|
10566
|
+
summary: Get Shamir KEK status
|
|
10567
|
+
description: Returns the current Shamir KEK configuration status for the org.
|
|
10568
|
+
operationId: getShamirKekStatus
|
|
10569
|
+
security:
|
|
10570
|
+
- BearerAuth: []
|
|
10571
|
+
responses:
|
|
10572
|
+
"200":
|
|
10573
|
+
description: Shamir KEK status
|
|
10574
|
+
content:
|
|
10575
|
+
application/json:
|
|
10576
|
+
schema:
|
|
10577
|
+
$ref: "#/components/schemas/ShamirKekStatusResponse"
|
|
10578
|
+
"401":
|
|
10579
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10580
|
+
|
|
10581
|
+
/v1/org/shamir-kek/reconstruct:
|
|
10582
|
+
post:
|
|
10583
|
+
tags: [Shamir KEK]
|
|
10584
|
+
summary: Reconstruct KEK from shares
|
|
10585
|
+
description: |
|
|
10586
|
+
Submit Shamir shares to reconstruct the org KEK. Requires at least
|
|
10587
|
+
`threshold` valid shares. Used during disaster recovery.
|
|
10588
|
+
operationId: reconstructShamirKek
|
|
10589
|
+
security:
|
|
10590
|
+
- BearerAuth: []
|
|
10591
|
+
requestBody:
|
|
10592
|
+
required: true
|
|
10593
|
+
content:
|
|
10594
|
+
application/json:
|
|
10595
|
+
schema:
|
|
10596
|
+
$ref: "#/components/schemas/ShamirKekReconstructRequest"
|
|
10597
|
+
responses:
|
|
10598
|
+
"200":
|
|
10599
|
+
description: Reconstruction result
|
|
10600
|
+
content:
|
|
10601
|
+
application/json:
|
|
10602
|
+
schema:
|
|
10603
|
+
$ref: "#/components/schemas/ShamirKekReconstructResponse"
|
|
10604
|
+
"400":
|
|
10605
|
+
$ref: "#/components/responses/BadRequest"
|
|
10606
|
+
"401":
|
|
10607
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10608
|
+
"403":
|
|
10609
|
+
$ref: "#/components/responses/Forbidden"
|
|
10610
|
+
|
|
10611
|
+
/v1/org/shamir-kek/recovery-codes:
|
|
10612
|
+
get:
|
|
10613
|
+
tags: [Shamir KEK]
|
|
10614
|
+
summary: Get Shamir recovery codes (one-time)
|
|
10615
|
+
description: |
|
|
10616
|
+
Returns the one-time recovery codes for the Shamir KEK. These codes
|
|
10617
|
+
can be used as an emergency fallback if custodian shares are lost.
|
|
10618
|
+
Codes are only returned once — subsequent calls return 410.
|
|
10619
|
+
operationId: getShamirKekRecoveryCodes
|
|
10620
|
+
security:
|
|
10621
|
+
- BearerAuth: []
|
|
10622
|
+
responses:
|
|
10623
|
+
"200":
|
|
10624
|
+
description: Recovery codes (one-time)
|
|
10625
|
+
content:
|
|
10626
|
+
application/json:
|
|
10627
|
+
schema:
|
|
10628
|
+
$ref: "#/components/schemas/ShamirKekRecoveryCodesResponse"
|
|
10629
|
+
"401":
|
|
10630
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10631
|
+
"403":
|
|
10632
|
+
$ref: "#/components/responses/Forbidden"
|
|
10633
|
+
"410":
|
|
10634
|
+
description: Codes already retrieved
|
|
10635
|
+
|
|
10636
|
+
/v1/org/shamir-kek/verify-recovery-code:
|
|
10637
|
+
post:
|
|
10638
|
+
tags: [Shamir KEK]
|
|
10639
|
+
summary: Verify a Shamir recovery code
|
|
10640
|
+
description: Check whether a recovery code is valid without consuming it.
|
|
10641
|
+
operationId: verifyShamirKekRecoveryCode
|
|
10642
|
+
security:
|
|
10643
|
+
- BearerAuth: []
|
|
10644
|
+
requestBody:
|
|
10645
|
+
required: true
|
|
10646
|
+
content:
|
|
10647
|
+
application/json:
|
|
10648
|
+
schema:
|
|
10649
|
+
$ref: "#/components/schemas/ShamirKekVerifyCodeRequest"
|
|
10650
|
+
responses:
|
|
10651
|
+
"200":
|
|
10652
|
+
description: Verification result
|
|
10653
|
+
content:
|
|
10654
|
+
application/json:
|
|
10655
|
+
schema:
|
|
10656
|
+
$ref: "#/components/schemas/ShamirKekVerifyCodeResponse"
|
|
10657
|
+
"400":
|
|
10658
|
+
$ref: "#/components/responses/BadRequest"
|
|
10659
|
+
"401":
|
|
10660
|
+
$ref: "#/components/responses/Unauthorized"
|
|
10661
|
+
|
|
10662
|
+
# =============================================================================
|
|
10663
|
+
# COMPONENTS
|
|
10664
|
+
# =============================================================================
|
|
10665
|
+
|
|
10666
|
+
components:
|
|
10667
|
+
securitySchemes:
|
|
10668
|
+
BearerAuth:
|
|
10669
|
+
type: http
|
|
10670
|
+
scheme: bearer
|
|
10671
|
+
bearerFormat: JWT
|
|
10672
|
+
ApiKeyAuth:
|
|
10673
|
+
type: http
|
|
10674
|
+
scheme: bearer
|
|
10675
|
+
description: 1ck_ prefixed API key used as Bearer token
|
|
10676
|
+
|
|
10677
|
+
parameters:
|
|
10678
|
+
VaultId:
|
|
10679
|
+
name: vault_id
|
|
10680
|
+
in: path
|
|
10681
|
+
required: true
|
|
10682
|
+
schema:
|
|
10683
|
+
type: string
|
|
10684
|
+
format: uuid
|
|
10685
|
+
SecretPath:
|
|
10686
|
+
name: path
|
|
10687
|
+
in: path
|
|
10688
|
+
required: true
|
|
10689
|
+
schema:
|
|
10690
|
+
type: string
|
|
10691
|
+
description: Secret path (e.g. "db/credentials")
|
|
10692
|
+
AgentId:
|
|
10693
|
+
name: agent_id
|
|
10694
|
+
in: path
|
|
10695
|
+
required: true
|
|
10696
|
+
schema:
|
|
10697
|
+
type: string
|
|
10698
|
+
format: uuid
|
|
10699
|
+
PolicyId:
|
|
10700
|
+
name: policy_id
|
|
10701
|
+
in: path
|
|
10702
|
+
required: true
|
|
10703
|
+
schema:
|
|
10704
|
+
type: string
|
|
10705
|
+
format: uuid
|
|
10706
|
+
CardId:
|
|
10707
|
+
name: card_id
|
|
10708
|
+
in: path
|
|
10709
|
+
required: true
|
|
10710
|
+
schema:
|
|
10711
|
+
type: string
|
|
10712
|
+
format: uuid
|
|
10713
|
+
IncludeSignedTx:
|
|
10714
|
+
name: include_signed_tx
|
|
10715
|
+
in: query
|
|
10716
|
+
required: false
|
|
10717
|
+
description: >
|
|
10718
|
+
Set to `true` or `1` to include the raw signed transaction hex in the response.
|
|
10719
|
+
Omitted by default to reduce key exfiltration risk. Only the literal values "true" or "1" enable inclusion; any other value or omission returns responses without signed_tx.
|
|
10720
|
+
Applies to GET /v1/agents/{agent_id}/transactions and GET /v1/agents/{agent_id}/transactions/{tx_id}.
|
|
10721
|
+
schema:
|
|
10722
|
+
type: boolean
|
|
10723
|
+
default: false
|
|
10724
|
+
example: false
|
|
10725
|
+
|
|
10726
|
+
responses:
|
|
10727
|
+
BadRequest:
|
|
10728
|
+
description: Invalid request
|
|
10729
|
+
content:
|
|
10730
|
+
application/json:
|
|
10731
|
+
schema:
|
|
10732
|
+
$ref: "#/components/schemas/ProblemDetails"
|
|
10733
|
+
Unauthorized:
|
|
10734
|
+
description: Authentication required or invalid
|
|
10735
|
+
content:
|
|
10736
|
+
application/json:
|
|
10737
|
+
schema:
|
|
10738
|
+
$ref: "#/components/schemas/ProblemDetails"
|
|
10739
|
+
Forbidden:
|
|
10740
|
+
description: Insufficient permissions
|
|
10741
|
+
content:
|
|
10742
|
+
application/json:
|
|
10743
|
+
schema:
|
|
10744
|
+
$ref: "#/components/schemas/ProblemDetails"
|
|
10745
|
+
NotFound:
|
|
10746
|
+
description: Resource not found
|
|
10747
|
+
content:
|
|
10748
|
+
application/json:
|
|
10749
|
+
schema:
|
|
10750
|
+
$ref: "#/components/schemas/ProblemDetails"
|
|
10751
|
+
PaymentRequired:
|
|
10752
|
+
description: x402 payment required
|
|
10753
|
+
content:
|
|
10754
|
+
application/json:
|
|
10755
|
+
schema:
|
|
10756
|
+
$ref: "#/components/schemas/PaymentRequirement"
|
|
10757
|
+
Conflict:
|
|
10758
|
+
description: Resource already exists or conflict
|
|
10759
|
+
content:
|
|
10760
|
+
application/json:
|
|
10761
|
+
schema:
|
|
10762
|
+
$ref: "#/components/schemas/ProblemDetails"
|
|
10763
|
+
|
|
10764
|
+
schemas:
|
|
10765
|
+
OrderCardRequest:
|
|
10766
|
+
type: object
|
|
10767
|
+
required: [kind, amount_usd]
|
|
10768
|
+
properties:
|
|
10769
|
+
kind:
|
|
10770
|
+
type: string
|
|
10771
|
+
enum: [prepaid, gift_card]
|
|
10772
|
+
amount_usd:
|
|
10773
|
+
type: string
|
|
10774
|
+
description: USD amount to load onto the card.
|
|
10775
|
+
example: "25.00"
|
|
10776
|
+
laso_server_id:
|
|
10777
|
+
type: string
|
|
10778
|
+
description: Optional Laso gift-card server/brand id (gift cards only).
|
|
10779
|
+
country:
|
|
10780
|
+
type: string
|
|
10781
|
+
description: Optional country (prepaid cards; defaults to US).
|
|
10782
|
+
CardResponse:
|
|
10783
|
+
type: object
|
|
10784
|
+
description: Masked card view — never contains PAN/CVV.
|
|
10785
|
+
required: [id, issuer, kind, currency, status, storage_mode, reveal_policy, created_at, updated_at]
|
|
10786
|
+
properties:
|
|
10787
|
+
id:
|
|
10788
|
+
type: string
|
|
10789
|
+
format: uuid
|
|
10790
|
+
agent_id:
|
|
10791
|
+
type: string
|
|
10792
|
+
format: uuid
|
|
10793
|
+
nullable: true
|
|
10794
|
+
issuer:
|
|
10795
|
+
type: string
|
|
10796
|
+
enum: [laso, manual]
|
|
10797
|
+
kind:
|
|
10798
|
+
type: string
|
|
10799
|
+
enum: [prepaid, gift_card]
|
|
10800
|
+
brand:
|
|
10801
|
+
type: string
|
|
10802
|
+
last4:
|
|
10803
|
+
type: string
|
|
10804
|
+
exp_month:
|
|
10805
|
+
type: integer
|
|
10806
|
+
exp_year:
|
|
10807
|
+
type: integer
|
|
10808
|
+
currency:
|
|
10809
|
+
type: string
|
|
10810
|
+
order_amount_usd:
|
|
10811
|
+
type: string
|
|
10812
|
+
balance:
|
|
10813
|
+
type: string
|
|
10814
|
+
status:
|
|
10815
|
+
type: string
|
|
10816
|
+
enum: [ordering, pending, ready, depleted, expired, voided, orphaned_payment, awaiting_approval, rejected]
|
|
10817
|
+
storage_mode:
|
|
10818
|
+
type: string
|
|
10819
|
+
enum: [reference, full]
|
|
10820
|
+
reveal_policy:
|
|
10821
|
+
type: object
|
|
10822
|
+
additionalProperties: true
|
|
10348
10823
|
approval_id:
|
|
10349
10824
|
type: string
|
|
10350
10825
|
format: uuid
|
|
@@ -11174,6 +11649,19 @@ components:
|
|
|
11174
11649
|
$ref: "#/components/schemas/ConsensusTrigger"
|
|
11175
11650
|
tx_conditions:
|
|
11176
11651
|
$ref: "#/components/schemas/TxConditions"
|
|
11652
|
+
approval_id:
|
|
11653
|
+
type: string
|
|
11654
|
+
format: uuid
|
|
11655
|
+
description: >
|
|
11656
|
+
Optional completed approval ID for control-plane consensus bypass.
|
|
11657
|
+
When control-plane consensus policies match, resubmit with this
|
|
11658
|
+
field after the approval has been executed.
|
|
11659
|
+
policy_schema_version:
|
|
11660
|
+
type: integer
|
|
11661
|
+
default: 2
|
|
11662
|
+
description: |
|
|
11663
|
+
Policy schema version. Version 1 = legacy field-matching only.
|
|
11664
|
+
Version 2 = expression engine support in tx_conditions.
|
|
11177
11665
|
|
|
11178
11666
|
UpdatePolicyRequest:
|
|
11179
11667
|
type: object
|
|
@@ -11203,6 +11691,11 @@ components:
|
|
|
11203
11691
|
$ref: "#/components/schemas/ConsensusTrigger"
|
|
11204
11692
|
tx_conditions:
|
|
11205
11693
|
$ref: "#/components/schemas/TxConditions"
|
|
11694
|
+
approval_id:
|
|
11695
|
+
type: string
|
|
11696
|
+
format: uuid
|
|
11697
|
+
description: >
|
|
11698
|
+
Optional completed approval ID for control-plane consensus bypass.
|
|
11206
11699
|
|
|
11207
11700
|
PolicyResponse:
|
|
11208
11701
|
type: object
|
|
@@ -11261,6 +11754,9 @@ components:
|
|
|
11261
11754
|
$ref: "#/components/schemas/ConsensusTrigger"
|
|
11262
11755
|
tx_conditions:
|
|
11263
11756
|
$ref: "#/components/schemas/TxConditions"
|
|
11757
|
+
policy_schema_version:
|
|
11758
|
+
type: integer
|
|
11759
|
+
description: Policy schema version (1 = legacy, 2 = expression engine)
|
|
11264
11760
|
|
|
11265
11761
|
PolicyListResponse:
|
|
11266
11762
|
type: object
|
|
@@ -11468,6 +11964,12 @@ components:
|
|
|
11468
11964
|
type: boolean
|
|
11469
11965
|
default: false
|
|
11470
11966
|
description: When true, env var resolve endpoints auto-fill environment from this agent's tag.
|
|
11967
|
+
approval_id:
|
|
11968
|
+
type: string
|
|
11969
|
+
format: uuid
|
|
11970
|
+
description: >
|
|
11971
|
+
Optional completed approval ID for control-plane consensus bypass
|
|
11972
|
+
when creating an agent under a control-plane governance policy.
|
|
11471
11973
|
|
|
11472
11974
|
UpdateAgentRequest:
|
|
11473
11975
|
type: object
|
|
@@ -12499,6 +13001,22 @@ components:
|
|
|
12499
13001
|
Optional pending approval ID. When consensus policies match,
|
|
12500
13002
|
clients resubmit with this field set to bypass the 202 gate
|
|
12501
13003
|
after the approval has been executed.
|
|
13004
|
+
raw_transaction:
|
|
13005
|
+
type: string
|
|
13006
|
+
description: >
|
|
13007
|
+
Pre-built raw transaction as a base64-encoded byte string.
|
|
13008
|
+
When provided, the handler decodes and deep-inspects the
|
|
13009
|
+
transaction for policy evaluation before signing. Supported
|
|
13010
|
+
for non-EVM chains where the client constructs the
|
|
13011
|
+
transaction payload.
|
|
13012
|
+
tron_transaction:
|
|
13013
|
+
type: object
|
|
13014
|
+
additionalProperties: true
|
|
13015
|
+
description: >
|
|
13016
|
+
Pre-built Tron transaction JSON object. When provided,
|
|
13017
|
+
the handler signs the transaction as-is using the Tron
|
|
13018
|
+
protobuf format. Enables full Tron transaction type
|
|
13019
|
+
coverage beyond simple TRX/TRC-20 transfers.
|
|
12502
13020
|
|
|
12503
13021
|
SignTransactionRequest:
|
|
12504
13022
|
type: object
|
|
@@ -12973,6 +13491,22 @@ components:
|
|
|
12973
13491
|
Optional pending approval ID. When consensus policies match,
|
|
12974
13492
|
clients resubmit with this field set to bypass the 202 gate
|
|
12975
13493
|
after the approval has been executed.
|
|
13494
|
+
raw_transaction:
|
|
13495
|
+
type: string
|
|
13496
|
+
description: >
|
|
13497
|
+
Pre-built raw transaction as a base64-encoded byte string.
|
|
13498
|
+
When provided, the handler decodes and deep-inspects the
|
|
13499
|
+
transaction for policy evaluation before signing. Supported
|
|
13500
|
+
for non-EVM chains where the client constructs the
|
|
13501
|
+
transaction payload.
|
|
13502
|
+
tron_transaction:
|
|
13503
|
+
type: object
|
|
13504
|
+
additionalProperties: true
|
|
13505
|
+
description: >
|
|
13506
|
+
Pre-built Tron transaction JSON object. When provided,
|
|
13507
|
+
the handler signs the transaction as-is using the Tron
|
|
13508
|
+
protobuf format. Enables full Tron transaction type
|
|
13509
|
+
coverage beyond simple TRX/TRC-20 transfers.
|
|
12976
13510
|
|
|
12977
13511
|
SignIntentResponse:
|
|
12978
13512
|
type: object
|
|
@@ -13699,6 +14233,67 @@ components:
|
|
|
13699
14233
|
count:
|
|
13700
14234
|
type: integer
|
|
13701
14235
|
|
|
14236
|
+
AuditVerifyResponse:
|
|
14237
|
+
type: object
|
|
14238
|
+
required: [chain_valid, events_verified, events_checked, scheme]
|
|
14239
|
+
properties:
|
|
14240
|
+
chain_valid:
|
|
14241
|
+
type: boolean
|
|
14242
|
+
description: Whether the integrity hash chain is unbroken
|
|
14243
|
+
events_verified:
|
|
14244
|
+
type: integer
|
|
14245
|
+
format: int64
|
|
14246
|
+
description: Number of events with valid integrity hashes
|
|
14247
|
+
events_checked:
|
|
14248
|
+
type: integer
|
|
14249
|
+
description: Total events examined
|
|
14250
|
+
broken_at_event_id:
|
|
14251
|
+
type: string
|
|
14252
|
+
format: uuid
|
|
14253
|
+
nullable: true
|
|
14254
|
+
description: First event where chain integrity broke (null if valid)
|
|
14255
|
+
scheme:
|
|
14256
|
+
type: object
|
|
14257
|
+
properties:
|
|
14258
|
+
algorithm:
|
|
14259
|
+
type: string
|
|
14260
|
+
example: HMAC-SHA256
|
|
14261
|
+
chain_structure:
|
|
14262
|
+
type: string
|
|
14263
|
+
hash_field:
|
|
14264
|
+
type: string
|
|
14265
|
+
link_field:
|
|
14266
|
+
type: string
|
|
14267
|
+
documentation:
|
|
14268
|
+
type: string
|
|
14269
|
+
format: uri
|
|
14270
|
+
|
|
14271
|
+
ShroudAttestationResponse:
|
|
14272
|
+
type: object
|
|
14273
|
+
required: [attested, image_hash, identity_token, verification]
|
|
14274
|
+
properties:
|
|
14275
|
+
attested:
|
|
14276
|
+
type: boolean
|
|
14277
|
+
description: Whether TEE attestation was successfully fetched
|
|
14278
|
+
image_hash:
|
|
14279
|
+
type: string
|
|
14280
|
+
description: Confidential VM image hash (compare against published Docker digest)
|
|
14281
|
+
identity_token:
|
|
14282
|
+
type: string
|
|
14283
|
+
description: GCE metadata identity JWT (verify against Google public keys)
|
|
14284
|
+
verification:
|
|
14285
|
+
type: object
|
|
14286
|
+
properties:
|
|
14287
|
+
steps:
|
|
14288
|
+
type: array
|
|
14289
|
+
items:
|
|
14290
|
+
type: string
|
|
14291
|
+
google_certs_url:
|
|
14292
|
+
type: string
|
|
14293
|
+
format: uri
|
|
14294
|
+
expected_audience:
|
|
14295
|
+
type: string
|
|
14296
|
+
|
|
13702
14297
|
AuditEvent:
|
|
13703
14298
|
type: object
|
|
13704
14299
|
properties:
|
|
@@ -17652,6 +18247,14 @@ components:
|
|
|
17652
18247
|
When true, conditions are also evaluated against inner calls
|
|
17653
18248
|
extracted from wrapper transactions (multicall, Safe execTransaction,
|
|
17654
18249
|
ERC-4337 handleOps). A match on any inner call counts as an overall match.
|
|
18250
|
+
expression:
|
|
18251
|
+
type: string
|
|
18252
|
+
maxLength: 1024
|
|
18253
|
+
description: |
|
|
18254
|
+
Mini expression DSL for policy conditions (schema version 2+).
|
|
18255
|
+
References transaction context fields (chain, value_wei, to_address,
|
|
18256
|
+
function_selector, etc.) with boolean operators. Fail-closed on parse
|
|
18257
|
+
or evaluation errors. Example: `chain == 'ethereum' && value_wei > 1000000000000000000`
|
|
17655
18258
|
|
|
17656
18259
|
ConsensusTrigger:
|
|
17657
18260
|
type: object
|
|
@@ -17725,6 +18328,17 @@ components:
|
|
|
17725
18328
|
always:
|
|
17726
18329
|
type: boolean
|
|
17727
18330
|
description: When true, this entry always matches regardless of other fields
|
|
18331
|
+
action_in:
|
|
18332
|
+
type: array
|
|
18333
|
+
items:
|
|
18334
|
+
type: string
|
|
18335
|
+
description: Control-plane actions to match (e.g. policy.create, signing_key.export)
|
|
18336
|
+
action_kind_in:
|
|
18337
|
+
type: array
|
|
18338
|
+
items:
|
|
18339
|
+
type: string
|
|
18340
|
+
description: |
|
|
18341
|
+
Version-agnostic action kind groups (e.g. signing_key.*, policy.*, member.*)
|
|
17728
18342
|
|
|
17729
18343
|
TimeWindow:
|
|
17730
18344
|
type: object
|
|
@@ -17837,6 +18451,18 @@ components:
|
|
|
17837
18451
|
description: |
|
|
17838
18452
|
Control-plane actions to match, e.g. policy.create, policy.update,
|
|
17839
18453
|
policy.delete, signing_key.export, member.role_change, member.remove
|
|
18454
|
+
- type: object
|
|
18455
|
+
required: [type, action_kinds]
|
|
18456
|
+
properties:
|
|
18457
|
+
type:
|
|
18458
|
+
type: string
|
|
18459
|
+
enum: [action_kind_in]
|
|
18460
|
+
action_kinds:
|
|
18461
|
+
type: array
|
|
18462
|
+
items:
|
|
18463
|
+
type: string
|
|
18464
|
+
description: |
|
|
18465
|
+
Version-agnostic action kind groups, e.g. signing_key.*, policy.*, member.*
|
|
17840
18466
|
|
|
17841
18467
|
ApprovalRequirement:
|
|
17842
18468
|
type: object
|
|
@@ -18364,3 +18990,338 @@ components:
|
|
|
18364
18990
|
type: string
|
|
18365
18991
|
comment:
|
|
18366
18992
|
type: string
|
|
18993
|
+
|
|
18994
|
+
# -----------------------------------------------------------------
|
|
18995
|
+
# Wallet Access Policy schemas
|
|
18996
|
+
# -----------------------------------------------------------------
|
|
18997
|
+
|
|
18998
|
+
CreateWalletAccessPolicyRequest:
|
|
18999
|
+
type: object
|
|
19000
|
+
required: [wallet_chain, permissions]
|
|
19001
|
+
properties:
|
|
19002
|
+
wallet_chain:
|
|
19003
|
+
type: string
|
|
19004
|
+
description: Chain for which the policy applies (e.g. ethereum, solana)
|
|
19005
|
+
target_agent_id:
|
|
19006
|
+
type: string
|
|
19007
|
+
format: uuid
|
|
19008
|
+
description: Agent granted access (mutually exclusive with target_user_id)
|
|
19009
|
+
target_user_id:
|
|
19010
|
+
type: string
|
|
19011
|
+
format: uuid
|
|
19012
|
+
description: User granted access (mutually exclusive with target_agent_id)
|
|
19013
|
+
permissions:
|
|
19014
|
+
type: array
|
|
19015
|
+
items:
|
|
19016
|
+
type: string
|
|
19017
|
+
enum: [send, swap, receive]
|
|
19018
|
+
conditions:
|
|
19019
|
+
type: object
|
|
19020
|
+
properties:
|
|
19021
|
+
max_value_per_tx_eth:
|
|
19022
|
+
type: string
|
|
19023
|
+
description: Max value per transaction in ETH
|
|
19024
|
+
daily_limit_eth:
|
|
19025
|
+
type: string
|
|
19026
|
+
description: Daily spend limit in ETH
|
|
19027
|
+
allowed_chains:
|
|
19028
|
+
type: array
|
|
19029
|
+
items:
|
|
19030
|
+
type: string
|
|
19031
|
+
allowed_tokens:
|
|
19032
|
+
type: array
|
|
19033
|
+
items:
|
|
19034
|
+
type: string
|
|
19035
|
+
expires_at:
|
|
19036
|
+
type: string
|
|
19037
|
+
format: date-time
|
|
19038
|
+
|
|
19039
|
+
WalletAccessPolicyResponse:
|
|
19040
|
+
type: object
|
|
19041
|
+
properties:
|
|
19042
|
+
id:
|
|
19043
|
+
type: string
|
|
19044
|
+
format: uuid
|
|
19045
|
+
org_id:
|
|
19046
|
+
type: string
|
|
19047
|
+
format: uuid
|
|
19048
|
+
wallet_chain:
|
|
19049
|
+
type: string
|
|
19050
|
+
target_agent_id:
|
|
19051
|
+
type: string
|
|
19052
|
+
format: uuid
|
|
19053
|
+
nullable: true
|
|
19054
|
+
target_user_id:
|
|
19055
|
+
type: string
|
|
19056
|
+
format: uuid
|
|
19057
|
+
nullable: true
|
|
19058
|
+
permissions:
|
|
19059
|
+
type: array
|
|
19060
|
+
items:
|
|
19061
|
+
type: string
|
|
19062
|
+
enum: [send, swap, receive]
|
|
19063
|
+
conditions:
|
|
19064
|
+
type: object
|
|
19065
|
+
nullable: true
|
|
19066
|
+
properties:
|
|
19067
|
+
max_value_per_tx_eth:
|
|
19068
|
+
type: string
|
|
19069
|
+
nullable: true
|
|
19070
|
+
daily_limit_eth:
|
|
19071
|
+
type: string
|
|
19072
|
+
nullable: true
|
|
19073
|
+
allowed_chains:
|
|
19074
|
+
type: array
|
|
19075
|
+
items:
|
|
19076
|
+
type: string
|
|
19077
|
+
nullable: true
|
|
19078
|
+
allowed_tokens:
|
|
19079
|
+
type: array
|
|
19080
|
+
items:
|
|
19081
|
+
type: string
|
|
19082
|
+
nullable: true
|
|
19083
|
+
expires_at:
|
|
19084
|
+
type: string
|
|
19085
|
+
format: date-time
|
|
19086
|
+
nullable: true
|
|
19087
|
+
created_at:
|
|
19088
|
+
type: string
|
|
19089
|
+
format: date-time
|
|
19090
|
+
|
|
19091
|
+
WalletAccessPolicyListResponse:
|
|
19092
|
+
type: object
|
|
19093
|
+
properties:
|
|
19094
|
+
policies:
|
|
19095
|
+
type: array
|
|
19096
|
+
items:
|
|
19097
|
+
$ref: "#/components/schemas/WalletAccessPolicyResponse"
|
|
19098
|
+
|
|
19099
|
+
# -----------------------------------------------------------------
|
|
19100
|
+
# Credential Recovery schemas
|
|
19101
|
+
# -----------------------------------------------------------------
|
|
19102
|
+
|
|
19103
|
+
CredentialRecoveryRequest:
|
|
19104
|
+
type: object
|
|
19105
|
+
required: [recovery_type]
|
|
19106
|
+
properties:
|
|
19107
|
+
recovery_type:
|
|
19108
|
+
type: string
|
|
19109
|
+
enum: [mfa_reset, passkey_reset, password_reset]
|
|
19110
|
+
reason:
|
|
19111
|
+
type: string
|
|
19112
|
+
description: Optional justification for the recovery request
|
|
19113
|
+
|
|
19114
|
+
CredentialRecoveryResponse:
|
|
19115
|
+
type: object
|
|
19116
|
+
properties:
|
|
19117
|
+
request_id:
|
|
19118
|
+
type: string
|
|
19119
|
+
format: uuid
|
|
19120
|
+
status:
|
|
19121
|
+
type: string
|
|
19122
|
+
enum: [pending_approval, approved, rejected, expired]
|
|
19123
|
+
recovery_type:
|
|
19124
|
+
type: string
|
|
19125
|
+
enum: [mfa_reset, passkey_reset, password_reset]
|
|
19126
|
+
created_at:
|
|
19127
|
+
type: string
|
|
19128
|
+
format: date-time
|
|
19129
|
+
|
|
19130
|
+
CredentialRecoveryListResponse:
|
|
19131
|
+
type: object
|
|
19132
|
+
properties:
|
|
19133
|
+
requests:
|
|
19134
|
+
type: array
|
|
19135
|
+
items:
|
|
19136
|
+
$ref: "#/components/schemas/CredentialRecoveryResponse"
|
|
19137
|
+
|
|
19138
|
+
CredentialRecoveryApproveResponse:
|
|
19139
|
+
type: object
|
|
19140
|
+
properties:
|
|
19141
|
+
request_id:
|
|
19142
|
+
type: string
|
|
19143
|
+
format: uuid
|
|
19144
|
+
status:
|
|
19145
|
+
type: string
|
|
19146
|
+
enum: [approved]
|
|
19147
|
+
recovery_code:
|
|
19148
|
+
type: string
|
|
19149
|
+
nullable: true
|
|
19150
|
+
description: One-time recovery code (only present for certain recovery types)
|
|
19151
|
+
|
|
19152
|
+
CredentialRecoveryExecuteResponse:
|
|
19153
|
+
type: object
|
|
19154
|
+
properties:
|
|
19155
|
+
request_id:
|
|
19156
|
+
type: string
|
|
19157
|
+
format: uuid
|
|
19158
|
+
status:
|
|
19159
|
+
type: string
|
|
19160
|
+
enum: [executed]
|
|
19161
|
+
recovery_type:
|
|
19162
|
+
type: string
|
|
19163
|
+
executed_at:
|
|
19164
|
+
type: string
|
|
19165
|
+
format: date-time
|
|
19166
|
+
|
|
19167
|
+
CredentialRecoveryPolicyResponse:
|
|
19168
|
+
type: object
|
|
19169
|
+
properties:
|
|
19170
|
+
enabled:
|
|
19171
|
+
type: boolean
|
|
19172
|
+
require_admin_approval:
|
|
19173
|
+
type: boolean
|
|
19174
|
+
delay_hours:
|
|
19175
|
+
type: integer
|
|
19176
|
+
description: Waiting period before recovery takes effect
|
|
19177
|
+
allowed_types:
|
|
19178
|
+
type: array
|
|
19179
|
+
items:
|
|
19180
|
+
type: string
|
|
19181
|
+
enum: [mfa_reset, passkey_reset, password_reset]
|
|
19182
|
+
|
|
19183
|
+
CredentialRecoveryPolicyRequest:
|
|
19184
|
+
type: object
|
|
19185
|
+
properties:
|
|
19186
|
+
enabled:
|
|
19187
|
+
type: boolean
|
|
19188
|
+
require_admin_approval:
|
|
19189
|
+
type: boolean
|
|
19190
|
+
delay_hours:
|
|
19191
|
+
type: integer
|
|
19192
|
+
allowed_types:
|
|
19193
|
+
type: array
|
|
19194
|
+
items:
|
|
19195
|
+
type: string
|
|
19196
|
+
enum: [mfa_reset, passkey_reset, password_reset]
|
|
19197
|
+
|
|
19198
|
+
# -----------------------------------------------------------------
|
|
19199
|
+
# Shamir KEK schemas
|
|
19200
|
+
# -----------------------------------------------------------------
|
|
19201
|
+
|
|
19202
|
+
ShamirKekSetupRequest:
|
|
19203
|
+
type: object
|
|
19204
|
+
required: [threshold, total_shares, custodian_emails]
|
|
19205
|
+
properties:
|
|
19206
|
+
threshold:
|
|
19207
|
+
type: integer
|
|
19208
|
+
enum: [2, 3]
|
|
19209
|
+
description: Minimum shares required to reconstruct the KEK
|
|
19210
|
+
total_shares:
|
|
19211
|
+
type: integer
|
|
19212
|
+
enum: [3, 5]
|
|
19213
|
+
description: Total number of shares to generate
|
|
19214
|
+
custodian_emails:
|
|
19215
|
+
type: array
|
|
19216
|
+
items:
|
|
19217
|
+
type: string
|
|
19218
|
+
format: email
|
|
19219
|
+
description: Email addresses of share custodians
|
|
19220
|
+
|
|
19221
|
+
ShamirKekSetupResponse:
|
|
19222
|
+
type: object
|
|
19223
|
+
properties:
|
|
19224
|
+
kek_id:
|
|
19225
|
+
type: string
|
|
19226
|
+
threshold:
|
|
19227
|
+
type: integer
|
|
19228
|
+
total_shares:
|
|
19229
|
+
type: integer
|
|
19230
|
+
shares:
|
|
19231
|
+
type: array
|
|
19232
|
+
description: One-time share distribution (never returned again)
|
|
19233
|
+
items:
|
|
19234
|
+
type: object
|
|
19235
|
+
properties:
|
|
19236
|
+
index:
|
|
19237
|
+
type: integer
|
|
19238
|
+
custodian_email:
|
|
19239
|
+
type: string
|
|
19240
|
+
format: email
|
|
19241
|
+
share_b64:
|
|
19242
|
+
type: string
|
|
19243
|
+
description: Base64-encoded share
|
|
19244
|
+
custody_mode:
|
|
19245
|
+
type: string
|
|
19246
|
+
created_at:
|
|
19247
|
+
type: string
|
|
19248
|
+
format: date-time
|
|
19249
|
+
|
|
19250
|
+
ShamirKekStatusResponse:
|
|
19251
|
+
type: object
|
|
19252
|
+
properties:
|
|
19253
|
+
configured:
|
|
19254
|
+
type: boolean
|
|
19255
|
+
kek_id:
|
|
19256
|
+
type: string
|
|
19257
|
+
nullable: true
|
|
19258
|
+
threshold:
|
|
19259
|
+
type: integer
|
|
19260
|
+
nullable: true
|
|
19261
|
+
total_shares:
|
|
19262
|
+
type: integer
|
|
19263
|
+
nullable: true
|
|
19264
|
+
custody_mode:
|
|
19265
|
+
type: string
|
|
19266
|
+
nullable: true
|
|
19267
|
+
custodians:
|
|
19268
|
+
type: array
|
|
19269
|
+
nullable: true
|
|
19270
|
+
items:
|
|
19271
|
+
type: object
|
|
19272
|
+
properties:
|
|
19273
|
+
email:
|
|
19274
|
+
type: string
|
|
19275
|
+
format: email
|
|
19276
|
+
share_provided:
|
|
19277
|
+
type: boolean
|
|
19278
|
+
created_at:
|
|
19279
|
+
type: string
|
|
19280
|
+
format: date-time
|
|
19281
|
+
nullable: true
|
|
19282
|
+
|
|
19283
|
+
ShamirKekReconstructRequest:
|
|
19284
|
+
type: object
|
|
19285
|
+
required: [shares]
|
|
19286
|
+
properties:
|
|
19287
|
+
shares:
|
|
19288
|
+
type: array
|
|
19289
|
+
items:
|
|
19290
|
+
type: object
|
|
19291
|
+
required: [index, share_b64]
|
|
19292
|
+
properties:
|
|
19293
|
+
index:
|
|
19294
|
+
type: integer
|
|
19295
|
+
share_b64:
|
|
19296
|
+
type: string
|
|
19297
|
+
description: Base64-encoded share
|
|
19298
|
+
|
|
19299
|
+
ShamirKekReconstructResponse:
|
|
19300
|
+
type: object
|
|
19301
|
+
properties:
|
|
19302
|
+
status:
|
|
19303
|
+
type: string
|
|
19304
|
+
enum: [accepted, reconstructed]
|
|
19305
|
+
message:
|
|
19306
|
+
type: string
|
|
19307
|
+
|
|
19308
|
+
ShamirKekRecoveryCodesResponse:
|
|
19309
|
+
type: object
|
|
19310
|
+
properties:
|
|
19311
|
+
codes:
|
|
19312
|
+
type: array
|
|
19313
|
+
items:
|
|
19314
|
+
type: string
|
|
19315
|
+
|
|
19316
|
+
ShamirKekVerifyCodeRequest:
|
|
19317
|
+
type: object
|
|
19318
|
+
required: [code]
|
|
19319
|
+
properties:
|
|
19320
|
+
code:
|
|
19321
|
+
type: string
|
|
19322
|
+
|
|
19323
|
+
ShamirKekVerifyCodeResponse:
|
|
19324
|
+
type: object
|
|
19325
|
+
properties:
|
|
19326
|
+
valid:
|
|
19327
|
+
type: boolean
|