@1claw/openapi-spec 0.61.7 → 0.61.8
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 +104 -1
- package/openapi.yaml +56 -1
- 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.8",
|
|
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"
|
|
@@ -25551,6 +25551,109 @@
|
|
|
25551
25551
|
}
|
|
25552
25552
|
}
|
|
25553
25553
|
},
|
|
25554
|
+
"/v1/otel/flows": {
|
|
25555
|
+
"get": {
|
|
25556
|
+
"tags": [
|
|
25557
|
+
"Observability"
|
|
25558
|
+
],
|
|
25559
|
+
"summary": "Who actually read from which vault",
|
|
25560
|
+
"description": "Reachability (the topology's policy edges) says who *could* read a vault. This says who *did*, counted from `audit_events.action = 'secret.read'` — the durable record every read already writes — grouped by agent and vault. That is what lets a Sankey ribbon's width be a count of real reads rather than a guess.\n\nAgent actors only; a human reading a secret through the dashboard is not an agent flow. Deleted agents and vaults are kept and labelled as such — a read that happened is still a read.",
|
|
25561
|
+
"operationId": "get_otel_flows",
|
|
25562
|
+
"parameters": [
|
|
25563
|
+
{
|
|
25564
|
+
"name": "window",
|
|
25565
|
+
"in": "query",
|
|
25566
|
+
"required": false,
|
|
25567
|
+
"description": "Lookback, e.g. `1h`, `24h`, `7d`. Default 24h, maximum 30d.",
|
|
25568
|
+
"schema": {
|
|
25569
|
+
"type": "string",
|
|
25570
|
+
"default": "24h"
|
|
25571
|
+
}
|
|
25572
|
+
}
|
|
25573
|
+
],
|
|
25574
|
+
"responses": {
|
|
25575
|
+
"200": {
|
|
25576
|
+
"description": "Read flows, highest first",
|
|
25577
|
+
"content": {
|
|
25578
|
+
"application/json": {
|
|
25579
|
+
"schema": {
|
|
25580
|
+
"type": "object",
|
|
25581
|
+
"required": [
|
|
25582
|
+
"window",
|
|
25583
|
+
"edges",
|
|
25584
|
+
"total_reads"
|
|
25585
|
+
],
|
|
25586
|
+
"properties": {
|
|
25587
|
+
"window": {
|
|
25588
|
+
"type": "object",
|
|
25589
|
+
"properties": {
|
|
25590
|
+
"window_secs": {
|
|
25591
|
+
"type": "integer"
|
|
25592
|
+
},
|
|
25593
|
+
"step_secs": {
|
|
25594
|
+
"type": "integer"
|
|
25595
|
+
}
|
|
25596
|
+
}
|
|
25597
|
+
},
|
|
25598
|
+
"edges": {
|
|
25599
|
+
"type": "array",
|
|
25600
|
+
"maxItems": 500,
|
|
25601
|
+
"items": {
|
|
25602
|
+
"type": "object",
|
|
25603
|
+
"required": [
|
|
25604
|
+
"agent_id",
|
|
25605
|
+
"agent_name",
|
|
25606
|
+
"vault_id",
|
|
25607
|
+
"vault_name",
|
|
25608
|
+
"reads",
|
|
25609
|
+
"distinct_paths"
|
|
25610
|
+
],
|
|
25611
|
+
"properties": {
|
|
25612
|
+
"agent_id": {
|
|
25613
|
+
"type": "string",
|
|
25614
|
+
"format": "uuid"
|
|
25615
|
+
},
|
|
25616
|
+
"agent_name": {
|
|
25617
|
+
"type": "string"
|
|
25618
|
+
},
|
|
25619
|
+
"vault_id": {
|
|
25620
|
+
"type": "string",
|
|
25621
|
+
"format": "uuid"
|
|
25622
|
+
},
|
|
25623
|
+
"vault_name": {
|
|
25624
|
+
"type": "string"
|
|
25625
|
+
},
|
|
25626
|
+
"reads": {
|
|
25627
|
+
"type": "integer",
|
|
25628
|
+
"description": "secret.read events in the window."
|
|
25629
|
+
},
|
|
25630
|
+
"distinct_paths": {
|
|
25631
|
+
"type": "integer",
|
|
25632
|
+
"description": "Distinct secret paths touched."
|
|
25633
|
+
}
|
|
25634
|
+
}
|
|
25635
|
+
}
|
|
25636
|
+
},
|
|
25637
|
+
"total_reads": {
|
|
25638
|
+
"type": "integer"
|
|
25639
|
+
}
|
|
25640
|
+
}
|
|
25641
|
+
}
|
|
25642
|
+
}
|
|
25643
|
+
}
|
|
25644
|
+
},
|
|
25645
|
+
"400": {
|
|
25646
|
+
"description": "Unparseable window or window over 30d"
|
|
25647
|
+
},
|
|
25648
|
+
"401": {
|
|
25649
|
+
"description": "Unauthenticated"
|
|
25650
|
+
},
|
|
25651
|
+
"403": {
|
|
25652
|
+
"description": "Not a human user"
|
|
25653
|
+
}
|
|
25654
|
+
}
|
|
25655
|
+
}
|
|
25656
|
+
},
|
|
25554
25657
|
"/v1/otel/summary": {
|
|
25555
25658
|
"get": {
|
|
25556
25659
|
"tags": [
|
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.8"
|
|
6
6
|
description: |
|
|
7
7
|
Secure secret management for AI agents. Provides vaults, secrets,
|
|
8
8
|
policy-based access control, agent identity, Intents API,
|
|
@@ -16402,6 +16402,61 @@ paths:
|
|
|
16402
16402
|
description: Unauthenticated
|
|
16403
16403
|
'403':
|
|
16404
16404
|
description: Not a human user
|
|
16405
|
+
/v1/otel/flows:
|
|
16406
|
+
get:
|
|
16407
|
+
tags: [Observability]
|
|
16408
|
+
summary: "Who actually read from which vault"
|
|
16409
|
+
description: >-
|
|
16410
|
+
Reachability (the topology's policy edges) says who *could*
|
|
16411
|
+
read a vault. This says who *did*, counted from
|
|
16412
|
+
`audit_events.action = 'secret.read'` — the durable record every
|
|
16413
|
+
read already writes — grouped by agent and vault. That is what
|
|
16414
|
+
lets a Sankey ribbon's width be a count of real reads rather
|
|
16415
|
+
than a guess.
|
|
16416
|
+
|
|
16417
|
+
|
|
16418
|
+
Agent actors only; a human reading a secret through the
|
|
16419
|
+
dashboard is not an agent flow. Deleted agents and vaults are
|
|
16420
|
+
kept and labelled as such — a read that happened is still a
|
|
16421
|
+
read.
|
|
16422
|
+
operationId: get_otel_flows
|
|
16423
|
+
parameters:
|
|
16424
|
+
- name: window
|
|
16425
|
+
in: query
|
|
16426
|
+
required: false
|
|
16427
|
+
description: "Lookback, e.g. `1h`, `24h`, `7d`. Default 24h, maximum 30d."
|
|
16428
|
+
schema: { type: string, default: "24h" }
|
|
16429
|
+
responses:
|
|
16430
|
+
'200':
|
|
16431
|
+
description: Read flows, highest first
|
|
16432
|
+
content:
|
|
16433
|
+
application/json:
|
|
16434
|
+
schema:
|
|
16435
|
+
type: object
|
|
16436
|
+
required: [window, edges, total_reads]
|
|
16437
|
+
properties:
|
|
16438
|
+
window:
|
|
16439
|
+
type: object
|
|
16440
|
+
properties:
|
|
16441
|
+
window_secs: { type: integer }
|
|
16442
|
+
step_secs: { type: integer }
|
|
16443
|
+
edges:
|
|
16444
|
+
type: array
|
|
16445
|
+
maxItems: 500
|
|
16446
|
+
items:
|
|
16447
|
+
type: object
|
|
16448
|
+
required: [agent_id, agent_name, vault_id, vault_name, reads, distinct_paths]
|
|
16449
|
+
properties:
|
|
16450
|
+
agent_id: { type: string, format: uuid }
|
|
16451
|
+
agent_name: { type: string }
|
|
16452
|
+
vault_id: { type: string, format: uuid }
|
|
16453
|
+
vault_name: { type: string }
|
|
16454
|
+
reads: { type: integer, description: "secret.read events in the window." }
|
|
16455
|
+
distinct_paths: { type: integer, description: "Distinct secret paths touched." }
|
|
16456
|
+
total_reads: { type: integer }
|
|
16457
|
+
'400': { description: Unparseable window or window over 30d }
|
|
16458
|
+
'401': { description: Unauthenticated }
|
|
16459
|
+
'403': { description: Not a human user }
|
|
16405
16460
|
/v1/otel/summary:
|
|
16406
16461
|
get:
|
|
16407
16462
|
tags: [Observability]
|