@1claw/openapi-spec 0.61.9 → 0.61.11
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 +428 -224
- package/openapi.yaml +238 -87
- 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.11",
|
|
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"
|
|
@@ -24669,6 +24669,201 @@
|
|
|
24669
24669
|
}
|
|
24670
24670
|
}
|
|
24671
24671
|
},
|
|
24672
|
+
"/v1/platform/connections/{connection_id}/otel/topology": {
|
|
24673
|
+
"get": {
|
|
24674
|
+
"tags": [
|
|
24675
|
+
"Platform",
|
|
24676
|
+
"Observability"
|
|
24677
|
+
],
|
|
24678
|
+
"summary": "Topology for one connection's agents",
|
|
24679
|
+
"description": "The same graph as `/v1/otel/topology`, restricted to what this connection's agents reach: the agents, the policies they hold, the vaults those grant, the chains they sign on and the systems they call. Restricted before the 500-node cap, so a large org's cap cannot cut the connection's own agents out. Walking is directed (agent → policy → vault), so a vault shared with another tenant's agent does not reveal that agent.\n\nA `plt_` key sees one connection's agents, never the end-user's org: that org may hold agents from other platforms or the user's own. The set is agents attributed to the connection plus the ones listed on it, constrained to the connection's org. A connection that does not belong to the calling app is a 404.",
|
|
24680
|
+
"operationId": "get_platform_connection_otel_topology",
|
|
24681
|
+
"parameters": [
|
|
24682
|
+
{
|
|
24683
|
+
"name": "connection_id",
|
|
24684
|
+
"in": "path",
|
|
24685
|
+
"required": true,
|
|
24686
|
+
"schema": {
|
|
24687
|
+
"type": "string",
|
|
24688
|
+
"format": "uuid"
|
|
24689
|
+
}
|
|
24690
|
+
}
|
|
24691
|
+
],
|
|
24692
|
+
"responses": {
|
|
24693
|
+
"200": {
|
|
24694
|
+
"description": "Nodes and edges reachable from the connection's agents",
|
|
24695
|
+
"content": {
|
|
24696
|
+
"application/json": {
|
|
24697
|
+
"schema": {
|
|
24698
|
+
"$ref": "#/components/schemas/OtelTopology"
|
|
24699
|
+
}
|
|
24700
|
+
}
|
|
24701
|
+
}
|
|
24702
|
+
},
|
|
24703
|
+
"401": {
|
|
24704
|
+
"description": "Unauthenticated"
|
|
24705
|
+
},
|
|
24706
|
+
"403": {
|
|
24707
|
+
"description": "Not a plt_ key"
|
|
24708
|
+
},
|
|
24709
|
+
"404": {
|
|
24710
|
+
"description": "Connection not found for this app"
|
|
24711
|
+
}
|
|
24712
|
+
}
|
|
24713
|
+
}
|
|
24714
|
+
},
|
|
24715
|
+
"/v1/platform/connections/{connection_id}/otel/threats": {
|
|
24716
|
+
"get": {
|
|
24717
|
+
"tags": [
|
|
24718
|
+
"Platform",
|
|
24719
|
+
"Observability"
|
|
24720
|
+
],
|
|
24721
|
+
"summary": "Open threats on one connection's agents",
|
|
24722
|
+
"description": "`/v1/otel/threats` filtered to the connection's agents, same ranking (blast radius, then recency).\n\nA `plt_` key sees one connection's agents, never the end-user's org: that org may hold agents from other platforms or the user's own. The set is agents attributed to the connection plus the ones listed on it, constrained to the connection's org. A connection that does not belong to the calling app is a 404.",
|
|
24723
|
+
"operationId": "get_platform_connection_otel_threats",
|
|
24724
|
+
"parameters": [
|
|
24725
|
+
{
|
|
24726
|
+
"name": "connection_id",
|
|
24727
|
+
"in": "path",
|
|
24728
|
+
"required": true,
|
|
24729
|
+
"schema": {
|
|
24730
|
+
"type": "string",
|
|
24731
|
+
"format": "uuid"
|
|
24732
|
+
}
|
|
24733
|
+
},
|
|
24734
|
+
{
|
|
24735
|
+
"name": "state",
|
|
24736
|
+
"in": "query",
|
|
24737
|
+
"required": false,
|
|
24738
|
+
"schema": {
|
|
24739
|
+
"type": "string",
|
|
24740
|
+
"enum": [
|
|
24741
|
+
"open",
|
|
24742
|
+
"all"
|
|
24743
|
+
]
|
|
24744
|
+
}
|
|
24745
|
+
}
|
|
24746
|
+
],
|
|
24747
|
+
"responses": {
|
|
24748
|
+
"200": {
|
|
24749
|
+
"description": "Threats on the connection's agents, highest blast radius first",
|
|
24750
|
+
"content": {
|
|
24751
|
+
"application/json": {
|
|
24752
|
+
"schema": {
|
|
24753
|
+
"$ref": "#/components/schemas/OtelThreatList"
|
|
24754
|
+
}
|
|
24755
|
+
}
|
|
24756
|
+
}
|
|
24757
|
+
},
|
|
24758
|
+
"401": {
|
|
24759
|
+
"description": "Unauthenticated"
|
|
24760
|
+
},
|
|
24761
|
+
"403": {
|
|
24762
|
+
"description": "Not a plt_ key"
|
|
24763
|
+
},
|
|
24764
|
+
"404": {
|
|
24765
|
+
"description": "Connection not found for this app"
|
|
24766
|
+
}
|
|
24767
|
+
}
|
|
24768
|
+
}
|
|
24769
|
+
},
|
|
24770
|
+
"/v1/platform/connections/{connection_id}/otel/summary": {
|
|
24771
|
+
"get": {
|
|
24772
|
+
"tags": [
|
|
24773
|
+
"Platform",
|
|
24774
|
+
"Observability"
|
|
24775
|
+
],
|
|
24776
|
+
"summary": "Posture score and counts for one connection's agents",
|
|
24777
|
+
"description": "`/v1/otel/summary` over a smaller world: the posture score uses the connection's agents' trust scores and the resources they reach; threat and pending-approval counts are the connection's agents' only.\n\nA `plt_` key sees one connection's agents, never the end-user's org: that org may hold agents from other platforms or the user's own. The set is agents attributed to the connection plus the ones listed on it, constrained to the connection's org. A connection that does not belong to the calling app is a 404.",
|
|
24778
|
+
"operationId": "get_platform_connection_otel_summary",
|
|
24779
|
+
"parameters": [
|
|
24780
|
+
{
|
|
24781
|
+
"name": "connection_id",
|
|
24782
|
+
"in": "path",
|
|
24783
|
+
"required": true,
|
|
24784
|
+
"schema": {
|
|
24785
|
+
"type": "string",
|
|
24786
|
+
"format": "uuid"
|
|
24787
|
+
}
|
|
24788
|
+
}
|
|
24789
|
+
],
|
|
24790
|
+
"responses": {
|
|
24791
|
+
"200": {
|
|
24792
|
+
"description": "Posture and counts for the connection",
|
|
24793
|
+
"content": {
|
|
24794
|
+
"application/json": {
|
|
24795
|
+
"schema": {
|
|
24796
|
+
"$ref": "#/components/schemas/OtelSummary"
|
|
24797
|
+
}
|
|
24798
|
+
}
|
|
24799
|
+
}
|
|
24800
|
+
},
|
|
24801
|
+
"401": {
|
|
24802
|
+
"description": "Unauthenticated"
|
|
24803
|
+
},
|
|
24804
|
+
"403": {
|
|
24805
|
+
"description": "Not a plt_ key"
|
|
24806
|
+
},
|
|
24807
|
+
"404": {
|
|
24808
|
+
"description": "Connection not found for this app"
|
|
24809
|
+
}
|
|
24810
|
+
}
|
|
24811
|
+
}
|
|
24812
|
+
},
|
|
24813
|
+
"/v1/platform/connections/{connection_id}/otel/stream": {
|
|
24814
|
+
"get": {
|
|
24815
|
+
"tags": [
|
|
24816
|
+
"Platform",
|
|
24817
|
+
"Observability"
|
|
24818
|
+
],
|
|
24819
|
+
"summary": "Live signal stream for one connection's agents (SSE)",
|
|
24820
|
+
"description": "The same protocol as `/v1/otel/stream` — `Last-Event-ID` resume, `event: gap` on a stale cursor or a lagged subscriber — filtered to signals whose agent is one of the connection's. Signals with no agent (a human's own dashboard actions) are never emitted here. The agent set is fixed at connect time; an agent added later appears on the next connect.\n\nStream slots are counted per platform app (five), not per connection.\n\nA `plt_` key sees one connection's agents, never the end-user's org: that org may hold agents from other platforms or the user's own. The set is agents attributed to the connection plus the ones listed on it, constrained to the connection's org. A connection that does not belong to the calling app is a 404.",
|
|
24821
|
+
"operationId": "get_platform_connection_otel_stream",
|
|
24822
|
+
"parameters": [
|
|
24823
|
+
{
|
|
24824
|
+
"name": "connection_id",
|
|
24825
|
+
"in": "path",
|
|
24826
|
+
"required": true,
|
|
24827
|
+
"schema": {
|
|
24828
|
+
"type": "string",
|
|
24829
|
+
"format": "uuid"
|
|
24830
|
+
}
|
|
24831
|
+
},
|
|
24832
|
+
{
|
|
24833
|
+
"name": "Last-Event-ID",
|
|
24834
|
+
"in": "header",
|
|
24835
|
+
"required": false,
|
|
24836
|
+
"schema": {
|
|
24837
|
+
"type": "string"
|
|
24838
|
+
}
|
|
24839
|
+
}
|
|
24840
|
+
],
|
|
24841
|
+
"responses": {
|
|
24842
|
+
"200": {
|
|
24843
|
+
"description": "text/event-stream",
|
|
24844
|
+
"content": {
|
|
24845
|
+
"text/event-stream": {
|
|
24846
|
+
"schema": {
|
|
24847
|
+
"type": "string"
|
|
24848
|
+
}
|
|
24849
|
+
}
|
|
24850
|
+
}
|
|
24851
|
+
},
|
|
24852
|
+
"401": {
|
|
24853
|
+
"description": "Unauthenticated"
|
|
24854
|
+
},
|
|
24855
|
+
"403": {
|
|
24856
|
+
"description": "Not a plt_ key"
|
|
24857
|
+
},
|
|
24858
|
+
"404": {
|
|
24859
|
+
"description": "Connection not found for this app"
|
|
24860
|
+
},
|
|
24861
|
+
"429": {
|
|
24862
|
+
"description": "Stream slot cap for this app reached"
|
|
24863
|
+
}
|
|
24864
|
+
}
|
|
24865
|
+
}
|
|
24866
|
+
},
|
|
24672
24867
|
"/v1/platform/connections/{connection_id}/resources": {
|
|
24673
24868
|
"parameters": [
|
|
24674
24869
|
{
|
|
@@ -25141,100 +25336,7 @@
|
|
|
25141
25336
|
"content": {
|
|
25142
25337
|
"application/json": {
|
|
25143
25338
|
"schema": {
|
|
25144
|
-
"
|
|
25145
|
-
"items": {
|
|
25146
|
-
"type": "object",
|
|
25147
|
-
"required": [
|
|
25148
|
-
"id",
|
|
25149
|
-
"agent_id",
|
|
25150
|
-
"class",
|
|
25151
|
-
"severity",
|
|
25152
|
-
"detected_by",
|
|
25153
|
-
"status",
|
|
25154
|
-
"shadow",
|
|
25155
|
-
"blast_radius",
|
|
25156
|
-
"blast_radius_size"
|
|
25157
|
-
],
|
|
25158
|
-
"properties": {
|
|
25159
|
-
"id": {
|
|
25160
|
-
"type": "string",
|
|
25161
|
-
"format": "uuid"
|
|
25162
|
-
},
|
|
25163
|
-
"agent_id": {
|
|
25164
|
-
"type": "string",
|
|
25165
|
-
"format": "uuid"
|
|
25166
|
-
},
|
|
25167
|
-
"class": {
|
|
25168
|
-
"type": "string",
|
|
25169
|
-
"enum": [
|
|
25170
|
-
"prompt_injection",
|
|
25171
|
-
"policy_breach",
|
|
25172
|
-
"spend_anomaly",
|
|
25173
|
-
"key_exfil",
|
|
25174
|
-
"off_hours",
|
|
25175
|
-
"consensus_bypass",
|
|
25176
|
-
"trust_breach"
|
|
25177
|
-
]
|
|
25178
|
-
},
|
|
25179
|
-
"severity": {
|
|
25180
|
-
"type": "string",
|
|
25181
|
-
"enum": [
|
|
25182
|
-
"critical",
|
|
25183
|
-
"warn"
|
|
25184
|
-
]
|
|
25185
|
-
},
|
|
25186
|
-
"detected_by": {
|
|
25187
|
-
"type": "string"
|
|
25188
|
-
},
|
|
25189
|
-
"status": {
|
|
25190
|
-
"type": "string",
|
|
25191
|
-
"enum": [
|
|
25192
|
-
"open",
|
|
25193
|
-
"acknowledged",
|
|
25194
|
-
"resolved"
|
|
25195
|
-
]
|
|
25196
|
-
},
|
|
25197
|
-
"shadow": {
|
|
25198
|
-
"type": "boolean"
|
|
25199
|
-
},
|
|
25200
|
-
"evidence": {
|
|
25201
|
-
"type": "array",
|
|
25202
|
-
"items": {
|
|
25203
|
-
"type": "object"
|
|
25204
|
-
}
|
|
25205
|
-
},
|
|
25206
|
-
"blast_radius": {
|
|
25207
|
-
"type": "object",
|
|
25208
|
-
"properties": {
|
|
25209
|
-
"vaults": {
|
|
25210
|
-
"type": "integer"
|
|
25211
|
-
},
|
|
25212
|
-
"connectors": {
|
|
25213
|
-
"type": "integer"
|
|
25214
|
-
},
|
|
25215
|
-
"chains": {
|
|
25216
|
-
"type": "integer"
|
|
25217
|
-
}
|
|
25218
|
-
}
|
|
25219
|
-
},
|
|
25220
|
-
"blast_radius_size": {
|
|
25221
|
-
"type": "integer",
|
|
25222
|
-
"description": "Sum of the blast radius. The sort key."
|
|
25223
|
-
},
|
|
25224
|
-
"resolved_by": {
|
|
25225
|
-
"type": "string",
|
|
25226
|
-
"nullable": true
|
|
25227
|
-
},
|
|
25228
|
-
"created_at": {
|
|
25229
|
-
"type": "string",
|
|
25230
|
-
"format": "date-time"
|
|
25231
|
-
},
|
|
25232
|
-
"updated_at": {
|
|
25233
|
-
"type": "string",
|
|
25234
|
-
"format": "date-time"
|
|
25235
|
-
}
|
|
25236
|
-
}
|
|
25237
|
-
}
|
|
25339
|
+
"$ref": "#/components/schemas/OtelThreatList"
|
|
25238
25340
|
}
|
|
25239
25341
|
}
|
|
25240
25342
|
}
|
|
@@ -25816,41 +25918,7 @@
|
|
|
25816
25918
|
"content": {
|
|
25817
25919
|
"application/json": {
|
|
25818
25920
|
"schema": {
|
|
25819
|
-
"
|
|
25820
|
-
"required": [
|
|
25821
|
-
"posture_score",
|
|
25822
|
-
"open_threats",
|
|
25823
|
-
"open_critical",
|
|
25824
|
-
"pending_approvals",
|
|
25825
|
-
"agent_count",
|
|
25826
|
-
"top_threats"
|
|
25827
|
-
],
|
|
25828
|
-
"properties": {
|
|
25829
|
-
"posture_score": {
|
|
25830
|
-
"type": "integer",
|
|
25831
|
-
"minimum": 0,
|
|
25832
|
-
"maximum": 100
|
|
25833
|
-
},
|
|
25834
|
-
"open_threats": {
|
|
25835
|
-
"type": "integer"
|
|
25836
|
-
},
|
|
25837
|
-
"open_critical": {
|
|
25838
|
-
"type": "integer"
|
|
25839
|
-
},
|
|
25840
|
-
"pending_approvals": {
|
|
25841
|
-
"type": "integer"
|
|
25842
|
-
},
|
|
25843
|
-
"agent_count": {
|
|
25844
|
-
"type": "integer"
|
|
25845
|
-
},
|
|
25846
|
-
"top_threats": {
|
|
25847
|
-
"type": "array",
|
|
25848
|
-
"description": "At most five, same ranking as /v1/otel/threats.",
|
|
25849
|
-
"items": {
|
|
25850
|
-
"type": "object"
|
|
25851
|
-
}
|
|
25852
|
-
}
|
|
25853
|
-
}
|
|
25921
|
+
"$ref": "#/components/schemas/OtelSummary"
|
|
25854
25922
|
}
|
|
25855
25923
|
}
|
|
25856
25924
|
}
|
|
@@ -25893,100 +25961,7 @@
|
|
|
25893
25961
|
"content": {
|
|
25894
25962
|
"application/json": {
|
|
25895
25963
|
"schema": {
|
|
25896
|
-
"
|
|
25897
|
-
"required": [
|
|
25898
|
-
"nodes",
|
|
25899
|
-
"edges",
|
|
25900
|
-
"truncated",
|
|
25901
|
-
"total_nodes"
|
|
25902
|
-
],
|
|
25903
|
-
"properties": {
|
|
25904
|
-
"nodes": {
|
|
25905
|
-
"type": "array",
|
|
25906
|
-
"items": {
|
|
25907
|
-
"type": "object",
|
|
25908
|
-
"required": [
|
|
25909
|
-
"id",
|
|
25910
|
-
"kind",
|
|
25911
|
-
"label"
|
|
25912
|
-
],
|
|
25913
|
-
"properties": {
|
|
25914
|
-
"id": {
|
|
25915
|
-
"type": "string",
|
|
25916
|
-
"description": "Namespaced by kind, e.g. `agent:<uuid>`."
|
|
25917
|
-
},
|
|
25918
|
-
"kind": {
|
|
25919
|
-
"type": "string",
|
|
25920
|
-
"enum": [
|
|
25921
|
-
"agent",
|
|
25922
|
-
"vault",
|
|
25923
|
-
"policy",
|
|
25924
|
-
"connector",
|
|
25925
|
-
"chain"
|
|
25926
|
-
]
|
|
25927
|
-
},
|
|
25928
|
-
"label": {
|
|
25929
|
-
"type": "string"
|
|
25930
|
-
},
|
|
25931
|
-
"status": {
|
|
25932
|
-
"type": "string",
|
|
25933
|
-
"description": "Agents only. Derived, not stored.",
|
|
25934
|
-
"enum": [
|
|
25935
|
-
"compromised",
|
|
25936
|
-
"warn",
|
|
25937
|
-
"suspended",
|
|
25938
|
-
"ok"
|
|
25939
|
-
]
|
|
25940
|
-
},
|
|
25941
|
-
"trust": {
|
|
25942
|
-
"type": "integer",
|
|
25943
|
-
"minimum": 0,
|
|
25944
|
-
"maximum": 100,
|
|
25945
|
-
"description": "Agents only. Absent until the trust engine has scored the agent."
|
|
25946
|
-
}
|
|
25947
|
-
}
|
|
25948
|
-
}
|
|
25949
|
-
},
|
|
25950
|
-
"edges": {
|
|
25951
|
-
"type": "array",
|
|
25952
|
-
"items": {
|
|
25953
|
-
"type": "object",
|
|
25954
|
-
"required": [
|
|
25955
|
-
"from",
|
|
25956
|
-
"to",
|
|
25957
|
-
"kind"
|
|
25958
|
-
],
|
|
25959
|
-
"properties": {
|
|
25960
|
-
"from": {
|
|
25961
|
-
"type": "string"
|
|
25962
|
-
},
|
|
25963
|
-
"to": {
|
|
25964
|
-
"type": "string"
|
|
25965
|
-
},
|
|
25966
|
-
"kind": {
|
|
25967
|
-
"type": "string",
|
|
25968
|
-
"enum": [
|
|
25969
|
-
"calls",
|
|
25970
|
-
"grants",
|
|
25971
|
-
"holds",
|
|
25972
|
-
"signs"
|
|
25973
|
-
]
|
|
25974
|
-
}
|
|
25975
|
-
}
|
|
25976
|
-
}
|
|
25977
|
-
},
|
|
25978
|
-
"truncated": {
|
|
25979
|
-
"type": "boolean"
|
|
25980
|
-
},
|
|
25981
|
-
"total_nodes": {
|
|
25982
|
-
"type": "integer",
|
|
25983
|
-
"description": "Node count before the cap."
|
|
25984
|
-
},
|
|
25985
|
-
"fixture": {
|
|
25986
|
-
"type": "boolean",
|
|
25987
|
-
"description": "Present and true only for synthetic data."
|
|
25988
|
-
}
|
|
25989
|
-
}
|
|
25964
|
+
"$ref": "#/components/schemas/OtelTopology"
|
|
25990
25965
|
}
|
|
25991
25966
|
}
|
|
25992
25967
|
}
|
|
@@ -27223,6 +27198,235 @@
|
|
|
27223
27198
|
}
|
|
27224
27199
|
},
|
|
27225
27200
|
"schemas": {
|
|
27201
|
+
"OtelTopology": {
|
|
27202
|
+
"type": "object",
|
|
27203
|
+
"required": [
|
|
27204
|
+
"nodes",
|
|
27205
|
+
"edges",
|
|
27206
|
+
"truncated",
|
|
27207
|
+
"total_nodes"
|
|
27208
|
+
],
|
|
27209
|
+
"properties": {
|
|
27210
|
+
"nodes": {
|
|
27211
|
+
"type": "array",
|
|
27212
|
+
"items": {
|
|
27213
|
+
"type": "object",
|
|
27214
|
+
"required": [
|
|
27215
|
+
"id",
|
|
27216
|
+
"kind",
|
|
27217
|
+
"label"
|
|
27218
|
+
],
|
|
27219
|
+
"properties": {
|
|
27220
|
+
"id": {
|
|
27221
|
+
"type": "string",
|
|
27222
|
+
"description": "Namespaced by kind, e.g. `agent:<uuid>`."
|
|
27223
|
+
},
|
|
27224
|
+
"kind": {
|
|
27225
|
+
"type": "string",
|
|
27226
|
+
"enum": [
|
|
27227
|
+
"agent",
|
|
27228
|
+
"vault",
|
|
27229
|
+
"policy",
|
|
27230
|
+
"connector",
|
|
27231
|
+
"chain"
|
|
27232
|
+
]
|
|
27233
|
+
},
|
|
27234
|
+
"label": {
|
|
27235
|
+
"type": "string"
|
|
27236
|
+
},
|
|
27237
|
+
"status": {
|
|
27238
|
+
"type": "string",
|
|
27239
|
+
"description": "Agents only. Derived, not stored.",
|
|
27240
|
+
"enum": [
|
|
27241
|
+
"compromised",
|
|
27242
|
+
"warn",
|
|
27243
|
+
"suspended",
|
|
27244
|
+
"ok"
|
|
27245
|
+
]
|
|
27246
|
+
},
|
|
27247
|
+
"trust": {
|
|
27248
|
+
"type": "integer",
|
|
27249
|
+
"minimum": 0,
|
|
27250
|
+
"maximum": 100,
|
|
27251
|
+
"description": "Agents only. Absent until the trust engine has scored the agent."
|
|
27252
|
+
}
|
|
27253
|
+
}
|
|
27254
|
+
}
|
|
27255
|
+
},
|
|
27256
|
+
"edges": {
|
|
27257
|
+
"type": "array",
|
|
27258
|
+
"items": {
|
|
27259
|
+
"type": "object",
|
|
27260
|
+
"required": [
|
|
27261
|
+
"from",
|
|
27262
|
+
"to",
|
|
27263
|
+
"kind"
|
|
27264
|
+
],
|
|
27265
|
+
"properties": {
|
|
27266
|
+
"from": {
|
|
27267
|
+
"type": "string"
|
|
27268
|
+
},
|
|
27269
|
+
"to": {
|
|
27270
|
+
"type": "string"
|
|
27271
|
+
},
|
|
27272
|
+
"kind": {
|
|
27273
|
+
"type": "string",
|
|
27274
|
+
"enum": [
|
|
27275
|
+
"calls",
|
|
27276
|
+
"grants",
|
|
27277
|
+
"holds",
|
|
27278
|
+
"signs"
|
|
27279
|
+
]
|
|
27280
|
+
}
|
|
27281
|
+
}
|
|
27282
|
+
}
|
|
27283
|
+
},
|
|
27284
|
+
"truncated": {
|
|
27285
|
+
"type": "boolean"
|
|
27286
|
+
},
|
|
27287
|
+
"total_nodes": {
|
|
27288
|
+
"type": "integer",
|
|
27289
|
+
"description": "Node count before the cap."
|
|
27290
|
+
},
|
|
27291
|
+
"fixture": {
|
|
27292
|
+
"type": "boolean",
|
|
27293
|
+
"description": "Present and true only for synthetic data."
|
|
27294
|
+
}
|
|
27295
|
+
}
|
|
27296
|
+
},
|
|
27297
|
+
"OtelThreatList": {
|
|
27298
|
+
"type": "array",
|
|
27299
|
+
"items": {
|
|
27300
|
+
"type": "object",
|
|
27301
|
+
"required": [
|
|
27302
|
+
"id",
|
|
27303
|
+
"agent_id",
|
|
27304
|
+
"class",
|
|
27305
|
+
"severity",
|
|
27306
|
+
"detected_by",
|
|
27307
|
+
"status",
|
|
27308
|
+
"shadow",
|
|
27309
|
+
"blast_radius",
|
|
27310
|
+
"blast_radius_size"
|
|
27311
|
+
],
|
|
27312
|
+
"properties": {
|
|
27313
|
+
"id": {
|
|
27314
|
+
"type": "string",
|
|
27315
|
+
"format": "uuid"
|
|
27316
|
+
},
|
|
27317
|
+
"agent_id": {
|
|
27318
|
+
"type": "string",
|
|
27319
|
+
"format": "uuid"
|
|
27320
|
+
},
|
|
27321
|
+
"class": {
|
|
27322
|
+
"type": "string",
|
|
27323
|
+
"enum": [
|
|
27324
|
+
"prompt_injection",
|
|
27325
|
+
"policy_breach",
|
|
27326
|
+
"spend_anomaly",
|
|
27327
|
+
"key_exfil",
|
|
27328
|
+
"off_hours",
|
|
27329
|
+
"consensus_bypass",
|
|
27330
|
+
"trust_breach"
|
|
27331
|
+
]
|
|
27332
|
+
},
|
|
27333
|
+
"severity": {
|
|
27334
|
+
"type": "string",
|
|
27335
|
+
"enum": [
|
|
27336
|
+
"critical",
|
|
27337
|
+
"warn"
|
|
27338
|
+
]
|
|
27339
|
+
},
|
|
27340
|
+
"detected_by": {
|
|
27341
|
+
"type": "string"
|
|
27342
|
+
},
|
|
27343
|
+
"status": {
|
|
27344
|
+
"type": "string",
|
|
27345
|
+
"enum": [
|
|
27346
|
+
"open",
|
|
27347
|
+
"acknowledged",
|
|
27348
|
+
"resolved"
|
|
27349
|
+
]
|
|
27350
|
+
},
|
|
27351
|
+
"shadow": {
|
|
27352
|
+
"type": "boolean"
|
|
27353
|
+
},
|
|
27354
|
+
"evidence": {
|
|
27355
|
+
"type": "array",
|
|
27356
|
+
"items": {
|
|
27357
|
+
"type": "object"
|
|
27358
|
+
}
|
|
27359
|
+
},
|
|
27360
|
+
"blast_radius": {
|
|
27361
|
+
"type": "object",
|
|
27362
|
+
"properties": {
|
|
27363
|
+
"vaults": {
|
|
27364
|
+
"type": "integer"
|
|
27365
|
+
},
|
|
27366
|
+
"connectors": {
|
|
27367
|
+
"type": "integer"
|
|
27368
|
+
},
|
|
27369
|
+
"chains": {
|
|
27370
|
+
"type": "integer"
|
|
27371
|
+
}
|
|
27372
|
+
}
|
|
27373
|
+
},
|
|
27374
|
+
"blast_radius_size": {
|
|
27375
|
+
"type": "integer",
|
|
27376
|
+
"description": "Sum of the blast radius. The sort key."
|
|
27377
|
+
},
|
|
27378
|
+
"resolved_by": {
|
|
27379
|
+
"type": "string",
|
|
27380
|
+
"nullable": true
|
|
27381
|
+
},
|
|
27382
|
+
"created_at": {
|
|
27383
|
+
"type": "string",
|
|
27384
|
+
"format": "date-time"
|
|
27385
|
+
},
|
|
27386
|
+
"updated_at": {
|
|
27387
|
+
"type": "string",
|
|
27388
|
+
"format": "date-time"
|
|
27389
|
+
}
|
|
27390
|
+
}
|
|
27391
|
+
}
|
|
27392
|
+
},
|
|
27393
|
+
"OtelSummary": {
|
|
27394
|
+
"type": "object",
|
|
27395
|
+
"required": [
|
|
27396
|
+
"posture_score",
|
|
27397
|
+
"open_threats",
|
|
27398
|
+
"open_critical",
|
|
27399
|
+
"pending_approvals",
|
|
27400
|
+
"agent_count",
|
|
27401
|
+
"top_threats"
|
|
27402
|
+
],
|
|
27403
|
+
"properties": {
|
|
27404
|
+
"posture_score": {
|
|
27405
|
+
"type": "integer",
|
|
27406
|
+
"minimum": 0,
|
|
27407
|
+
"maximum": 100
|
|
27408
|
+
},
|
|
27409
|
+
"open_threats": {
|
|
27410
|
+
"type": "integer"
|
|
27411
|
+
},
|
|
27412
|
+
"open_critical": {
|
|
27413
|
+
"type": "integer"
|
|
27414
|
+
},
|
|
27415
|
+
"pending_approvals": {
|
|
27416
|
+
"type": "integer"
|
|
27417
|
+
},
|
|
27418
|
+
"agent_count": {
|
|
27419
|
+
"type": "integer"
|
|
27420
|
+
},
|
|
27421
|
+
"top_threats": {
|
|
27422
|
+
"type": "array",
|
|
27423
|
+
"description": "At most five, same ranking as /v1/otel/threats.",
|
|
27424
|
+
"items": {
|
|
27425
|
+
"type": "object"
|
|
27426
|
+
}
|
|
27427
|
+
}
|
|
27428
|
+
}
|
|
27429
|
+
},
|
|
27226
27430
|
"UpdatePayGuardrailsRequest": {
|
|
27227
27431
|
"type": "object",
|
|
27228
27432
|
"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.11"
|
|
6
6
|
description: |
|
|
7
7
|
Secure secret management for AI agents. Provides vaults, secrets,
|
|
8
8
|
policy-based access control, agent identity, Intents API,
|
|
@@ -15877,6 +15877,151 @@ paths:
|
|
|
15877
15877
|
description: Forbidden, or the plan does not include this
|
|
15878
15878
|
'404':
|
|
15879
15879
|
description: Not found
|
|
15880
|
+
/v1/platform/connections/{connection_id}/otel/topology:
|
|
15881
|
+
get:
|
|
15882
|
+
tags: [Platform, Observability]
|
|
15883
|
+
summary: "Topology for one connection's agents"
|
|
15884
|
+
description: >-
|
|
15885
|
+
The same graph as `/v1/otel/topology`, restricted to what this
|
|
15886
|
+
connection's agents reach: the agents, the policies they hold,
|
|
15887
|
+
the vaults those grant, the chains they sign on and the systems
|
|
15888
|
+
they call. Restricted before the 500-node cap, so a large org's
|
|
15889
|
+
cap cannot cut the connection's own agents out. Walking is
|
|
15890
|
+
directed (agent → policy → vault), so a vault shared with
|
|
15891
|
+
another tenant's agent does not reveal that agent.
|
|
15892
|
+
|
|
15893
|
+
|
|
15894
|
+
A `plt_` key sees one connection's agents, never the end-user's org:
|
|
15895
|
+
that org may hold agents from other platforms or the user's
|
|
15896
|
+
own. The set is agents attributed to the connection plus the
|
|
15897
|
+
ones listed on it, constrained to the connection's org. A
|
|
15898
|
+
connection that does not belong to the calling app is a 404.
|
|
15899
|
+
operationId: get_platform_connection_otel_topology
|
|
15900
|
+
parameters:
|
|
15901
|
+
- name: connection_id
|
|
15902
|
+
in: path
|
|
15903
|
+
required: true
|
|
15904
|
+
schema: { type: string, format: uuid }
|
|
15905
|
+
responses:
|
|
15906
|
+
'200':
|
|
15907
|
+
description: Nodes and edges reachable from the connection's agents
|
|
15908
|
+
content:
|
|
15909
|
+
application/json:
|
|
15910
|
+
schema:
|
|
15911
|
+
$ref: '#/components/schemas/OtelTopology'
|
|
15912
|
+
'401': { description: Unauthenticated }
|
|
15913
|
+
'403': { description: Not a plt_ key }
|
|
15914
|
+
'404': { description: Connection not found for this app }
|
|
15915
|
+
/v1/platform/connections/{connection_id}/otel/threats:
|
|
15916
|
+
get:
|
|
15917
|
+
tags: [Platform, Observability]
|
|
15918
|
+
summary: "Open threats on one connection's agents"
|
|
15919
|
+
description: >-
|
|
15920
|
+
`/v1/otel/threats` filtered to the connection's agents, same
|
|
15921
|
+
ranking (blast radius, then recency).
|
|
15922
|
+
|
|
15923
|
+
|
|
15924
|
+
A `plt_` key sees one connection's agents, never the end-user's org:
|
|
15925
|
+
that org may hold agents from other platforms or the user's
|
|
15926
|
+
own. The set is agents attributed to the connection plus the
|
|
15927
|
+
ones listed on it, constrained to the connection's org. A
|
|
15928
|
+
connection that does not belong to the calling app is a 404.
|
|
15929
|
+
operationId: get_platform_connection_otel_threats
|
|
15930
|
+
parameters:
|
|
15931
|
+
- name: connection_id
|
|
15932
|
+
in: path
|
|
15933
|
+
required: true
|
|
15934
|
+
schema: { type: string, format: uuid }
|
|
15935
|
+
- name: state
|
|
15936
|
+
in: query
|
|
15937
|
+
required: false
|
|
15938
|
+
schema:
|
|
15939
|
+
type: string
|
|
15940
|
+
enum: [open, all]
|
|
15941
|
+
responses:
|
|
15942
|
+
'200':
|
|
15943
|
+
description: Threats on the connection's agents, highest blast radius first
|
|
15944
|
+
content:
|
|
15945
|
+
application/json:
|
|
15946
|
+
schema:
|
|
15947
|
+
$ref: '#/components/schemas/OtelThreatList'
|
|
15948
|
+
'401': { description: Unauthenticated }
|
|
15949
|
+
'403': { description: Not a plt_ key }
|
|
15950
|
+
'404': { description: Connection not found for this app }
|
|
15951
|
+
/v1/platform/connections/{connection_id}/otel/summary:
|
|
15952
|
+
get:
|
|
15953
|
+
tags: [Platform, Observability]
|
|
15954
|
+
summary: "Posture score and counts for one connection's agents"
|
|
15955
|
+
description: >-
|
|
15956
|
+
`/v1/otel/summary` over a smaller world: the posture score uses
|
|
15957
|
+
the connection's agents' trust scores and the resources they
|
|
15958
|
+
reach; threat and pending-approval counts are the connection's
|
|
15959
|
+
agents' only.
|
|
15960
|
+
|
|
15961
|
+
|
|
15962
|
+
A `plt_` key sees one connection's agents, never the end-user's org:
|
|
15963
|
+
that org may hold agents from other platforms or the user's
|
|
15964
|
+
own. The set is agents attributed to the connection plus the
|
|
15965
|
+
ones listed on it, constrained to the connection's org. A
|
|
15966
|
+
connection that does not belong to the calling app is a 404.
|
|
15967
|
+
operationId: get_platform_connection_otel_summary
|
|
15968
|
+
parameters:
|
|
15969
|
+
- name: connection_id
|
|
15970
|
+
in: path
|
|
15971
|
+
required: true
|
|
15972
|
+
schema: { type: string, format: uuid }
|
|
15973
|
+
responses:
|
|
15974
|
+
'200':
|
|
15975
|
+
description: Posture and counts for the connection
|
|
15976
|
+
content:
|
|
15977
|
+
application/json:
|
|
15978
|
+
schema:
|
|
15979
|
+
$ref: '#/components/schemas/OtelSummary'
|
|
15980
|
+
'401': { description: Unauthenticated }
|
|
15981
|
+
'403': { description: Not a plt_ key }
|
|
15982
|
+
'404': { description: Connection not found for this app }
|
|
15983
|
+
/v1/platform/connections/{connection_id}/otel/stream:
|
|
15984
|
+
get:
|
|
15985
|
+
tags: [Platform, Observability]
|
|
15986
|
+
summary: "Live signal stream for one connection's agents (SSE)"
|
|
15987
|
+
description: >-
|
|
15988
|
+
The same protocol as `/v1/otel/stream` — `Last-Event-ID` resume,
|
|
15989
|
+
`event: gap` on a stale cursor or a lagged subscriber — filtered
|
|
15990
|
+
to signals whose agent is one of the connection's. Signals with
|
|
15991
|
+
no agent (a human's own dashboard actions) are never emitted
|
|
15992
|
+
here. The agent set is fixed at connect time; an agent added
|
|
15993
|
+
later appears on the next connect.
|
|
15994
|
+
|
|
15995
|
+
|
|
15996
|
+
Stream slots are counted per platform app (five), not per
|
|
15997
|
+
connection.
|
|
15998
|
+
|
|
15999
|
+
|
|
16000
|
+
A `plt_` key sees one connection's agents, never the end-user's org:
|
|
16001
|
+
that org may hold agents from other platforms or the user's
|
|
16002
|
+
own. The set is agents attributed to the connection plus the
|
|
16003
|
+
ones listed on it, constrained to the connection's org. A
|
|
16004
|
+
connection that does not belong to the calling app is a 404.
|
|
16005
|
+
operationId: get_platform_connection_otel_stream
|
|
16006
|
+
parameters:
|
|
16007
|
+
- name: connection_id
|
|
16008
|
+
in: path
|
|
16009
|
+
required: true
|
|
16010
|
+
schema: { type: string, format: uuid }
|
|
16011
|
+
- name: Last-Event-ID
|
|
16012
|
+
in: header
|
|
16013
|
+
required: false
|
|
16014
|
+
schema: { type: string }
|
|
16015
|
+
responses:
|
|
16016
|
+
'200':
|
|
16017
|
+
description: text/event-stream
|
|
16018
|
+
content:
|
|
16019
|
+
text/event-stream:
|
|
16020
|
+
schema: { type: string }
|
|
16021
|
+
'401': { description: Unauthenticated }
|
|
16022
|
+
'403': { description: Not a plt_ key }
|
|
16023
|
+
'404': { description: Connection not found for this app }
|
|
16024
|
+
'429': { description: Stream slot cap for this app reached }
|
|
15880
16025
|
/v1/platform/connections/{connection_id}/resources:
|
|
15881
16026
|
parameters:
|
|
15882
16027
|
- name: connection_id
|
|
@@ -16199,33 +16344,7 @@ paths:
|
|
|
16199
16344
|
content:
|
|
16200
16345
|
application/json:
|
|
16201
16346
|
schema:
|
|
16202
|
-
|
|
16203
|
-
items:
|
|
16204
|
-
type: object
|
|
16205
|
-
required: [id, agent_id, class, severity, detected_by, status, shadow, blast_radius, blast_radius_size]
|
|
16206
|
-
properties:
|
|
16207
|
-
id: { type: string, format: uuid }
|
|
16208
|
-
agent_id: { type: string, format: uuid }
|
|
16209
|
-
class:
|
|
16210
|
-
type: string
|
|
16211
|
-
enum: [prompt_injection, policy_breach, spend_anomaly, key_exfil, off_hours, consensus_bypass, trust_breach]
|
|
16212
|
-
severity: { type: string, enum: [critical, warn] }
|
|
16213
|
-
detected_by: { type: string }
|
|
16214
|
-
status: { type: string, enum: [open, acknowledged, resolved] }
|
|
16215
|
-
shadow: { type: boolean }
|
|
16216
|
-
evidence: { type: array, items: { type: object } }
|
|
16217
|
-
blast_radius:
|
|
16218
|
-
type: object
|
|
16219
|
-
properties:
|
|
16220
|
-
vaults: { type: integer }
|
|
16221
|
-
connectors: { type: integer }
|
|
16222
|
-
chains: { type: integer }
|
|
16223
|
-
blast_radius_size:
|
|
16224
|
-
type: integer
|
|
16225
|
-
description: Sum of the blast radius. The sort key.
|
|
16226
|
-
resolved_by: { type: string, nullable: true }
|
|
16227
|
-
created_at: { type: string, format: date-time }
|
|
16228
|
-
updated_at: { type: string, format: date-time }
|
|
16347
|
+
$ref: '#/components/schemas/OtelThreatList'
|
|
16229
16348
|
'401':
|
|
16230
16349
|
description: Unauthenticated
|
|
16231
16350
|
'403':
|
|
@@ -16557,18 +16676,7 @@ paths:
|
|
|
16557
16676
|
content:
|
|
16558
16677
|
application/json:
|
|
16559
16678
|
schema:
|
|
16560
|
-
|
|
16561
|
-
required: [posture_score, open_threats, open_critical, pending_approvals, agent_count, top_threats]
|
|
16562
|
-
properties:
|
|
16563
|
-
posture_score: { type: integer, minimum: 0, maximum: 100 }
|
|
16564
|
-
open_threats: { type: integer }
|
|
16565
|
-
open_critical: { type: integer }
|
|
16566
|
-
pending_approvals: { type: integer }
|
|
16567
|
-
agent_count: { type: integer }
|
|
16568
|
-
top_threats:
|
|
16569
|
-
type: array
|
|
16570
|
-
description: At most five, same ranking as /v1/otel/threats.
|
|
16571
|
-
items: { type: object }
|
|
16679
|
+
$ref: '#/components/schemas/OtelSummary'
|
|
16572
16680
|
'401':
|
|
16573
16681
|
description: Unauthenticated
|
|
16574
16682
|
'403':
|
|
@@ -16609,53 +16717,7 @@ paths:
|
|
|
16609
16717
|
content:
|
|
16610
16718
|
application/json:
|
|
16611
16719
|
schema:
|
|
16612
|
-
|
|
16613
|
-
required: [nodes, edges, truncated, total_nodes]
|
|
16614
|
-
properties:
|
|
16615
|
-
nodes:
|
|
16616
|
-
type: array
|
|
16617
|
-
items:
|
|
16618
|
-
type: object
|
|
16619
|
-
required: [id, kind, label]
|
|
16620
|
-
properties:
|
|
16621
|
-
id:
|
|
16622
|
-
type: string
|
|
16623
|
-
description: Namespaced by kind, e.g. `agent:<uuid>`.
|
|
16624
|
-
kind:
|
|
16625
|
-
type: string
|
|
16626
|
-
enum: [agent, vault, policy, connector, chain]
|
|
16627
|
-
label:
|
|
16628
|
-
type: string
|
|
16629
|
-
status:
|
|
16630
|
-
type: string
|
|
16631
|
-
description: Agents only. Derived, not stored.
|
|
16632
|
-
enum: [compromised, warn, suspended, ok]
|
|
16633
|
-
trust:
|
|
16634
|
-
type: integer
|
|
16635
|
-
minimum: 0
|
|
16636
|
-
maximum: 100
|
|
16637
|
-
description: Agents only. Absent until the trust engine has scored the agent.
|
|
16638
|
-
edges:
|
|
16639
|
-
type: array
|
|
16640
|
-
items:
|
|
16641
|
-
type: object
|
|
16642
|
-
required: [from, to, kind]
|
|
16643
|
-
properties:
|
|
16644
|
-
from:
|
|
16645
|
-
type: string
|
|
16646
|
-
to:
|
|
16647
|
-
type: string
|
|
16648
|
-
kind:
|
|
16649
|
-
type: string
|
|
16650
|
-
enum: [calls, grants, holds, signs]
|
|
16651
|
-
truncated:
|
|
16652
|
-
type: boolean
|
|
16653
|
-
total_nodes:
|
|
16654
|
-
type: integer
|
|
16655
|
-
description: Node count before the cap.
|
|
16656
|
-
fixture:
|
|
16657
|
-
type: boolean
|
|
16658
|
-
description: Present and true only for synthetic data.
|
|
16720
|
+
$ref: '#/components/schemas/OtelTopology'
|
|
16659
16721
|
'401':
|
|
16660
16722
|
description: Unauthenticated
|
|
16661
16723
|
'403':
|
|
@@ -17447,6 +17509,95 @@ components:
|
|
|
17447
17509
|
$ref: "#/components/schemas/ProblemDetails"
|
|
17448
17510
|
|
|
17449
17511
|
schemas:
|
|
17512
|
+
OtelTopology:
|
|
17513
|
+
type: object
|
|
17514
|
+
required: [nodes, edges, truncated, total_nodes]
|
|
17515
|
+
properties:
|
|
17516
|
+
nodes:
|
|
17517
|
+
type: array
|
|
17518
|
+
items:
|
|
17519
|
+
type: object
|
|
17520
|
+
required: [id, kind, label]
|
|
17521
|
+
properties:
|
|
17522
|
+
id:
|
|
17523
|
+
type: string
|
|
17524
|
+
description: Namespaced by kind, e.g. `agent:<uuid>`.
|
|
17525
|
+
kind:
|
|
17526
|
+
type: string
|
|
17527
|
+
enum: [agent, vault, policy, connector, chain]
|
|
17528
|
+
label:
|
|
17529
|
+
type: string
|
|
17530
|
+
status:
|
|
17531
|
+
type: string
|
|
17532
|
+
description: Agents only. Derived, not stored.
|
|
17533
|
+
enum: [compromised, warn, suspended, ok]
|
|
17534
|
+
trust:
|
|
17535
|
+
type: integer
|
|
17536
|
+
minimum: 0
|
|
17537
|
+
maximum: 100
|
|
17538
|
+
description: Agents only. Absent until the trust engine has scored the agent.
|
|
17539
|
+
edges:
|
|
17540
|
+
type: array
|
|
17541
|
+
items:
|
|
17542
|
+
type: object
|
|
17543
|
+
required: [from, to, kind]
|
|
17544
|
+
properties:
|
|
17545
|
+
from:
|
|
17546
|
+
type: string
|
|
17547
|
+
to:
|
|
17548
|
+
type: string
|
|
17549
|
+
kind:
|
|
17550
|
+
type: string
|
|
17551
|
+
enum: [calls, grants, holds, signs]
|
|
17552
|
+
truncated:
|
|
17553
|
+
type: boolean
|
|
17554
|
+
total_nodes:
|
|
17555
|
+
type: integer
|
|
17556
|
+
description: Node count before the cap.
|
|
17557
|
+
fixture:
|
|
17558
|
+
type: boolean
|
|
17559
|
+
description: Present and true only for synthetic data.
|
|
17560
|
+
OtelThreatList:
|
|
17561
|
+
type: array
|
|
17562
|
+
items:
|
|
17563
|
+
type: object
|
|
17564
|
+
required: [id, agent_id, class, severity, detected_by, status, shadow, blast_radius, blast_radius_size]
|
|
17565
|
+
properties:
|
|
17566
|
+
id: { type: string, format: uuid }
|
|
17567
|
+
agent_id: { type: string, format: uuid }
|
|
17568
|
+
class:
|
|
17569
|
+
type: string
|
|
17570
|
+
enum: [prompt_injection, policy_breach, spend_anomaly, key_exfil, off_hours, consensus_bypass, trust_breach]
|
|
17571
|
+
severity: { type: string, enum: [critical, warn] }
|
|
17572
|
+
detected_by: { type: string }
|
|
17573
|
+
status: { type: string, enum: [open, acknowledged, resolved] }
|
|
17574
|
+
shadow: { type: boolean }
|
|
17575
|
+
evidence: { type: array, items: { type: object } }
|
|
17576
|
+
blast_radius:
|
|
17577
|
+
type: object
|
|
17578
|
+
properties:
|
|
17579
|
+
vaults: { type: integer }
|
|
17580
|
+
connectors: { type: integer }
|
|
17581
|
+
chains: { type: integer }
|
|
17582
|
+
blast_radius_size:
|
|
17583
|
+
type: integer
|
|
17584
|
+
description: Sum of the blast radius. The sort key.
|
|
17585
|
+
resolved_by: { type: string, nullable: true }
|
|
17586
|
+
created_at: { type: string, format: date-time }
|
|
17587
|
+
updated_at: { type: string, format: date-time }
|
|
17588
|
+
OtelSummary:
|
|
17589
|
+
type: object
|
|
17590
|
+
required: [posture_score, open_threats, open_critical, pending_approvals, agent_count, top_threats]
|
|
17591
|
+
properties:
|
|
17592
|
+
posture_score: { type: integer, minimum: 0, maximum: 100 }
|
|
17593
|
+
open_threats: { type: integer }
|
|
17594
|
+
open_critical: { type: integer }
|
|
17595
|
+
pending_approvals: { type: integer }
|
|
17596
|
+
agent_count: { type: integer }
|
|
17597
|
+
top_threats:
|
|
17598
|
+
type: array
|
|
17599
|
+
description: At most five, same ranking as /v1/otel/threats.
|
|
17600
|
+
items: { type: object }
|
|
17450
17601
|
UpdatePayGuardrailsRequest:
|
|
17451
17602
|
type: object
|
|
17452
17603
|
properties:
|