@1claw/openapi-spec 0.61.4 → 0.61.6
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 +125 -7
- package/openapi.yaml +79 -7
- 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.6",
|
|
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"
|
|
@@ -25057,7 +25057,7 @@
|
|
|
25057
25057
|
}
|
|
25058
25058
|
}
|
|
25059
25059
|
},
|
|
25060
|
-
"/otel/
|
|
25060
|
+
"/v1/otel/stream": {
|
|
25061
25061
|
"get": {
|
|
25062
25062
|
"tags": [
|
|
25063
25063
|
"Observability"
|
|
@@ -25112,7 +25112,7 @@
|
|
|
25112
25112
|
}
|
|
25113
25113
|
}
|
|
25114
25114
|
},
|
|
25115
|
-
"/otel/
|
|
25115
|
+
"/v1/otel/threats": {
|
|
25116
25116
|
"get": {
|
|
25117
25117
|
"tags": [
|
|
25118
25118
|
"Observability"
|
|
@@ -25248,13 +25248,131 @@
|
|
|
25248
25248
|
}
|
|
25249
25249
|
}
|
|
25250
25250
|
},
|
|
25251
|
-
"/otel/
|
|
25251
|
+
"/v1/otel/metrics": {
|
|
25252
|
+
"get": {
|
|
25253
|
+
"tags": [
|
|
25254
|
+
"Observability"
|
|
25255
|
+
],
|
|
25256
|
+
"summary": "Time-bucketed rollups from durable tables",
|
|
25257
|
+
"description": "Volume, denials and latency over a window. Sourced from durable tables, never from in-process counters: an in-memory histogram is per-replica and resets on deploy, so a 24h chart drawn from one disagrees between instances and is wrong after every release.\n\nEvery bucket in the range is returned, including empty ones. A quiet hour is a zero, not a missing point — a line chart given a hole joins across it as though nothing happened.\n\n`step` may be widened from what was requested when the window would otherwise produce more than 500 buckets. The response echoes the window and step actually used, so a chart can label its own resolution rather than the one it asked for.",
|
|
25258
|
+
"operationId": "get_otel_metrics",
|
|
25259
|
+
"parameters": [
|
|
25260
|
+
{
|
|
25261
|
+
"name": "window",
|
|
25262
|
+
"in": "query",
|
|
25263
|
+
"required": false,
|
|
25264
|
+
"description": "Lookback, e.g. `30m`, `24h`, `7d`. Default 24h, maximum 30d.",
|
|
25265
|
+
"schema": {
|
|
25266
|
+
"type": "string",
|
|
25267
|
+
"default": "24h"
|
|
25268
|
+
}
|
|
25269
|
+
},
|
|
25270
|
+
{
|
|
25271
|
+
"name": "step",
|
|
25272
|
+
"in": "query",
|
|
25273
|
+
"required": false,
|
|
25274
|
+
"description": "Bucket width. Defaults to a twenty-fourth of the window, minimum 60s.",
|
|
25275
|
+
"schema": {
|
|
25276
|
+
"type": "string"
|
|
25277
|
+
}
|
|
25278
|
+
}
|
|
25279
|
+
],
|
|
25280
|
+
"responses": {
|
|
25281
|
+
"200": {
|
|
25282
|
+
"description": "Bucketed metrics",
|
|
25283
|
+
"content": {
|
|
25284
|
+
"application/json": {
|
|
25285
|
+
"schema": {
|
|
25286
|
+
"type": "object",
|
|
25287
|
+
"required": [
|
|
25288
|
+
"window",
|
|
25289
|
+
"buckets",
|
|
25290
|
+
"total_executions",
|
|
25291
|
+
"total_denials"
|
|
25292
|
+
],
|
|
25293
|
+
"properties": {
|
|
25294
|
+
"window": {
|
|
25295
|
+
"type": "object",
|
|
25296
|
+
"description": "The window and step actually used.",
|
|
25297
|
+
"properties": {
|
|
25298
|
+
"window_secs": {
|
|
25299
|
+
"type": "integer"
|
|
25300
|
+
},
|
|
25301
|
+
"step_secs": {
|
|
25302
|
+
"type": "integer"
|
|
25303
|
+
}
|
|
25304
|
+
}
|
|
25305
|
+
},
|
|
25306
|
+
"buckets": {
|
|
25307
|
+
"type": "array",
|
|
25308
|
+
"items": {
|
|
25309
|
+
"type": "object",
|
|
25310
|
+
"required": [
|
|
25311
|
+
"t",
|
|
25312
|
+
"executions",
|
|
25313
|
+
"denials",
|
|
25314
|
+
"transactions",
|
|
25315
|
+
"llm_calls"
|
|
25316
|
+
],
|
|
25317
|
+
"properties": {
|
|
25318
|
+
"t": {
|
|
25319
|
+
"type": "string",
|
|
25320
|
+
"format": "date-time"
|
|
25321
|
+
},
|
|
25322
|
+
"executions": {
|
|
25323
|
+
"type": "integer"
|
|
25324
|
+
},
|
|
25325
|
+
"denials": {
|
|
25326
|
+
"type": "integer"
|
|
25327
|
+
},
|
|
25328
|
+
"transactions": {
|
|
25329
|
+
"type": "integer"
|
|
25330
|
+
},
|
|
25331
|
+
"llm_calls": {
|
|
25332
|
+
"type": "integer"
|
|
25333
|
+
}
|
|
25334
|
+
}
|
|
25335
|
+
}
|
|
25336
|
+
},
|
|
25337
|
+
"latency_p50_ms": {
|
|
25338
|
+
"type": "number",
|
|
25339
|
+
"nullable": true,
|
|
25340
|
+
"description": "Null when nothing in the window recorded a duration."
|
|
25341
|
+
},
|
|
25342
|
+
"latency_p95_ms": {
|
|
25343
|
+
"type": "number",
|
|
25344
|
+
"nullable": true
|
|
25345
|
+
},
|
|
25346
|
+
"total_executions": {
|
|
25347
|
+
"type": "integer"
|
|
25348
|
+
},
|
|
25349
|
+
"total_denials": {
|
|
25350
|
+
"type": "integer"
|
|
25351
|
+
}
|
|
25352
|
+
}
|
|
25353
|
+
}
|
|
25354
|
+
}
|
|
25355
|
+
}
|
|
25356
|
+
},
|
|
25357
|
+
"400": {
|
|
25358
|
+
"description": "Unparseable window or step, window over 30d, or step larger than window"
|
|
25359
|
+
},
|
|
25360
|
+
"401": {
|
|
25361
|
+
"description": "Unauthenticated"
|
|
25362
|
+
},
|
|
25363
|
+
"403": {
|
|
25364
|
+
"description": "Not a human user"
|
|
25365
|
+
}
|
|
25366
|
+
}
|
|
25367
|
+
}
|
|
25368
|
+
},
|
|
25369
|
+
"/v1/otel/summary": {
|
|
25252
25370
|
"get": {
|
|
25253
25371
|
"tags": [
|
|
25254
25372
|
"Observability"
|
|
25255
25373
|
],
|
|
25256
25374
|
"summary": "Posture score and the counts behind it",
|
|
25257
|
-
"description": "`posture_score` is the mean agent trust score, less a penalty per open critical threat scaled by the fraction of the organization that threat can reach. Scaling by fraction rather than count is what makes the number comparable between a seven-agent org and a fifty-agent one.\n\nIt returns 100 when there are no agents, and also while the trust engine is still in shadow mode and no scores exist yet — absence of data is not evidence of compromise. It never goes below 0.\n\n`top_threats` uses the same ranking as `/otel/
|
|
25375
|
+
"description": "`posture_score` is the mean agent trust score, less a penalty per open critical threat scaled by the fraction of the organization that threat can reach. Scaling by fraction rather than count is what makes the number comparable between a seven-agent org and a fifty-agent one.\n\nIt returns 100 when there are no agents, and also while the trust engine is still in shadow mode and no scores exist yet — absence of data is not evidence of compromise. It never goes below 0.\n\n`top_threats` uses the same ranking as `/v1/otel/threats`, so clicking through from the summary lands on the same first row.",
|
|
25258
25376
|
"operationId": "get_otel_summary",
|
|
25259
25377
|
"responses": {
|
|
25260
25378
|
"200": {
|
|
@@ -25291,7 +25409,7 @@
|
|
|
25291
25409
|
},
|
|
25292
25410
|
"top_threats": {
|
|
25293
25411
|
"type": "array",
|
|
25294
|
-
"description": "At most five, same ranking as /otel/
|
|
25412
|
+
"description": "At most five, same ranking as /v1/otel/threats.",
|
|
25295
25413
|
"items": {
|
|
25296
25414
|
"type": "object"
|
|
25297
25415
|
}
|
|
@@ -25310,7 +25428,7 @@
|
|
|
25310
25428
|
}
|
|
25311
25429
|
}
|
|
25312
25430
|
},
|
|
25313
|
-
"/otel/
|
|
25431
|
+
"/v1/otel/topology": {
|
|
25314
25432
|
"get": {
|
|
25315
25433
|
"tags": [
|
|
25316
25434
|
"Observability"
|
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.6"
|
|
6
6
|
description: |
|
|
7
7
|
Secure secret management for AI agents. Provides vaults, secrets,
|
|
8
8
|
policy-based access control, agent identity, Intents API,
|
|
@@ -16118,7 +16118,7 @@ paths:
|
|
|
16118
16118
|
description: Forbidden, or the plan does not include this
|
|
16119
16119
|
'404':
|
|
16120
16120
|
description: Not found
|
|
16121
|
-
/otel/
|
|
16121
|
+
/v1/otel/stream:
|
|
16122
16122
|
get:
|
|
16123
16123
|
tags: [Observability]
|
|
16124
16124
|
summary: "SSE stream of this org's telemetry signals"
|
|
@@ -16166,7 +16166,7 @@ paths:
|
|
|
16166
16166
|
description: Not a human user, or fixtures are not available here
|
|
16167
16167
|
'429':
|
|
16168
16168
|
description: Too many concurrent streams for this user
|
|
16169
|
-
/otel/
|
|
16169
|
+
/v1/otel/threats:
|
|
16170
16170
|
get:
|
|
16171
16171
|
tags: [Observability]
|
|
16172
16172
|
summary: "Durable threat register for the org, worst reach first"
|
|
@@ -16230,7 +16230,79 @@ paths:
|
|
|
16230
16230
|
description: Unauthenticated
|
|
16231
16231
|
'403':
|
|
16232
16232
|
description: Not a human user
|
|
16233
|
-
/otel/
|
|
16233
|
+
/v1/otel/metrics:
|
|
16234
|
+
get:
|
|
16235
|
+
tags: [Observability]
|
|
16236
|
+
summary: "Time-bucketed rollups from durable tables"
|
|
16237
|
+
description: >-
|
|
16238
|
+
Volume, denials and latency over a window. Sourced from durable
|
|
16239
|
+
tables, never from in-process counters: an in-memory histogram
|
|
16240
|
+
is per-replica and resets on deploy, so a 24h chart drawn from
|
|
16241
|
+
one disagrees between instances and is wrong after every
|
|
16242
|
+
release.
|
|
16243
|
+
|
|
16244
|
+
|
|
16245
|
+
Every bucket in the range is returned, including empty ones. A
|
|
16246
|
+
quiet hour is a zero, not a missing point — a line chart given a
|
|
16247
|
+
hole joins across it as though nothing happened.
|
|
16248
|
+
|
|
16249
|
+
|
|
16250
|
+
`step` may be widened from what was requested when the window
|
|
16251
|
+
would otherwise produce more than 500 buckets. The response
|
|
16252
|
+
echoes the window and step actually used, so a chart can label
|
|
16253
|
+
its own resolution rather than the one it asked for.
|
|
16254
|
+
operationId: get_otel_metrics
|
|
16255
|
+
parameters:
|
|
16256
|
+
- name: window
|
|
16257
|
+
in: query
|
|
16258
|
+
required: false
|
|
16259
|
+
description: "Lookback, e.g. `30m`, `24h`, `7d`. Default 24h, maximum 30d."
|
|
16260
|
+
schema: { type: string, default: "24h" }
|
|
16261
|
+
- name: step
|
|
16262
|
+
in: query
|
|
16263
|
+
required: false
|
|
16264
|
+
description: "Bucket width. Defaults to a twenty-fourth of the window, minimum 60s."
|
|
16265
|
+
schema: { type: string }
|
|
16266
|
+
responses:
|
|
16267
|
+
'200':
|
|
16268
|
+
description: Bucketed metrics
|
|
16269
|
+
content:
|
|
16270
|
+
application/json:
|
|
16271
|
+
schema:
|
|
16272
|
+
type: object
|
|
16273
|
+
required: [window, buckets, total_executions, total_denials]
|
|
16274
|
+
properties:
|
|
16275
|
+
window:
|
|
16276
|
+
type: object
|
|
16277
|
+
description: The window and step actually used.
|
|
16278
|
+
properties:
|
|
16279
|
+
window_secs: { type: integer }
|
|
16280
|
+
step_secs: { type: integer }
|
|
16281
|
+
buckets:
|
|
16282
|
+
type: array
|
|
16283
|
+
items:
|
|
16284
|
+
type: object
|
|
16285
|
+
required: [t, executions, denials, transactions, llm_calls]
|
|
16286
|
+
properties:
|
|
16287
|
+
t: { type: string, format: date-time }
|
|
16288
|
+
executions: { type: integer }
|
|
16289
|
+
denials: { type: integer }
|
|
16290
|
+
transactions: { type: integer }
|
|
16291
|
+
llm_calls: { type: integer }
|
|
16292
|
+
latency_p50_ms:
|
|
16293
|
+
type: number
|
|
16294
|
+
nullable: true
|
|
16295
|
+
description: Null when nothing in the window recorded a duration.
|
|
16296
|
+
latency_p95_ms: { type: number, nullable: true }
|
|
16297
|
+
total_executions: { type: integer }
|
|
16298
|
+
total_denials: { type: integer }
|
|
16299
|
+
'400':
|
|
16300
|
+
description: Unparseable window or step, window over 30d, or step larger than window
|
|
16301
|
+
'401':
|
|
16302
|
+
description: Unauthenticated
|
|
16303
|
+
'403':
|
|
16304
|
+
description: Not a human user
|
|
16305
|
+
/v1/otel/summary:
|
|
16234
16306
|
get:
|
|
16235
16307
|
tags: [Observability]
|
|
16236
16308
|
summary: "Posture score and the counts behind it"
|
|
@@ -16248,7 +16320,7 @@ paths:
|
|
|
16248
16320
|
below 0.
|
|
16249
16321
|
|
|
16250
16322
|
|
|
16251
|
-
`top_threats` uses the same ranking as `/otel/
|
|
16323
|
+
`top_threats` uses the same ranking as `/v1/otel/threats`, so
|
|
16252
16324
|
clicking through from the summary lands on the same first row.
|
|
16253
16325
|
operationId: get_otel_summary
|
|
16254
16326
|
responses:
|
|
@@ -16267,13 +16339,13 @@ paths:
|
|
|
16267
16339
|
agent_count: { type: integer }
|
|
16268
16340
|
top_threats:
|
|
16269
16341
|
type: array
|
|
16270
|
-
description: At most five, same ranking as /otel/
|
|
16342
|
+
description: At most five, same ranking as /v1/otel/threats.
|
|
16271
16343
|
items: { type: object }
|
|
16272
16344
|
'401':
|
|
16273
16345
|
description: Unauthenticated
|
|
16274
16346
|
'403':
|
|
16275
16347
|
description: Not a human user
|
|
16276
|
-
/otel/
|
|
16348
|
+
/v1/otel/topology:
|
|
16277
16349
|
get:
|
|
16278
16350
|
tags: [Observability]
|
|
16279
16351
|
summary: "Agent, vault, policy, connector and chain graph for the org"
|