@1claw/openapi-spec 0.59.7 → 0.59.9
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 +3098 -104
- package/openapi.yaml +2074 -130
- package/package.json +2 -2
package/openapi.json
CHANGED
|
@@ -2,28 +2,36 @@
|
|
|
2
2
|
"openapi": "3.1.0",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "1Claw API",
|
|
5
|
-
"version": "0.59.
|
|
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\nAll endpoints require JWT Bearer authentication unless marked with\n`security: []`.\n",
|
|
5
|
+
"version": "0.59.9",
|
|
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
|
-
"email": "ops@1claw.
|
|
8
|
+
"email": "ops@1claw.co"
|
|
9
9
|
}
|
|
10
10
|
},
|
|
11
11
|
"servers": [
|
|
12
12
|
{
|
|
13
|
-
"url": "
|
|
14
|
-
"description": "
|
|
13
|
+
"url": "https://api.1claw.co",
|
|
14
|
+
"description": "Production (canonical)"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"url": "https://shroud.1claw.co",
|
|
18
|
+
"description": "Shroud TEE Proxy (Intents API + LLM proxy)"
|
|
15
19
|
},
|
|
16
20
|
{
|
|
17
21
|
"url": "https://api.1claw.xyz",
|
|
18
|
-
"description": "Production"
|
|
22
|
+
"description": "Production (legacy domain; still answers, tokens minted before the move carry this issuer)"
|
|
19
23
|
},
|
|
20
24
|
{
|
|
21
25
|
"url": "https://shroud.1claw.xyz",
|
|
22
|
-
"description": "Shroud TEE Proxy (
|
|
26
|
+
"description": "Shroud TEE Proxy (legacy domain)"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"url": "http://localhost:8443",
|
|
30
|
+
"description": "Development"
|
|
23
31
|
}
|
|
24
32
|
],
|
|
25
33
|
"x-agentcash-guidance": {
|
|
26
|
-
"llmsTxtUrl": "https://1claw.
|
|
34
|
+
"llmsTxtUrl": "https://1claw.co/llms.txt"
|
|
27
35
|
},
|
|
28
36
|
"security": [
|
|
29
37
|
{
|
|
@@ -12532,6 +12540,7 @@
|
|
|
12532
12540
|
{
|
|
12533
12541
|
"in": "query",
|
|
12534
12542
|
"name": "agent_id",
|
|
12543
|
+
"description": "Optional only while the connection has exactly one agent.\nWith more than one it becomes required and the call answers\n400 without it — the Fleet template provisions three.\n",
|
|
12535
12544
|
"required": false,
|
|
12536
12545
|
"schema": {
|
|
12537
12546
|
"type": "string",
|
|
@@ -12794,8 +12803,9 @@
|
|
|
12794
12803
|
"tags": [
|
|
12795
12804
|
"Platform"
|
|
12796
12805
|
],
|
|
12797
|
-
"summary": "Begin passkey enrollment for a connected user",
|
|
12798
|
-
"
|
|
12806
|
+
"summary": "Begin passkey enrollment for a connected user (always 403)",
|
|
12807
|
+
"deprecated": true,
|
|
12808
|
+
"description": "**This endpoint always returns 403 and cannot be made to work.**\nThe description here previously said platform apps should use it\ninstead of `POST /v1/auth/passkeys/register/begin`, which was\nwrong and cost integrators a WebAuthn ceremony to discover.\n\nA passkey enrolled this way is login-capable: it can be asserted\nthrough the public sign-in flow to mint a full, non-delegated\nuser session, so an app that enrolled one would hold a credential\nstronger than the delegation boundary it operates under. The\ncapability was removed for that reason and will not return.\n\n**A passkey is enrolled by the user, in their own session**, via\n`POST /v1/auth/passkeys/register/begin`. For a connected user\nthat means completing the claim flow on the connection first.\n\nTo *use* a passkey a connected user already has, see:\n - `GET /v1/platform/connections/{connectionId}/passkeys` —\n whether the confirm step can be offered at all.\n - `POST /v1/platform/connections/{connectionId}/passkeys/tx-assert/begin`\n and `.../complete` — ask that user to touch their\n authenticator over a specific digest.\n",
|
|
12799
12809
|
"operationId": "connectionPasskeyEnrollBegin",
|
|
12800
12810
|
"security": [
|
|
12801
12811
|
{
|
|
@@ -12813,30 +12823,147 @@
|
|
|
12813
12823
|
}
|
|
12814
12824
|
}
|
|
12815
12825
|
],
|
|
12826
|
+
"responses": {
|
|
12827
|
+
"403": {
|
|
12828
|
+
"description": "Always. Platform apps cannot enroll login passkeys for\nconnected users.\n",
|
|
12829
|
+
"content": {
|
|
12830
|
+
"application/json": {
|
|
12831
|
+
"schema": {
|
|
12832
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
12833
|
+
}
|
|
12834
|
+
}
|
|
12835
|
+
}
|
|
12836
|
+
}
|
|
12837
|
+
}
|
|
12838
|
+
}
|
|
12839
|
+
},
|
|
12840
|
+
"/v1/platform/connections/{connectionId}/passkeys/enroll/complete": {
|
|
12841
|
+
"post": {
|
|
12842
|
+
"tags": [
|
|
12843
|
+
"Platform"
|
|
12844
|
+
],
|
|
12845
|
+
"summary": "Complete passkey enrollment for a connected user (always 403)",
|
|
12846
|
+
"deprecated": true,
|
|
12847
|
+
"description": "**This endpoint always returns 403.** See\n`POST /v1/platform/connections/{connectionId}/passkeys/enroll/begin`\nfor why, and for the paths that do work.\n",
|
|
12848
|
+
"operationId": "connectionPasskeyEnrollComplete",
|
|
12849
|
+
"security": [
|
|
12850
|
+
{
|
|
12851
|
+
"BearerAuth": []
|
|
12852
|
+
}
|
|
12853
|
+
],
|
|
12854
|
+
"parameters": [
|
|
12855
|
+
{
|
|
12856
|
+
"in": "path",
|
|
12857
|
+
"name": "connectionId",
|
|
12858
|
+
"required": true,
|
|
12859
|
+
"schema": {
|
|
12860
|
+
"type": "string",
|
|
12861
|
+
"format": "uuid"
|
|
12862
|
+
}
|
|
12863
|
+
}
|
|
12864
|
+
],
|
|
12865
|
+
"requestBody": {
|
|
12866
|
+
"required": true,
|
|
12867
|
+
"content": {
|
|
12868
|
+
"application/json": {
|
|
12869
|
+
"schema": {
|
|
12870
|
+
"$ref": "#/components/schemas/PasskeyRegisterCompleteRequest"
|
|
12871
|
+
}
|
|
12872
|
+
}
|
|
12873
|
+
}
|
|
12874
|
+
},
|
|
12875
|
+
"responses": {
|
|
12876
|
+
"403": {
|
|
12877
|
+
"description": "Always. Platform apps cannot enroll login passkeys for\nconnected users.\n",
|
|
12878
|
+
"content": {
|
|
12879
|
+
"application/json": {
|
|
12880
|
+
"schema": {
|
|
12881
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
12882
|
+
}
|
|
12883
|
+
}
|
|
12884
|
+
}
|
|
12885
|
+
}
|
|
12886
|
+
}
|
|
12887
|
+
}
|
|
12888
|
+
},
|
|
12889
|
+
"/v1/platform/connections/{connectionId}/passkeys": {
|
|
12890
|
+
"get": {
|
|
12891
|
+
"tags": [
|
|
12892
|
+
"Platform"
|
|
12893
|
+
],
|
|
12894
|
+
"summary": "Whether a connected user can be asked for a passkey touch",
|
|
12895
|
+
"description": "Answers one question: can this app offer the passkey confirm\nstep to this user? No credential material is returned — not\ncredential ids, not public keys, not enrolment times.\n\n`count` is what matters. Passkeys are bound to the domain they\nwere registered on, so an account can hold credentials that this\ndomain cannot offer; `count` reports only those usable on\n`rp_id`, while `registered_count` is the raw total. Branch on\n`has_passkey`.\n",
|
|
12896
|
+
"operationId": "listConnectionPasskeys",
|
|
12897
|
+
"security": [
|
|
12898
|
+
{
|
|
12899
|
+
"BearerAuth": []
|
|
12900
|
+
}
|
|
12901
|
+
],
|
|
12902
|
+
"parameters": [
|
|
12903
|
+
{
|
|
12904
|
+
"in": "path",
|
|
12905
|
+
"name": "connectionId",
|
|
12906
|
+
"required": true,
|
|
12907
|
+
"schema": {
|
|
12908
|
+
"type": "string",
|
|
12909
|
+
"format": "uuid"
|
|
12910
|
+
}
|
|
12911
|
+
}
|
|
12912
|
+
],
|
|
12816
12913
|
"responses": {
|
|
12817
12914
|
"200": {
|
|
12818
|
-
"description": "
|
|
12915
|
+
"description": "Passkey availability for this connection",
|
|
12819
12916
|
"content": {
|
|
12820
12917
|
"application/json": {
|
|
12821
12918
|
"schema": {
|
|
12822
|
-
"
|
|
12919
|
+
"type": "object",
|
|
12920
|
+
"required": [
|
|
12921
|
+
"has_passkey",
|
|
12922
|
+
"count",
|
|
12923
|
+
"registered_count",
|
|
12924
|
+
"rp_id"
|
|
12925
|
+
],
|
|
12926
|
+
"properties": {
|
|
12927
|
+
"has_passkey": {
|
|
12928
|
+
"type": "boolean",
|
|
12929
|
+
"description": "True when count > 0."
|
|
12930
|
+
},
|
|
12931
|
+
"count": {
|
|
12932
|
+
"type": "integer",
|
|
12933
|
+
"format": "int64",
|
|
12934
|
+
"description": "Passkeys usable on rp_id."
|
|
12935
|
+
},
|
|
12936
|
+
"registered_count": {
|
|
12937
|
+
"type": "integer",
|
|
12938
|
+
"format": "int64",
|
|
12939
|
+
"description": "All passkeys on the account, including any\nbound to a different domain.\n"
|
|
12940
|
+
},
|
|
12941
|
+
"rp_id": {
|
|
12942
|
+
"type": "string",
|
|
12943
|
+
"description": "The domain these counts are measured against."
|
|
12944
|
+
}
|
|
12945
|
+
}
|
|
12823
12946
|
}
|
|
12824
12947
|
}
|
|
12825
12948
|
}
|
|
12826
12949
|
},
|
|
12950
|
+
"403": {
|
|
12951
|
+
"$ref": "#/components/responses/Forbidden"
|
|
12952
|
+
},
|
|
12827
12953
|
"404": {
|
|
12828
12954
|
"$ref": "#/components/responses/NotFound"
|
|
12829
12955
|
}
|
|
12830
12956
|
}
|
|
12831
12957
|
}
|
|
12832
12958
|
},
|
|
12833
|
-
"/v1/platform/connections/{connectionId}/passkeys/
|
|
12959
|
+
"/v1/platform/connections/{connectionId}/passkeys/tx-assert/begin": {
|
|
12834
12960
|
"post": {
|
|
12835
12961
|
"tags": [
|
|
12836
12962
|
"Platform"
|
|
12837
12963
|
],
|
|
12838
|
-
"summary": "
|
|
12839
|
-
"
|
|
12964
|
+
"summary": "Ask a connected user to touch their authenticator",
|
|
12965
|
+
"description": "Begins a WebAuthn assertion bound to `tx_digest`, for the user on\nthis connection. The connection in the path is the addressing\nthat `POST /v1/auth/passkeys/tx-assert/begin` lacks: that route\nresolves the *calling* principal, so with a `plt_` key it looks\nup the app itself and reports no passkeys. An app never needs to\nhold an email to name one of its users.\n\nReturns 404 when the user has no passkey usable on this domain —\ncheck `GET /v1/platform/connections/{connectionId}/passkeys`\nfirst and only offer the step when `has_passkey` is true.\n",
|
|
12966
|
+
"operationId": "connectionPasskeyTxAssertBegin",
|
|
12840
12967
|
"security": [
|
|
12841
12968
|
{
|
|
12842
12969
|
"BearerAuth": []
|
|
@@ -12858,18 +12985,133 @@
|
|
|
12858
12985
|
"content": {
|
|
12859
12986
|
"application/json": {
|
|
12860
12987
|
"schema": {
|
|
12861
|
-
"
|
|
12988
|
+
"type": "object",
|
|
12989
|
+
"required": [
|
|
12990
|
+
"tx_digest"
|
|
12991
|
+
],
|
|
12992
|
+
"properties": {
|
|
12993
|
+
"tx_digest": {
|
|
12994
|
+
"type": "string",
|
|
12995
|
+
"description": "SHA-256 hex of the exact text being confirmed."
|
|
12996
|
+
},
|
|
12997
|
+
"action": {
|
|
12998
|
+
"type": "string",
|
|
12999
|
+
"enum": [
|
|
13000
|
+
"send",
|
|
13001
|
+
"swap"
|
|
13002
|
+
],
|
|
13003
|
+
"default": "send"
|
|
13004
|
+
}
|
|
13005
|
+
}
|
|
12862
13006
|
}
|
|
12863
13007
|
}
|
|
12864
13008
|
}
|
|
12865
13009
|
},
|
|
12866
13010
|
"responses": {
|
|
12867
|
-
"
|
|
12868
|
-
"description": "
|
|
13011
|
+
"200": {
|
|
13012
|
+
"description": "WebAuthn assertion ceremony options",
|
|
13013
|
+
"content": {
|
|
13014
|
+
"application/json": {
|
|
13015
|
+
"schema": {
|
|
13016
|
+
"$ref": "#/components/schemas/PasskeyAssertBeginResponse"
|
|
13017
|
+
}
|
|
13018
|
+
}
|
|
13019
|
+
}
|
|
13020
|
+
},
|
|
13021
|
+
"400": {
|
|
13022
|
+
"$ref": "#/components/responses/BadRequest"
|
|
13023
|
+
},
|
|
13024
|
+
"403": {
|
|
13025
|
+
"$ref": "#/components/responses/Forbidden"
|
|
13026
|
+
},
|
|
13027
|
+
"404": {
|
|
13028
|
+
"description": "This user has no passkey registered.",
|
|
13029
|
+
"content": {
|
|
13030
|
+
"application/json": {
|
|
13031
|
+
"schema": {
|
|
13032
|
+
"$ref": "#/components/schemas/ProblemDetails"
|
|
13033
|
+
}
|
|
13034
|
+
}
|
|
13035
|
+
}
|
|
13036
|
+
}
|
|
13037
|
+
}
|
|
13038
|
+
}
|
|
13039
|
+
},
|
|
13040
|
+
"/v1/platform/connections/{connectionId}/passkeys/tx-assert/complete": {
|
|
13041
|
+
"post": {
|
|
13042
|
+
"tags": [
|
|
13043
|
+
"Platform"
|
|
13044
|
+
],
|
|
13045
|
+
"summary": "Verify the touch and return proof of it",
|
|
13046
|
+
"description": "Verifies the assertion — origin, rpIdHash, the user-verified\nflag, the signature, and a sign count that must increase, which\nis what catches a cloned authenticator — and returns a\nshort-lived token proving this user touched their authenticator\nover that digest.\n\nThe token records that a platform app requested it. That\nprovenance is deliberate: it proves the touch to your\napplication, and it is **refused** as authorization for a\n1Claw treasury transfer. A user consenting to your action has\nnot consented to moving funds, and those remain a separate\nassertion from the user's own session.\n",
|
|
13047
|
+
"operationId": "connectionPasskeyTxAssertComplete",
|
|
13048
|
+
"security": [
|
|
13049
|
+
{
|
|
13050
|
+
"BearerAuth": []
|
|
13051
|
+
}
|
|
13052
|
+
],
|
|
13053
|
+
"parameters": [
|
|
13054
|
+
{
|
|
13055
|
+
"in": "path",
|
|
13056
|
+
"name": "connectionId",
|
|
13057
|
+
"required": true,
|
|
13058
|
+
"schema": {
|
|
13059
|
+
"type": "string",
|
|
13060
|
+
"format": "uuid"
|
|
13061
|
+
}
|
|
13062
|
+
}
|
|
13063
|
+
],
|
|
13064
|
+
"requestBody": {
|
|
13065
|
+
"required": true,
|
|
13066
|
+
"content": {
|
|
13067
|
+
"application/json": {
|
|
13068
|
+
"schema": {
|
|
13069
|
+
"type": "object",
|
|
13070
|
+
"required": [
|
|
13071
|
+
"credential_id",
|
|
13072
|
+
"authenticator_data",
|
|
13073
|
+
"client_data_json",
|
|
13074
|
+
"signature"
|
|
13075
|
+
],
|
|
13076
|
+
"properties": {
|
|
13077
|
+
"credential_id": {
|
|
13078
|
+
"type": "string"
|
|
13079
|
+
},
|
|
13080
|
+
"authenticator_data": {
|
|
13081
|
+
"type": "string"
|
|
13082
|
+
},
|
|
13083
|
+
"client_data_json": {
|
|
13084
|
+
"type": "string"
|
|
13085
|
+
},
|
|
13086
|
+
"signature": {
|
|
13087
|
+
"type": "string"
|
|
13088
|
+
}
|
|
13089
|
+
}
|
|
13090
|
+
}
|
|
13091
|
+
}
|
|
13092
|
+
}
|
|
13093
|
+
},
|
|
13094
|
+
"responses": {
|
|
13095
|
+
"200": {
|
|
13096
|
+
"description": "Assertion verified",
|
|
12869
13097
|
"content": {
|
|
12870
13098
|
"application/json": {
|
|
12871
13099
|
"schema": {
|
|
12872
|
-
"
|
|
13100
|
+
"type": "object",
|
|
13101
|
+
"required": [
|
|
13102
|
+
"passkey_token",
|
|
13103
|
+
"expires_in"
|
|
13104
|
+
],
|
|
13105
|
+
"properties": {
|
|
13106
|
+
"passkey_token": {
|
|
13107
|
+
"type": "string",
|
|
13108
|
+
"description": "Single-use proof of the touch, bound to the\ndigest and to this user.\n"
|
|
13109
|
+
},
|
|
13110
|
+
"expires_in": {
|
|
13111
|
+
"type": "integer",
|
|
13112
|
+
"description": "Seconds until the token expires."
|
|
13113
|
+
}
|
|
13114
|
+
}
|
|
12873
13115
|
}
|
|
12874
13116
|
}
|
|
12875
13117
|
}
|
|
@@ -12877,6 +13119,9 @@
|
|
|
12877
13119
|
"400": {
|
|
12878
13120
|
"$ref": "#/components/responses/BadRequest"
|
|
12879
13121
|
},
|
|
13122
|
+
"403": {
|
|
13123
|
+
"$ref": "#/components/responses/Forbidden"
|
|
13124
|
+
},
|
|
12880
13125
|
"404": {
|
|
12881
13126
|
"$ref": "#/components/responses/NotFound"
|
|
12882
13127
|
}
|
|
@@ -19527,93 +19772,2592 @@
|
|
|
19527
19772
|
}
|
|
19528
19773
|
}
|
|
19529
19774
|
},
|
|
19530
|
-
"/v1/
|
|
19775
|
+
"/v1/agents/batch-delete": {
|
|
19531
19776
|
"post": {
|
|
19532
19777
|
"tags": [
|
|
19533
|
-
"
|
|
19778
|
+
"Agents"
|
|
19534
19779
|
],
|
|
19535
|
-
"summary": "
|
|
19536
|
-
"
|
|
19537
|
-
"
|
|
19538
|
-
|
|
19539
|
-
|
|
19540
|
-
|
|
19780
|
+
"summary": "batch delete agents",
|
|
19781
|
+
"operationId": "batch_delete_agents",
|
|
19782
|
+
"responses": {
|
|
19783
|
+
"200": {
|
|
19784
|
+
"description": "Success"
|
|
19785
|
+
},
|
|
19786
|
+
"401": {
|
|
19787
|
+
"description": "Unauthenticated"
|
|
19788
|
+
},
|
|
19789
|
+
"403": {
|
|
19790
|
+
"description": "Forbidden, or the plan does not include this"
|
|
19791
|
+
},
|
|
19792
|
+
"404": {
|
|
19793
|
+
"description": "Not found"
|
|
19541
19794
|
}
|
|
19795
|
+
}
|
|
19796
|
+
}
|
|
19797
|
+
},
|
|
19798
|
+
"/v1/agents/enroll/approve": {
|
|
19799
|
+
"post": {
|
|
19800
|
+
"tags": [
|
|
19801
|
+
"Agents"
|
|
19542
19802
|
],
|
|
19803
|
+
"summary": "Authenticated: consume token, create agent, return API key once. **Email-bound pending:** caller must belong to the same org and match `human_email`.",
|
|
19804
|
+
"operationId": "approve_enrollment",
|
|
19543
19805
|
"requestBody": {
|
|
19544
19806
|
"required": true,
|
|
19545
19807
|
"content": {
|
|
19546
19808
|
"application/json": {
|
|
19547
19809
|
"schema": {
|
|
19548
|
-
"
|
|
19810
|
+
"type": "object",
|
|
19811
|
+
"required": [
|
|
19812
|
+
"token"
|
|
19813
|
+
],
|
|
19814
|
+
"properties": {
|
|
19815
|
+
"token": {
|
|
19816
|
+
"type": "string"
|
|
19817
|
+
},
|
|
19818
|
+
"approval_id": {
|
|
19819
|
+
"type": "string",
|
|
19820
|
+
"format": "uuid",
|
|
19821
|
+
"description": "Consensus approval to spend on this creation.\nApproving an enrollment creates an agent, so it is\ngated on `agent.create` exactly as POST /v1/agents\nis. Orgs without a control-plane consensus policy\nnever need this.\n"
|
|
19822
|
+
}
|
|
19823
|
+
}
|
|
19549
19824
|
}
|
|
19550
19825
|
}
|
|
19551
19826
|
}
|
|
19552
19827
|
},
|
|
19553
19828
|
"responses": {
|
|
19554
|
-
"
|
|
19555
|
-
"description": "
|
|
19556
|
-
"content": {
|
|
19557
|
-
"application/json": {
|
|
19558
|
-
"schema": {
|
|
19559
|
-
"$ref": "#/components/schemas/ShamirKekSetupResponse"
|
|
19560
|
-
}
|
|
19561
|
-
}
|
|
19562
|
-
}
|
|
19563
|
-
},
|
|
19564
|
-
"400": {
|
|
19565
|
-
"$ref": "#/components/responses/BadRequest"
|
|
19829
|
+
"200": {
|
|
19830
|
+
"description": "Success"
|
|
19566
19831
|
},
|
|
19567
19832
|
"401": {
|
|
19568
|
-
"
|
|
19833
|
+
"description": "Unauthenticated"
|
|
19834
|
+
},
|
|
19835
|
+
"403": {
|
|
19836
|
+
"description": "Forbidden, the plan does not include this, or the org requires\nM-of-N consensus for `agent.create` and no approval was supplied.\n"
|
|
19837
|
+
},
|
|
19838
|
+
"404": {
|
|
19839
|
+
"description": "Not found"
|
|
19840
|
+
}
|
|
19841
|
+
}
|
|
19842
|
+
}
|
|
19843
|
+
},
|
|
19844
|
+
"/v1/agents/enroll/deny": {
|
|
19845
|
+
"post": {
|
|
19846
|
+
"tags": [
|
|
19847
|
+
"Agents"
|
|
19848
|
+
],
|
|
19849
|
+
"summary": "Authenticated: consume token and delete pending enrollment (deny). **Email-bound:** caller org and email must match the pending row. **Link-only:** ",
|
|
19850
|
+
"operationId": "deny_enrollment",
|
|
19851
|
+
"requestBody": {
|
|
19852
|
+
"required": true,
|
|
19853
|
+
"content": {
|
|
19854
|
+
"application/json": {
|
|
19855
|
+
"schema": {
|
|
19856
|
+
"type": "object",
|
|
19857
|
+
"required": [
|
|
19858
|
+
"token"
|
|
19859
|
+
],
|
|
19860
|
+
"properties": {
|
|
19861
|
+
"token": {
|
|
19862
|
+
"type": "string"
|
|
19863
|
+
}
|
|
19864
|
+
}
|
|
19865
|
+
}
|
|
19866
|
+
}
|
|
19867
|
+
}
|
|
19868
|
+
},
|
|
19869
|
+
"responses": {
|
|
19870
|
+
"200": {
|
|
19871
|
+
"description": "Success"
|
|
19872
|
+
},
|
|
19873
|
+
"401": {
|
|
19874
|
+
"description": "Unauthenticated"
|
|
19875
|
+
},
|
|
19876
|
+
"403": {
|
|
19877
|
+
"description": "Forbidden, or the plan does not include this"
|
|
19878
|
+
},
|
|
19879
|
+
"404": {
|
|
19880
|
+
"description": "Not found"
|
|
19881
|
+
}
|
|
19882
|
+
}
|
|
19883
|
+
}
|
|
19884
|
+
},
|
|
19885
|
+
"/v1/agents/enroll/pending": {
|
|
19886
|
+
"get": {
|
|
19887
|
+
"tags": [
|
|
19888
|
+
"Agents"
|
|
19889
|
+
],
|
|
19890
|
+
"summary": "Public: validate enrollment token and return pending info for the dashboard (agent name, expires_at). Used so the UI can show 'Approve agent X?' witho",
|
|
19891
|
+
"operationId": "get_enrollment_pending",
|
|
19892
|
+
"security": [],
|
|
19893
|
+
"responses": {
|
|
19894
|
+
"200": {
|
|
19895
|
+
"description": "Success"
|
|
19896
|
+
},
|
|
19897
|
+
"404": {
|
|
19898
|
+
"description": "Not found"
|
|
19899
|
+
}
|
|
19900
|
+
}
|
|
19901
|
+
}
|
|
19902
|
+
},
|
|
19903
|
+
"/v1/agents/{agent_id}/channels/{channel_id}/refresh-webhook": {
|
|
19904
|
+
"parameters": [
|
|
19905
|
+
{
|
|
19906
|
+
"name": "agent_id",
|
|
19907
|
+
"in": "path",
|
|
19908
|
+
"required": true,
|
|
19909
|
+
"schema": {
|
|
19910
|
+
"type": "string"
|
|
19911
|
+
}
|
|
19912
|
+
},
|
|
19913
|
+
{
|
|
19914
|
+
"name": "channel_id",
|
|
19915
|
+
"in": "path",
|
|
19916
|
+
"required": true,
|
|
19917
|
+
"schema": {
|
|
19918
|
+
"type": "string"
|
|
19919
|
+
}
|
|
19920
|
+
}
|
|
19921
|
+
],
|
|
19922
|
+
"post": {
|
|
19923
|
+
"tags": [
|
|
19924
|
+
"Agents"
|
|
19925
|
+
],
|
|
19926
|
+
"summary": "Re-register the provider webhook for this channel (repairs a stale or revoked subscription).",
|
|
19927
|
+
"operationId": "refresh_channel_webhook",
|
|
19928
|
+
"responses": {
|
|
19929
|
+
"200": {
|
|
19930
|
+
"description": "Success"
|
|
19931
|
+
},
|
|
19932
|
+
"401": {
|
|
19933
|
+
"description": "Unauthenticated"
|
|
19934
|
+
},
|
|
19935
|
+
"403": {
|
|
19936
|
+
"description": "Forbidden, or the plan does not include this"
|
|
19937
|
+
},
|
|
19938
|
+
"404": {
|
|
19939
|
+
"description": "Not found"
|
|
19940
|
+
}
|
|
19941
|
+
}
|
|
19942
|
+
}
|
|
19943
|
+
},
|
|
19944
|
+
"/v1/agents/{agent_id}/channels/{channel_id}/repair": {
|
|
19945
|
+
"parameters": [
|
|
19946
|
+
{
|
|
19947
|
+
"name": "agent_id",
|
|
19948
|
+
"in": "path",
|
|
19949
|
+
"required": true,
|
|
19950
|
+
"schema": {
|
|
19951
|
+
"type": "string"
|
|
19952
|
+
}
|
|
19953
|
+
},
|
|
19954
|
+
{
|
|
19955
|
+
"name": "channel_id",
|
|
19956
|
+
"in": "path",
|
|
19957
|
+
"required": true,
|
|
19958
|
+
"schema": {
|
|
19959
|
+
"type": "string"
|
|
19960
|
+
}
|
|
19961
|
+
}
|
|
19962
|
+
],
|
|
19963
|
+
"post": {
|
|
19964
|
+
"tags": [
|
|
19965
|
+
"Agents"
|
|
19966
|
+
],
|
|
19967
|
+
"summary": "Repair a channel: alias of refresh-webhook, re-registers the provider webhook for this channel.",
|
|
19968
|
+
"operationId": "repair_channel_webhook",
|
|
19969
|
+
"responses": {
|
|
19970
|
+
"200": {
|
|
19971
|
+
"description": "Success"
|
|
19972
|
+
},
|
|
19973
|
+
"401": {
|
|
19974
|
+
"description": "Unauthenticated"
|
|
19975
|
+
},
|
|
19976
|
+
"403": {
|
|
19977
|
+
"description": "Forbidden, or the plan does not include this"
|
|
19978
|
+
},
|
|
19979
|
+
"404": {
|
|
19980
|
+
"description": "Not found"
|
|
19981
|
+
}
|
|
19982
|
+
}
|
|
19983
|
+
}
|
|
19984
|
+
},
|
|
19985
|
+
"/v1/agents/{agent_id}/eoa": {
|
|
19986
|
+
"parameters": [
|
|
19987
|
+
{
|
|
19988
|
+
"name": "agent_id",
|
|
19989
|
+
"in": "path",
|
|
19990
|
+
"required": true,
|
|
19991
|
+
"schema": {
|
|
19992
|
+
"type": "string"
|
|
19993
|
+
}
|
|
19994
|
+
}
|
|
19995
|
+
],
|
|
19996
|
+
"get": {
|
|
19997
|
+
"tags": [
|
|
19998
|
+
"Agents"
|
|
19999
|
+
],
|
|
20000
|
+
"summary": "Get the agent's EVM address (no private key exposure).",
|
|
20001
|
+
"operationId": "get_agent_eoa",
|
|
20002
|
+
"responses": {
|
|
20003
|
+
"200": {
|
|
20004
|
+
"description": "Success"
|
|
20005
|
+
},
|
|
20006
|
+
"401": {
|
|
20007
|
+
"description": "Unauthenticated"
|
|
20008
|
+
},
|
|
20009
|
+
"403": {
|
|
20010
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20011
|
+
},
|
|
20012
|
+
"404": {
|
|
20013
|
+
"description": "Not found"
|
|
20014
|
+
}
|
|
20015
|
+
}
|
|
20016
|
+
},
|
|
20017
|
+
"post": {
|
|
20018
|
+
"tags": [
|
|
20019
|
+
"Agents"
|
|
20020
|
+
],
|
|
20021
|
+
"summary": "Generate an EVM EOA for an agent. Creates a secp256k1 key, stores it in the __agent-keys vault, and records the derived address on the agent record.",
|
|
20022
|
+
"operationId": "generate_agent_eoa",
|
|
20023
|
+
"responses": {
|
|
20024
|
+
"200": {
|
|
20025
|
+
"description": "Success"
|
|
20026
|
+
},
|
|
20027
|
+
"401": {
|
|
20028
|
+
"description": "Unauthenticated"
|
|
20029
|
+
},
|
|
20030
|
+
"403": {
|
|
20031
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20032
|
+
},
|
|
20033
|
+
"404": {
|
|
20034
|
+
"description": "Not found"
|
|
20035
|
+
}
|
|
20036
|
+
}
|
|
20037
|
+
}
|
|
20038
|
+
},
|
|
20039
|
+
"/v1/agents/{agent_id}/rotate-signer-key": {
|
|
20040
|
+
"parameters": [
|
|
20041
|
+
{
|
|
20042
|
+
"name": "agent_id",
|
|
20043
|
+
"in": "path",
|
|
20044
|
+
"required": true,
|
|
20045
|
+
"schema": {
|
|
20046
|
+
"type": "string"
|
|
20047
|
+
}
|
|
20048
|
+
}
|
|
20049
|
+
],
|
|
20050
|
+
"post": {
|
|
20051
|
+
"tags": [
|
|
20052
|
+
"Agents"
|
|
20053
|
+
],
|
|
20054
|
+
"summary": "Rotate the agent's EVM signer key. Generates a new secp256k1 key, builds a swapOwner UserOp on the Safe, signs with the old key, submits to bundler, a",
|
|
20055
|
+
"operationId": "rotate_signer_key",
|
|
20056
|
+
"responses": {
|
|
20057
|
+
"200": {
|
|
20058
|
+
"description": "Success"
|
|
20059
|
+
},
|
|
20060
|
+
"401": {
|
|
20061
|
+
"description": "Unauthenticated"
|
|
20062
|
+
},
|
|
20063
|
+
"403": {
|
|
20064
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20065
|
+
},
|
|
20066
|
+
"404": {
|
|
20067
|
+
"description": "Not found"
|
|
20068
|
+
}
|
|
20069
|
+
}
|
|
20070
|
+
}
|
|
20071
|
+
},
|
|
20072
|
+
"/v1/agents/{agent_id}/smart-accounts/{chain_id}": {
|
|
20073
|
+
"parameters": [
|
|
20074
|
+
{
|
|
20075
|
+
"name": "agent_id",
|
|
20076
|
+
"in": "path",
|
|
20077
|
+
"required": true,
|
|
20078
|
+
"schema": {
|
|
20079
|
+
"type": "string"
|
|
20080
|
+
}
|
|
20081
|
+
},
|
|
20082
|
+
{
|
|
20083
|
+
"name": "chain_id",
|
|
20084
|
+
"in": "path",
|
|
20085
|
+
"required": true,
|
|
20086
|
+
"schema": {
|
|
20087
|
+
"type": "string"
|
|
20088
|
+
}
|
|
20089
|
+
}
|
|
20090
|
+
],
|
|
20091
|
+
"delete": {
|
|
20092
|
+
"tags": [
|
|
20093
|
+
"Agents"
|
|
20094
|
+
],
|
|
20095
|
+
"summary": "delete smart account",
|
|
20096
|
+
"operationId": "delete_smart_account",
|
|
20097
|
+
"responses": {
|
|
20098
|
+
"200": {
|
|
20099
|
+
"description": "Success"
|
|
20100
|
+
},
|
|
20101
|
+
"401": {
|
|
20102
|
+
"description": "Unauthenticated"
|
|
20103
|
+
},
|
|
20104
|
+
"403": {
|
|
20105
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20106
|
+
},
|
|
20107
|
+
"404": {
|
|
20108
|
+
"description": "Not found"
|
|
20109
|
+
}
|
|
20110
|
+
}
|
|
20111
|
+
}
|
|
20112
|
+
},
|
|
20113
|
+
"/v1/agents/{agent_id}/unlock-platform": {
|
|
20114
|
+
"parameters": [
|
|
20115
|
+
{
|
|
20116
|
+
"name": "agent_id",
|
|
20117
|
+
"in": "path",
|
|
20118
|
+
"required": true,
|
|
20119
|
+
"schema": {
|
|
20120
|
+
"type": "string"
|
|
20121
|
+
}
|
|
20122
|
+
}
|
|
20123
|
+
],
|
|
20124
|
+
"post": {
|
|
20125
|
+
"tags": [
|
|
20126
|
+
"Agents"
|
|
20127
|
+
],
|
|
20128
|
+
"summary": "User-only. Clears platform_locked when the app is no longer actively connected.",
|
|
20129
|
+
"operationId": "unlock_agent_platform",
|
|
20130
|
+
"responses": {
|
|
20131
|
+
"200": {
|
|
20132
|
+
"description": "Success"
|
|
20133
|
+
},
|
|
20134
|
+
"401": {
|
|
20135
|
+
"description": "Unauthenticated"
|
|
20136
|
+
},
|
|
20137
|
+
"403": {
|
|
20138
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20139
|
+
},
|
|
20140
|
+
"404": {
|
|
20141
|
+
"description": "Not found"
|
|
20142
|
+
}
|
|
20143
|
+
}
|
|
20144
|
+
}
|
|
20145
|
+
},
|
|
20146
|
+
"/v1/audit/export": {
|
|
20147
|
+
"get": {
|
|
20148
|
+
"tags": [
|
|
20149
|
+
"Audit"
|
|
20150
|
+
],
|
|
20151
|
+
"summary": "export audit events",
|
|
20152
|
+
"operationId": "export_audit_events",
|
|
20153
|
+
"responses": {
|
|
20154
|
+
"200": {
|
|
20155
|
+
"description": "Success"
|
|
20156
|
+
},
|
|
20157
|
+
"401": {
|
|
20158
|
+
"description": "Unauthenticated"
|
|
20159
|
+
},
|
|
20160
|
+
"403": {
|
|
20161
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20162
|
+
},
|
|
20163
|
+
"404": {
|
|
20164
|
+
"description": "Not found"
|
|
20165
|
+
}
|
|
20166
|
+
}
|
|
20167
|
+
}
|
|
20168
|
+
},
|
|
20169
|
+
"/v1/auth/credential-recovery/requests/{id}/cancel": {
|
|
20170
|
+
"parameters": [
|
|
20171
|
+
{
|
|
20172
|
+
"name": "id",
|
|
20173
|
+
"in": "path",
|
|
20174
|
+
"required": true,
|
|
20175
|
+
"schema": {
|
|
20176
|
+
"type": "string"
|
|
20177
|
+
}
|
|
20178
|
+
}
|
|
20179
|
+
],
|
|
20180
|
+
"post": {
|
|
20181
|
+
"tags": [
|
|
20182
|
+
"Auth"
|
|
20183
|
+
],
|
|
20184
|
+
"summary": "cancel request",
|
|
20185
|
+
"operationId": "cancel_request",
|
|
20186
|
+
"responses": {
|
|
20187
|
+
"200": {
|
|
20188
|
+
"description": "Success"
|
|
20189
|
+
},
|
|
20190
|
+
"401": {
|
|
20191
|
+
"description": "Unauthenticated"
|
|
20192
|
+
},
|
|
20193
|
+
"403": {
|
|
20194
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20195
|
+
},
|
|
20196
|
+
"404": {
|
|
20197
|
+
"description": "Not found"
|
|
20198
|
+
}
|
|
20199
|
+
}
|
|
20200
|
+
}
|
|
20201
|
+
},
|
|
20202
|
+
"/v1/auth/migration-status": {
|
|
20203
|
+
"get": {
|
|
20204
|
+
"tags": [
|
|
20205
|
+
"Auth"
|
|
20206
|
+
],
|
|
20207
|
+
"summary": "What the account is currently anchored on, and what has to happen next. The ordering is the part people get wrong, so it lives here rather than being",
|
|
20208
|
+
"operationId": "migration_status",
|
|
20209
|
+
"responses": {
|
|
20210
|
+
"200": {
|
|
20211
|
+
"description": "Success"
|
|
20212
|
+
},
|
|
20213
|
+
"401": {
|
|
20214
|
+
"description": "Unauthenticated"
|
|
20215
|
+
},
|
|
20216
|
+
"403": {
|
|
20217
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20218
|
+
},
|
|
20219
|
+
"404": {
|
|
20220
|
+
"description": "Not found"
|
|
20221
|
+
}
|
|
20222
|
+
}
|
|
20223
|
+
}
|
|
20224
|
+
},
|
|
20225
|
+
"/v1/auth/passkeys/vault-assert/begin": {
|
|
20226
|
+
"post": {
|
|
20227
|
+
"tags": [
|
|
20228
|
+
"Auth"
|
|
20229
|
+
],
|
|
20230
|
+
"summary": "Begin a passkey assertion that unlocks vault secret reads for users who have `require_passkey_for_vaults` enabled.",
|
|
20231
|
+
"operationId": "vault_assert_begin",
|
|
20232
|
+
"responses": {
|
|
20233
|
+
"200": {
|
|
20234
|
+
"description": "Success"
|
|
20235
|
+
},
|
|
20236
|
+
"401": {
|
|
20237
|
+
"description": "Unauthenticated"
|
|
20238
|
+
},
|
|
20239
|
+
"403": {
|
|
20240
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20241
|
+
},
|
|
20242
|
+
"404": {
|
|
20243
|
+
"description": "Not found"
|
|
20244
|
+
}
|
|
20245
|
+
}
|
|
20246
|
+
}
|
|
20247
|
+
},
|
|
20248
|
+
"/v1/auth/passkeys/vault-assert/complete": {
|
|
20249
|
+
"post": {
|
|
20250
|
+
"tags": [
|
|
20251
|
+
"Auth"
|
|
20252
|
+
],
|
|
20253
|
+
"summary": "Returns a short-lived `passkey_token` for the `X-Passkey-Token` header on secret reads.",
|
|
20254
|
+
"operationId": "vault_assert_complete",
|
|
20255
|
+
"requestBody": {
|
|
20256
|
+
"required": true,
|
|
20257
|
+
"content": {
|
|
20258
|
+
"application/json": {
|
|
20259
|
+
"schema": {
|
|
20260
|
+
"type": "object",
|
|
20261
|
+
"required": [
|
|
20262
|
+
"credential_id",
|
|
20263
|
+
"authenticator_data",
|
|
20264
|
+
"client_data_json",
|
|
20265
|
+
"signature"
|
|
20266
|
+
],
|
|
20267
|
+
"properties": {
|
|
20268
|
+
"credential_id": {
|
|
20269
|
+
"type": "string"
|
|
20270
|
+
},
|
|
20271
|
+
"authenticator_data": {
|
|
20272
|
+
"type": "string"
|
|
20273
|
+
},
|
|
20274
|
+
"client_data_json": {
|
|
20275
|
+
"type": "string"
|
|
20276
|
+
},
|
|
20277
|
+
"signature": {
|
|
20278
|
+
"type": "string"
|
|
20279
|
+
}
|
|
20280
|
+
}
|
|
20281
|
+
}
|
|
20282
|
+
}
|
|
20283
|
+
}
|
|
20284
|
+
},
|
|
20285
|
+
"responses": {
|
|
20286
|
+
"200": {
|
|
20287
|
+
"description": "Success"
|
|
20288
|
+
},
|
|
20289
|
+
"401": {
|
|
20290
|
+
"description": "Unauthenticated"
|
|
20291
|
+
},
|
|
20292
|
+
"403": {
|
|
20293
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20294
|
+
},
|
|
20295
|
+
"404": {
|
|
20296
|
+
"description": "Not found"
|
|
20297
|
+
}
|
|
20298
|
+
}
|
|
20299
|
+
}
|
|
20300
|
+
},
|
|
20301
|
+
"/v1/auth/reauth/begin": {
|
|
20302
|
+
"post": {
|
|
20303
|
+
"tags": [
|
|
20304
|
+
"Auth"
|
|
20305
|
+
],
|
|
20306
|
+
"summary": "start a re-authentication ceremony. For passkey: returns a WebAuthn challenge. For password: returns immediately (no challenge needed).",
|
|
20307
|
+
"operationId": "reauth_begin",
|
|
20308
|
+
"requestBody": {
|
|
20309
|
+
"required": true,
|
|
20310
|
+
"content": {
|
|
20311
|
+
"application/json": {
|
|
20312
|
+
"schema": {
|
|
20313
|
+
"type": "object",
|
|
20314
|
+
"required": [
|
|
20315
|
+
"method"
|
|
20316
|
+
],
|
|
20317
|
+
"properties": {
|
|
20318
|
+
"method": {
|
|
20319
|
+
"type": "string"
|
|
20320
|
+
},
|
|
20321
|
+
"purpose": {
|
|
20322
|
+
"type": "string"
|
|
20323
|
+
}
|
|
20324
|
+
}
|
|
20325
|
+
}
|
|
20326
|
+
}
|
|
20327
|
+
}
|
|
20328
|
+
},
|
|
20329
|
+
"responses": {
|
|
20330
|
+
"200": {
|
|
20331
|
+
"description": "Success"
|
|
20332
|
+
},
|
|
20333
|
+
"401": {
|
|
20334
|
+
"description": "Unauthenticated"
|
|
20335
|
+
},
|
|
20336
|
+
"403": {
|
|
20337
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20338
|
+
},
|
|
20339
|
+
"404": {
|
|
20340
|
+
"description": "Not found"
|
|
20341
|
+
}
|
|
20342
|
+
}
|
|
20343
|
+
}
|
|
20344
|
+
},
|
|
20345
|
+
"/v1/auth/reauth/complete": {
|
|
20346
|
+
"post": {
|
|
20347
|
+
"tags": [
|
|
20348
|
+
"Auth"
|
|
20349
|
+
],
|
|
20350
|
+
"summary": "verify re-authentication and issue a single-use token.",
|
|
20351
|
+
"operationId": "reauth_complete",
|
|
20352
|
+
"requestBody": {
|
|
20353
|
+
"required": true,
|
|
20354
|
+
"content": {
|
|
20355
|
+
"application/json": {
|
|
20356
|
+
"schema": {
|
|
20357
|
+
"type": "object",
|
|
20358
|
+
"required": [
|
|
20359
|
+
"method"
|
|
20360
|
+
],
|
|
20361
|
+
"properties": {
|
|
20362
|
+
"method": {
|
|
20363
|
+
"type": "string"
|
|
20364
|
+
},
|
|
20365
|
+
"purpose": {
|
|
20366
|
+
"type": "string"
|
|
20367
|
+
},
|
|
20368
|
+
"password": {
|
|
20369
|
+
"type": "string"
|
|
20370
|
+
},
|
|
20371
|
+
"credential_id": {
|
|
20372
|
+
"type": "string"
|
|
20373
|
+
},
|
|
20374
|
+
"authenticator_data": {
|
|
20375
|
+
"type": "string"
|
|
20376
|
+
},
|
|
20377
|
+
"client_data_json": {
|
|
20378
|
+
"type": "string"
|
|
20379
|
+
},
|
|
20380
|
+
"signature": {
|
|
20381
|
+
"type": "string"
|
|
20382
|
+
}
|
|
20383
|
+
}
|
|
20384
|
+
}
|
|
20385
|
+
}
|
|
20386
|
+
}
|
|
20387
|
+
},
|
|
20388
|
+
"responses": {
|
|
20389
|
+
"200": {
|
|
20390
|
+
"description": "Success"
|
|
20391
|
+
},
|
|
20392
|
+
"401": {
|
|
20393
|
+
"description": "Unauthenticated"
|
|
20394
|
+
},
|
|
20395
|
+
"403": {
|
|
20396
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20397
|
+
},
|
|
20398
|
+
"404": {
|
|
20399
|
+
"description": "Not found"
|
|
20400
|
+
}
|
|
20401
|
+
}
|
|
20402
|
+
}
|
|
20403
|
+
},
|
|
20404
|
+
"/v1/auth/social/disconnect": {
|
|
20405
|
+
"post": {
|
|
20406
|
+
"tags": [
|
|
20407
|
+
"Auth"
|
|
20408
|
+
],
|
|
20409
|
+
"summary": "Sever every social identity link, so a social account that once owned this login can no longer reach it. The case this exists for: someone leaves a c",
|
|
20410
|
+
"operationId": "disconnect_social",
|
|
20411
|
+
"responses": {
|
|
20412
|
+
"200": {
|
|
20413
|
+
"description": "Success"
|
|
20414
|
+
},
|
|
20415
|
+
"401": {
|
|
20416
|
+
"description": "Unauthenticated"
|
|
20417
|
+
},
|
|
20418
|
+
"403": {
|
|
20419
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20420
|
+
},
|
|
20421
|
+
"404": {
|
|
20422
|
+
"description": "Not found"
|
|
20423
|
+
}
|
|
20424
|
+
}
|
|
20425
|
+
}
|
|
20426
|
+
},
|
|
20427
|
+
"/v1/auth/sso/authorize": {
|
|
20428
|
+
"get": {
|
|
20429
|
+
"tags": [
|
|
20430
|
+
"Auth"
|
|
20431
|
+
],
|
|
20432
|
+
"summary": "returns JSON with authorization_url for WorkOS Hosted Auth.",
|
|
20433
|
+
"operationId": "sso_authorize",
|
|
20434
|
+
"responses": {
|
|
20435
|
+
"200": {
|
|
20436
|
+
"description": "Success"
|
|
20437
|
+
},
|
|
20438
|
+
"401": {
|
|
20439
|
+
"description": "Unauthenticated"
|
|
20440
|
+
},
|
|
20441
|
+
"403": {
|
|
20442
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20443
|
+
},
|
|
20444
|
+
"404": {
|
|
20445
|
+
"description": "Not found"
|
|
20446
|
+
}
|
|
20447
|
+
}
|
|
20448
|
+
}
|
|
20449
|
+
},
|
|
20450
|
+
"/v1/auth/sso/callback": {
|
|
20451
|
+
"get": {
|
|
20452
|
+
"tags": [
|
|
20453
|
+
"Auth"
|
|
20454
|
+
],
|
|
20455
|
+
"summary": "exchange code for profile, find/create user, redirect to dashboard with token.",
|
|
20456
|
+
"operationId": "sso_callback",
|
|
20457
|
+
"responses": {
|
|
20458
|
+
"200": {
|
|
20459
|
+
"description": "Success"
|
|
20460
|
+
},
|
|
20461
|
+
"401": {
|
|
20462
|
+
"description": "Unauthenticated"
|
|
20463
|
+
},
|
|
20464
|
+
"403": {
|
|
20465
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20466
|
+
},
|
|
20467
|
+
"404": {
|
|
20468
|
+
"description": "Not found"
|
|
20469
|
+
}
|
|
20470
|
+
}
|
|
20471
|
+
}
|
|
20472
|
+
},
|
|
20473
|
+
"/v1/auth/sso/status": {
|
|
20474
|
+
"get": {
|
|
20475
|
+
"tags": [
|
|
20476
|
+
"Auth"
|
|
20477
|
+
],
|
|
20478
|
+
"summary": "returns whether SSO is configured (for dashboard to show/hide SSO button).",
|
|
20479
|
+
"operationId": "sso_status",
|
|
20480
|
+
"responses": {
|
|
20481
|
+
"200": {
|
|
20482
|
+
"description": "Success"
|
|
20483
|
+
},
|
|
20484
|
+
"401": {
|
|
20485
|
+
"description": "Unauthenticated"
|
|
20486
|
+
},
|
|
20487
|
+
"403": {
|
|
20488
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20489
|
+
},
|
|
20490
|
+
"404": {
|
|
20491
|
+
"description": "Not found"
|
|
20492
|
+
}
|
|
20493
|
+
}
|
|
20494
|
+
}
|
|
20495
|
+
},
|
|
20496
|
+
"/v1/billing/llm-models": {
|
|
20497
|
+
"get": {
|
|
20498
|
+
"tags": [
|
|
20499
|
+
"Billing"
|
|
20500
|
+
],
|
|
20501
|
+
"summary": "get llm models",
|
|
20502
|
+
"operationId": "get_llm_models",
|
|
20503
|
+
"responses": {
|
|
20504
|
+
"200": {
|
|
20505
|
+
"description": "Success"
|
|
20506
|
+
},
|
|
20507
|
+
"401": {
|
|
20508
|
+
"description": "Unauthenticated"
|
|
20509
|
+
},
|
|
20510
|
+
"403": {
|
|
20511
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20512
|
+
},
|
|
20513
|
+
"404": {
|
|
20514
|
+
"description": "Not found"
|
|
20515
|
+
}
|
|
20516
|
+
}
|
|
20517
|
+
}
|
|
20518
|
+
},
|
|
20519
|
+
"/v1/billing/llm-pricing": {
|
|
20520
|
+
"get": {
|
|
20521
|
+
"tags": [
|
|
20522
|
+
"Billing"
|
|
20523
|
+
],
|
|
20524
|
+
"summary": "get llm pricing",
|
|
20525
|
+
"operationId": "get_llm_pricing",
|
|
20526
|
+
"responses": {
|
|
20527
|
+
"200": {
|
|
20528
|
+
"description": "Success"
|
|
20529
|
+
},
|
|
20530
|
+
"401": {
|
|
20531
|
+
"description": "Unauthenticated"
|
|
20532
|
+
},
|
|
20533
|
+
"403": {
|
|
20534
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20535
|
+
},
|
|
20536
|
+
"404": {
|
|
20537
|
+
"description": "Not found"
|
|
20538
|
+
}
|
|
20539
|
+
}
|
|
20540
|
+
}
|
|
20541
|
+
},
|
|
20542
|
+
"/v1/billing/promo/redeem": {
|
|
20543
|
+
"get": {
|
|
20544
|
+
"tags": [
|
|
20545
|
+
"Billing"
|
|
20546
|
+
],
|
|
20547
|
+
"summary": "get llm billing status",
|
|
20548
|
+
"operationId": "get_llm_billing_status",
|
|
20549
|
+
"responses": {
|
|
20550
|
+
"200": {
|
|
20551
|
+
"description": "Success"
|
|
20552
|
+
},
|
|
20553
|
+
"401": {
|
|
20554
|
+
"description": "Unauthenticated"
|
|
20555
|
+
},
|
|
20556
|
+
"403": {
|
|
20557
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20558
|
+
},
|
|
20559
|
+
"404": {
|
|
20560
|
+
"description": "Not found"
|
|
20561
|
+
}
|
|
20562
|
+
}
|
|
20563
|
+
},
|
|
20564
|
+
"post": {
|
|
20565
|
+
"tags": [
|
|
20566
|
+
"Billing"
|
|
20567
|
+
],
|
|
20568
|
+
"summary": "redeem promo",
|
|
20569
|
+
"operationId": "redeem_promo",
|
|
20570
|
+
"requestBody": {
|
|
20571
|
+
"required": true,
|
|
20572
|
+
"content": {
|
|
20573
|
+
"application/json": {
|
|
20574
|
+
"schema": {
|
|
20575
|
+
"type": "object",
|
|
20576
|
+
"required": [
|
|
20577
|
+
"code"
|
|
20578
|
+
],
|
|
20579
|
+
"properties": {
|
|
20580
|
+
"code": {
|
|
20581
|
+
"type": "string"
|
|
20582
|
+
}
|
|
20583
|
+
}
|
|
20584
|
+
}
|
|
20585
|
+
}
|
|
20586
|
+
}
|
|
20587
|
+
},
|
|
20588
|
+
"responses": {
|
|
20589
|
+
"200": {
|
|
20590
|
+
"description": "Success"
|
|
20591
|
+
},
|
|
20592
|
+
"401": {
|
|
20593
|
+
"description": "Unauthenticated"
|
|
20594
|
+
},
|
|
20595
|
+
"403": {
|
|
20596
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20597
|
+
},
|
|
20598
|
+
"404": {
|
|
20599
|
+
"description": "Not found"
|
|
20600
|
+
}
|
|
20601
|
+
}
|
|
20602
|
+
}
|
|
20603
|
+
},
|
|
20604
|
+
"/v1/billing/promo/validate": {
|
|
20605
|
+
"get": {
|
|
20606
|
+
"tags": [
|
|
20607
|
+
"Billing"
|
|
20608
|
+
],
|
|
20609
|
+
"summary": "validate promo",
|
|
20610
|
+
"operationId": "validate_promo",
|
|
20611
|
+
"responses": {
|
|
20612
|
+
"200": {
|
|
20613
|
+
"description": "Success"
|
|
20614
|
+
},
|
|
20615
|
+
"401": {
|
|
20616
|
+
"description": "Unauthenticated"
|
|
20617
|
+
},
|
|
20618
|
+
"403": {
|
|
20619
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20620
|
+
},
|
|
20621
|
+
"404": {
|
|
20622
|
+
"description": "Not found"
|
|
20623
|
+
}
|
|
20624
|
+
}
|
|
20625
|
+
}
|
|
20626
|
+
},
|
|
20627
|
+
"/v1/chains/rpc": {
|
|
20628
|
+
"post": {
|
|
20629
|
+
"tags": [
|
|
20630
|
+
"Chains"
|
|
20631
|
+
],
|
|
20632
|
+
"summary": "Proxy a single JSON-RPC call to the chain's RPC URL. Only read-only methods in ALLOWED_RPC_METHODS are allowed (Treasury balances, Safe deployment, et",
|
|
20633
|
+
"operationId": "chain_rpc_proxy",
|
|
20634
|
+
"requestBody": {
|
|
20635
|
+
"required": true,
|
|
20636
|
+
"content": {
|
|
20637
|
+
"application/json": {
|
|
20638
|
+
"schema": {
|
|
20639
|
+
"type": "object",
|
|
20640
|
+
"required": [
|
|
20641
|
+
"chain_id",
|
|
20642
|
+
"method",
|
|
20643
|
+
"params"
|
|
20644
|
+
],
|
|
20645
|
+
"properties": {
|
|
20646
|
+
"chain_id": {
|
|
20647
|
+
"type": "integer"
|
|
20648
|
+
},
|
|
20649
|
+
"method": {
|
|
20650
|
+
"type": "string"
|
|
20651
|
+
},
|
|
20652
|
+
"params": {
|
|
20653
|
+
"type": "array",
|
|
20654
|
+
"items": {
|
|
20655
|
+
"type": "object",
|
|
20656
|
+
"additionalProperties": true
|
|
20657
|
+
}
|
|
20658
|
+
}
|
|
20659
|
+
}
|
|
20660
|
+
}
|
|
20661
|
+
}
|
|
20662
|
+
}
|
|
20663
|
+
},
|
|
20664
|
+
"responses": {
|
|
20665
|
+
"200": {
|
|
20666
|
+
"description": "Success"
|
|
20667
|
+
},
|
|
20668
|
+
"401": {
|
|
20669
|
+
"description": "Unauthenticated"
|
|
20670
|
+
},
|
|
20671
|
+
"403": {
|
|
20672
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20673
|
+
},
|
|
20674
|
+
"404": {
|
|
20675
|
+
"description": "Not found"
|
|
20676
|
+
}
|
|
20677
|
+
}
|
|
20678
|
+
}
|
|
20679
|
+
},
|
|
20680
|
+
"/v1/fiat/webhooks": {
|
|
20681
|
+
"post": {
|
|
20682
|
+
"tags": [
|
|
20683
|
+
"Fiat"
|
|
20684
|
+
],
|
|
20685
|
+
"summary": "Receive completion events from fiat partners (MoonPay signed body or generic JSON).",
|
|
20686
|
+
"operationId": "fiat_webhook",
|
|
20687
|
+
"responses": {
|
|
20688
|
+
"200": {
|
|
20689
|
+
"description": "Success"
|
|
20690
|
+
},
|
|
20691
|
+
"401": {
|
|
20692
|
+
"description": "Unauthenticated"
|
|
20693
|
+
},
|
|
20694
|
+
"403": {
|
|
20695
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20696
|
+
},
|
|
20697
|
+
"404": {
|
|
20698
|
+
"description": "Not found"
|
|
20699
|
+
}
|
|
20700
|
+
}
|
|
20701
|
+
}
|
|
20702
|
+
},
|
|
20703
|
+
"/v1/memory/shared-namespaces": {
|
|
20704
|
+
"get": {
|
|
20705
|
+
"tags": [
|
|
20706
|
+
"Memory"
|
|
20707
|
+
],
|
|
20708
|
+
"summary": "list shared namespaces",
|
|
20709
|
+
"operationId": "list_shared_namespaces",
|
|
20710
|
+
"responses": {
|
|
20711
|
+
"200": {
|
|
20712
|
+
"description": "Success"
|
|
20713
|
+
},
|
|
20714
|
+
"401": {
|
|
20715
|
+
"description": "Unauthenticated"
|
|
20716
|
+
},
|
|
20717
|
+
"403": {
|
|
20718
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20719
|
+
},
|
|
20720
|
+
"404": {
|
|
20721
|
+
"description": "Not found"
|
|
20722
|
+
}
|
|
20723
|
+
}
|
|
20724
|
+
},
|
|
20725
|
+
"post": {
|
|
20726
|
+
"tags": [
|
|
20727
|
+
"Memory"
|
|
20728
|
+
],
|
|
20729
|
+
"summary": "create shared namespace",
|
|
20730
|
+
"operationId": "create_shared_namespace",
|
|
20731
|
+
"requestBody": {
|
|
20732
|
+
"required": true,
|
|
20733
|
+
"content": {
|
|
20734
|
+
"application/json": {
|
|
20735
|
+
"schema": {
|
|
20736
|
+
"type": "object",
|
|
20737
|
+
"required": [
|
|
20738
|
+
"namespace",
|
|
20739
|
+
"agent_ids"
|
|
20740
|
+
],
|
|
20741
|
+
"properties": {
|
|
20742
|
+
"namespace": {
|
|
20743
|
+
"type": "string"
|
|
20744
|
+
},
|
|
20745
|
+
"agent_ids": {
|
|
20746
|
+
"type": "array",
|
|
20747
|
+
"items": {
|
|
20748
|
+
"type": "string",
|
|
20749
|
+
"format": "uuid"
|
|
20750
|
+
}
|
|
20751
|
+
}
|
|
20752
|
+
}
|
|
20753
|
+
}
|
|
20754
|
+
}
|
|
20755
|
+
}
|
|
20756
|
+
},
|
|
20757
|
+
"responses": {
|
|
20758
|
+
"200": {
|
|
20759
|
+
"description": "Success"
|
|
20760
|
+
},
|
|
20761
|
+
"401": {
|
|
20762
|
+
"description": "Unauthenticated"
|
|
20763
|
+
},
|
|
20764
|
+
"403": {
|
|
20765
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20766
|
+
},
|
|
20767
|
+
"404": {
|
|
20768
|
+
"description": "Not found"
|
|
20769
|
+
}
|
|
20770
|
+
}
|
|
20771
|
+
}
|
|
20772
|
+
},
|
|
20773
|
+
"/v1/memory/shared-namespaces/{id}": {
|
|
20774
|
+
"parameters": [
|
|
20775
|
+
{
|
|
20776
|
+
"name": "id",
|
|
20777
|
+
"in": "path",
|
|
20778
|
+
"required": true,
|
|
20779
|
+
"schema": {
|
|
20780
|
+
"type": "string"
|
|
20781
|
+
}
|
|
20782
|
+
}
|
|
20783
|
+
],
|
|
20784
|
+
"delete": {
|
|
20785
|
+
"tags": [
|
|
20786
|
+
"Memory"
|
|
20787
|
+
],
|
|
20788
|
+
"summary": "delete shared namespace",
|
|
20789
|
+
"operationId": "delete_shared_namespace",
|
|
20790
|
+
"responses": {
|
|
20791
|
+
"200": {
|
|
20792
|
+
"description": "Success"
|
|
20793
|
+
},
|
|
20794
|
+
"401": {
|
|
20795
|
+
"description": "Unauthenticated"
|
|
20796
|
+
},
|
|
20797
|
+
"403": {
|
|
20798
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20799
|
+
},
|
|
20800
|
+
"404": {
|
|
20801
|
+
"description": "Not found"
|
|
20802
|
+
}
|
|
20803
|
+
}
|
|
20804
|
+
},
|
|
20805
|
+
"patch": {
|
|
20806
|
+
"tags": [
|
|
20807
|
+
"Memory"
|
|
20808
|
+
],
|
|
20809
|
+
"summary": "update shared namespace",
|
|
20810
|
+
"operationId": "update_shared_namespace",
|
|
20811
|
+
"requestBody": {
|
|
20812
|
+
"required": true,
|
|
20813
|
+
"content": {
|
|
20814
|
+
"application/json": {
|
|
20815
|
+
"schema": {
|
|
20816
|
+
"type": "object",
|
|
20817
|
+
"required": [
|
|
20818
|
+
"agent_ids"
|
|
20819
|
+
],
|
|
20820
|
+
"properties": {
|
|
20821
|
+
"agent_ids": {
|
|
20822
|
+
"type": "array",
|
|
20823
|
+
"items": {
|
|
20824
|
+
"type": "string",
|
|
20825
|
+
"format": "uuid"
|
|
20826
|
+
}
|
|
20827
|
+
}
|
|
20828
|
+
}
|
|
20829
|
+
}
|
|
20830
|
+
}
|
|
20831
|
+
}
|
|
20832
|
+
},
|
|
20833
|
+
"responses": {
|
|
20834
|
+
"200": {
|
|
20835
|
+
"description": "Success"
|
|
20836
|
+
},
|
|
20837
|
+
"401": {
|
|
20838
|
+
"description": "Unauthenticated"
|
|
20839
|
+
},
|
|
20840
|
+
"403": {
|
|
20841
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20842
|
+
},
|
|
20843
|
+
"404": {
|
|
20844
|
+
"description": "Not found"
|
|
20845
|
+
}
|
|
20846
|
+
}
|
|
20847
|
+
}
|
|
20848
|
+
},
|
|
20849
|
+
"/v1/onboarding/journey": {
|
|
20850
|
+
"post": {
|
|
20851
|
+
"tags": [
|
|
20852
|
+
"Onboarding"
|
|
20853
|
+
],
|
|
20854
|
+
"summary": "record which path a user chose. The dashboard already had `track()` calls for the wizard, but they POST to a dashboard route that does not exist, so ",
|
|
20855
|
+
"operationId": "record_journey",
|
|
20856
|
+
"requestBody": {
|
|
20857
|
+
"required": true,
|
|
20858
|
+
"content": {
|
|
20859
|
+
"application/json": {
|
|
20860
|
+
"schema": {
|
|
20861
|
+
"type": "object",
|
|
20862
|
+
"required": [
|
|
20863
|
+
"journey"
|
|
20864
|
+
],
|
|
20865
|
+
"properties": {
|
|
20866
|
+
"journey": {
|
|
20867
|
+
"type": "string"
|
|
20868
|
+
},
|
|
20869
|
+
"step": {
|
|
20870
|
+
"type": "string"
|
|
20871
|
+
}
|
|
20872
|
+
}
|
|
20873
|
+
}
|
|
20874
|
+
}
|
|
20875
|
+
}
|
|
20876
|
+
},
|
|
20877
|
+
"responses": {
|
|
20878
|
+
"200": {
|
|
20879
|
+
"description": "Success"
|
|
20880
|
+
},
|
|
20881
|
+
"401": {
|
|
20882
|
+
"description": "Unauthenticated"
|
|
20883
|
+
},
|
|
20884
|
+
"403": {
|
|
20885
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20886
|
+
},
|
|
20887
|
+
"404": {
|
|
20888
|
+
"description": "Not found"
|
|
20889
|
+
}
|
|
20890
|
+
}
|
|
20891
|
+
}
|
|
20892
|
+
},
|
|
20893
|
+
"/v1/org/env-vars/{id}/delete": {
|
|
20894
|
+
"parameters": [
|
|
20895
|
+
{
|
|
20896
|
+
"name": "id",
|
|
20897
|
+
"in": "path",
|
|
20898
|
+
"required": true,
|
|
20899
|
+
"schema": {
|
|
20900
|
+
"type": "string"
|
|
20901
|
+
}
|
|
20902
|
+
}
|
|
20903
|
+
],
|
|
20904
|
+
"post": {
|
|
20905
|
+
"tags": [
|
|
20906
|
+
"Org"
|
|
20907
|
+
],
|
|
20908
|
+
"summary": "delete org env var",
|
|
20909
|
+
"operationId": "delete_org_env_var",
|
|
20910
|
+
"responses": {
|
|
20911
|
+
"200": {
|
|
20912
|
+
"description": "Success"
|
|
20913
|
+
},
|
|
20914
|
+
"401": {
|
|
20915
|
+
"description": "Unauthenticated"
|
|
20916
|
+
},
|
|
20917
|
+
"403": {
|
|
20918
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20919
|
+
},
|
|
20920
|
+
"404": {
|
|
20921
|
+
"description": "Not found"
|
|
20922
|
+
}
|
|
20923
|
+
}
|
|
20924
|
+
}
|
|
20925
|
+
},
|
|
20926
|
+
"/v1/org/kek-custody": {
|
|
20927
|
+
"get": {
|
|
20928
|
+
"tags": [
|
|
20929
|
+
"Org"
|
|
20930
|
+
],
|
|
20931
|
+
"summary": "Get current custody mode and share metadata",
|
|
20932
|
+
"operationId": "get_custody",
|
|
20933
|
+
"responses": {
|
|
20934
|
+
"200": {
|
|
20935
|
+
"description": "Success"
|
|
20936
|
+
},
|
|
20937
|
+
"401": {
|
|
20938
|
+
"description": "Unauthenticated"
|
|
20939
|
+
},
|
|
20940
|
+
"403": {
|
|
20941
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20942
|
+
},
|
|
20943
|
+
"404": {
|
|
20944
|
+
"description": "Not found"
|
|
20945
|
+
}
|
|
20946
|
+
}
|
|
20947
|
+
},
|
|
20948
|
+
"post": {
|
|
20949
|
+
"tags": [
|
|
20950
|
+
"Org"
|
|
20951
|
+
],
|
|
20952
|
+
"summary": "Setup Shamir key custody",
|
|
20953
|
+
"operationId": "setup_custody",
|
|
20954
|
+
"requestBody": {
|
|
20955
|
+
"required": true,
|
|
20956
|
+
"content": {
|
|
20957
|
+
"application/json": {
|
|
20958
|
+
"schema": {
|
|
20959
|
+
"type": "object",
|
|
20960
|
+
"required": [
|
|
20961
|
+
"custody_mode"
|
|
20962
|
+
],
|
|
20963
|
+
"properties": {
|
|
20964
|
+
"custody_mode": {
|
|
20965
|
+
"type": "string"
|
|
20966
|
+
}
|
|
20967
|
+
}
|
|
20968
|
+
}
|
|
20969
|
+
}
|
|
20970
|
+
}
|
|
20971
|
+
},
|
|
20972
|
+
"responses": {
|
|
20973
|
+
"200": {
|
|
20974
|
+
"description": "Success"
|
|
20975
|
+
},
|
|
20976
|
+
"401": {
|
|
20977
|
+
"description": "Unauthenticated"
|
|
20978
|
+
},
|
|
20979
|
+
"403": {
|
|
20980
|
+
"description": "Forbidden, or the plan does not include this"
|
|
20981
|
+
},
|
|
20982
|
+
"404": {
|
|
20983
|
+
"description": "Not found"
|
|
20984
|
+
}
|
|
20985
|
+
}
|
|
20986
|
+
}
|
|
20987
|
+
},
|
|
20988
|
+
"/v1/org/kek-custody/reconstruct": {
|
|
20989
|
+
"get": {
|
|
20990
|
+
"tags": [
|
|
20991
|
+
"Org"
|
|
20992
|
+
],
|
|
20993
|
+
"summary": "list org env vars",
|
|
20994
|
+
"operationId": "list_org_env_vars",
|
|
20995
|
+
"responses": {
|
|
20996
|
+
"200": {
|
|
20997
|
+
"description": "Success"
|
|
20998
|
+
},
|
|
20999
|
+
"401": {
|
|
21000
|
+
"description": "Unauthenticated"
|
|
21001
|
+
},
|
|
21002
|
+
"403": {
|
|
21003
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21004
|
+
},
|
|
21005
|
+
"404": {
|
|
21006
|
+
"description": "Not found"
|
|
21007
|
+
}
|
|
21008
|
+
}
|
|
21009
|
+
},
|
|
21010
|
+
"post": {
|
|
21011
|
+
"tags": [
|
|
21012
|
+
"Org"
|
|
21013
|
+
],
|
|
21014
|
+
"summary": "TEE-bound reconstruction request",
|
|
21015
|
+
"operationId": "reconstruct",
|
|
21016
|
+
"requestBody": {
|
|
21017
|
+
"required": true,
|
|
21018
|
+
"content": {
|
|
21019
|
+
"application/json": {
|
|
21020
|
+
"schema": {
|
|
21021
|
+
"type": "object",
|
|
21022
|
+
"required": [
|
|
21023
|
+
"approval_id",
|
|
21024
|
+
"action"
|
|
21025
|
+
],
|
|
21026
|
+
"properties": {
|
|
21027
|
+
"approval_id": {
|
|
21028
|
+
"type": "object"
|
|
21029
|
+
},
|
|
21030
|
+
"client_share": {
|
|
21031
|
+
"type": "string"
|
|
21032
|
+
},
|
|
21033
|
+
"action": {
|
|
21034
|
+
"type": "object",
|
|
21035
|
+
"additionalProperties": true
|
|
21036
|
+
}
|
|
21037
|
+
}
|
|
21038
|
+
}
|
|
21039
|
+
}
|
|
21040
|
+
}
|
|
21041
|
+
},
|
|
21042
|
+
"responses": {
|
|
21043
|
+
"200": {
|
|
21044
|
+
"description": "Success"
|
|
21045
|
+
},
|
|
21046
|
+
"401": {
|
|
21047
|
+
"description": "Unauthenticated"
|
|
21048
|
+
},
|
|
21049
|
+
"403": {
|
|
21050
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21051
|
+
},
|
|
21052
|
+
"404": {
|
|
21053
|
+
"description": "Not found"
|
|
21054
|
+
}
|
|
21055
|
+
}
|
|
21056
|
+
}
|
|
21057
|
+
},
|
|
21058
|
+
"/v1/org/settings": {
|
|
21059
|
+
"get": {
|
|
21060
|
+
"tags": [
|
|
21061
|
+
"Org"
|
|
21062
|
+
],
|
|
21063
|
+
"summary": "list org settings",
|
|
21064
|
+
"operationId": "list_org_settings",
|
|
21065
|
+
"responses": {
|
|
21066
|
+
"200": {
|
|
21067
|
+
"description": "Success"
|
|
21068
|
+
},
|
|
21069
|
+
"401": {
|
|
21070
|
+
"description": "Unauthenticated"
|
|
21071
|
+
},
|
|
21072
|
+
"403": {
|
|
21073
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21074
|
+
},
|
|
21075
|
+
"404": {
|
|
21076
|
+
"description": "Not found"
|
|
21077
|
+
}
|
|
21078
|
+
}
|
|
21079
|
+
},
|
|
21080
|
+
"patch": {
|
|
21081
|
+
"tags": [
|
|
21082
|
+
"Org"
|
|
21083
|
+
],
|
|
21084
|
+
"summary": "update org setting",
|
|
21085
|
+
"operationId": "update_org_setting",
|
|
21086
|
+
"requestBody": {
|
|
21087
|
+
"required": true,
|
|
21088
|
+
"content": {
|
|
21089
|
+
"application/json": {
|
|
21090
|
+
"schema": {
|
|
21091
|
+
"type": "object",
|
|
21092
|
+
"required": [
|
|
21093
|
+
"key",
|
|
21094
|
+
"value"
|
|
21095
|
+
],
|
|
21096
|
+
"properties": {
|
|
21097
|
+
"key": {
|
|
21098
|
+
"type": "string"
|
|
21099
|
+
},
|
|
21100
|
+
"value": {
|
|
21101
|
+
"type": "string"
|
|
21102
|
+
},
|
|
21103
|
+
"approval_id": {
|
|
21104
|
+
"type": "string",
|
|
21105
|
+
"format": "uuid"
|
|
21106
|
+
}
|
|
21107
|
+
}
|
|
21108
|
+
}
|
|
21109
|
+
}
|
|
21110
|
+
}
|
|
21111
|
+
},
|
|
21112
|
+
"responses": {
|
|
21113
|
+
"200": {
|
|
21114
|
+
"description": "Success"
|
|
21115
|
+
},
|
|
21116
|
+
"401": {
|
|
21117
|
+
"description": "Unauthenticated"
|
|
21118
|
+
},
|
|
21119
|
+
"403": {
|
|
21120
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21121
|
+
},
|
|
21122
|
+
"404": {
|
|
21123
|
+
"description": "Not found"
|
|
21124
|
+
}
|
|
21125
|
+
}
|
|
21126
|
+
}
|
|
21127
|
+
},
|
|
21128
|
+
"/v1/platform/apps/by-slug/{slug}/branding": {
|
|
21129
|
+
"parameters": [
|
|
21130
|
+
{
|
|
21131
|
+
"name": "slug",
|
|
21132
|
+
"in": "path",
|
|
21133
|
+
"required": true,
|
|
21134
|
+
"schema": {
|
|
21135
|
+
"type": "string"
|
|
21136
|
+
}
|
|
21137
|
+
}
|
|
21138
|
+
],
|
|
21139
|
+
"get": {
|
|
21140
|
+
"tags": [
|
|
21141
|
+
"Platform"
|
|
21142
|
+
],
|
|
21143
|
+
"summary": "Public, returns app name + logo.",
|
|
21144
|
+
"operationId": "app_branding",
|
|
21145
|
+
"security": [],
|
|
21146
|
+
"responses": {
|
|
21147
|
+
"200": {
|
|
21148
|
+
"description": "Success"
|
|
21149
|
+
},
|
|
21150
|
+
"404": {
|
|
21151
|
+
"description": "Not found"
|
|
21152
|
+
}
|
|
21153
|
+
}
|
|
21154
|
+
}
|
|
21155
|
+
},
|
|
21156
|
+
"/v1/platform/apps/{app_id}/automations": {
|
|
21157
|
+
"parameters": [
|
|
21158
|
+
{
|
|
21159
|
+
"name": "app_id",
|
|
21160
|
+
"in": "path",
|
|
21161
|
+
"required": true,
|
|
21162
|
+
"schema": {
|
|
21163
|
+
"type": "string"
|
|
21164
|
+
}
|
|
21165
|
+
}
|
|
21166
|
+
],
|
|
21167
|
+
"get": {
|
|
21168
|
+
"tags": [
|
|
21169
|
+
"Platform"
|
|
21170
|
+
],
|
|
21171
|
+
"summary": "list platform automations",
|
|
21172
|
+
"operationId": "list_platform_automations",
|
|
21173
|
+
"responses": {
|
|
21174
|
+
"200": {
|
|
21175
|
+
"description": "Success"
|
|
21176
|
+
},
|
|
21177
|
+
"401": {
|
|
21178
|
+
"description": "Unauthenticated"
|
|
21179
|
+
},
|
|
21180
|
+
"403": {
|
|
21181
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21182
|
+
},
|
|
21183
|
+
"404": {
|
|
21184
|
+
"description": "Not found"
|
|
21185
|
+
}
|
|
21186
|
+
}
|
|
21187
|
+
},
|
|
21188
|
+
"post": {
|
|
21189
|
+
"tags": [
|
|
21190
|
+
"Platform"
|
|
21191
|
+
],
|
|
21192
|
+
"summary": "upsert user",
|
|
21193
|
+
"operationId": "upsert_user",
|
|
21194
|
+
"requestBody": {
|
|
21195
|
+
"required": true,
|
|
21196
|
+
"content": {
|
|
21197
|
+
"application/json": {
|
|
21198
|
+
"schema": {
|
|
21199
|
+
"type": "object",
|
|
21200
|
+
"properties": {
|
|
21201
|
+
"subject_token": {
|
|
21202
|
+
"type": "string"
|
|
21203
|
+
},
|
|
21204
|
+
"subject_token_type": {
|
|
21205
|
+
"type": "string"
|
|
21206
|
+
},
|
|
21207
|
+
"email": {
|
|
21208
|
+
"type": "string"
|
|
21209
|
+
},
|
|
21210
|
+
"display_name": {
|
|
21211
|
+
"type": "string"
|
|
21212
|
+
},
|
|
21213
|
+
"siwe_message": {
|
|
21214
|
+
"type": "string"
|
|
21215
|
+
},
|
|
21216
|
+
"siwe_signature": {
|
|
21217
|
+
"type": "string"
|
|
21218
|
+
},
|
|
21219
|
+
"return_to": {
|
|
21220
|
+
"type": "string"
|
|
21221
|
+
},
|
|
21222
|
+
"create_sub_org": {
|
|
21223
|
+
"type": "boolean"
|
|
21224
|
+
},
|
|
21225
|
+
"app_id": {
|
|
21226
|
+
"type": "object"
|
|
21227
|
+
}
|
|
21228
|
+
}
|
|
21229
|
+
}
|
|
21230
|
+
}
|
|
21231
|
+
}
|
|
21232
|
+
},
|
|
21233
|
+
"responses": {
|
|
21234
|
+
"200": {
|
|
21235
|
+
"description": "Success"
|
|
21236
|
+
},
|
|
21237
|
+
"401": {
|
|
21238
|
+
"description": "Unauthenticated"
|
|
21239
|
+
},
|
|
21240
|
+
"403": {
|
|
21241
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21242
|
+
},
|
|
21243
|
+
"404": {
|
|
21244
|
+
"description": "Not found"
|
|
21245
|
+
}
|
|
21246
|
+
}
|
|
21247
|
+
}
|
|
21248
|
+
},
|
|
21249
|
+
"/v1/platform/connected-apps/{connection_id}/unlock-resources": {
|
|
21250
|
+
"parameters": [
|
|
21251
|
+
{
|
|
21252
|
+
"name": "connection_id",
|
|
21253
|
+
"in": "path",
|
|
21254
|
+
"required": true,
|
|
21255
|
+
"schema": {
|
|
21256
|
+
"type": "string"
|
|
21257
|
+
}
|
|
21258
|
+
}
|
|
21259
|
+
],
|
|
21260
|
+
"post": {
|
|
21261
|
+
"tags": [
|
|
21262
|
+
"Platform"
|
|
21263
|
+
],
|
|
21264
|
+
"summary": "Unlocks platform-locked resources for a disconnected (or active) connection the user owns.",
|
|
21265
|
+
"operationId": "unlock_connection_resources",
|
|
21266
|
+
"responses": {
|
|
21267
|
+
"200": {
|
|
21268
|
+
"description": "Success"
|
|
21269
|
+
},
|
|
21270
|
+
"401": {
|
|
21271
|
+
"description": "Unauthenticated"
|
|
21272
|
+
},
|
|
21273
|
+
"403": {
|
|
21274
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21275
|
+
},
|
|
21276
|
+
"404": {
|
|
21277
|
+
"description": "Not found"
|
|
21278
|
+
}
|
|
21279
|
+
}
|
|
21280
|
+
}
|
|
21281
|
+
},
|
|
21282
|
+
"/v1/platform/connections/{connection_id}/memory": {
|
|
21283
|
+
"parameters": [
|
|
21284
|
+
{
|
|
21285
|
+
"name": "connection_id",
|
|
21286
|
+
"in": "path",
|
|
21287
|
+
"required": true,
|
|
21288
|
+
"schema": {
|
|
21289
|
+
"type": "string"
|
|
21290
|
+
}
|
|
21291
|
+
}
|
|
21292
|
+
],
|
|
21293
|
+
"get": {
|
|
21294
|
+
"tags": [
|
|
21295
|
+
"Platform"
|
|
21296
|
+
],
|
|
21297
|
+
"summary": "list connection memory namespaces",
|
|
21298
|
+
"operationId": "list_connection_memory_namespaces",
|
|
21299
|
+
"responses": {
|
|
21300
|
+
"200": {
|
|
21301
|
+
"description": "Success"
|
|
21302
|
+
},
|
|
21303
|
+
"401": {
|
|
21304
|
+
"description": "Unauthenticated"
|
|
21305
|
+
},
|
|
21306
|
+
"403": {
|
|
21307
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21308
|
+
},
|
|
21309
|
+
"404": {
|
|
21310
|
+
"description": "Not found"
|
|
21311
|
+
}
|
|
21312
|
+
}
|
|
21313
|
+
}
|
|
21314
|
+
},
|
|
21315
|
+
"/v1/platform/connections/{connection_id}/memory/{namespace}": {
|
|
21316
|
+
"parameters": [
|
|
21317
|
+
{
|
|
21318
|
+
"name": "connection_id",
|
|
21319
|
+
"in": "path",
|
|
21320
|
+
"required": true,
|
|
21321
|
+
"schema": {
|
|
21322
|
+
"type": "string"
|
|
21323
|
+
}
|
|
21324
|
+
},
|
|
21325
|
+
{
|
|
21326
|
+
"name": "namespace",
|
|
21327
|
+
"in": "path",
|
|
21328
|
+
"required": true,
|
|
21329
|
+
"schema": {
|
|
21330
|
+
"type": "string"
|
|
21331
|
+
}
|
|
21332
|
+
}
|
|
21333
|
+
],
|
|
21334
|
+
"get": {
|
|
21335
|
+
"tags": [
|
|
21336
|
+
"Platform"
|
|
21337
|
+
],
|
|
21338
|
+
"summary": "list connection memory entries",
|
|
21339
|
+
"operationId": "list_connection_memory_entries",
|
|
21340
|
+
"responses": {
|
|
21341
|
+
"200": {
|
|
21342
|
+
"description": "Success"
|
|
21343
|
+
},
|
|
21344
|
+
"401": {
|
|
21345
|
+
"description": "Unauthenticated"
|
|
21346
|
+
},
|
|
21347
|
+
"403": {
|
|
21348
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21349
|
+
},
|
|
21350
|
+
"404": {
|
|
21351
|
+
"description": "Not found"
|
|
21352
|
+
}
|
|
21353
|
+
}
|
|
21354
|
+
}
|
|
21355
|
+
},
|
|
21356
|
+
"/v1/platform/connections/{connection_id}/resources": {
|
|
21357
|
+
"parameters": [
|
|
21358
|
+
{
|
|
21359
|
+
"name": "connection_id",
|
|
21360
|
+
"in": "path",
|
|
21361
|
+
"required": true,
|
|
21362
|
+
"schema": {
|
|
21363
|
+
"type": "string"
|
|
21364
|
+
}
|
|
21365
|
+
}
|
|
21366
|
+
],
|
|
21367
|
+
"get": {
|
|
21368
|
+
"tags": [
|
|
21369
|
+
"Platform"
|
|
21370
|
+
],
|
|
21371
|
+
"summary": "list connection resources",
|
|
21372
|
+
"operationId": "list_connection_resources",
|
|
21373
|
+
"responses": {
|
|
21374
|
+
"200": {
|
|
21375
|
+
"description": "Success"
|
|
21376
|
+
},
|
|
21377
|
+
"401": {
|
|
21378
|
+
"description": "Unauthenticated"
|
|
21379
|
+
},
|
|
21380
|
+
"403": {
|
|
21381
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21382
|
+
},
|
|
21383
|
+
"404": {
|
|
21384
|
+
"description": "Not found"
|
|
21385
|
+
}
|
|
21386
|
+
}
|
|
21387
|
+
},
|
|
21388
|
+
"post": {
|
|
21389
|
+
"tags": [
|
|
21390
|
+
"Platform"
|
|
21391
|
+
],
|
|
21392
|
+
"summary": "create app policy",
|
|
21393
|
+
"operationId": "create_app_policy",
|
|
21394
|
+
"requestBody": {
|
|
21395
|
+
"required": true,
|
|
21396
|
+
"content": {
|
|
21397
|
+
"application/json": {
|
|
21398
|
+
"schema": {
|
|
21399
|
+
"type": "object",
|
|
21400
|
+
"properties": {
|
|
21401
|
+
"user_id": {
|
|
21402
|
+
"type": "object"
|
|
21403
|
+
},
|
|
21404
|
+
"to_allowlist": {
|
|
21405
|
+
"type": "array",
|
|
21406
|
+
"items": {
|
|
21407
|
+
"type": "string"
|
|
21408
|
+
}
|
|
21409
|
+
},
|
|
21410
|
+
"to_denylist": {
|
|
21411
|
+
"type": "array",
|
|
21412
|
+
"items": {
|
|
21413
|
+
"type": "string"
|
|
21414
|
+
}
|
|
21415
|
+
},
|
|
21416
|
+
"max_value_per_tx_eth": {
|
|
21417
|
+
"type": "string"
|
|
21418
|
+
},
|
|
21419
|
+
"daily_limit_eth": {
|
|
21420
|
+
"type": "string"
|
|
21421
|
+
},
|
|
21422
|
+
"allowed_chains": {
|
|
21423
|
+
"type": "array",
|
|
21424
|
+
"items": {
|
|
21425
|
+
"type": "string"
|
|
21426
|
+
}
|
|
21427
|
+
},
|
|
21428
|
+
"allowed_tokens": {
|
|
21429
|
+
"type": "array",
|
|
21430
|
+
"items": {
|
|
21431
|
+
"type": "string"
|
|
21432
|
+
}
|
|
21433
|
+
},
|
|
21434
|
+
"max_transactions_per_day": {
|
|
21435
|
+
"type": "integer"
|
|
21436
|
+
},
|
|
21437
|
+
"human_factor_auth": {
|
|
21438
|
+
"type": "object",
|
|
21439
|
+
"additionalProperties": true
|
|
21440
|
+
}
|
|
21441
|
+
}
|
|
21442
|
+
}
|
|
21443
|
+
}
|
|
21444
|
+
}
|
|
21445
|
+
},
|
|
21446
|
+
"responses": {
|
|
21447
|
+
"200": {
|
|
21448
|
+
"description": "Success"
|
|
21449
|
+
},
|
|
21450
|
+
"401": {
|
|
21451
|
+
"description": "Unauthenticated"
|
|
21452
|
+
},
|
|
21453
|
+
"403": {
|
|
21454
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21455
|
+
},
|
|
21456
|
+
"404": {
|
|
21457
|
+
"description": "Not found"
|
|
21458
|
+
}
|
|
21459
|
+
}
|
|
21460
|
+
}
|
|
21461
|
+
},
|
|
21462
|
+
"/v1/platform/link-account": {
|
|
21463
|
+
"post": {
|
|
21464
|
+
"tags": [
|
|
21465
|
+
"Platform"
|
|
21466
|
+
],
|
|
21467
|
+
"summary": "Authenticated user links their account to a platform app. Used by the dashboard `/connect/{slug}/link` consent flow for cross-org users.",
|
|
21468
|
+
"operationId": "link_account",
|
|
21469
|
+
"requestBody": {
|
|
21470
|
+
"required": true,
|
|
21471
|
+
"content": {
|
|
21472
|
+
"application/json": {
|
|
21473
|
+
"schema": {
|
|
21474
|
+
"type": "object",
|
|
21475
|
+
"required": [
|
|
21476
|
+
"client_id"
|
|
21477
|
+
],
|
|
21478
|
+
"properties": {
|
|
21479
|
+
"client_id": {
|
|
21480
|
+
"type": "string"
|
|
21481
|
+
}
|
|
21482
|
+
}
|
|
21483
|
+
}
|
|
21484
|
+
}
|
|
21485
|
+
}
|
|
21486
|
+
},
|
|
21487
|
+
"responses": {
|
|
21488
|
+
"200": {
|
|
21489
|
+
"description": "Success"
|
|
21490
|
+
},
|
|
21491
|
+
"401": {
|
|
21492
|
+
"description": "Unauthenticated"
|
|
21493
|
+
},
|
|
21494
|
+
"403": {
|
|
21495
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21496
|
+
},
|
|
21497
|
+
"404": {
|
|
21498
|
+
"description": "Not found"
|
|
21499
|
+
}
|
|
21500
|
+
}
|
|
21501
|
+
}
|
|
21502
|
+
},
|
|
21503
|
+
"/v1/platform/orphaned-resources": {
|
|
21504
|
+
"get": {
|
|
21505
|
+
"tags": [
|
|
21506
|
+
"Platform"
|
|
21507
|
+
],
|
|
21508
|
+
"summary": "platform-locked agents/vaults with no active connection.",
|
|
21509
|
+
"operationId": "list_orphaned_platform_resources",
|
|
21510
|
+
"responses": {
|
|
21511
|
+
"200": {
|
|
21512
|
+
"description": "Success"
|
|
21513
|
+
},
|
|
21514
|
+
"401": {
|
|
21515
|
+
"description": "Unauthenticated"
|
|
21516
|
+
},
|
|
21517
|
+
"403": {
|
|
21518
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21519
|
+
},
|
|
21520
|
+
"404": {
|
|
21521
|
+
"description": "Not found"
|
|
21522
|
+
}
|
|
21523
|
+
}
|
|
21524
|
+
}
|
|
21525
|
+
},
|
|
21526
|
+
"/v1/reports/request": {
|
|
21527
|
+
"post": {
|
|
21528
|
+
"tags": [
|
|
21529
|
+
"Reports"
|
|
21530
|
+
],
|
|
21531
|
+
"summary": "Public (no auth). Submits lead info, sends email with download link.",
|
|
21532
|
+
"operationId": "request_report",
|
|
21533
|
+
"security": [],
|
|
21534
|
+
"requestBody": {
|
|
21535
|
+
"required": true,
|
|
21536
|
+
"content": {
|
|
21537
|
+
"application/json": {
|
|
21538
|
+
"schema": {
|
|
21539
|
+
"type": "object",
|
|
21540
|
+
"required": [
|
|
21541
|
+
"first_name",
|
|
21542
|
+
"last_name",
|
|
21543
|
+
"email",
|
|
21544
|
+
"company"
|
|
21545
|
+
],
|
|
21546
|
+
"properties": {
|
|
21547
|
+
"first_name": {
|
|
21548
|
+
"type": "string"
|
|
21549
|
+
},
|
|
21550
|
+
"last_name": {
|
|
21551
|
+
"type": "string"
|
|
21552
|
+
},
|
|
21553
|
+
"email": {
|
|
21554
|
+
"type": "string"
|
|
21555
|
+
},
|
|
21556
|
+
"company": {
|
|
21557
|
+
"type": "string"
|
|
21558
|
+
},
|
|
21559
|
+
"job_title": {
|
|
21560
|
+
"type": "string"
|
|
21561
|
+
},
|
|
21562
|
+
"report_slug": {
|
|
21563
|
+
"type": "string"
|
|
21564
|
+
},
|
|
21565
|
+
"marketing_consent": {
|
|
21566
|
+
"type": "boolean"
|
|
21567
|
+
}
|
|
21568
|
+
}
|
|
21569
|
+
}
|
|
21570
|
+
}
|
|
21571
|
+
}
|
|
21572
|
+
},
|
|
21573
|
+
"responses": {
|
|
21574
|
+
"200": {
|
|
21575
|
+
"description": "Success"
|
|
21576
|
+
},
|
|
21577
|
+
"404": {
|
|
21578
|
+
"description": "Not found"
|
|
21579
|
+
}
|
|
21580
|
+
}
|
|
21581
|
+
}
|
|
21582
|
+
},
|
|
21583
|
+
"/v1/runtimes/{runtime_id}/chat/conversations": {
|
|
21584
|
+
"parameters": [
|
|
21585
|
+
{
|
|
21586
|
+
"name": "runtime_id",
|
|
21587
|
+
"in": "path",
|
|
21588
|
+
"required": true,
|
|
21589
|
+
"schema": {
|
|
21590
|
+
"type": "string"
|
|
21591
|
+
}
|
|
21592
|
+
}
|
|
21593
|
+
],
|
|
21594
|
+
"get": {
|
|
21595
|
+
"tags": [
|
|
21596
|
+
"Runtimes"
|
|
21597
|
+
],
|
|
21598
|
+
"summary": "list runtime chat conversations",
|
|
21599
|
+
"operationId": "list_runtime_chat_conversations",
|
|
21600
|
+
"responses": {
|
|
21601
|
+
"200": {
|
|
21602
|
+
"description": "Success"
|
|
21603
|
+
},
|
|
21604
|
+
"401": {
|
|
21605
|
+
"description": "Unauthenticated"
|
|
21606
|
+
},
|
|
21607
|
+
"403": {
|
|
21608
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21609
|
+
},
|
|
21610
|
+
"404": {
|
|
21611
|
+
"description": "Not found"
|
|
21612
|
+
}
|
|
21613
|
+
}
|
|
21614
|
+
}
|
|
21615
|
+
},
|
|
21616
|
+
"/v1/runtimes/{runtime_id}/chat/conversations/{conversation_id}": {
|
|
21617
|
+
"parameters": [
|
|
21618
|
+
{
|
|
21619
|
+
"name": "runtime_id",
|
|
21620
|
+
"in": "path",
|
|
21621
|
+
"required": true,
|
|
21622
|
+
"schema": {
|
|
21623
|
+
"type": "string"
|
|
21624
|
+
}
|
|
21625
|
+
},
|
|
21626
|
+
{
|
|
21627
|
+
"name": "conversation_id",
|
|
21628
|
+
"in": "path",
|
|
21629
|
+
"required": true,
|
|
21630
|
+
"schema": {
|
|
21631
|
+
"type": "string"
|
|
21632
|
+
}
|
|
21633
|
+
}
|
|
21634
|
+
],
|
|
21635
|
+
"delete": {
|
|
21636
|
+
"tags": [
|
|
21637
|
+
"Runtimes"
|
|
21638
|
+
],
|
|
21639
|
+
"summary": "Archives a runtime chat session so the next message starts a fresh conversation.",
|
|
21640
|
+
"operationId": "archive_runtime_chat_conversation",
|
|
21641
|
+
"responses": {
|
|
21642
|
+
"200": {
|
|
21643
|
+
"description": "Success"
|
|
21644
|
+
},
|
|
21645
|
+
"401": {
|
|
21646
|
+
"description": "Unauthenticated"
|
|
21647
|
+
},
|
|
21648
|
+
"403": {
|
|
21649
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21650
|
+
},
|
|
21651
|
+
"404": {
|
|
21652
|
+
"description": "Not found"
|
|
21653
|
+
}
|
|
21654
|
+
}
|
|
21655
|
+
},
|
|
21656
|
+
"get": {
|
|
21657
|
+
"tags": [
|
|
21658
|
+
"Runtimes"
|
|
21659
|
+
],
|
|
21660
|
+
"summary": "get runtime chat conversation",
|
|
21661
|
+
"operationId": "get_runtime_chat_conversation",
|
|
21662
|
+
"responses": {
|
|
21663
|
+
"200": {
|
|
21664
|
+
"description": "Success"
|
|
21665
|
+
},
|
|
21666
|
+
"401": {
|
|
21667
|
+
"description": "Unauthenticated"
|
|
21668
|
+
},
|
|
21669
|
+
"403": {
|
|
21670
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21671
|
+
},
|
|
21672
|
+
"404": {
|
|
21673
|
+
"description": "Not found"
|
|
21674
|
+
}
|
|
21675
|
+
}
|
|
21676
|
+
}
|
|
21677
|
+
},
|
|
21678
|
+
"/v1/runtimes/{runtime_id}/chat/diagnostics": {
|
|
21679
|
+
"parameters": [
|
|
21680
|
+
{
|
|
21681
|
+
"name": "runtime_id",
|
|
21682
|
+
"in": "path",
|
|
21683
|
+
"required": true,
|
|
21684
|
+
"schema": {
|
|
21685
|
+
"type": "string"
|
|
21686
|
+
}
|
|
21687
|
+
}
|
|
21688
|
+
],
|
|
21689
|
+
"get": {
|
|
21690
|
+
"tags": [
|
|
21691
|
+
"Runtimes"
|
|
21692
|
+
],
|
|
21693
|
+
"summary": "Human-only snapshot of chat auth wiring: which platform env vars Vault will inject on the next Start and which upstream URL chat proxies to.",
|
|
21694
|
+
"operationId": "runtime_chat_diagnostics",
|
|
21695
|
+
"responses": {
|
|
21696
|
+
"200": {
|
|
21697
|
+
"description": "Success"
|
|
21698
|
+
},
|
|
21699
|
+
"401": {
|
|
21700
|
+
"description": "Unauthenticated"
|
|
21701
|
+
},
|
|
21702
|
+
"403": {
|
|
21703
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21704
|
+
},
|
|
21705
|
+
"404": {
|
|
21706
|
+
"description": "Not found"
|
|
21707
|
+
}
|
|
21708
|
+
}
|
|
21709
|
+
}
|
|
21710
|
+
},
|
|
21711
|
+
"/v1/runtimes/{runtime_id}/chat/unlock": {
|
|
21712
|
+
"parameters": [
|
|
21713
|
+
{
|
|
21714
|
+
"name": "runtime_id",
|
|
21715
|
+
"in": "path",
|
|
21716
|
+
"required": true,
|
|
21717
|
+
"schema": {
|
|
21718
|
+
"type": "string"
|
|
21719
|
+
}
|
|
21720
|
+
}
|
|
21721
|
+
],
|
|
21722
|
+
"post": {
|
|
21723
|
+
"tags": [
|
|
21724
|
+
"Runtimes"
|
|
21725
|
+
],
|
|
21726
|
+
"summary": "Step-up (password or passkey reauth token, purpose=`runtime_chat`) unlocks dashboard runtime chat for 15 minutes — same trust bar as Shell/Logs.",
|
|
21727
|
+
"operationId": "unlock_runtime_chat",
|
|
21728
|
+
"responses": {
|
|
21729
|
+
"200": {
|
|
21730
|
+
"description": "Success"
|
|
21731
|
+
},
|
|
21732
|
+
"401": {
|
|
21733
|
+
"description": "Unauthenticated"
|
|
21734
|
+
},
|
|
21735
|
+
"403": {
|
|
21736
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21737
|
+
},
|
|
21738
|
+
"404": {
|
|
21739
|
+
"description": "Not found"
|
|
21740
|
+
}
|
|
21741
|
+
}
|
|
21742
|
+
}
|
|
21743
|
+
},
|
|
21744
|
+
"/v1/runtimes/{runtime_id}/logs/stream": {
|
|
21745
|
+
"parameters": [
|
|
21746
|
+
{
|
|
21747
|
+
"name": "runtime_id",
|
|
21748
|
+
"in": "path",
|
|
21749
|
+
"required": true,
|
|
21750
|
+
"schema": {
|
|
21751
|
+
"type": "string"
|
|
21752
|
+
}
|
|
21753
|
+
}
|
|
21754
|
+
],
|
|
21755
|
+
"get": {
|
|
21756
|
+
"tags": [
|
|
21757
|
+
"Runtimes"
|
|
21758
|
+
],
|
|
21759
|
+
"summary": "SSE live log streaming",
|
|
21760
|
+
"operationId": "stream_runtime_logs",
|
|
21761
|
+
"responses": {
|
|
21762
|
+
"200": {
|
|
21763
|
+
"description": "Success"
|
|
21764
|
+
},
|
|
21765
|
+
"401": {
|
|
21766
|
+
"description": "Unauthenticated"
|
|
21767
|
+
},
|
|
21768
|
+
"403": {
|
|
21769
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21770
|
+
},
|
|
21771
|
+
"404": {
|
|
21772
|
+
"description": "Not found"
|
|
21773
|
+
}
|
|
21774
|
+
}
|
|
21775
|
+
}
|
|
21776
|
+
},
|
|
21777
|
+
"/v1/runtimes/{runtime_id}/logs/unlock": {
|
|
21778
|
+
"parameters": [
|
|
21779
|
+
{
|
|
21780
|
+
"name": "runtime_id",
|
|
21781
|
+
"in": "path",
|
|
21782
|
+
"required": true,
|
|
21783
|
+
"schema": {
|
|
21784
|
+
"type": "string"
|
|
21785
|
+
}
|
|
21786
|
+
}
|
|
21787
|
+
],
|
|
21788
|
+
"post": {
|
|
21789
|
+
"tags": [
|
|
21790
|
+
"Runtimes"
|
|
21791
|
+
],
|
|
21792
|
+
"summary": "Step-up (password or passkey reauth token) unlocks log fetch/stream for 15 minutes.",
|
|
21793
|
+
"operationId": "unlock_runtime_logs",
|
|
21794
|
+
"responses": {
|
|
21795
|
+
"200": {
|
|
21796
|
+
"description": "Success"
|
|
21797
|
+
},
|
|
21798
|
+
"401": {
|
|
21799
|
+
"description": "Unauthenticated"
|
|
21800
|
+
},
|
|
21801
|
+
"403": {
|
|
21802
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21803
|
+
},
|
|
21804
|
+
"404": {
|
|
21805
|
+
"description": "Not found"
|
|
21806
|
+
}
|
|
21807
|
+
}
|
|
21808
|
+
}
|
|
21809
|
+
},
|
|
21810
|
+
"/v1/runtimes/{runtime_id}/rebuild": {
|
|
21811
|
+
"parameters": [
|
|
21812
|
+
{
|
|
21813
|
+
"name": "runtime_id",
|
|
21814
|
+
"in": "path",
|
|
21815
|
+
"required": true,
|
|
21816
|
+
"schema": {
|
|
21817
|
+
"type": "string"
|
|
21818
|
+
}
|
|
21819
|
+
}
|
|
21820
|
+
],
|
|
21821
|
+
"post": {
|
|
21822
|
+
"tags": [
|
|
21823
|
+
"Runtimes"
|
|
21824
|
+
],
|
|
21825
|
+
"summary": "Phase 1: invalidate the cached image tag and return the runtime to `stopped`. Next `start` re-pulls the image; for `source_repo` runtimes the entrypoi",
|
|
21826
|
+
"operationId": "rebuild_runtime",
|
|
21827
|
+
"responses": {
|
|
21828
|
+
"200": {
|
|
21829
|
+
"description": "Success"
|
|
21830
|
+
},
|
|
21831
|
+
"401": {
|
|
21832
|
+
"description": "Unauthenticated"
|
|
21833
|
+
},
|
|
21834
|
+
"403": {
|
|
21835
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21836
|
+
},
|
|
21837
|
+
"404": {
|
|
21838
|
+
"description": "Not found"
|
|
21839
|
+
}
|
|
21840
|
+
}
|
|
21841
|
+
}
|
|
21842
|
+
},
|
|
21843
|
+
"/v1/runtimes/{runtime_id}/restart": {
|
|
21844
|
+
"parameters": [
|
|
21845
|
+
{
|
|
21846
|
+
"name": "runtime_id",
|
|
21847
|
+
"in": "path",
|
|
21848
|
+
"required": true,
|
|
21849
|
+
"schema": {
|
|
21850
|
+
"type": "string"
|
|
21851
|
+
}
|
|
21852
|
+
}
|
|
21853
|
+
],
|
|
21854
|
+
"post": {
|
|
21855
|
+
"tags": [
|
|
21856
|
+
"Runtimes"
|
|
21857
|
+
],
|
|
21858
|
+
"summary": "Force stop (best-effort) then start. Recovers stale `running` rows and proxy timeouts where the client never received the start response.",
|
|
21859
|
+
"operationId": "restart_runtime",
|
|
21860
|
+
"responses": {
|
|
21861
|
+
"200": {
|
|
21862
|
+
"description": "Success"
|
|
21863
|
+
},
|
|
21864
|
+
"401": {
|
|
21865
|
+
"description": "Unauthenticated"
|
|
21866
|
+
},
|
|
21867
|
+
"403": {
|
|
21868
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21869
|
+
},
|
|
21870
|
+
"404": {
|
|
21871
|
+
"description": "Not found"
|
|
21872
|
+
}
|
|
21873
|
+
}
|
|
21874
|
+
}
|
|
21875
|
+
},
|
|
21876
|
+
"/v1/vaults/{vault_id}/secret-version-disable/{*path_and_version}": {
|
|
21877
|
+
"parameters": [
|
|
21878
|
+
{
|
|
21879
|
+
"name": "vault_id",
|
|
21880
|
+
"in": "path",
|
|
21881
|
+
"required": true,
|
|
21882
|
+
"schema": {
|
|
21883
|
+
"type": "string"
|
|
21884
|
+
}
|
|
21885
|
+
}
|
|
21886
|
+
],
|
|
21887
|
+
"post": {
|
|
21888
|
+
"tags": [
|
|
21889
|
+
"Vaults"
|
|
21890
|
+
],
|
|
21891
|
+
"summary": "Disable a specific version so it can no longer be read (but is retained for audit).",
|
|
21892
|
+
"operationId": "disable_version",
|
|
21893
|
+
"responses": {
|
|
21894
|
+
"200": {
|
|
21895
|
+
"description": "Success"
|
|
21896
|
+
},
|
|
21897
|
+
"401": {
|
|
21898
|
+
"description": "Unauthenticated"
|
|
21899
|
+
},
|
|
21900
|
+
"403": {
|
|
21901
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21902
|
+
},
|
|
21903
|
+
"404": {
|
|
21904
|
+
"description": "Not found"
|
|
21905
|
+
}
|
|
21906
|
+
}
|
|
21907
|
+
}
|
|
21908
|
+
},
|
|
21909
|
+
"/v1/vaults/{vault_id}/secret-version/{*path_and_version}": {
|
|
21910
|
+
"parameters": [
|
|
21911
|
+
{
|
|
21912
|
+
"name": "vault_id",
|
|
21913
|
+
"in": "path",
|
|
21914
|
+
"required": true,
|
|
21915
|
+
"schema": {
|
|
21916
|
+
"type": "string"
|
|
21917
|
+
}
|
|
21918
|
+
}
|
|
21919
|
+
],
|
|
21920
|
+
"get": {
|
|
21921
|
+
"tags": [
|
|
21922
|
+
"Vaults"
|
|
21923
|
+
],
|
|
21924
|
+
"summary": "get secret version",
|
|
21925
|
+
"operationId": "get_secret_version",
|
|
21926
|
+
"responses": {
|
|
21927
|
+
"200": {
|
|
21928
|
+
"description": "Success"
|
|
21929
|
+
},
|
|
21930
|
+
"401": {
|
|
21931
|
+
"description": "Unauthenticated"
|
|
21932
|
+
},
|
|
21933
|
+
"403": {
|
|
21934
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21935
|
+
},
|
|
21936
|
+
"404": {
|
|
21937
|
+
"description": "Not found"
|
|
21938
|
+
}
|
|
21939
|
+
}
|
|
21940
|
+
}
|
|
21941
|
+
},
|
|
21942
|
+
"/v1/vaults/{vault_id}/unlock-platform": {
|
|
21943
|
+
"parameters": [
|
|
21944
|
+
{
|
|
21945
|
+
"name": "vault_id",
|
|
21946
|
+
"in": "path",
|
|
21947
|
+
"required": true,
|
|
21948
|
+
"schema": {
|
|
21949
|
+
"type": "string"
|
|
21950
|
+
}
|
|
21951
|
+
}
|
|
21952
|
+
],
|
|
21953
|
+
"post": {
|
|
21954
|
+
"tags": [
|
|
21955
|
+
"Vaults"
|
|
21956
|
+
],
|
|
21957
|
+
"summary": "unlock vault platform",
|
|
21958
|
+
"operationId": "unlock_vault_platform",
|
|
21959
|
+
"responses": {
|
|
21960
|
+
"200": {
|
|
21961
|
+
"description": "Success"
|
|
21962
|
+
},
|
|
21963
|
+
"401": {
|
|
21964
|
+
"description": "Unauthenticated"
|
|
21965
|
+
},
|
|
21966
|
+
"403": {
|
|
21967
|
+
"description": "Forbidden, or the plan does not include this"
|
|
21968
|
+
},
|
|
21969
|
+
"404": {
|
|
21970
|
+
"description": "Not found"
|
|
21971
|
+
}
|
|
21972
|
+
}
|
|
21973
|
+
}
|
|
21974
|
+
},
|
|
21975
|
+
"/v1/webinars/register": {
|
|
21976
|
+
"post": {
|
|
21977
|
+
"tags": [
|
|
21978
|
+
"Webinars"
|
|
21979
|
+
],
|
|
21980
|
+
"summary": "Public (no auth). Registers for a webinar, sends confirmation + calendar invite.",
|
|
21981
|
+
"operationId": "register_webinar",
|
|
21982
|
+
"security": [],
|
|
21983
|
+
"requestBody": {
|
|
21984
|
+
"required": true,
|
|
21985
|
+
"content": {
|
|
21986
|
+
"application/json": {
|
|
21987
|
+
"schema": {
|
|
21988
|
+
"type": "object",
|
|
21989
|
+
"required": [
|
|
21990
|
+
"first_name",
|
|
21991
|
+
"last_name",
|
|
21992
|
+
"email",
|
|
21993
|
+
"company"
|
|
21994
|
+
],
|
|
21995
|
+
"properties": {
|
|
21996
|
+
"first_name": {
|
|
21997
|
+
"type": "string"
|
|
21998
|
+
},
|
|
21999
|
+
"last_name": {
|
|
22000
|
+
"type": "string"
|
|
22001
|
+
},
|
|
22002
|
+
"email": {
|
|
22003
|
+
"type": "string"
|
|
22004
|
+
},
|
|
22005
|
+
"company": {
|
|
22006
|
+
"type": "string"
|
|
22007
|
+
},
|
|
22008
|
+
"job_title": {
|
|
22009
|
+
"type": "string"
|
|
22010
|
+
},
|
|
22011
|
+
"webinar_slug": {
|
|
22012
|
+
"type": "string"
|
|
22013
|
+
},
|
|
22014
|
+
"marketing_consent": {
|
|
22015
|
+
"type": "boolean"
|
|
22016
|
+
}
|
|
22017
|
+
}
|
|
22018
|
+
}
|
|
22019
|
+
}
|
|
22020
|
+
}
|
|
22021
|
+
},
|
|
22022
|
+
"responses": {
|
|
22023
|
+
"200": {
|
|
22024
|
+
"description": "Success"
|
|
22025
|
+
},
|
|
22026
|
+
"404": {
|
|
22027
|
+
"description": "Not found"
|
|
22028
|
+
}
|
|
22029
|
+
}
|
|
22030
|
+
}
|
|
22031
|
+
},
|
|
22032
|
+
"/v1/runtimes/templates": {
|
|
22033
|
+
"get": {
|
|
22034
|
+
"tags": [
|
|
22035
|
+
"Runtimes"
|
|
22036
|
+
],
|
|
22037
|
+
"summary": "The provisionable runtime templates, with licence and whether the agent needs its own vendor account",
|
|
22038
|
+
"operationId": "list_runtime_templates",
|
|
22039
|
+
"responses": {
|
|
22040
|
+
"200": {
|
|
22041
|
+
"description": "The template catalogue",
|
|
22042
|
+
"content": {
|
|
22043
|
+
"application/json": {
|
|
22044
|
+
"schema": {
|
|
22045
|
+
"type": "object",
|
|
22046
|
+
"properties": {
|
|
22047
|
+
"templates": {
|
|
22048
|
+
"type": "array",
|
|
22049
|
+
"items": {
|
|
22050
|
+
"type": "object",
|
|
22051
|
+
"properties": {
|
|
22052
|
+
"id": {
|
|
22053
|
+
"type": "string"
|
|
22054
|
+
},
|
|
22055
|
+
"description": {
|
|
22056
|
+
"type": "string"
|
|
22057
|
+
},
|
|
22058
|
+
"chat_capable": {
|
|
22059
|
+
"type": "boolean"
|
|
22060
|
+
},
|
|
22061
|
+
"license": {
|
|
22062
|
+
"type": "string",
|
|
22063
|
+
"nullable": true,
|
|
22064
|
+
"description": "SPDX id, or null when the agent is proprietary"
|
|
22065
|
+
},
|
|
22066
|
+
"requires_vendor_subscription": {
|
|
22067
|
+
"type": "boolean",
|
|
22068
|
+
"description": "Whether the agent needs a paid account with its vendor. Independent of licence — the Codex CLI is Apache-2.0 and still requires a ChatGPT plan."
|
|
22069
|
+
},
|
|
22070
|
+
"vendor_credential_env": {
|
|
22071
|
+
"type": "string",
|
|
22072
|
+
"nullable": true
|
|
22073
|
+
}
|
|
22074
|
+
}
|
|
22075
|
+
}
|
|
22076
|
+
}
|
|
22077
|
+
}
|
|
22078
|
+
}
|
|
22079
|
+
}
|
|
22080
|
+
}
|
|
22081
|
+
},
|
|
22082
|
+
"401": {
|
|
22083
|
+
"description": "Unauthenticated"
|
|
22084
|
+
}
|
|
22085
|
+
}
|
|
22086
|
+
}
|
|
22087
|
+
},
|
|
22088
|
+
"/v1/automations/step-types": {
|
|
22089
|
+
"get": {
|
|
22090
|
+
"tags": [
|
|
22091
|
+
"Automations"
|
|
22092
|
+
],
|
|
22093
|
+
"summary": "The automation step vocabulary an automation may use",
|
|
22094
|
+
"operationId": "list_automation_step_types",
|
|
22095
|
+
"responses": {
|
|
22096
|
+
"200": {
|
|
22097
|
+
"description": "Supported step types"
|
|
22098
|
+
},
|
|
22099
|
+
"401": {
|
|
22100
|
+
"description": "Unauthenticated"
|
|
22101
|
+
}
|
|
22102
|
+
}
|
|
22103
|
+
}
|
|
22104
|
+
},
|
|
22105
|
+
"/v1/platform/apps/{app_id}/runtimes": {
|
|
22106
|
+
"parameters": [
|
|
22107
|
+
{
|
|
22108
|
+
"name": "app_id",
|
|
22109
|
+
"in": "path",
|
|
22110
|
+
"required": true,
|
|
22111
|
+
"schema": {
|
|
22112
|
+
"type": "string",
|
|
22113
|
+
"format": "uuid"
|
|
22114
|
+
}
|
|
22115
|
+
}
|
|
22116
|
+
],
|
|
22117
|
+
"get": {
|
|
22118
|
+
"tags": [
|
|
22119
|
+
"Platform"
|
|
22120
|
+
],
|
|
22121
|
+
"summary": "Runtimes belonging to a platform app",
|
|
22122
|
+
"operationId": "list_platform_runtimes",
|
|
22123
|
+
"responses": {
|
|
22124
|
+
"200": {
|
|
22125
|
+
"description": "Success"
|
|
22126
|
+
},
|
|
22127
|
+
"401": {
|
|
22128
|
+
"description": "Unauthenticated"
|
|
22129
|
+
},
|
|
22130
|
+
"403": {
|
|
22131
|
+
"description": "Forbidden"
|
|
22132
|
+
}
|
|
22133
|
+
}
|
|
22134
|
+
}
|
|
22135
|
+
},
|
|
22136
|
+
"/v1/browser/devices": {
|
|
22137
|
+
"post": {
|
|
22138
|
+
"tags": [
|
|
22139
|
+
"Browser Bridge"
|
|
22140
|
+
],
|
|
22141
|
+
"summary": "Pair a browser bridge and mint its credential. Human callers only, behind a step-up re-auth: pairing is what gives a browser the standing to ask for credentials later.",
|
|
22142
|
+
"operationId": "pair_browser_device",
|
|
22143
|
+
"requestBody": {
|
|
22144
|
+
"required": true,
|
|
22145
|
+
"content": {
|
|
22146
|
+
"application/json": {
|
|
22147
|
+
"schema": {
|
|
22148
|
+
"type": "object",
|
|
22149
|
+
"required": [
|
|
22150
|
+
"label",
|
|
22151
|
+
"public_key_pin"
|
|
22152
|
+
],
|
|
22153
|
+
"properties": {
|
|
22154
|
+
"label": {
|
|
22155
|
+
"type": "string",
|
|
22156
|
+
"description": "Name for this device. Re-pairing an existing label must present the same key."
|
|
22157
|
+
},
|
|
22158
|
+
"public_key_pin": {
|
|
22159
|
+
"type": "string",
|
|
22160
|
+
"description": "The bridge's public key, pinned on first use for this label."
|
|
22161
|
+
},
|
|
22162
|
+
"bridge_version": {
|
|
22163
|
+
"type": "string"
|
|
22164
|
+
},
|
|
22165
|
+
"platform": {
|
|
22166
|
+
"type": "string"
|
|
22167
|
+
}
|
|
22168
|
+
}
|
|
22169
|
+
}
|
|
22170
|
+
}
|
|
22171
|
+
}
|
|
22172
|
+
},
|
|
22173
|
+
"responses": {
|
|
22174
|
+
"201": {
|
|
22175
|
+
"description": "Paired. The credential is returned once and there is no endpoint that returns it again.",
|
|
22176
|
+
"content": {
|
|
22177
|
+
"application/json": {
|
|
22178
|
+
"schema": {
|
|
22179
|
+
"type": "object",
|
|
22180
|
+
"properties": {
|
|
22181
|
+
"device_id": {
|
|
22182
|
+
"type": "string",
|
|
22183
|
+
"format": "uuid"
|
|
22184
|
+
},
|
|
22185
|
+
"label": {
|
|
22186
|
+
"type": "string"
|
|
22187
|
+
},
|
|
22188
|
+
"credential": {
|
|
22189
|
+
"type": "string",
|
|
22190
|
+
"description": "The bb_ bridge credential. Shown once."
|
|
22191
|
+
}
|
|
22192
|
+
}
|
|
22193
|
+
}
|
|
22194
|
+
}
|
|
22195
|
+
}
|
|
22196
|
+
},
|
|
22197
|
+
"401": {
|
|
22198
|
+
"description": "Unauthenticated, or step-up re-auth not satisfied"
|
|
22199
|
+
},
|
|
22200
|
+
"403": {
|
|
22201
|
+
"description": "Not a human caller — agents and platform keys cannot pair a device"
|
|
22202
|
+
},
|
|
22203
|
+
"409": {
|
|
22204
|
+
"description": "That label is already pinned to a different key"
|
|
22205
|
+
}
|
|
22206
|
+
}
|
|
22207
|
+
}
|
|
22208
|
+
},
|
|
22209
|
+
"/v1/browser/credentials": {
|
|
22210
|
+
"post": {
|
|
22211
|
+
"tags": [
|
|
22212
|
+
"Browser Bridge"
|
|
22213
|
+
],
|
|
22214
|
+
"summary": "Define a binding: which secret may be typed, and into which hosts. Humans only, behind a step-up — an agent that could create one could nominate any path it liked as fillable.",
|
|
22215
|
+
"operationId": "create_browser_credential",
|
|
22216
|
+
"requestBody": {
|
|
22217
|
+
"required": true,
|
|
22218
|
+
"content": {
|
|
22219
|
+
"application/json": {
|
|
22220
|
+
"schema": {
|
|
22221
|
+
"type": "object",
|
|
22222
|
+
"required": [
|
|
22223
|
+
"label",
|
|
22224
|
+
"vault_id",
|
|
22225
|
+
"secret_path",
|
|
22226
|
+
"login_url",
|
|
22227
|
+
"allowed_hosts"
|
|
22228
|
+
],
|
|
22229
|
+
"properties": {
|
|
22230
|
+
"label": {
|
|
22231
|
+
"type": "string"
|
|
22232
|
+
},
|
|
22233
|
+
"vault_id": {
|
|
22234
|
+
"type": "string",
|
|
22235
|
+
"format": "uuid",
|
|
22236
|
+
"description": "Must belong to the caller's org."
|
|
22237
|
+
},
|
|
22238
|
+
"secret_path": {
|
|
22239
|
+
"type": "string",
|
|
22240
|
+
"description": "Path of the secret inside that vault. The value never lands in the binding."
|
|
22241
|
+
},
|
|
22242
|
+
"login_url": {
|
|
22243
|
+
"type": "string",
|
|
22244
|
+
"description": "https only, and its host must be in allowed_hosts or sso_hosts — the bridge navigates here itself, one step before a password is typed."
|
|
22245
|
+
},
|
|
22246
|
+
"allowed_hosts": {
|
|
22247
|
+
"type": "array",
|
|
22248
|
+
"minItems": 1,
|
|
22249
|
+
"items": {
|
|
22250
|
+
"type": "string"
|
|
22251
|
+
},
|
|
22252
|
+
"description": "Bare hostnames, compared exactly. URLs, ports and wildcards are refused: a wildcard would match nothing while looking like it allowed something."
|
|
22253
|
+
},
|
|
22254
|
+
"sso_hosts": {
|
|
22255
|
+
"type": "array",
|
|
22256
|
+
"items": {
|
|
22257
|
+
"type": "string"
|
|
22258
|
+
},
|
|
22259
|
+
"description": "Identity-provider hosts the login legitimately bounces through."
|
|
22260
|
+
}
|
|
22261
|
+
}
|
|
22262
|
+
}
|
|
22263
|
+
}
|
|
22264
|
+
}
|
|
22265
|
+
},
|
|
22266
|
+
"responses": {
|
|
22267
|
+
"201": {
|
|
22268
|
+
"description": "Created. Every field is a pointer or a policy; none is secret."
|
|
22269
|
+
},
|
|
22270
|
+
"400": {
|
|
22271
|
+
"description": "A host is not a bare hostname, allowed_hosts is empty, or login_url is http or outside the allowlist"
|
|
19569
22272
|
},
|
|
19570
22273
|
"403": {
|
|
19571
|
-
"
|
|
22274
|
+
"description": "Not a human caller, step-up not satisfied, or the vault belongs to another org"
|
|
22275
|
+
},
|
|
22276
|
+
"404": {
|
|
22277
|
+
"description": "Vault not found"
|
|
19572
22278
|
}
|
|
19573
22279
|
}
|
|
19574
|
-
}
|
|
19575
|
-
},
|
|
19576
|
-
"/v1/org/shamir-kek": {
|
|
22280
|
+
},
|
|
19577
22281
|
"get": {
|
|
19578
22282
|
"tags": [
|
|
19579
|
-
"
|
|
22283
|
+
"Browser Bridge"
|
|
19580
22284
|
],
|
|
19581
|
-
"summary": "
|
|
19582
|
-
"
|
|
19583
|
-
"
|
|
19584
|
-
|
|
19585
|
-
|
|
19586
|
-
|
|
22285
|
+
"summary": "List this org's browser credential bindings",
|
|
22286
|
+
"operationId": "list_browser_credentials",
|
|
22287
|
+
"responses": {
|
|
22288
|
+
"200": {
|
|
22289
|
+
"description": "The bindings"
|
|
22290
|
+
}
|
|
22291
|
+
}
|
|
22292
|
+
}
|
|
22293
|
+
},
|
|
22294
|
+
"/v1/browser/credentials/{id}": {
|
|
22295
|
+
"parameters": [
|
|
22296
|
+
{
|
|
22297
|
+
"name": "id",
|
|
22298
|
+
"in": "path",
|
|
22299
|
+
"required": true,
|
|
22300
|
+
"schema": {
|
|
22301
|
+
"type": "string",
|
|
22302
|
+
"format": "uuid"
|
|
19587
22303
|
}
|
|
22304
|
+
}
|
|
22305
|
+
],
|
|
22306
|
+
"delete": {
|
|
22307
|
+
"tags": [
|
|
22308
|
+
"Browser Bridge"
|
|
19588
22309
|
],
|
|
22310
|
+
"summary": "Remove a browser credential binding",
|
|
22311
|
+
"operationId": "delete_browser_credential",
|
|
19589
22312
|
"responses": {
|
|
19590
|
-
"
|
|
19591
|
-
"description": "
|
|
19592
|
-
"content": {
|
|
19593
|
-
"application/json": {
|
|
19594
|
-
"schema": {
|
|
19595
|
-
"$ref": "#/components/schemas/ShamirKekStatusResponse"
|
|
19596
|
-
}
|
|
19597
|
-
}
|
|
19598
|
-
}
|
|
22313
|
+
"204": {
|
|
22314
|
+
"description": "Deleted"
|
|
19599
22315
|
},
|
|
19600
|
-
"
|
|
19601
|
-
"
|
|
22316
|
+
"403": {
|
|
22317
|
+
"description": "Not a human caller"
|
|
22318
|
+
},
|
|
22319
|
+
"404": {
|
|
22320
|
+
"description": "Binding not found"
|
|
19602
22321
|
}
|
|
19603
22322
|
}
|
|
19604
22323
|
}
|
|
19605
22324
|
},
|
|
19606
|
-
"/v1/
|
|
22325
|
+
"/v1/agents/{id}/browser/sessions": {
|
|
22326
|
+
"parameters": [
|
|
22327
|
+
{
|
|
22328
|
+
"name": "id",
|
|
22329
|
+
"in": "path",
|
|
22330
|
+
"required": true,
|
|
22331
|
+
"schema": {
|
|
22332
|
+
"type": "string",
|
|
22333
|
+
"format": "uuid"
|
|
22334
|
+
}
|
|
22335
|
+
}
|
|
22336
|
+
],
|
|
19607
22337
|
"post": {
|
|
19608
22338
|
"tags": [
|
|
19609
|
-
"
|
|
22339
|
+
"Browser Bridge"
|
|
19610
22340
|
],
|
|
19611
|
-
"summary": "
|
|
19612
|
-
"
|
|
19613
|
-
"
|
|
19614
|
-
"security": [
|
|
22341
|
+
"summary": "Open a browser session. Accepts a paired bridge credential only — an agent token is refused, so a session cannot be bootstrapped on an unpaired machine.",
|
|
22342
|
+
"operationId": "create_browser_session",
|
|
22343
|
+
"parameters": [
|
|
19615
22344
|
{
|
|
19616
|
-
"
|
|
22345
|
+
"name": "x-1claw-bridge-credential",
|
|
22346
|
+
"in": "header",
|
|
22347
|
+
"required": true,
|
|
22348
|
+
"schema": {
|
|
22349
|
+
"type": "string"
|
|
22350
|
+
},
|
|
22351
|
+
"description": "The bb_ credential from `1claw browser-bridge login`"
|
|
22352
|
+
},
|
|
22353
|
+
{
|
|
22354
|
+
"name": "x-1claw-bridge-version",
|
|
22355
|
+
"in": "header",
|
|
22356
|
+
"required": true,
|
|
22357
|
+
"schema": {
|
|
22358
|
+
"type": "string"
|
|
22359
|
+
},
|
|
22360
|
+
"description": "Bridge build. Versions below the server minimum are refused."
|
|
19617
22361
|
}
|
|
19618
22362
|
],
|
|
19619
22363
|
"requestBody": {
|
|
@@ -19621,81 +22365,245 @@
|
|
|
19621
22365
|
"content": {
|
|
19622
22366
|
"application/json": {
|
|
19623
22367
|
"schema": {
|
|
19624
|
-
"
|
|
22368
|
+
"type": "object",
|
|
22369
|
+
"required": [
|
|
22370
|
+
"agent_id",
|
|
22371
|
+
"client_id"
|
|
22372
|
+
],
|
|
22373
|
+
"properties": {
|
|
22374
|
+
"agent_id": {
|
|
22375
|
+
"type": "string",
|
|
22376
|
+
"format": "uuid",
|
|
22377
|
+
"description": "Must belong to the same org as the paired device."
|
|
22378
|
+
},
|
|
22379
|
+
"client_id": {
|
|
22380
|
+
"type": "string"
|
|
22381
|
+
},
|
|
22382
|
+
"bridge_version": {
|
|
22383
|
+
"type": "string"
|
|
22384
|
+
},
|
|
22385
|
+
"protocol_version": {
|
|
22386
|
+
"type": "string"
|
|
22387
|
+
}
|
|
22388
|
+
}
|
|
19625
22389
|
}
|
|
19626
22390
|
}
|
|
19627
22391
|
}
|
|
19628
22392
|
},
|
|
19629
22393
|
"responses": {
|
|
19630
22394
|
"200": {
|
|
19631
|
-
"description": "
|
|
22395
|
+
"description": "Session created",
|
|
19632
22396
|
"content": {
|
|
19633
22397
|
"application/json": {
|
|
19634
22398
|
"schema": {
|
|
19635
|
-
"
|
|
22399
|
+
"type": "object",
|
|
22400
|
+
"properties": {
|
|
22401
|
+
"session_id": {
|
|
22402
|
+
"type": "string",
|
|
22403
|
+
"format": "uuid"
|
|
22404
|
+
},
|
|
22405
|
+
"session_token": {
|
|
22406
|
+
"type": "string",
|
|
22407
|
+
"description": "bs_ prefixed. Only its hash is stored."
|
|
22408
|
+
},
|
|
22409
|
+
"expires_at": {
|
|
22410
|
+
"type": "string",
|
|
22411
|
+
"format": "date-time"
|
|
22412
|
+
}
|
|
22413
|
+
}
|
|
19636
22414
|
}
|
|
19637
22415
|
}
|
|
19638
22416
|
}
|
|
19639
22417
|
},
|
|
19640
22418
|
"400": {
|
|
19641
|
-
"
|
|
22419
|
+
"description": "Missing or unsupported bridge version"
|
|
19642
22420
|
},
|
|
19643
22421
|
"401": {
|
|
19644
|
-
"
|
|
22422
|
+
"description": "Not a paired bridge, or an agent token was presented"
|
|
19645
22423
|
},
|
|
19646
22424
|
"403": {
|
|
19647
|
-
"
|
|
22425
|
+
"description": "The device and the agent are not in the same org"
|
|
19648
22426
|
}
|
|
19649
22427
|
}
|
|
19650
22428
|
}
|
|
19651
22429
|
},
|
|
19652
|
-
"/v1/
|
|
19653
|
-
"
|
|
22430
|
+
"/v1/agents/{id}/browser/fills": {
|
|
22431
|
+
"parameters": [
|
|
22432
|
+
{
|
|
22433
|
+
"name": "id",
|
|
22434
|
+
"in": "path",
|
|
22435
|
+
"required": true,
|
|
22436
|
+
"schema": {
|
|
22437
|
+
"type": "string",
|
|
22438
|
+
"format": "uuid"
|
|
22439
|
+
}
|
|
22440
|
+
}
|
|
22441
|
+
],
|
|
22442
|
+
"post": {
|
|
19654
22443
|
"tags": [
|
|
19655
|
-
"
|
|
22444
|
+
"Browser Bridge"
|
|
19656
22445
|
],
|
|
19657
|
-
"summary": "
|
|
19658
|
-
"
|
|
19659
|
-
"
|
|
19660
|
-
"security": [
|
|
22446
|
+
"summary": "Authorise one credential fill. Requires the bridge credential *and* an agent JWT — neither alone is sufficient.",
|
|
22447
|
+
"operationId": "authorize_browser_fill",
|
|
22448
|
+
"parameters": [
|
|
19661
22449
|
{
|
|
19662
|
-
"
|
|
22450
|
+
"name": "x-1claw-bridge-credential",
|
|
22451
|
+
"in": "header",
|
|
22452
|
+
"required": true,
|
|
22453
|
+
"schema": {
|
|
22454
|
+
"type": "string"
|
|
22455
|
+
}
|
|
22456
|
+
},
|
|
22457
|
+
{
|
|
22458
|
+
"name": "x-1claw-bridge-version",
|
|
22459
|
+
"in": "header",
|
|
22460
|
+
"required": true,
|
|
22461
|
+
"schema": {
|
|
22462
|
+
"type": "string"
|
|
22463
|
+
}
|
|
19663
22464
|
}
|
|
19664
22465
|
],
|
|
22466
|
+
"requestBody": {
|
|
22467
|
+
"required": true,
|
|
22468
|
+
"content": {
|
|
22469
|
+
"application/json": {
|
|
22470
|
+
"schema": {
|
|
22471
|
+
"type": "object",
|
|
22472
|
+
"required": [
|
|
22473
|
+
"session_id",
|
|
22474
|
+
"binding_id",
|
|
22475
|
+
"tab_origin",
|
|
22476
|
+
"frame_origin",
|
|
22477
|
+
"frame_id",
|
|
22478
|
+
"generation"
|
|
22479
|
+
],
|
|
22480
|
+
"properties": {
|
|
22481
|
+
"session_id": {
|
|
22482
|
+
"type": "string",
|
|
22483
|
+
"format": "uuid",
|
|
22484
|
+
"description": "Must match the session the presented bs_ token opened."
|
|
22485
|
+
},
|
|
22486
|
+
"binding_id": {
|
|
22487
|
+
"type": "string",
|
|
22488
|
+
"format": "uuid"
|
|
22489
|
+
},
|
|
22490
|
+
"frame_id": {
|
|
22491
|
+
"type": "string",
|
|
22492
|
+
"description": "The target the fill is for. Recorded on the grant."
|
|
22493
|
+
},
|
|
22494
|
+
"generation": {
|
|
22495
|
+
"type": "integer",
|
|
22496
|
+
"format": "int64",
|
|
22497
|
+
"description": "The bridge's navigation counter. Compared again at consume: a navigation in between means the page decided about is no longer the page in front of the bridge."
|
|
22498
|
+
},
|
|
22499
|
+
"form_action_origin": {
|
|
22500
|
+
"type": "string",
|
|
22501
|
+
"description": "Where the form would POST. Checked as well as the two origins — a login form on an allowed page can still submit to somebody else's host."
|
|
22502
|
+
},
|
|
22503
|
+
"tab_origin": {
|
|
22504
|
+
"type": "string",
|
|
22505
|
+
"description": "Origin of the tab being driven. Checked against the binding's allowed and sso hosts by exact host match."
|
|
22506
|
+
},
|
|
22507
|
+
"frame_origin": {
|
|
22508
|
+
"type": "string",
|
|
22509
|
+
"description": "Origin of the frame holding the form. Checked separately — a credential typed into an allowed tab can still land in an attacker's iframe."
|
|
22510
|
+
}
|
|
22511
|
+
}
|
|
22512
|
+
}
|
|
22513
|
+
}
|
|
22514
|
+
}
|
|
22515
|
+
},
|
|
19665
22516
|
"responses": {
|
|
19666
22517
|
"200": {
|
|
19667
|
-
"description": "
|
|
22518
|
+
"description": "A grant, a denial, or a pending approval. Never a secret.",
|
|
19668
22519
|
"content": {
|
|
19669
22520
|
"application/json": {
|
|
19670
22521
|
"schema": {
|
|
19671
|
-
"
|
|
22522
|
+
"type": "object",
|
|
22523
|
+
"properties": {
|
|
22524
|
+
"kind": {
|
|
22525
|
+
"type": "string",
|
|
22526
|
+
"enum": [
|
|
22527
|
+
"grant"
|
|
22528
|
+
]
|
|
22529
|
+
},
|
|
22530
|
+
"grant_id": {
|
|
22531
|
+
"type": "string",
|
|
22532
|
+
"format": "uuid",
|
|
22533
|
+
"description": "Single-use, short-lived, redeemable only by the session it was issued to."
|
|
22534
|
+
},
|
|
22535
|
+
"binding_id": {
|
|
22536
|
+
"type": "string",
|
|
22537
|
+
"format": "uuid"
|
|
22538
|
+
},
|
|
22539
|
+
"expires_at": {
|
|
22540
|
+
"type": "string",
|
|
22541
|
+
"format": "date-time"
|
|
22542
|
+
},
|
|
22543
|
+
"login_url": {
|
|
22544
|
+
"type": "string",
|
|
22545
|
+
"description": "The bridge navigates here itself. An agent-supplied URL would be the agent choosing who receives the password."
|
|
22546
|
+
}
|
|
22547
|
+
}
|
|
19672
22548
|
}
|
|
19673
22549
|
}
|
|
19674
22550
|
}
|
|
19675
22551
|
},
|
|
19676
|
-
"
|
|
19677
|
-
"
|
|
22552
|
+
"400": {
|
|
22553
|
+
"description": "Missing or unsupported bridge version"
|
|
19678
22554
|
},
|
|
19679
22555
|
"403": {
|
|
19680
|
-
"
|
|
22556
|
+
"description": "Only one of the two required credentials was presented, an origin is not on the binding's allowlist, or the fill velocity cap was hit"
|
|
19681
22557
|
},
|
|
19682
|
-
"
|
|
19683
|
-
"description": "
|
|
22558
|
+
"404": {
|
|
22559
|
+
"description": "No such binding for this org"
|
|
19684
22560
|
}
|
|
19685
22561
|
}
|
|
19686
22562
|
}
|
|
19687
22563
|
},
|
|
19688
|
-
"/v1/
|
|
22564
|
+
"/v1/agents/{id}/browser/fills/consume": {
|
|
22565
|
+
"parameters": [
|
|
22566
|
+
{
|
|
22567
|
+
"name": "id",
|
|
22568
|
+
"in": "path",
|
|
22569
|
+
"required": true,
|
|
22570
|
+
"schema": {
|
|
22571
|
+
"type": "string",
|
|
22572
|
+
"format": "uuid"
|
|
22573
|
+
}
|
|
22574
|
+
}
|
|
22575
|
+
],
|
|
19689
22576
|
"post": {
|
|
19690
22577
|
"tags": [
|
|
19691
|
-
"
|
|
22578
|
+
"Browser Bridge"
|
|
19692
22579
|
],
|
|
19693
|
-
"summary": "
|
|
19694
|
-
"
|
|
19695
|
-
"
|
|
19696
|
-
"security": [
|
|
22580
|
+
"summary": "Redeem a grant for the credential it authorised. Takes the browser session token and the bridge credential, and refuses an agent principal — the agent asks which binding, the bridge collects the answer.",
|
|
22581
|
+
"operationId": "consume_browser_fill",
|
|
22582
|
+
"parameters": [
|
|
19697
22583
|
{
|
|
19698
|
-
"
|
|
22584
|
+
"name": "x-1claw-bridge-credential",
|
|
22585
|
+
"in": "header",
|
|
22586
|
+
"required": true,
|
|
22587
|
+
"schema": {
|
|
22588
|
+
"type": "string"
|
|
22589
|
+
}
|
|
22590
|
+
},
|
|
22591
|
+
{
|
|
22592
|
+
"name": "x-1claw-bridge-session",
|
|
22593
|
+
"in": "header",
|
|
22594
|
+
"required": true,
|
|
22595
|
+
"schema": {
|
|
22596
|
+
"type": "string"
|
|
22597
|
+
},
|
|
22598
|
+
"description": "The bs_ session token. Proof the redemption belongs to a session this bridge opened."
|
|
22599
|
+
},
|
|
22600
|
+
{
|
|
22601
|
+
"name": "x-1claw-bridge-version",
|
|
22602
|
+
"in": "header",
|
|
22603
|
+
"required": true,
|
|
22604
|
+
"schema": {
|
|
22605
|
+
"type": "string"
|
|
22606
|
+
}
|
|
19699
22607
|
}
|
|
19700
22608
|
],
|
|
19701
22609
|
"requestBody": {
|
|
@@ -19703,27 +22611,100 @@
|
|
|
19703
22611
|
"content": {
|
|
19704
22612
|
"application/json": {
|
|
19705
22613
|
"schema": {
|
|
19706
|
-
"
|
|
22614
|
+
"type": "object",
|
|
22615
|
+
"required": [
|
|
22616
|
+
"session_id",
|
|
22617
|
+
"grant_id",
|
|
22618
|
+
"generation"
|
|
22619
|
+
],
|
|
22620
|
+
"properties": {
|
|
22621
|
+
"session_id": {
|
|
22622
|
+
"type": "string",
|
|
22623
|
+
"format": "uuid"
|
|
22624
|
+
},
|
|
22625
|
+
"grant_id": {
|
|
22626
|
+
"type": "string",
|
|
22627
|
+
"format": "uuid"
|
|
22628
|
+
},
|
|
22629
|
+
"generation": {
|
|
22630
|
+
"type": "integer",
|
|
22631
|
+
"format": "int64",
|
|
22632
|
+
"description": "The bridge's navigation counter now. A mismatch means the page moved after the decision."
|
|
22633
|
+
}
|
|
22634
|
+
}
|
|
19707
22635
|
}
|
|
19708
22636
|
}
|
|
19709
22637
|
}
|
|
19710
22638
|
},
|
|
19711
22639
|
"responses": {
|
|
19712
22640
|
"200": {
|
|
19713
|
-
"description": "
|
|
22641
|
+
"description": "The credential itself, as raw bytes — the only route in the feature that returns secret material. Not a JSON envelope: the bridge adopts the body into a zeroable buffer, and a wrapper would force it to parse, interning the secret as a string that lives until GC. Metadata rides in `x-1claw-binding-id` and `x-1claw-form-fingerprint`; the response is `cache-control: no-store`.",
|
|
22642
|
+
"headers": {
|
|
22643
|
+
"x-1claw-binding-id": {
|
|
22644
|
+
"schema": {
|
|
22645
|
+
"type": "string",
|
|
22646
|
+
"format": "uuid"
|
|
22647
|
+
}
|
|
22648
|
+
},
|
|
22649
|
+
"x-1claw-form-fingerprint": {
|
|
22650
|
+
"schema": {
|
|
22651
|
+
"type": "string",
|
|
22652
|
+
"format": "byte"
|
|
22653
|
+
},
|
|
22654
|
+
"description": "The binding's form fingerprint, base64-encoded JSON, when it has one. Base64 because a fingerprint naming a non-ASCII field is not a legal header value as raw JSON."
|
|
22655
|
+
}
|
|
22656
|
+
},
|
|
19714
22657
|
"content": {
|
|
19715
|
-
"application/
|
|
22658
|
+
"application/octet-stream": {
|
|
19716
22659
|
"schema": {
|
|
19717
|
-
"
|
|
22660
|
+
"type": "string",
|
|
22661
|
+
"format": "binary"
|
|
19718
22662
|
}
|
|
19719
22663
|
}
|
|
19720
22664
|
}
|
|
19721
22665
|
},
|
|
19722
22666
|
"400": {
|
|
19723
|
-
"
|
|
22667
|
+
"description": "Missing or unsupported bridge version"
|
|
22668
|
+
},
|
|
22669
|
+
"403": {
|
|
22670
|
+
"description": "Grant expired, already used, issued to another session or device; the page navigated after authorisation; or an agent principal was presented"
|
|
22671
|
+
},
|
|
22672
|
+
"404": {
|
|
22673
|
+
"description": "The binding or the secret behind it is missing"
|
|
22674
|
+
}
|
|
22675
|
+
}
|
|
22676
|
+
}
|
|
22677
|
+
},
|
|
22678
|
+
"/v1/agents/{agent_id}/chat/unlock": {
|
|
22679
|
+
"parameters": [
|
|
22680
|
+
{
|
|
22681
|
+
"name": "agent_id",
|
|
22682
|
+
"in": "path",
|
|
22683
|
+
"required": true,
|
|
22684
|
+
"schema": {
|
|
22685
|
+
"type": "string",
|
|
22686
|
+
"format": "uuid"
|
|
22687
|
+
}
|
|
22688
|
+
}
|
|
22689
|
+
],
|
|
22690
|
+
"post": {
|
|
22691
|
+
"tags": [
|
|
22692
|
+
"Chat"
|
|
22693
|
+
],
|
|
22694
|
+
"summary": "Unlock an agent's chat history for reading",
|
|
22695
|
+
"operationId": "unlock_agent_chat",
|
|
22696
|
+
"responses": {
|
|
22697
|
+
"200": {
|
|
22698
|
+
"description": "Unlocked"
|
|
19724
22699
|
},
|
|
19725
22700
|
"401": {
|
|
19726
|
-
"
|
|
22701
|
+
"description": "Unauthenticated"
|
|
22702
|
+
},
|
|
22703
|
+
"403": {
|
|
22704
|
+
"description": "Forbidden"
|
|
22705
|
+
},
|
|
22706
|
+
"404": {
|
|
22707
|
+
"description": "Agent not found"
|
|
19727
22708
|
}
|
|
19728
22709
|
}
|
|
19729
22710
|
}
|
|
@@ -23630,6 +26611,7 @@
|
|
|
23630
26611
|
},
|
|
23631
26612
|
"PatchConnectionAgentRequest": {
|
|
23632
26613
|
"type": "object",
|
|
26614
|
+
"description": "At least one field is required.\n",
|
|
23633
26615
|
"properties": {
|
|
23634
26616
|
"intents_api_enabled": {
|
|
23635
26617
|
"type": "boolean"
|
|
@@ -23637,6 +26619,10 @@
|
|
|
23637
26619
|
"execution_intents_enabled": {
|
|
23638
26620
|
"type": "boolean"
|
|
23639
26621
|
},
|
|
26622
|
+
"memory_enabled": {
|
|
26623
|
+
"type": "boolean",
|
|
26624
|
+
"description": "Agent memory, off by default. Until this field existed a\nplatform app had no way to turn it on: a bootstrap template\naccepted `memory_enabled` in its spec and never read it, so\nthe capability was reachable only from the end user's own\ndashboard. Templates now honour the flag too.\n"
|
|
26625
|
+
},
|
|
23640
26626
|
"system_prompt": {
|
|
23641
26627
|
"type": "string",
|
|
23642
26628
|
"nullable": true
|
|
@@ -23656,6 +26642,9 @@
|
|
|
23656
26642
|
"execution_intents_enabled": {
|
|
23657
26643
|
"type": "boolean"
|
|
23658
26644
|
},
|
|
26645
|
+
"memory_enabled": {
|
|
26646
|
+
"type": "boolean"
|
|
26647
|
+
},
|
|
23659
26648
|
"system_prompt": {
|
|
23660
26649
|
"type": "string",
|
|
23661
26650
|
"nullable": true
|
|
@@ -27171,6 +30160,11 @@
|
|
|
27171
30160
|
"type": "boolean",
|
|
27172
30161
|
"default": false,
|
|
27173
30162
|
"description": "When true, creates a sub-org under the platform app's org"
|
|
30163
|
+
},
|
|
30164
|
+
"app_id": {
|
|
30165
|
+
"type": "string",
|
|
30166
|
+
"format": "uuid",
|
|
30167
|
+
"description": "Required only when calling as a user (the dashboard wizard).\nA `plt_` key carries its app in the credential; a user does not,\nso the app is named here and checked against the caller's org.\n"
|
|
27174
30168
|
}
|
|
27175
30169
|
}
|
|
27176
30170
|
},
|