@1claw/openapi-spec 0.61.10 → 0.61.12
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 +448 -227
- package/openapi.yaml +201 -90
- package/package.json +1 -1
package/openapi.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.1.0",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "1Claw API",
|
|
5
|
-
"version": "0.61.
|
|
5
|
+
"version": "0.61.12",
|
|
6
6
|
"description": "Secure secret management for AI agents. Provides vaults, secrets,\npolicy-based access control, agent identity, Intents API,\nsharing, billing, and audit logging. Automations (workflow_spec,\nwebhook tokens, event triggers, Assist), cloud runtimes with\ninteractive shell sessions, agent memory, and discovery.\n\n## Domains\n\n`api.1claw.co` is canonical: it is the OIDC issuer, the `aud` the API\nmints, and the first entry in `servers` — a generated client takes its\nbase URL from there, and the previous ordering pointed every SDK at the\ndomain the issuer had already left. `api.1claw.xyz` still answers and is\nstill accepted on token validation, because tokens minted before the\nmove carry it; it is never minted now.\n\nOne deliberate exception: the Shroud attestation identity token is\nrequested from GCP with `audience: https://api.1claw.xyz`, so\n`/v1/shroud/attestation` reports that as its `expected_audience`. That\nis accurate rather than stale — the audience is a verification contract\nwith anyone already checking the token, and moving it is a breaking\nchange for them, not a rename.\n\nAll endpoints require JWT Bearer authentication unless marked with\n`security: []`.\n",
|
|
7
7
|
"contact": {
|
|
8
8
|
"email": "ops@1claw.co"
|
|
@@ -5886,6 +5886,135 @@
|
|
|
5886
5886
|
}
|
|
5887
5887
|
}
|
|
5888
5888
|
},
|
|
5889
|
+
"/v1/admin/agents/{agent_id}/reports/dismiss": {
|
|
5890
|
+
"post": {
|
|
5891
|
+
"tags": [
|
|
5892
|
+
"Admin"
|
|
5893
|
+
],
|
|
5894
|
+
"summary": "Dismiss every open report on a directory listing",
|
|
5895
|
+
"description": "Platform admins only. Clears the listing's report flag and recounts. The review queue is a platform function — an org dismissing reports against its own agent is the abuse the queue exists to catch.\n",
|
|
5896
|
+
"operationId": "adminDismissAgentReports",
|
|
5897
|
+
"parameters": [
|
|
5898
|
+
{
|
|
5899
|
+
"name": "agent_id",
|
|
5900
|
+
"in": "path",
|
|
5901
|
+
"required": true,
|
|
5902
|
+
"schema": {
|
|
5903
|
+
"type": "string",
|
|
5904
|
+
"format": "uuid"
|
|
5905
|
+
}
|
|
5906
|
+
}
|
|
5907
|
+
],
|
|
5908
|
+
"responses": {
|
|
5909
|
+
"200": {
|
|
5910
|
+
"description": "Reports dismissed",
|
|
5911
|
+
"content": {
|
|
5912
|
+
"application/json": {
|
|
5913
|
+
"schema": {
|
|
5914
|
+
"type": "object",
|
|
5915
|
+
"properties": {
|
|
5916
|
+
"agent_id": {
|
|
5917
|
+
"type": "string",
|
|
5918
|
+
"format": "uuid"
|
|
5919
|
+
},
|
|
5920
|
+
"dismissed": {
|
|
5921
|
+
"type": "integer"
|
|
5922
|
+
}
|
|
5923
|
+
}
|
|
5924
|
+
}
|
|
5925
|
+
}
|
|
5926
|
+
}
|
|
5927
|
+
},
|
|
5928
|
+
"403": {
|
|
5929
|
+
"description": "Not a platform admin"
|
|
5930
|
+
},
|
|
5931
|
+
"404": {
|
|
5932
|
+
"description": "Agent not found"
|
|
5933
|
+
}
|
|
5934
|
+
}
|
|
5935
|
+
}
|
|
5936
|
+
},
|
|
5937
|
+
"/v1/admin/agents/{agent_id}/verification-tier": {
|
|
5938
|
+
"put": {
|
|
5939
|
+
"tags": [
|
|
5940
|
+
"Admin"
|
|
5941
|
+
],
|
|
5942
|
+
"summary": "Set a directory listing's verification tier",
|
|
5943
|
+
"description": "Platform admins only. Unknown tiers are refused rather than demoted to `unverified`.",
|
|
5944
|
+
"operationId": "adminSetAgentVerificationTier",
|
|
5945
|
+
"parameters": [
|
|
5946
|
+
{
|
|
5947
|
+
"name": "agent_id",
|
|
5948
|
+
"in": "path",
|
|
5949
|
+
"required": true,
|
|
5950
|
+
"schema": {
|
|
5951
|
+
"type": "string",
|
|
5952
|
+
"format": "uuid"
|
|
5953
|
+
}
|
|
5954
|
+
}
|
|
5955
|
+
],
|
|
5956
|
+
"requestBody": {
|
|
5957
|
+
"required": true,
|
|
5958
|
+
"content": {
|
|
5959
|
+
"application/json": {
|
|
5960
|
+
"schema": {
|
|
5961
|
+
"type": "object",
|
|
5962
|
+
"required": [
|
|
5963
|
+
"tier"
|
|
5964
|
+
],
|
|
5965
|
+
"properties": {
|
|
5966
|
+
"tier": {
|
|
5967
|
+
"type": "string",
|
|
5968
|
+
"enum": [
|
|
5969
|
+
"unverified",
|
|
5970
|
+
"platform_reviewed",
|
|
5971
|
+
"identity_verified",
|
|
5972
|
+
"enterprise"
|
|
5973
|
+
]
|
|
5974
|
+
},
|
|
5975
|
+
"notes": {
|
|
5976
|
+
"type": "string",
|
|
5977
|
+
"nullable": true,
|
|
5978
|
+
"description": "Internal review notes",
|
|
5979
|
+
"never public": null
|
|
5980
|
+
}
|
|
5981
|
+
}
|
|
5982
|
+
}
|
|
5983
|
+
}
|
|
5984
|
+
}
|
|
5985
|
+
},
|
|
5986
|
+
"responses": {
|
|
5987
|
+
"200": {
|
|
5988
|
+
"description": "Tier set",
|
|
5989
|
+
"content": {
|
|
5990
|
+
"application/json": {
|
|
5991
|
+
"schema": {
|
|
5992
|
+
"type": "object",
|
|
5993
|
+
"properties": {
|
|
5994
|
+
"agent_id": {
|
|
5995
|
+
"type": "string",
|
|
5996
|
+
"format": "uuid"
|
|
5997
|
+
},
|
|
5998
|
+
"tier": {
|
|
5999
|
+
"type": "string"
|
|
6000
|
+
}
|
|
6001
|
+
}
|
|
6002
|
+
}
|
|
6003
|
+
}
|
|
6004
|
+
}
|
|
6005
|
+
},
|
|
6006
|
+
"400": {
|
|
6007
|
+
"description": "Unknown tier"
|
|
6008
|
+
},
|
|
6009
|
+
"403": {
|
|
6010
|
+
"description": "Not a platform admin"
|
|
6011
|
+
},
|
|
6012
|
+
"404": {
|
|
6013
|
+
"description": "Agent not found"
|
|
6014
|
+
}
|
|
6015
|
+
}
|
|
6016
|
+
}
|
|
6017
|
+
},
|
|
5889
6018
|
"/v1/admin/chains": {
|
|
5890
6019
|
"get": {
|
|
5891
6020
|
"tags": [
|
|
@@ -15471,6 +15600,89 @@
|
|
|
15471
15600
|
}
|
|
15472
15601
|
}
|
|
15473
15602
|
},
|
|
15603
|
+
"/v1/agents/{agent_id}/pay/grants/prepare": {
|
|
15604
|
+
"post": {
|
|
15605
|
+
"tags": [
|
|
15606
|
+
"Pay"
|
|
15607
|
+
],
|
|
15608
|
+
"summary": "Prepare a spending grant (step one of two)",
|
|
15609
|
+
"description": "Fixes the grant terms and a server-side nonce and returns the `grant_digest` the person must assert over with a passkey (`action=x402_grant`). Then call `POST .../pay/grants` with the same terms, the digest, and the passkey token. Preparations are single-use, bound to the caller and agent, and expire after ten minutes. The nonce never leaves the server, so the digest cannot be recomputed for different terms. Human callers only; terms are validated against the agent's maximum cap and window here as well.\n",
|
|
15610
|
+
"operationId": "preparePayGrant",
|
|
15611
|
+
"parameters": [
|
|
15612
|
+
{
|
|
15613
|
+
"$ref": "#/components/parameters/AgentId"
|
|
15614
|
+
}
|
|
15615
|
+
],
|
|
15616
|
+
"requestBody": {
|
|
15617
|
+
"required": true,
|
|
15618
|
+
"content": {
|
|
15619
|
+
"application/json": {
|
|
15620
|
+
"schema": {
|
|
15621
|
+
"type": "object",
|
|
15622
|
+
"required": [
|
|
15623
|
+
"cap_usd",
|
|
15624
|
+
"ttl_secs"
|
|
15625
|
+
],
|
|
15626
|
+
"properties": {
|
|
15627
|
+
"cap_usd": {
|
|
15628
|
+
"type": "string"
|
|
15629
|
+
},
|
|
15630
|
+
"ttl_secs": {
|
|
15631
|
+
"type": "integer"
|
|
15632
|
+
},
|
|
15633
|
+
"allowed_paytos": {
|
|
15634
|
+
"type": "array",
|
|
15635
|
+
"items": {
|
|
15636
|
+
"type": "string"
|
|
15637
|
+
},
|
|
15638
|
+
"nullable": true
|
|
15639
|
+
}
|
|
15640
|
+
}
|
|
15641
|
+
}
|
|
15642
|
+
}
|
|
15643
|
+
}
|
|
15644
|
+
},
|
|
15645
|
+
"responses": {
|
|
15646
|
+
"200": {
|
|
15647
|
+
"description": "The digest to assert over",
|
|
15648
|
+
"content": {
|
|
15649
|
+
"application/json": {
|
|
15650
|
+
"schema": {
|
|
15651
|
+
"type": "object",
|
|
15652
|
+
"required": [
|
|
15653
|
+
"grant_digest",
|
|
15654
|
+
"action",
|
|
15655
|
+
"expires_in_secs"
|
|
15656
|
+
],
|
|
15657
|
+
"properties": {
|
|
15658
|
+
"grant_digest": {
|
|
15659
|
+
"type": "string"
|
|
15660
|
+
},
|
|
15661
|
+
"action": {
|
|
15662
|
+
"type": "string",
|
|
15663
|
+
"enum": [
|
|
15664
|
+
"x402_grant"
|
|
15665
|
+
]
|
|
15666
|
+
},
|
|
15667
|
+
"expires_in_secs": {
|
|
15668
|
+
"type": "integer"
|
|
15669
|
+
}
|
|
15670
|
+
}
|
|
15671
|
+
}
|
|
15672
|
+
}
|
|
15673
|
+
}
|
|
15674
|
+
},
|
|
15675
|
+
"400": {
|
|
15676
|
+
"description": "Invalid terms"
|
|
15677
|
+
},
|
|
15678
|
+
"403": {
|
|
15679
|
+
"description": "Not a human caller",
|
|
15680
|
+
"grant mode disabled": null,
|
|
15681
|
+
"or over the agent's maximum": null
|
|
15682
|
+
}
|
|
15683
|
+
}
|
|
15684
|
+
}
|
|
15685
|
+
},
|
|
15474
15686
|
"/v1/agents/{agent_id}/pay/grants": {
|
|
15475
15687
|
"post": {
|
|
15476
15688
|
"tags": [
|
|
@@ -24695,7 +24907,7 @@
|
|
|
24695
24907
|
"content": {
|
|
24696
24908
|
"application/json": {
|
|
24697
24909
|
"schema": {
|
|
24698
|
-
"$ref": "#/
|
|
24910
|
+
"$ref": "#/components/schemas/OtelTopology"
|
|
24699
24911
|
}
|
|
24700
24912
|
}
|
|
24701
24913
|
}
|
|
@@ -24750,7 +24962,7 @@
|
|
|
24750
24962
|
"content": {
|
|
24751
24963
|
"application/json": {
|
|
24752
24964
|
"schema": {
|
|
24753
|
-
"$ref": "#/
|
|
24965
|
+
"$ref": "#/components/schemas/OtelThreatList"
|
|
24754
24966
|
}
|
|
24755
24967
|
}
|
|
24756
24968
|
}
|
|
@@ -24793,7 +25005,7 @@
|
|
|
24793
25005
|
"content": {
|
|
24794
25006
|
"application/json": {
|
|
24795
25007
|
"schema": {
|
|
24796
|
-
"$ref": "#/
|
|
25008
|
+
"$ref": "#/components/schemas/OtelSummary"
|
|
24797
25009
|
}
|
|
24798
25010
|
}
|
|
24799
25011
|
}
|
|
@@ -25336,100 +25548,7 @@
|
|
|
25336
25548
|
"content": {
|
|
25337
25549
|
"application/json": {
|
|
25338
25550
|
"schema": {
|
|
25339
|
-
"
|
|
25340
|
-
"items": {
|
|
25341
|
-
"type": "object",
|
|
25342
|
-
"required": [
|
|
25343
|
-
"id",
|
|
25344
|
-
"agent_id",
|
|
25345
|
-
"class",
|
|
25346
|
-
"severity",
|
|
25347
|
-
"detected_by",
|
|
25348
|
-
"status",
|
|
25349
|
-
"shadow",
|
|
25350
|
-
"blast_radius",
|
|
25351
|
-
"blast_radius_size"
|
|
25352
|
-
],
|
|
25353
|
-
"properties": {
|
|
25354
|
-
"id": {
|
|
25355
|
-
"type": "string",
|
|
25356
|
-
"format": "uuid"
|
|
25357
|
-
},
|
|
25358
|
-
"agent_id": {
|
|
25359
|
-
"type": "string",
|
|
25360
|
-
"format": "uuid"
|
|
25361
|
-
},
|
|
25362
|
-
"class": {
|
|
25363
|
-
"type": "string",
|
|
25364
|
-
"enum": [
|
|
25365
|
-
"prompt_injection",
|
|
25366
|
-
"policy_breach",
|
|
25367
|
-
"spend_anomaly",
|
|
25368
|
-
"key_exfil",
|
|
25369
|
-
"off_hours",
|
|
25370
|
-
"consensus_bypass",
|
|
25371
|
-
"trust_breach"
|
|
25372
|
-
]
|
|
25373
|
-
},
|
|
25374
|
-
"severity": {
|
|
25375
|
-
"type": "string",
|
|
25376
|
-
"enum": [
|
|
25377
|
-
"critical",
|
|
25378
|
-
"warn"
|
|
25379
|
-
]
|
|
25380
|
-
},
|
|
25381
|
-
"detected_by": {
|
|
25382
|
-
"type": "string"
|
|
25383
|
-
},
|
|
25384
|
-
"status": {
|
|
25385
|
-
"type": "string",
|
|
25386
|
-
"enum": [
|
|
25387
|
-
"open",
|
|
25388
|
-
"acknowledged",
|
|
25389
|
-
"resolved"
|
|
25390
|
-
]
|
|
25391
|
-
},
|
|
25392
|
-
"shadow": {
|
|
25393
|
-
"type": "boolean"
|
|
25394
|
-
},
|
|
25395
|
-
"evidence": {
|
|
25396
|
-
"type": "array",
|
|
25397
|
-
"items": {
|
|
25398
|
-
"type": "object"
|
|
25399
|
-
}
|
|
25400
|
-
},
|
|
25401
|
-
"blast_radius": {
|
|
25402
|
-
"type": "object",
|
|
25403
|
-
"properties": {
|
|
25404
|
-
"vaults": {
|
|
25405
|
-
"type": "integer"
|
|
25406
|
-
},
|
|
25407
|
-
"connectors": {
|
|
25408
|
-
"type": "integer"
|
|
25409
|
-
},
|
|
25410
|
-
"chains": {
|
|
25411
|
-
"type": "integer"
|
|
25412
|
-
}
|
|
25413
|
-
}
|
|
25414
|
-
},
|
|
25415
|
-
"blast_radius_size": {
|
|
25416
|
-
"type": "integer",
|
|
25417
|
-
"description": "Sum of the blast radius. The sort key."
|
|
25418
|
-
},
|
|
25419
|
-
"resolved_by": {
|
|
25420
|
-
"type": "string",
|
|
25421
|
-
"nullable": true
|
|
25422
|
-
},
|
|
25423
|
-
"created_at": {
|
|
25424
|
-
"type": "string",
|
|
25425
|
-
"format": "date-time"
|
|
25426
|
-
},
|
|
25427
|
-
"updated_at": {
|
|
25428
|
-
"type": "string",
|
|
25429
|
-
"format": "date-time"
|
|
25430
|
-
}
|
|
25431
|
-
}
|
|
25432
|
-
}
|
|
25551
|
+
"$ref": "#/components/schemas/OtelThreatList"
|
|
25433
25552
|
}
|
|
25434
25553
|
}
|
|
25435
25554
|
}
|
|
@@ -26011,41 +26130,7 @@
|
|
|
26011
26130
|
"content": {
|
|
26012
26131
|
"application/json": {
|
|
26013
26132
|
"schema": {
|
|
26014
|
-
"
|
|
26015
|
-
"required": [
|
|
26016
|
-
"posture_score",
|
|
26017
|
-
"open_threats",
|
|
26018
|
-
"open_critical",
|
|
26019
|
-
"pending_approvals",
|
|
26020
|
-
"agent_count",
|
|
26021
|
-
"top_threats"
|
|
26022
|
-
],
|
|
26023
|
-
"properties": {
|
|
26024
|
-
"posture_score": {
|
|
26025
|
-
"type": "integer",
|
|
26026
|
-
"minimum": 0,
|
|
26027
|
-
"maximum": 100
|
|
26028
|
-
},
|
|
26029
|
-
"open_threats": {
|
|
26030
|
-
"type": "integer"
|
|
26031
|
-
},
|
|
26032
|
-
"open_critical": {
|
|
26033
|
-
"type": "integer"
|
|
26034
|
-
},
|
|
26035
|
-
"pending_approvals": {
|
|
26036
|
-
"type": "integer"
|
|
26037
|
-
},
|
|
26038
|
-
"agent_count": {
|
|
26039
|
-
"type": "integer"
|
|
26040
|
-
},
|
|
26041
|
-
"top_threats": {
|
|
26042
|
-
"type": "array",
|
|
26043
|
-
"description": "At most five, same ranking as /v1/otel/threats.",
|
|
26044
|
-
"items": {
|
|
26045
|
-
"type": "object"
|
|
26046
|
-
}
|
|
26047
|
-
}
|
|
26048
|
-
}
|
|
26133
|
+
"$ref": "#/components/schemas/OtelSummary"
|
|
26049
26134
|
}
|
|
26050
26135
|
}
|
|
26051
26136
|
}
|
|
@@ -26088,100 +26173,7 @@
|
|
|
26088
26173
|
"content": {
|
|
26089
26174
|
"application/json": {
|
|
26090
26175
|
"schema": {
|
|
26091
|
-
"
|
|
26092
|
-
"required": [
|
|
26093
|
-
"nodes",
|
|
26094
|
-
"edges",
|
|
26095
|
-
"truncated",
|
|
26096
|
-
"total_nodes"
|
|
26097
|
-
],
|
|
26098
|
-
"properties": {
|
|
26099
|
-
"nodes": {
|
|
26100
|
-
"type": "array",
|
|
26101
|
-
"items": {
|
|
26102
|
-
"type": "object",
|
|
26103
|
-
"required": [
|
|
26104
|
-
"id",
|
|
26105
|
-
"kind",
|
|
26106
|
-
"label"
|
|
26107
|
-
],
|
|
26108
|
-
"properties": {
|
|
26109
|
-
"id": {
|
|
26110
|
-
"type": "string",
|
|
26111
|
-
"description": "Namespaced by kind, e.g. `agent:<uuid>`."
|
|
26112
|
-
},
|
|
26113
|
-
"kind": {
|
|
26114
|
-
"type": "string",
|
|
26115
|
-
"enum": [
|
|
26116
|
-
"agent",
|
|
26117
|
-
"vault",
|
|
26118
|
-
"policy",
|
|
26119
|
-
"connector",
|
|
26120
|
-
"chain"
|
|
26121
|
-
]
|
|
26122
|
-
},
|
|
26123
|
-
"label": {
|
|
26124
|
-
"type": "string"
|
|
26125
|
-
},
|
|
26126
|
-
"status": {
|
|
26127
|
-
"type": "string",
|
|
26128
|
-
"description": "Agents only. Derived, not stored.",
|
|
26129
|
-
"enum": [
|
|
26130
|
-
"compromised",
|
|
26131
|
-
"warn",
|
|
26132
|
-
"suspended",
|
|
26133
|
-
"ok"
|
|
26134
|
-
]
|
|
26135
|
-
},
|
|
26136
|
-
"trust": {
|
|
26137
|
-
"type": "integer",
|
|
26138
|
-
"minimum": 0,
|
|
26139
|
-
"maximum": 100,
|
|
26140
|
-
"description": "Agents only. Absent until the trust engine has scored the agent."
|
|
26141
|
-
}
|
|
26142
|
-
}
|
|
26143
|
-
}
|
|
26144
|
-
},
|
|
26145
|
-
"edges": {
|
|
26146
|
-
"type": "array",
|
|
26147
|
-
"items": {
|
|
26148
|
-
"type": "object",
|
|
26149
|
-
"required": [
|
|
26150
|
-
"from",
|
|
26151
|
-
"to",
|
|
26152
|
-
"kind"
|
|
26153
|
-
],
|
|
26154
|
-
"properties": {
|
|
26155
|
-
"from": {
|
|
26156
|
-
"type": "string"
|
|
26157
|
-
},
|
|
26158
|
-
"to": {
|
|
26159
|
-
"type": "string"
|
|
26160
|
-
},
|
|
26161
|
-
"kind": {
|
|
26162
|
-
"type": "string",
|
|
26163
|
-
"enum": [
|
|
26164
|
-
"calls",
|
|
26165
|
-
"grants",
|
|
26166
|
-
"holds",
|
|
26167
|
-
"signs"
|
|
26168
|
-
]
|
|
26169
|
-
}
|
|
26170
|
-
}
|
|
26171
|
-
}
|
|
26172
|
-
},
|
|
26173
|
-
"truncated": {
|
|
26174
|
-
"type": "boolean"
|
|
26175
|
-
},
|
|
26176
|
-
"total_nodes": {
|
|
26177
|
-
"type": "integer",
|
|
26178
|
-
"description": "Node count before the cap."
|
|
26179
|
-
},
|
|
26180
|
-
"fixture": {
|
|
26181
|
-
"type": "boolean",
|
|
26182
|
-
"description": "Present and true only for synthetic data."
|
|
26183
|
-
}
|
|
26184
|
-
}
|
|
26176
|
+
"$ref": "#/components/schemas/OtelTopology"
|
|
26185
26177
|
}
|
|
26186
26178
|
}
|
|
26187
26179
|
}
|
|
@@ -27418,6 +27410,235 @@
|
|
|
27418
27410
|
}
|
|
27419
27411
|
},
|
|
27420
27412
|
"schemas": {
|
|
27413
|
+
"OtelTopology": {
|
|
27414
|
+
"type": "object",
|
|
27415
|
+
"required": [
|
|
27416
|
+
"nodes",
|
|
27417
|
+
"edges",
|
|
27418
|
+
"truncated",
|
|
27419
|
+
"total_nodes"
|
|
27420
|
+
],
|
|
27421
|
+
"properties": {
|
|
27422
|
+
"nodes": {
|
|
27423
|
+
"type": "array",
|
|
27424
|
+
"items": {
|
|
27425
|
+
"type": "object",
|
|
27426
|
+
"required": [
|
|
27427
|
+
"id",
|
|
27428
|
+
"kind",
|
|
27429
|
+
"label"
|
|
27430
|
+
],
|
|
27431
|
+
"properties": {
|
|
27432
|
+
"id": {
|
|
27433
|
+
"type": "string",
|
|
27434
|
+
"description": "Namespaced by kind, e.g. `agent:<uuid>`."
|
|
27435
|
+
},
|
|
27436
|
+
"kind": {
|
|
27437
|
+
"type": "string",
|
|
27438
|
+
"enum": [
|
|
27439
|
+
"agent",
|
|
27440
|
+
"vault",
|
|
27441
|
+
"policy",
|
|
27442
|
+
"connector",
|
|
27443
|
+
"chain"
|
|
27444
|
+
]
|
|
27445
|
+
},
|
|
27446
|
+
"label": {
|
|
27447
|
+
"type": "string"
|
|
27448
|
+
},
|
|
27449
|
+
"status": {
|
|
27450
|
+
"type": "string",
|
|
27451
|
+
"description": "Agents only. Derived, not stored.",
|
|
27452
|
+
"enum": [
|
|
27453
|
+
"compromised",
|
|
27454
|
+
"warn",
|
|
27455
|
+
"suspended",
|
|
27456
|
+
"ok"
|
|
27457
|
+
]
|
|
27458
|
+
},
|
|
27459
|
+
"trust": {
|
|
27460
|
+
"type": "integer",
|
|
27461
|
+
"minimum": 0,
|
|
27462
|
+
"maximum": 100,
|
|
27463
|
+
"description": "Agents only. Absent until the trust engine has scored the agent."
|
|
27464
|
+
}
|
|
27465
|
+
}
|
|
27466
|
+
}
|
|
27467
|
+
},
|
|
27468
|
+
"edges": {
|
|
27469
|
+
"type": "array",
|
|
27470
|
+
"items": {
|
|
27471
|
+
"type": "object",
|
|
27472
|
+
"required": [
|
|
27473
|
+
"from",
|
|
27474
|
+
"to",
|
|
27475
|
+
"kind"
|
|
27476
|
+
],
|
|
27477
|
+
"properties": {
|
|
27478
|
+
"from": {
|
|
27479
|
+
"type": "string"
|
|
27480
|
+
},
|
|
27481
|
+
"to": {
|
|
27482
|
+
"type": "string"
|
|
27483
|
+
},
|
|
27484
|
+
"kind": {
|
|
27485
|
+
"type": "string",
|
|
27486
|
+
"enum": [
|
|
27487
|
+
"calls",
|
|
27488
|
+
"grants",
|
|
27489
|
+
"holds",
|
|
27490
|
+
"signs"
|
|
27491
|
+
]
|
|
27492
|
+
}
|
|
27493
|
+
}
|
|
27494
|
+
}
|
|
27495
|
+
},
|
|
27496
|
+
"truncated": {
|
|
27497
|
+
"type": "boolean"
|
|
27498
|
+
},
|
|
27499
|
+
"total_nodes": {
|
|
27500
|
+
"type": "integer",
|
|
27501
|
+
"description": "Node count before the cap."
|
|
27502
|
+
},
|
|
27503
|
+
"fixture": {
|
|
27504
|
+
"type": "boolean",
|
|
27505
|
+
"description": "Present and true only for synthetic data."
|
|
27506
|
+
}
|
|
27507
|
+
}
|
|
27508
|
+
},
|
|
27509
|
+
"OtelThreatList": {
|
|
27510
|
+
"type": "array",
|
|
27511
|
+
"items": {
|
|
27512
|
+
"type": "object",
|
|
27513
|
+
"required": [
|
|
27514
|
+
"id",
|
|
27515
|
+
"agent_id",
|
|
27516
|
+
"class",
|
|
27517
|
+
"severity",
|
|
27518
|
+
"detected_by",
|
|
27519
|
+
"status",
|
|
27520
|
+
"shadow",
|
|
27521
|
+
"blast_radius",
|
|
27522
|
+
"blast_radius_size"
|
|
27523
|
+
],
|
|
27524
|
+
"properties": {
|
|
27525
|
+
"id": {
|
|
27526
|
+
"type": "string",
|
|
27527
|
+
"format": "uuid"
|
|
27528
|
+
},
|
|
27529
|
+
"agent_id": {
|
|
27530
|
+
"type": "string",
|
|
27531
|
+
"format": "uuid"
|
|
27532
|
+
},
|
|
27533
|
+
"class": {
|
|
27534
|
+
"type": "string",
|
|
27535
|
+
"enum": [
|
|
27536
|
+
"prompt_injection",
|
|
27537
|
+
"policy_breach",
|
|
27538
|
+
"spend_anomaly",
|
|
27539
|
+
"key_exfil",
|
|
27540
|
+
"off_hours",
|
|
27541
|
+
"consensus_bypass",
|
|
27542
|
+
"trust_breach"
|
|
27543
|
+
]
|
|
27544
|
+
},
|
|
27545
|
+
"severity": {
|
|
27546
|
+
"type": "string",
|
|
27547
|
+
"enum": [
|
|
27548
|
+
"critical",
|
|
27549
|
+
"warn"
|
|
27550
|
+
]
|
|
27551
|
+
},
|
|
27552
|
+
"detected_by": {
|
|
27553
|
+
"type": "string"
|
|
27554
|
+
},
|
|
27555
|
+
"status": {
|
|
27556
|
+
"type": "string",
|
|
27557
|
+
"enum": [
|
|
27558
|
+
"open",
|
|
27559
|
+
"acknowledged",
|
|
27560
|
+
"resolved"
|
|
27561
|
+
]
|
|
27562
|
+
},
|
|
27563
|
+
"shadow": {
|
|
27564
|
+
"type": "boolean"
|
|
27565
|
+
},
|
|
27566
|
+
"evidence": {
|
|
27567
|
+
"type": "array",
|
|
27568
|
+
"items": {
|
|
27569
|
+
"type": "object"
|
|
27570
|
+
}
|
|
27571
|
+
},
|
|
27572
|
+
"blast_radius": {
|
|
27573
|
+
"type": "object",
|
|
27574
|
+
"properties": {
|
|
27575
|
+
"vaults": {
|
|
27576
|
+
"type": "integer"
|
|
27577
|
+
},
|
|
27578
|
+
"connectors": {
|
|
27579
|
+
"type": "integer"
|
|
27580
|
+
},
|
|
27581
|
+
"chains": {
|
|
27582
|
+
"type": "integer"
|
|
27583
|
+
}
|
|
27584
|
+
}
|
|
27585
|
+
},
|
|
27586
|
+
"blast_radius_size": {
|
|
27587
|
+
"type": "integer",
|
|
27588
|
+
"description": "Sum of the blast radius. The sort key."
|
|
27589
|
+
},
|
|
27590
|
+
"resolved_by": {
|
|
27591
|
+
"type": "string",
|
|
27592
|
+
"nullable": true
|
|
27593
|
+
},
|
|
27594
|
+
"created_at": {
|
|
27595
|
+
"type": "string",
|
|
27596
|
+
"format": "date-time"
|
|
27597
|
+
},
|
|
27598
|
+
"updated_at": {
|
|
27599
|
+
"type": "string",
|
|
27600
|
+
"format": "date-time"
|
|
27601
|
+
}
|
|
27602
|
+
}
|
|
27603
|
+
}
|
|
27604
|
+
},
|
|
27605
|
+
"OtelSummary": {
|
|
27606
|
+
"type": "object",
|
|
27607
|
+
"required": [
|
|
27608
|
+
"posture_score",
|
|
27609
|
+
"open_threats",
|
|
27610
|
+
"open_critical",
|
|
27611
|
+
"pending_approvals",
|
|
27612
|
+
"agent_count",
|
|
27613
|
+
"top_threats"
|
|
27614
|
+
],
|
|
27615
|
+
"properties": {
|
|
27616
|
+
"posture_score": {
|
|
27617
|
+
"type": "integer",
|
|
27618
|
+
"minimum": 0,
|
|
27619
|
+
"maximum": 100
|
|
27620
|
+
},
|
|
27621
|
+
"open_threats": {
|
|
27622
|
+
"type": "integer"
|
|
27623
|
+
},
|
|
27624
|
+
"open_critical": {
|
|
27625
|
+
"type": "integer"
|
|
27626
|
+
},
|
|
27627
|
+
"pending_approvals": {
|
|
27628
|
+
"type": "integer"
|
|
27629
|
+
},
|
|
27630
|
+
"agent_count": {
|
|
27631
|
+
"type": "integer"
|
|
27632
|
+
},
|
|
27633
|
+
"top_threats": {
|
|
27634
|
+
"type": "array",
|
|
27635
|
+
"description": "At most five, same ranking as /v1/otel/threats.",
|
|
27636
|
+
"items": {
|
|
27637
|
+
"type": "object"
|
|
27638
|
+
}
|
|
27639
|
+
}
|
|
27640
|
+
}
|
|
27641
|
+
},
|
|
27421
27642
|
"UpdatePayGuardrailsRequest": {
|
|
27422
27643
|
"type": "object",
|
|
27423
27644
|
"properties": {
|
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.61.
|
|
5
|
+
version: "0.61.12"
|
|
6
6
|
description: |
|
|
7
7
|
Secure secret management for AI agents. Provides vaults, secrets,
|
|
8
8
|
policy-based access control, agent identity, Intents API,
|
|
@@ -3846,6 +3846,67 @@ paths:
|
|
|
3846
3846
|
"404":
|
|
3847
3847
|
$ref: "#/components/responses/NotFound"
|
|
3848
3848
|
|
|
3849
|
+
/v1/admin/agents/{agent_id}/reports/dismiss:
|
|
3850
|
+
post:
|
|
3851
|
+
tags: [Admin]
|
|
3852
|
+
summary: Dismiss every open report on a directory listing
|
|
3853
|
+
description: >
|
|
3854
|
+
Platform admins only. Clears the listing's report flag and
|
|
3855
|
+
recounts. The review queue is a platform function — an org
|
|
3856
|
+
dismissing reports against its own agent is the abuse the queue
|
|
3857
|
+
exists to catch.
|
|
3858
|
+
operationId: adminDismissAgentReports
|
|
3859
|
+
parameters:
|
|
3860
|
+
- name: agent_id
|
|
3861
|
+
in: path
|
|
3862
|
+
required: true
|
|
3863
|
+
schema: { type: string, format: uuid }
|
|
3864
|
+
responses:
|
|
3865
|
+
'200':
|
|
3866
|
+
description: Reports dismissed
|
|
3867
|
+
content:
|
|
3868
|
+
application/json:
|
|
3869
|
+
schema:
|
|
3870
|
+
type: object
|
|
3871
|
+
properties:
|
|
3872
|
+
agent_id: { type: string, format: uuid }
|
|
3873
|
+
dismissed: { type: integer }
|
|
3874
|
+
'403': { description: Not a platform admin }
|
|
3875
|
+
'404': { description: Agent not found }
|
|
3876
|
+
/v1/admin/agents/{agent_id}/verification-tier:
|
|
3877
|
+
put:
|
|
3878
|
+
tags: [Admin]
|
|
3879
|
+
summary: Set a directory listing's verification tier
|
|
3880
|
+
description: Platform admins only. Unknown tiers are refused rather than demoted to `unverified`.
|
|
3881
|
+
operationId: adminSetAgentVerificationTier
|
|
3882
|
+
parameters:
|
|
3883
|
+
- name: agent_id
|
|
3884
|
+
in: path
|
|
3885
|
+
required: true
|
|
3886
|
+
schema: { type: string, format: uuid }
|
|
3887
|
+
requestBody:
|
|
3888
|
+
required: true
|
|
3889
|
+
content:
|
|
3890
|
+
application/json:
|
|
3891
|
+
schema:
|
|
3892
|
+
type: object
|
|
3893
|
+
required: [tier]
|
|
3894
|
+
properties:
|
|
3895
|
+
tier: { type: string, enum: [unverified, platform_reviewed, identity_verified, enterprise] }
|
|
3896
|
+
notes: { type: string, nullable: true, description: Internal review notes, never public }
|
|
3897
|
+
responses:
|
|
3898
|
+
'200':
|
|
3899
|
+
description: Tier set
|
|
3900
|
+
content:
|
|
3901
|
+
application/json:
|
|
3902
|
+
schema:
|
|
3903
|
+
type: object
|
|
3904
|
+
properties:
|
|
3905
|
+
agent_id: { type: string, format: uuid }
|
|
3906
|
+
tier: { type: string }
|
|
3907
|
+
'400': { description: Unknown tier }
|
|
3908
|
+
'403': { description: Not a platform admin }
|
|
3909
|
+
'404': { description: Agent not found }
|
|
3849
3910
|
/v1/admin/chains:
|
|
3850
3911
|
get:
|
|
3851
3912
|
tags: [Chains]
|
|
@@ -9989,6 +10050,50 @@ paths:
|
|
|
9989
10050
|
ChallengeExpired. Re-fetch the resource for a fresh 402 and
|
|
9990
10051
|
prepare again — re-preparing from the stored bytes would
|
|
9991
10052
|
reproduce the same expired window.
|
|
10053
|
+
/v1/agents/{agent_id}/pay/grants/prepare:
|
|
10054
|
+
post:
|
|
10055
|
+
tags: [Pay]
|
|
10056
|
+
summary: Prepare a spending grant (step one of two)
|
|
10057
|
+
description: >
|
|
10058
|
+
Fixes the grant terms and a server-side nonce and returns the
|
|
10059
|
+
`grant_digest` the person must assert over with a passkey
|
|
10060
|
+
(`action=x402_grant`). Then call `POST .../pay/grants` with the
|
|
10061
|
+
same terms, the digest, and the passkey token. Preparations are
|
|
10062
|
+
single-use, bound to the caller and agent, and expire after ten
|
|
10063
|
+
minutes. The nonce never leaves the server, so the digest cannot
|
|
10064
|
+
be recomputed for different terms. Human callers only; terms are
|
|
10065
|
+
validated against the agent's maximum cap and window here as well.
|
|
10066
|
+
operationId: preparePayGrant
|
|
10067
|
+
parameters:
|
|
10068
|
+
- $ref: "#/components/parameters/AgentId"
|
|
10069
|
+
requestBody:
|
|
10070
|
+
required: true
|
|
10071
|
+
content:
|
|
10072
|
+
application/json:
|
|
10073
|
+
schema:
|
|
10074
|
+
type: object
|
|
10075
|
+
required: [cap_usd, ttl_secs]
|
|
10076
|
+
properties:
|
|
10077
|
+
cap_usd: { type: string }
|
|
10078
|
+
ttl_secs: { type: integer }
|
|
10079
|
+
allowed_paytos:
|
|
10080
|
+
type: array
|
|
10081
|
+
items: { type: string }
|
|
10082
|
+
nullable: true
|
|
10083
|
+
responses:
|
|
10084
|
+
'200':
|
|
10085
|
+
description: The digest to assert over
|
|
10086
|
+
content:
|
|
10087
|
+
application/json:
|
|
10088
|
+
schema:
|
|
10089
|
+
type: object
|
|
10090
|
+
required: [grant_digest, action, expires_in_secs]
|
|
10091
|
+
properties:
|
|
10092
|
+
grant_digest: { type: string }
|
|
10093
|
+
action: { type: string, enum: [x402_grant] }
|
|
10094
|
+
expires_in_secs: { type: integer }
|
|
10095
|
+
'400': { description: Invalid terms }
|
|
10096
|
+
'403': { description: Not a human caller, grant mode disabled, or over the agent's maximum }
|
|
9992
10097
|
/v1/agents/{agent_id}/pay/grants:
|
|
9993
10098
|
post:
|
|
9994
10099
|
tags: [Pay]
|
|
@@ -15908,7 +16013,7 @@ paths:
|
|
|
15908
16013
|
content:
|
|
15909
16014
|
application/json:
|
|
15910
16015
|
schema:
|
|
15911
|
-
$ref: '#/
|
|
16016
|
+
$ref: '#/components/schemas/OtelTopology'
|
|
15912
16017
|
'401': { description: Unauthenticated }
|
|
15913
16018
|
'403': { description: Not a plt_ key }
|
|
15914
16019
|
'404': { description: Connection not found for this app }
|
|
@@ -15944,7 +16049,7 @@ paths:
|
|
|
15944
16049
|
content:
|
|
15945
16050
|
application/json:
|
|
15946
16051
|
schema:
|
|
15947
|
-
$ref: '#/
|
|
16052
|
+
$ref: '#/components/schemas/OtelThreatList'
|
|
15948
16053
|
'401': { description: Unauthenticated }
|
|
15949
16054
|
'403': { description: Not a plt_ key }
|
|
15950
16055
|
'404': { description: Connection not found for this app }
|
|
@@ -15976,7 +16081,7 @@ paths:
|
|
|
15976
16081
|
content:
|
|
15977
16082
|
application/json:
|
|
15978
16083
|
schema:
|
|
15979
|
-
$ref: '#/
|
|
16084
|
+
$ref: '#/components/schemas/OtelSummary'
|
|
15980
16085
|
'401': { description: Unauthenticated }
|
|
15981
16086
|
'403': { description: Not a plt_ key }
|
|
15982
16087
|
'404': { description: Connection not found for this app }
|
|
@@ -16344,33 +16449,7 @@ paths:
|
|
|
16344
16449
|
content:
|
|
16345
16450
|
application/json:
|
|
16346
16451
|
schema:
|
|
16347
|
-
|
|
16348
|
-
items:
|
|
16349
|
-
type: object
|
|
16350
|
-
required: [id, agent_id, class, severity, detected_by, status, shadow, blast_radius, blast_radius_size]
|
|
16351
|
-
properties:
|
|
16352
|
-
id: { type: string, format: uuid }
|
|
16353
|
-
agent_id: { type: string, format: uuid }
|
|
16354
|
-
class:
|
|
16355
|
-
type: string
|
|
16356
|
-
enum: [prompt_injection, policy_breach, spend_anomaly, key_exfil, off_hours, consensus_bypass, trust_breach]
|
|
16357
|
-
severity: { type: string, enum: [critical, warn] }
|
|
16358
|
-
detected_by: { type: string }
|
|
16359
|
-
status: { type: string, enum: [open, acknowledged, resolved] }
|
|
16360
|
-
shadow: { type: boolean }
|
|
16361
|
-
evidence: { type: array, items: { type: object } }
|
|
16362
|
-
blast_radius:
|
|
16363
|
-
type: object
|
|
16364
|
-
properties:
|
|
16365
|
-
vaults: { type: integer }
|
|
16366
|
-
connectors: { type: integer }
|
|
16367
|
-
chains: { type: integer }
|
|
16368
|
-
blast_radius_size:
|
|
16369
|
-
type: integer
|
|
16370
|
-
description: Sum of the blast radius. The sort key.
|
|
16371
|
-
resolved_by: { type: string, nullable: true }
|
|
16372
|
-
created_at: { type: string, format: date-time }
|
|
16373
|
-
updated_at: { type: string, format: date-time }
|
|
16452
|
+
$ref: '#/components/schemas/OtelThreatList'
|
|
16374
16453
|
'401':
|
|
16375
16454
|
description: Unauthenticated
|
|
16376
16455
|
'403':
|
|
@@ -16702,18 +16781,7 @@ paths:
|
|
|
16702
16781
|
content:
|
|
16703
16782
|
application/json:
|
|
16704
16783
|
schema:
|
|
16705
|
-
|
|
16706
|
-
required: [posture_score, open_threats, open_critical, pending_approvals, agent_count, top_threats]
|
|
16707
|
-
properties:
|
|
16708
|
-
posture_score: { type: integer, minimum: 0, maximum: 100 }
|
|
16709
|
-
open_threats: { type: integer }
|
|
16710
|
-
open_critical: { type: integer }
|
|
16711
|
-
pending_approvals: { type: integer }
|
|
16712
|
-
agent_count: { type: integer }
|
|
16713
|
-
top_threats:
|
|
16714
|
-
type: array
|
|
16715
|
-
description: At most five, same ranking as /v1/otel/threats.
|
|
16716
|
-
items: { type: object }
|
|
16784
|
+
$ref: '#/components/schemas/OtelSummary'
|
|
16717
16785
|
'401':
|
|
16718
16786
|
description: Unauthenticated
|
|
16719
16787
|
'403':
|
|
@@ -16754,53 +16822,7 @@ paths:
|
|
|
16754
16822
|
content:
|
|
16755
16823
|
application/json:
|
|
16756
16824
|
schema:
|
|
16757
|
-
|
|
16758
|
-
required: [nodes, edges, truncated, total_nodes]
|
|
16759
|
-
properties:
|
|
16760
|
-
nodes:
|
|
16761
|
-
type: array
|
|
16762
|
-
items:
|
|
16763
|
-
type: object
|
|
16764
|
-
required: [id, kind, label]
|
|
16765
|
-
properties:
|
|
16766
|
-
id:
|
|
16767
|
-
type: string
|
|
16768
|
-
description: Namespaced by kind, e.g. `agent:<uuid>`.
|
|
16769
|
-
kind:
|
|
16770
|
-
type: string
|
|
16771
|
-
enum: [agent, vault, policy, connector, chain]
|
|
16772
|
-
label:
|
|
16773
|
-
type: string
|
|
16774
|
-
status:
|
|
16775
|
-
type: string
|
|
16776
|
-
description: Agents only. Derived, not stored.
|
|
16777
|
-
enum: [compromised, warn, suspended, ok]
|
|
16778
|
-
trust:
|
|
16779
|
-
type: integer
|
|
16780
|
-
minimum: 0
|
|
16781
|
-
maximum: 100
|
|
16782
|
-
description: Agents only. Absent until the trust engine has scored the agent.
|
|
16783
|
-
edges:
|
|
16784
|
-
type: array
|
|
16785
|
-
items:
|
|
16786
|
-
type: object
|
|
16787
|
-
required: [from, to, kind]
|
|
16788
|
-
properties:
|
|
16789
|
-
from:
|
|
16790
|
-
type: string
|
|
16791
|
-
to:
|
|
16792
|
-
type: string
|
|
16793
|
-
kind:
|
|
16794
|
-
type: string
|
|
16795
|
-
enum: [calls, grants, holds, signs]
|
|
16796
|
-
truncated:
|
|
16797
|
-
type: boolean
|
|
16798
|
-
total_nodes:
|
|
16799
|
-
type: integer
|
|
16800
|
-
description: Node count before the cap.
|
|
16801
|
-
fixture:
|
|
16802
|
-
type: boolean
|
|
16803
|
-
description: Present and true only for synthetic data.
|
|
16825
|
+
$ref: '#/components/schemas/OtelTopology'
|
|
16804
16826
|
'401':
|
|
16805
16827
|
description: Unauthenticated
|
|
16806
16828
|
'403':
|
|
@@ -17592,6 +17614,95 @@ components:
|
|
|
17592
17614
|
$ref: "#/components/schemas/ProblemDetails"
|
|
17593
17615
|
|
|
17594
17616
|
schemas:
|
|
17617
|
+
OtelTopology:
|
|
17618
|
+
type: object
|
|
17619
|
+
required: [nodes, edges, truncated, total_nodes]
|
|
17620
|
+
properties:
|
|
17621
|
+
nodes:
|
|
17622
|
+
type: array
|
|
17623
|
+
items:
|
|
17624
|
+
type: object
|
|
17625
|
+
required: [id, kind, label]
|
|
17626
|
+
properties:
|
|
17627
|
+
id:
|
|
17628
|
+
type: string
|
|
17629
|
+
description: Namespaced by kind, e.g. `agent:<uuid>`.
|
|
17630
|
+
kind:
|
|
17631
|
+
type: string
|
|
17632
|
+
enum: [agent, vault, policy, connector, chain]
|
|
17633
|
+
label:
|
|
17634
|
+
type: string
|
|
17635
|
+
status:
|
|
17636
|
+
type: string
|
|
17637
|
+
description: Agents only. Derived, not stored.
|
|
17638
|
+
enum: [compromised, warn, suspended, ok]
|
|
17639
|
+
trust:
|
|
17640
|
+
type: integer
|
|
17641
|
+
minimum: 0
|
|
17642
|
+
maximum: 100
|
|
17643
|
+
description: Agents only. Absent until the trust engine has scored the agent.
|
|
17644
|
+
edges:
|
|
17645
|
+
type: array
|
|
17646
|
+
items:
|
|
17647
|
+
type: object
|
|
17648
|
+
required: [from, to, kind]
|
|
17649
|
+
properties:
|
|
17650
|
+
from:
|
|
17651
|
+
type: string
|
|
17652
|
+
to:
|
|
17653
|
+
type: string
|
|
17654
|
+
kind:
|
|
17655
|
+
type: string
|
|
17656
|
+
enum: [calls, grants, holds, signs]
|
|
17657
|
+
truncated:
|
|
17658
|
+
type: boolean
|
|
17659
|
+
total_nodes:
|
|
17660
|
+
type: integer
|
|
17661
|
+
description: Node count before the cap.
|
|
17662
|
+
fixture:
|
|
17663
|
+
type: boolean
|
|
17664
|
+
description: Present and true only for synthetic data.
|
|
17665
|
+
OtelThreatList:
|
|
17666
|
+
type: array
|
|
17667
|
+
items:
|
|
17668
|
+
type: object
|
|
17669
|
+
required: [id, agent_id, class, severity, detected_by, status, shadow, blast_radius, blast_radius_size]
|
|
17670
|
+
properties:
|
|
17671
|
+
id: { type: string, format: uuid }
|
|
17672
|
+
agent_id: { type: string, format: uuid }
|
|
17673
|
+
class:
|
|
17674
|
+
type: string
|
|
17675
|
+
enum: [prompt_injection, policy_breach, spend_anomaly, key_exfil, off_hours, consensus_bypass, trust_breach]
|
|
17676
|
+
severity: { type: string, enum: [critical, warn] }
|
|
17677
|
+
detected_by: { type: string }
|
|
17678
|
+
status: { type: string, enum: [open, acknowledged, resolved] }
|
|
17679
|
+
shadow: { type: boolean }
|
|
17680
|
+
evidence: { type: array, items: { type: object } }
|
|
17681
|
+
blast_radius:
|
|
17682
|
+
type: object
|
|
17683
|
+
properties:
|
|
17684
|
+
vaults: { type: integer }
|
|
17685
|
+
connectors: { type: integer }
|
|
17686
|
+
chains: { type: integer }
|
|
17687
|
+
blast_radius_size:
|
|
17688
|
+
type: integer
|
|
17689
|
+
description: Sum of the blast radius. The sort key.
|
|
17690
|
+
resolved_by: { type: string, nullable: true }
|
|
17691
|
+
created_at: { type: string, format: date-time }
|
|
17692
|
+
updated_at: { type: string, format: date-time }
|
|
17693
|
+
OtelSummary:
|
|
17694
|
+
type: object
|
|
17695
|
+
required: [posture_score, open_threats, open_critical, pending_approvals, agent_count, top_threats]
|
|
17696
|
+
properties:
|
|
17697
|
+
posture_score: { type: integer, minimum: 0, maximum: 100 }
|
|
17698
|
+
open_threats: { type: integer }
|
|
17699
|
+
open_critical: { type: integer }
|
|
17700
|
+
pending_approvals: { type: integer }
|
|
17701
|
+
agent_count: { type: integer }
|
|
17702
|
+
top_threats:
|
|
17703
|
+
type: array
|
|
17704
|
+
description: At most five, same ranking as /v1/otel/threats.
|
|
17705
|
+
items: { type: object }
|
|
17595
17706
|
UpdatePayGuardrailsRequest:
|
|
17596
17707
|
type: object
|
|
17597
17708
|
properties:
|