@1claw/openapi-spec 0.16.3 → 0.17.0
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/README.md +1 -1
- package/openapi.json +453 -1
- package/openapi.yaml +304 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -40,7 +40,7 @@ openapi-generator generate \
|
|
|
40
40
|
import spec from "@1claw/openapi-spec/openapi.json";
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
## What's in the spec (v0.
|
|
43
|
+
## What's in the spec (v0.17.x)
|
|
44
44
|
|
|
45
45
|
- **Auth — agent JWT** — `POST /v1/auth/agent-token` documents optional JWT claim **`shroud_config`** when the agent has Shroud enabled (mirrors DB; consumed by Shroud PolicyEngine on LLM requests). Re-exchange after changing agent Shroud settings.
|
|
46
46
|
- **Auth — password reset** — `POST /v1/auth/forgot-password`, `POST /v1/auth/reset-password` (public; anti-enumeration on forgot)
|
package/openapi.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"openapi": "3.1.0",
|
|
3
3
|
"info": {
|
|
4
4
|
"title": "1Claw API",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.7.0",
|
|
6
6
|
"description": "Secure secret management for AI agents. Provides vaults, secrets,\npolicy-based access control, agent identity, Intents API,\nsharing, billing, and audit logging.\n\nAll endpoints require JWT Bearer authentication unless marked with\n`security: []`.\n",
|
|
7
7
|
"contact": {
|
|
8
8
|
"email": "ops@1claw.xyz"
|
|
@@ -4027,6 +4027,112 @@
|
|
|
4027
4027
|
}
|
|
4028
4028
|
}
|
|
4029
4029
|
}
|
|
4030
|
+
},
|
|
4031
|
+
"/v1/shroud/activity": {
|
|
4032
|
+
"get": {
|
|
4033
|
+
"tags": [
|
|
4034
|
+
"Shroud"
|
|
4035
|
+
],
|
|
4036
|
+
"summary": "List Shroud activity events",
|
|
4037
|
+
"description": "Returns recent Shroud proxy activity for the organization (LLM requests, inspections, policy actions).",
|
|
4038
|
+
"security": [
|
|
4039
|
+
{
|
|
4040
|
+
"BearerAuth": []
|
|
4041
|
+
}
|
|
4042
|
+
],
|
|
4043
|
+
"parameters": [
|
|
4044
|
+
{
|
|
4045
|
+
"in": "query",
|
|
4046
|
+
"name": "agent_id",
|
|
4047
|
+
"schema": {
|
|
4048
|
+
"type": "string"
|
|
4049
|
+
},
|
|
4050
|
+
"description": "Filter by agent ID"
|
|
4051
|
+
},
|
|
4052
|
+
{
|
|
4053
|
+
"in": "query",
|
|
4054
|
+
"name": "action",
|
|
4055
|
+
"schema": {
|
|
4056
|
+
"type": "string"
|
|
4057
|
+
},
|
|
4058
|
+
"description": "Filter by action (allowed, blocked, warned)"
|
|
4059
|
+
},
|
|
4060
|
+
{
|
|
4061
|
+
"in": "query",
|
|
4062
|
+
"name": "limit",
|
|
4063
|
+
"schema": {
|
|
4064
|
+
"type": "integer",
|
|
4065
|
+
"default": 50
|
|
4066
|
+
},
|
|
4067
|
+
"description": "Maximum events to return"
|
|
4068
|
+
},
|
|
4069
|
+
{
|
|
4070
|
+
"in": "query",
|
|
4071
|
+
"name": "offset",
|
|
4072
|
+
"schema": {
|
|
4073
|
+
"type": "integer",
|
|
4074
|
+
"default": 0
|
|
4075
|
+
},
|
|
4076
|
+
"description": "Pagination offset"
|
|
4077
|
+
}
|
|
4078
|
+
],
|
|
4079
|
+
"responses": {
|
|
4080
|
+
"200": {
|
|
4081
|
+
"description": "Activity events",
|
|
4082
|
+
"content": {
|
|
4083
|
+
"application/json": {
|
|
4084
|
+
"schema": {
|
|
4085
|
+
"type": "object",
|
|
4086
|
+
"properties": {
|
|
4087
|
+
"events": {
|
|
4088
|
+
"type": "array",
|
|
4089
|
+
"items": {
|
|
4090
|
+
"$ref": "#/components/schemas/ShroudActivityEvent"
|
|
4091
|
+
}
|
|
4092
|
+
},
|
|
4093
|
+
"total": {
|
|
4094
|
+
"type": "integer"
|
|
4095
|
+
}
|
|
4096
|
+
}
|
|
4097
|
+
}
|
|
4098
|
+
}
|
|
4099
|
+
}
|
|
4100
|
+
},
|
|
4101
|
+
"401": {
|
|
4102
|
+
"description": "Unauthorized"
|
|
4103
|
+
}
|
|
4104
|
+
}
|
|
4105
|
+
},
|
|
4106
|
+
"post": {
|
|
4107
|
+
"tags": [
|
|
4108
|
+
"Shroud"
|
|
4109
|
+
],
|
|
4110
|
+
"summary": "Ingest Shroud activity event (internal)",
|
|
4111
|
+
"description": "Called by the Shroud proxy to record activity events. Not intended for external use.",
|
|
4112
|
+
"security": [
|
|
4113
|
+
{
|
|
4114
|
+
"BearerAuth": []
|
|
4115
|
+
}
|
|
4116
|
+
],
|
|
4117
|
+
"requestBody": {
|
|
4118
|
+
"required": true,
|
|
4119
|
+
"content": {
|
|
4120
|
+
"application/json": {
|
|
4121
|
+
"schema": {
|
|
4122
|
+
"$ref": "#/components/schemas/IngestShroudActivityRequest"
|
|
4123
|
+
}
|
|
4124
|
+
}
|
|
4125
|
+
}
|
|
4126
|
+
},
|
|
4127
|
+
"responses": {
|
|
4128
|
+
"201": {
|
|
4129
|
+
"description": "Event recorded"
|
|
4130
|
+
},
|
|
4131
|
+
"401": {
|
|
4132
|
+
"description": "Unauthorized"
|
|
4133
|
+
}
|
|
4134
|
+
}
|
|
4135
|
+
}
|
|
4030
4136
|
}
|
|
4031
4137
|
},
|
|
4032
4138
|
"components": {
|
|
@@ -5615,6 +5721,27 @@
|
|
|
5615
5721
|
"type": "boolean",
|
|
5616
5722
|
"default": true,
|
|
5617
5723
|
"description": "Whether to log all detected threats to audit (even when action is allow/warn)"
|
|
5724
|
+
},
|
|
5725
|
+
"tool_call_inspection": {
|
|
5726
|
+
"$ref": "#/components/schemas/ToolCallPolicy"
|
|
5727
|
+
},
|
|
5728
|
+
"output_policy": {
|
|
5729
|
+
"$ref": "#/components/schemas/OutputPolicy"
|
|
5730
|
+
},
|
|
5731
|
+
"secret_injection_detection": {
|
|
5732
|
+
"$ref": "#/components/schemas/SecretInjectionConfig"
|
|
5733
|
+
},
|
|
5734
|
+
"advanced_redaction": {
|
|
5735
|
+
"$ref": "#/components/schemas/AdvancedRedactionConfig"
|
|
5736
|
+
},
|
|
5737
|
+
"semantic_policy": {
|
|
5738
|
+
"$ref": "#/components/schemas/SemanticPolicy"
|
|
5739
|
+
},
|
|
5740
|
+
"flagged_request_retention_days": {
|
|
5741
|
+
"type": "integer",
|
|
5742
|
+
"minimum": 0,
|
|
5743
|
+
"maximum": 365,
|
|
5744
|
+
"description": "Number of days to retain flagged request bodies for replay/investigation"
|
|
5618
5745
|
}
|
|
5619
5746
|
}
|
|
5620
5747
|
},
|
|
@@ -5821,6 +5948,221 @@
|
|
|
5821
5948
|
}
|
|
5822
5949
|
}
|
|
5823
5950
|
},
|
|
5951
|
+
"ToolCallPolicy": {
|
|
5952
|
+
"type": "object",
|
|
5953
|
+
"description": "Tool/function call inspection settings",
|
|
5954
|
+
"properties": {
|
|
5955
|
+
"enabled": {
|
|
5956
|
+
"type": "boolean",
|
|
5957
|
+
"default": false,
|
|
5958
|
+
"description": "Enable tool call inspection"
|
|
5959
|
+
},
|
|
5960
|
+
"allowed_tool_names": {
|
|
5961
|
+
"type": "array",
|
|
5962
|
+
"items": {
|
|
5963
|
+
"type": "string"
|
|
5964
|
+
},
|
|
5965
|
+
"description": "Allowed tool/function names (empty = all allowed)"
|
|
5966
|
+
},
|
|
5967
|
+
"denied_tool_names": {
|
|
5968
|
+
"type": "array",
|
|
5969
|
+
"items": {
|
|
5970
|
+
"type": "string"
|
|
5971
|
+
},
|
|
5972
|
+
"description": "Denied tool/function names"
|
|
5973
|
+
},
|
|
5974
|
+
"scan_arguments": {
|
|
5975
|
+
"type": "boolean",
|
|
5976
|
+
"default": true,
|
|
5977
|
+
"description": "Scan tool call arguments for credential exfiltration"
|
|
5978
|
+
},
|
|
5979
|
+
"block_credential_exfil": {
|
|
5980
|
+
"type": "boolean",
|
|
5981
|
+
"default": true,
|
|
5982
|
+
"description": "Block tool calls that appear to exfiltrate credentials"
|
|
5983
|
+
},
|
|
5984
|
+
"action": {
|
|
5985
|
+
"type": "string",
|
|
5986
|
+
"enum": [
|
|
5987
|
+
"block",
|
|
5988
|
+
"sanitize",
|
|
5989
|
+
"warn",
|
|
5990
|
+
"log"
|
|
5991
|
+
],
|
|
5992
|
+
"default": "block",
|
|
5993
|
+
"description": "Action when a tool call violation is detected"
|
|
5994
|
+
}
|
|
5995
|
+
}
|
|
5996
|
+
},
|
|
5997
|
+
"OutputPolicy": {
|
|
5998
|
+
"type": "object",
|
|
5999
|
+
"description": "Output content policy settings for LLM responses",
|
|
6000
|
+
"properties": {
|
|
6001
|
+
"enabled": {
|
|
6002
|
+
"type": "boolean",
|
|
6003
|
+
"default": false,
|
|
6004
|
+
"description": "Enable output content policies"
|
|
6005
|
+
},
|
|
6006
|
+
"blocked_patterns": {
|
|
6007
|
+
"type": "array",
|
|
6008
|
+
"items": {
|
|
6009
|
+
"type": "string"
|
|
6010
|
+
},
|
|
6011
|
+
"description": "Custom regex patterns to block in responses"
|
|
6012
|
+
},
|
|
6013
|
+
"blocked_entities": {
|
|
6014
|
+
"type": "array",
|
|
6015
|
+
"items": {
|
|
6016
|
+
"type": "string"
|
|
6017
|
+
},
|
|
6018
|
+
"description": "Named entities to block (e.g., competitor names)"
|
|
6019
|
+
},
|
|
6020
|
+
"block_harmful_content": {
|
|
6021
|
+
"type": "boolean",
|
|
6022
|
+
"default": false,
|
|
6023
|
+
"description": "Block responses containing harmful content categories"
|
|
6024
|
+
},
|
|
6025
|
+
"harmful_categories": {
|
|
6026
|
+
"type": "array",
|
|
6027
|
+
"items": {
|
|
6028
|
+
"type": "string",
|
|
6029
|
+
"enum": [
|
|
6030
|
+
"violence",
|
|
6031
|
+
"self_harm",
|
|
6032
|
+
"illegal",
|
|
6033
|
+
"hate",
|
|
6034
|
+
"sexual",
|
|
6035
|
+
"malware"
|
|
6036
|
+
]
|
|
6037
|
+
},
|
|
6038
|
+
"description": "Harm categories to block"
|
|
6039
|
+
},
|
|
6040
|
+
"action": {
|
|
6041
|
+
"type": "string",
|
|
6042
|
+
"enum": [
|
|
6043
|
+
"block",
|
|
6044
|
+
"sanitize",
|
|
6045
|
+
"warn",
|
|
6046
|
+
"log"
|
|
6047
|
+
],
|
|
6048
|
+
"default": "warn",
|
|
6049
|
+
"description": "Action when output policy is violated"
|
|
6050
|
+
}
|
|
6051
|
+
}
|
|
6052
|
+
},
|
|
6053
|
+
"SecretInjectionConfig": {
|
|
6054
|
+
"type": "object",
|
|
6055
|
+
"description": "Detects credentials injected into prompts that are not from the vault",
|
|
6056
|
+
"properties": {
|
|
6057
|
+
"enabled": {
|
|
6058
|
+
"type": "boolean",
|
|
6059
|
+
"default": false,
|
|
6060
|
+
"description": "Enable secret injection detection"
|
|
6061
|
+
},
|
|
6062
|
+
"action": {
|
|
6063
|
+
"type": "string",
|
|
6064
|
+
"enum": [
|
|
6065
|
+
"block",
|
|
6066
|
+
"sanitize",
|
|
6067
|
+
"warn",
|
|
6068
|
+
"log"
|
|
6069
|
+
],
|
|
6070
|
+
"default": "block",
|
|
6071
|
+
"description": "Action when injected credentials are detected"
|
|
6072
|
+
},
|
|
6073
|
+
"sensitivity": {
|
|
6074
|
+
"type": "string",
|
|
6075
|
+
"enum": [
|
|
6076
|
+
"low",
|
|
6077
|
+
"medium",
|
|
6078
|
+
"high"
|
|
6079
|
+
],
|
|
6080
|
+
"default": "medium",
|
|
6081
|
+
"description": "Detection sensitivity level"
|
|
6082
|
+
}
|
|
6083
|
+
}
|
|
6084
|
+
},
|
|
6085
|
+
"AdvancedRedactionConfig": {
|
|
6086
|
+
"type": "object",
|
|
6087
|
+
"description": "Advanced secret redaction settings (base64-encoded, split, prefix leaks)",
|
|
6088
|
+
"properties": {
|
|
6089
|
+
"enabled": {
|
|
6090
|
+
"type": "boolean",
|
|
6091
|
+
"default": false,
|
|
6092
|
+
"description": "Enable advanced redaction checks"
|
|
6093
|
+
},
|
|
6094
|
+
"detect_base64_encoded": {
|
|
6095
|
+
"type": "boolean",
|
|
6096
|
+
"default": false,
|
|
6097
|
+
"description": "Detect base64-encoded vault secrets"
|
|
6098
|
+
},
|
|
6099
|
+
"detect_split_secrets": {
|
|
6100
|
+
"type": "boolean",
|
|
6101
|
+
"default": false,
|
|
6102
|
+
"description": "Detect secrets split across tokens or messages"
|
|
6103
|
+
},
|
|
6104
|
+
"detect_prefix_leak": {
|
|
6105
|
+
"type": "boolean",
|
|
6106
|
+
"default": false,
|
|
6107
|
+
"description": "Detect partial/prefix leaks of vault secrets"
|
|
6108
|
+
},
|
|
6109
|
+
"min_secret_length": {
|
|
6110
|
+
"type": "integer",
|
|
6111
|
+
"default": 16,
|
|
6112
|
+
"description": "Minimum secret length to consider for advanced matching"
|
|
6113
|
+
}
|
|
6114
|
+
}
|
|
6115
|
+
},
|
|
6116
|
+
"SemanticPolicy": {
|
|
6117
|
+
"type": "object",
|
|
6118
|
+
"description": "Semantic/intent-level policy enforcement",
|
|
6119
|
+
"properties": {
|
|
6120
|
+
"enabled": {
|
|
6121
|
+
"type": "boolean",
|
|
6122
|
+
"default": false,
|
|
6123
|
+
"description": "Enable semantic policy enforcement"
|
|
6124
|
+
},
|
|
6125
|
+
"allowed_topics": {
|
|
6126
|
+
"type": "array",
|
|
6127
|
+
"items": {
|
|
6128
|
+
"type": "string"
|
|
6129
|
+
},
|
|
6130
|
+
"description": "Topics the agent is allowed to discuss (empty = all)"
|
|
6131
|
+
},
|
|
6132
|
+
"denied_topics": {
|
|
6133
|
+
"type": "array",
|
|
6134
|
+
"items": {
|
|
6135
|
+
"type": "string"
|
|
6136
|
+
},
|
|
6137
|
+
"description": "Topics to block"
|
|
6138
|
+
},
|
|
6139
|
+
"allowed_tasks": {
|
|
6140
|
+
"type": "array",
|
|
6141
|
+
"items": {
|
|
6142
|
+
"type": "string"
|
|
6143
|
+
},
|
|
6144
|
+
"description": "Tasks the agent is allowed to perform (empty = all)"
|
|
6145
|
+
},
|
|
6146
|
+
"denied_tasks": {
|
|
6147
|
+
"type": "array",
|
|
6148
|
+
"items": {
|
|
6149
|
+
"type": "string"
|
|
6150
|
+
},
|
|
6151
|
+
"description": "Tasks to block (e.g., code_generation, data_export)"
|
|
6152
|
+
},
|
|
6153
|
+
"action": {
|
|
6154
|
+
"type": "string",
|
|
6155
|
+
"enum": [
|
|
6156
|
+
"block",
|
|
6157
|
+
"sanitize",
|
|
6158
|
+
"warn",
|
|
6159
|
+
"log"
|
|
6160
|
+
],
|
|
6161
|
+
"default": "warn",
|
|
6162
|
+
"description": "Action when semantic policy is violated"
|
|
6163
|
+
}
|
|
6164
|
+
}
|
|
6165
|
+
},
|
|
5824
6166
|
"AgentCreatedResponse": {
|
|
5825
6167
|
"type": "object",
|
|
5826
6168
|
"required": [
|
|
@@ -7482,6 +7824,116 @@
|
|
|
7482
7824
|
}
|
|
7483
7825
|
}
|
|
7484
7826
|
},
|
|
7827
|
+
"ShroudActivityEvent": {
|
|
7828
|
+
"type": "object",
|
|
7829
|
+
"properties": {
|
|
7830
|
+
"id": {
|
|
7831
|
+
"type": "string",
|
|
7832
|
+
"format": "uuid"
|
|
7833
|
+
},
|
|
7834
|
+
"org_id": {
|
|
7835
|
+
"type": "string",
|
|
7836
|
+
"format": "uuid"
|
|
7837
|
+
},
|
|
7838
|
+
"agent_id": {
|
|
7839
|
+
"type": "string"
|
|
7840
|
+
},
|
|
7841
|
+
"provider": {
|
|
7842
|
+
"type": "string"
|
|
7843
|
+
},
|
|
7844
|
+
"model": {
|
|
7845
|
+
"type": "string"
|
|
7846
|
+
},
|
|
7847
|
+
"action": {
|
|
7848
|
+
"type": "string",
|
|
7849
|
+
"description": "Action taken (allowed, blocked, warned)"
|
|
7850
|
+
},
|
|
7851
|
+
"request_tokens": {
|
|
7852
|
+
"type": "integer"
|
|
7853
|
+
},
|
|
7854
|
+
"response_tokens": {
|
|
7855
|
+
"type": "integer"
|
|
7856
|
+
},
|
|
7857
|
+
"latency_ms": {
|
|
7858
|
+
"type": "integer"
|
|
7859
|
+
},
|
|
7860
|
+
"had_secrets_redacted": {
|
|
7861
|
+
"type": "boolean"
|
|
7862
|
+
},
|
|
7863
|
+
"had_pii_detected": {
|
|
7864
|
+
"type": "boolean"
|
|
7865
|
+
},
|
|
7866
|
+
"injection_score": {
|
|
7867
|
+
"type": "number"
|
|
7868
|
+
},
|
|
7869
|
+
"policy_violations": {
|
|
7870
|
+
"type": "array",
|
|
7871
|
+
"items": {
|
|
7872
|
+
"type": "string"
|
|
7873
|
+
}
|
|
7874
|
+
},
|
|
7875
|
+
"metadata": {
|
|
7876
|
+
"type": "object"
|
|
7877
|
+
},
|
|
7878
|
+
"timestamp": {
|
|
7879
|
+
"type": "string",
|
|
7880
|
+
"format": "date-time"
|
|
7881
|
+
}
|
|
7882
|
+
}
|
|
7883
|
+
},
|
|
7884
|
+
"IngestShroudActivityRequest": {
|
|
7885
|
+
"type": "object",
|
|
7886
|
+
"required": [
|
|
7887
|
+
"agent_id",
|
|
7888
|
+
"action"
|
|
7889
|
+
],
|
|
7890
|
+
"properties": {
|
|
7891
|
+
"agent_id": {
|
|
7892
|
+
"type": "string"
|
|
7893
|
+
},
|
|
7894
|
+
"provider": {
|
|
7895
|
+
"type": "string"
|
|
7896
|
+
},
|
|
7897
|
+
"model": {
|
|
7898
|
+
"type": "string"
|
|
7899
|
+
},
|
|
7900
|
+
"action": {
|
|
7901
|
+
"type": "string"
|
|
7902
|
+
},
|
|
7903
|
+
"request_tokens": {
|
|
7904
|
+
"type": "integer",
|
|
7905
|
+
"default": 0
|
|
7906
|
+
},
|
|
7907
|
+
"response_tokens": {
|
|
7908
|
+
"type": "integer",
|
|
7909
|
+
"default": 0
|
|
7910
|
+
},
|
|
7911
|
+
"latency_ms": {
|
|
7912
|
+
"type": "integer"
|
|
7913
|
+
},
|
|
7914
|
+
"had_secrets_redacted": {
|
|
7915
|
+
"type": "boolean",
|
|
7916
|
+
"default": false
|
|
7917
|
+
},
|
|
7918
|
+
"had_pii_detected": {
|
|
7919
|
+
"type": "boolean",
|
|
7920
|
+
"default": false
|
|
7921
|
+
},
|
|
7922
|
+
"injection_score": {
|
|
7923
|
+
"type": "number",
|
|
7924
|
+
"default": 0
|
|
7925
|
+
},
|
|
7926
|
+
"policy_violations": {
|
|
7927
|
+
"type": "array",
|
|
7928
|
+
"items": {
|
|
7929
|
+
"type": "string"
|
|
7930
|
+
}
|
|
7931
|
+
},
|
|
7932
|
+
"metadata": {
|
|
7933
|
+
"type": "object"
|
|
7934
|
+
}
|
|
7935
|
+
}
|
|
7936
|
+
},
|
|
7485
7937
|
"HealthResponse": {
|
|
7486
7938
|
"type": "object",
|
|
7487
7939
|
"properties": {
|
package/openapi.yaml
CHANGED
|
@@ -2,7 +2,7 @@ openapi: 3.1.0
|
|
|
2
2
|
|
|
3
3
|
info:
|
|
4
4
|
title: 1Claw API
|
|
5
|
-
version: 2.
|
|
5
|
+
version: 2.7.0
|
|
6
6
|
description: |
|
|
7
7
|
Secure secret management for AI agents. Provides vaults, secrets,
|
|
8
8
|
policy-based access control, agent identity, Intents API,
|
|
@@ -2597,6 +2597,72 @@ paths:
|
|
|
2597
2597
|
type: string
|
|
2598
2598
|
enum: [ok, degraded, unavailable]
|
|
2599
2599
|
|
|
2600
|
+
# --- Shroud Activity ---
|
|
2601
|
+
|
|
2602
|
+
/v1/shroud/activity:
|
|
2603
|
+
get:
|
|
2604
|
+
tags: [Shroud]
|
|
2605
|
+
summary: List Shroud activity events
|
|
2606
|
+
description: Returns recent Shroud proxy activity for the organization (LLM requests, inspections, policy actions).
|
|
2607
|
+
security:
|
|
2608
|
+
- BearerAuth: []
|
|
2609
|
+
parameters:
|
|
2610
|
+
- in: query
|
|
2611
|
+
name: agent_id
|
|
2612
|
+
schema:
|
|
2613
|
+
type: string
|
|
2614
|
+
description: Filter by agent ID
|
|
2615
|
+
- in: query
|
|
2616
|
+
name: action
|
|
2617
|
+
schema:
|
|
2618
|
+
type: string
|
|
2619
|
+
description: Filter by action (allowed, blocked, warned)
|
|
2620
|
+
- in: query
|
|
2621
|
+
name: limit
|
|
2622
|
+
schema:
|
|
2623
|
+
type: integer
|
|
2624
|
+
default: 50
|
|
2625
|
+
description: Maximum events to return
|
|
2626
|
+
- in: query
|
|
2627
|
+
name: offset
|
|
2628
|
+
schema:
|
|
2629
|
+
type: integer
|
|
2630
|
+
default: 0
|
|
2631
|
+
description: Pagination offset
|
|
2632
|
+
responses:
|
|
2633
|
+
"200":
|
|
2634
|
+
description: Activity events
|
|
2635
|
+
content:
|
|
2636
|
+
application/json:
|
|
2637
|
+
schema:
|
|
2638
|
+
type: object
|
|
2639
|
+
properties:
|
|
2640
|
+
events:
|
|
2641
|
+
type: array
|
|
2642
|
+
items:
|
|
2643
|
+
$ref: "#/components/schemas/ShroudActivityEvent"
|
|
2644
|
+
total:
|
|
2645
|
+
type: integer
|
|
2646
|
+
"401":
|
|
2647
|
+
description: Unauthorized
|
|
2648
|
+
post:
|
|
2649
|
+
tags: [Shroud]
|
|
2650
|
+
summary: Ingest Shroud activity event (internal)
|
|
2651
|
+
description: Called by the Shroud proxy to record activity events. Not intended for external use.
|
|
2652
|
+
security:
|
|
2653
|
+
- BearerAuth: []
|
|
2654
|
+
requestBody:
|
|
2655
|
+
required: true
|
|
2656
|
+
content:
|
|
2657
|
+
application/json:
|
|
2658
|
+
schema:
|
|
2659
|
+
$ref: "#/components/schemas/IngestShroudActivityRequest"
|
|
2660
|
+
responses:
|
|
2661
|
+
"201":
|
|
2662
|
+
description: Event recorded
|
|
2663
|
+
"401":
|
|
2664
|
+
description: Unauthorized
|
|
2665
|
+
|
|
2600
2666
|
# =============================================================================
|
|
2601
2667
|
# COMPONENTS
|
|
2602
2668
|
# =============================================================================
|
|
@@ -3715,6 +3781,21 @@ components:
|
|
|
3715
3781
|
type: boolean
|
|
3716
3782
|
default: true
|
|
3717
3783
|
description: Whether to log all detected threats to audit (even when action is allow/warn)
|
|
3784
|
+
tool_call_inspection:
|
|
3785
|
+
$ref: "#/components/schemas/ToolCallPolicy"
|
|
3786
|
+
output_policy:
|
|
3787
|
+
$ref: "#/components/schemas/OutputPolicy"
|
|
3788
|
+
secret_injection_detection:
|
|
3789
|
+
$ref: "#/components/schemas/SecretInjectionConfig"
|
|
3790
|
+
advanced_redaction:
|
|
3791
|
+
$ref: "#/components/schemas/AdvancedRedactionConfig"
|
|
3792
|
+
semantic_policy:
|
|
3793
|
+
$ref: "#/components/schemas/SemanticPolicy"
|
|
3794
|
+
flagged_request_retention_days:
|
|
3795
|
+
type: integer
|
|
3796
|
+
minimum: 0
|
|
3797
|
+
maximum: 365
|
|
3798
|
+
description: Number of days to retain flagged request bodies for replay/investigation
|
|
3718
3799
|
|
|
3719
3800
|
UnicodeNormalizationConfig:
|
|
3720
3801
|
type: object
|
|
@@ -3850,6 +3931,150 @@ components:
|
|
|
3850
3931
|
type: string
|
|
3851
3932
|
description: Path patterns to block (e.g., /etc/passwd, ~/.ssh)
|
|
3852
3933
|
|
|
3934
|
+
ToolCallPolicy:
|
|
3935
|
+
type: object
|
|
3936
|
+
description: Tool/function call inspection settings
|
|
3937
|
+
properties:
|
|
3938
|
+
enabled:
|
|
3939
|
+
type: boolean
|
|
3940
|
+
default: false
|
|
3941
|
+
description: Enable tool call inspection
|
|
3942
|
+
allowed_tool_names:
|
|
3943
|
+
type: array
|
|
3944
|
+
items:
|
|
3945
|
+
type: string
|
|
3946
|
+
description: Allowed tool/function names (empty = all allowed)
|
|
3947
|
+
denied_tool_names:
|
|
3948
|
+
type: array
|
|
3949
|
+
items:
|
|
3950
|
+
type: string
|
|
3951
|
+
description: Denied tool/function names
|
|
3952
|
+
scan_arguments:
|
|
3953
|
+
type: boolean
|
|
3954
|
+
default: true
|
|
3955
|
+
description: Scan tool call arguments for credential exfiltration
|
|
3956
|
+
block_credential_exfil:
|
|
3957
|
+
type: boolean
|
|
3958
|
+
default: true
|
|
3959
|
+
description: Block tool calls that appear to exfiltrate credentials
|
|
3960
|
+
action:
|
|
3961
|
+
type: string
|
|
3962
|
+
enum: [block, sanitize, warn, log]
|
|
3963
|
+
default: block
|
|
3964
|
+
description: Action when a tool call violation is detected
|
|
3965
|
+
|
|
3966
|
+
OutputPolicy:
|
|
3967
|
+
type: object
|
|
3968
|
+
description: Output content policy settings for LLM responses
|
|
3969
|
+
properties:
|
|
3970
|
+
enabled:
|
|
3971
|
+
type: boolean
|
|
3972
|
+
default: false
|
|
3973
|
+
description: Enable output content policies
|
|
3974
|
+
blocked_patterns:
|
|
3975
|
+
type: array
|
|
3976
|
+
items:
|
|
3977
|
+
type: string
|
|
3978
|
+
description: Custom regex patterns to block in responses
|
|
3979
|
+
blocked_entities:
|
|
3980
|
+
type: array
|
|
3981
|
+
items:
|
|
3982
|
+
type: string
|
|
3983
|
+
description: Named entities to block (e.g., competitor names)
|
|
3984
|
+
block_harmful_content:
|
|
3985
|
+
type: boolean
|
|
3986
|
+
default: false
|
|
3987
|
+
description: Block responses containing harmful content categories
|
|
3988
|
+
harmful_categories:
|
|
3989
|
+
type: array
|
|
3990
|
+
items:
|
|
3991
|
+
type: string
|
|
3992
|
+
enum: [violence, self_harm, illegal, hate, sexual, malware]
|
|
3993
|
+
description: Harm categories to block
|
|
3994
|
+
action:
|
|
3995
|
+
type: string
|
|
3996
|
+
enum: [block, sanitize, warn, log]
|
|
3997
|
+
default: warn
|
|
3998
|
+
description: Action when output policy is violated
|
|
3999
|
+
|
|
4000
|
+
SecretInjectionConfig:
|
|
4001
|
+
type: object
|
|
4002
|
+
description: Detects credentials injected into prompts that are not from the vault
|
|
4003
|
+
properties:
|
|
4004
|
+
enabled:
|
|
4005
|
+
type: boolean
|
|
4006
|
+
default: false
|
|
4007
|
+
description: Enable secret injection detection
|
|
4008
|
+
action:
|
|
4009
|
+
type: string
|
|
4010
|
+
enum: [block, sanitize, warn, log]
|
|
4011
|
+
default: block
|
|
4012
|
+
description: Action when injected credentials are detected
|
|
4013
|
+
sensitivity:
|
|
4014
|
+
type: string
|
|
4015
|
+
enum: [low, medium, high]
|
|
4016
|
+
default: medium
|
|
4017
|
+
description: Detection sensitivity level
|
|
4018
|
+
|
|
4019
|
+
AdvancedRedactionConfig:
|
|
4020
|
+
type: object
|
|
4021
|
+
description: Advanced secret redaction settings (base64-encoded, split, prefix leaks)
|
|
4022
|
+
properties:
|
|
4023
|
+
enabled:
|
|
4024
|
+
type: boolean
|
|
4025
|
+
default: false
|
|
4026
|
+
description: Enable advanced redaction checks
|
|
4027
|
+
detect_base64_encoded:
|
|
4028
|
+
type: boolean
|
|
4029
|
+
default: false
|
|
4030
|
+
description: Detect base64-encoded vault secrets
|
|
4031
|
+
detect_split_secrets:
|
|
4032
|
+
type: boolean
|
|
4033
|
+
default: false
|
|
4034
|
+
description: Detect secrets split across tokens or messages
|
|
4035
|
+
detect_prefix_leak:
|
|
4036
|
+
type: boolean
|
|
4037
|
+
default: false
|
|
4038
|
+
description: Detect partial/prefix leaks of vault secrets
|
|
4039
|
+
min_secret_length:
|
|
4040
|
+
type: integer
|
|
4041
|
+
default: 16
|
|
4042
|
+
description: Minimum secret length to consider for advanced matching
|
|
4043
|
+
|
|
4044
|
+
SemanticPolicy:
|
|
4045
|
+
type: object
|
|
4046
|
+
description: Semantic/intent-level policy enforcement
|
|
4047
|
+
properties:
|
|
4048
|
+
enabled:
|
|
4049
|
+
type: boolean
|
|
4050
|
+
default: false
|
|
4051
|
+
description: Enable semantic policy enforcement
|
|
4052
|
+
allowed_topics:
|
|
4053
|
+
type: array
|
|
4054
|
+
items:
|
|
4055
|
+
type: string
|
|
4056
|
+
description: Topics the agent is allowed to discuss (empty = all)
|
|
4057
|
+
denied_topics:
|
|
4058
|
+
type: array
|
|
4059
|
+
items:
|
|
4060
|
+
type: string
|
|
4061
|
+
description: Topics to block
|
|
4062
|
+
allowed_tasks:
|
|
4063
|
+
type: array
|
|
4064
|
+
items:
|
|
4065
|
+
type: string
|
|
4066
|
+
description: Tasks the agent is allowed to perform (empty = all)
|
|
4067
|
+
denied_tasks:
|
|
4068
|
+
type: array
|
|
4069
|
+
items:
|
|
4070
|
+
type: string
|
|
4071
|
+
description: Tasks to block (e.g., code_generation, data_export)
|
|
4072
|
+
action:
|
|
4073
|
+
type: string
|
|
4074
|
+
enum: [block, sanitize, warn, log]
|
|
4075
|
+
default: warn
|
|
4076
|
+
description: Action when semantic policy is violated
|
|
4077
|
+
|
|
3853
4078
|
AgentCreatedResponse:
|
|
3854
4079
|
type: object
|
|
3855
4080
|
required: [agent]
|
|
@@ -4995,6 +5220,84 @@ components:
|
|
|
4995
5220
|
description:
|
|
4996
5221
|
type: string
|
|
4997
5222
|
|
|
5223
|
+
# --- Shroud Activity ---
|
|
5224
|
+
|
|
5225
|
+
ShroudActivityEvent:
|
|
5226
|
+
type: object
|
|
5227
|
+
properties:
|
|
5228
|
+
id:
|
|
5229
|
+
type: string
|
|
5230
|
+
format: uuid
|
|
5231
|
+
org_id:
|
|
5232
|
+
type: string
|
|
5233
|
+
format: uuid
|
|
5234
|
+
agent_id:
|
|
5235
|
+
type: string
|
|
5236
|
+
provider:
|
|
5237
|
+
type: string
|
|
5238
|
+
model:
|
|
5239
|
+
type: string
|
|
5240
|
+
action:
|
|
5241
|
+
type: string
|
|
5242
|
+
description: Action taken (allowed, blocked, warned)
|
|
5243
|
+
request_tokens:
|
|
5244
|
+
type: integer
|
|
5245
|
+
response_tokens:
|
|
5246
|
+
type: integer
|
|
5247
|
+
latency_ms:
|
|
5248
|
+
type: integer
|
|
5249
|
+
had_secrets_redacted:
|
|
5250
|
+
type: boolean
|
|
5251
|
+
had_pii_detected:
|
|
5252
|
+
type: boolean
|
|
5253
|
+
injection_score:
|
|
5254
|
+
type: number
|
|
5255
|
+
policy_violations:
|
|
5256
|
+
type: array
|
|
5257
|
+
items:
|
|
5258
|
+
type: string
|
|
5259
|
+
metadata:
|
|
5260
|
+
type: object
|
|
5261
|
+
timestamp:
|
|
5262
|
+
type: string
|
|
5263
|
+
format: date-time
|
|
5264
|
+
|
|
5265
|
+
IngestShroudActivityRequest:
|
|
5266
|
+
type: object
|
|
5267
|
+
required: [agent_id, action]
|
|
5268
|
+
properties:
|
|
5269
|
+
agent_id:
|
|
5270
|
+
type: string
|
|
5271
|
+
provider:
|
|
5272
|
+
type: string
|
|
5273
|
+
model:
|
|
5274
|
+
type: string
|
|
5275
|
+
action:
|
|
5276
|
+
type: string
|
|
5277
|
+
request_tokens:
|
|
5278
|
+
type: integer
|
|
5279
|
+
default: 0
|
|
5280
|
+
response_tokens:
|
|
5281
|
+
type: integer
|
|
5282
|
+
default: 0
|
|
5283
|
+
latency_ms:
|
|
5284
|
+
type: integer
|
|
5285
|
+
had_secrets_redacted:
|
|
5286
|
+
type: boolean
|
|
5287
|
+
default: false
|
|
5288
|
+
had_pii_detected:
|
|
5289
|
+
type: boolean
|
|
5290
|
+
default: false
|
|
5291
|
+
injection_score:
|
|
5292
|
+
type: number
|
|
5293
|
+
default: 0
|
|
5294
|
+
policy_violations:
|
|
5295
|
+
type: array
|
|
5296
|
+
items:
|
|
5297
|
+
type: string
|
|
5298
|
+
metadata:
|
|
5299
|
+
type: object
|
|
5300
|
+
|
|
4998
5301
|
# --- Health ---
|
|
4999
5302
|
|
|
5000
5303
|
HealthResponse:
|