@1claw/openapi-spec 0.16.3 → 0.18.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/openapi.yaml CHANGED
@@ -2,7 +2,7 @@ openapi: 3.1.0
2
2
 
3
3
  info:
4
4
  title: 1Claw API
5
- version: 2.6.0
5
+ version: 2.8.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,
@@ -802,6 +802,41 @@ paths:
802
802
  "404":
803
803
  $ref: "#/components/responses/NotFound"
804
804
 
805
+ # ---------------------------------------------------------------------------
806
+ # MPC
807
+ # ---------------------------------------------------------------------------
808
+
809
+ /v1/vaults/{vault_id}/mpc:
810
+ post:
811
+ tags: [Vaults]
812
+ summary: Enable MPC custody on a vault
813
+ operationId: enableMpc
814
+ description: |
815
+ Enable MPC custody on an existing vault. Requires Business or Enterprise plan.
816
+ Splits secret encryption keys across multiple providers using the specified
817
+ custody mode (e.g. 2-of-2, 2-of-3).
818
+ parameters:
819
+ - $ref: "#/components/parameters/VaultId"
820
+ requestBody:
821
+ required: true
822
+ content:
823
+ application/json:
824
+ schema:
825
+ $ref: "#/components/schemas/EnableMpcRequest"
826
+ responses:
827
+ "200":
828
+ description: MPC custody enabled
829
+ content:
830
+ application/json:
831
+ schema:
832
+ $ref: "#/components/schemas/VaultResponse"
833
+ "400":
834
+ $ref: "#/components/responses/BadRequest"
835
+ "403":
836
+ $ref: "#/components/responses/Forbidden"
837
+ "404":
838
+ $ref: "#/components/responses/NotFound"
839
+
805
840
  # ---------------------------------------------------------------------------
806
841
  # Secrets
807
842
  # ---------------------------------------------------------------------------
@@ -854,7 +889,7 @@ paths:
854
889
  content:
855
890
  application/json:
856
891
  schema:
857
- $ref: "#/components/schemas/SecretMetadataResponse"
892
+ $ref: "#/components/schemas/SecretCreatedResponse"
858
893
  "400":
859
894
  $ref: "#/components/responses/BadRequest"
860
895
  "402":
@@ -872,6 +907,12 @@ paths:
872
907
  parameters:
873
908
  - $ref: "#/components/parameters/VaultId"
874
909
  - $ref: "#/components/parameters/SecretPath"
910
+ - name: x-client-share
911
+ in: header
912
+ required: false
913
+ schema:
914
+ type: string
915
+ description: Base64-encoded client key share for MPC 2-of-2 vaults. Required when the vault uses 2-of-2 MPC custody.
875
916
  responses:
876
917
  "200":
877
918
  description: Decrypted secret value
@@ -2597,6 +2638,102 @@ paths:
2597
2638
  type: string
2598
2639
  enum: [ok, degraded, unavailable]
2599
2640
 
2641
+ # --- Shroud Activity ---
2642
+
2643
+ /v1/shroud/activity:
2644
+ get:
2645
+ tags: [Shroud]
2646
+ summary: List Shroud activity events
2647
+ description: Returns recent Shroud proxy activity for the organization (LLM requests, inspections, policy actions).
2648
+ security:
2649
+ - BearerAuth: []
2650
+ parameters:
2651
+ - in: query
2652
+ name: agent_id
2653
+ schema:
2654
+ type: string
2655
+ description: Filter by agent ID
2656
+ - in: query
2657
+ name: action
2658
+ schema:
2659
+ type: string
2660
+ description: Filter by action (allowed, blocked, warned)
2661
+ - in: query
2662
+ name: limit
2663
+ schema:
2664
+ type: integer
2665
+ default: 50
2666
+ description: Maximum events to return
2667
+ - in: query
2668
+ name: offset
2669
+ schema:
2670
+ type: integer
2671
+ default: 0
2672
+ description: Pagination offset
2673
+ responses:
2674
+ "200":
2675
+ description: Activity events
2676
+ content:
2677
+ application/json:
2678
+ schema:
2679
+ type: object
2680
+ properties:
2681
+ events:
2682
+ type: array
2683
+ items:
2684
+ $ref: "#/components/schemas/ShroudActivityEvent"
2685
+ total:
2686
+ type: integer
2687
+ "401":
2688
+ description: Unauthorized
2689
+ post:
2690
+ tags: [Shroud]
2691
+ summary: Ingest Shroud activity event (internal)
2692
+ description: Called by the Shroud proxy to record activity events. Not intended for external use.
2693
+ security:
2694
+ - BearerAuth: []
2695
+ requestBody:
2696
+ required: true
2697
+ content:
2698
+ application/json:
2699
+ schema:
2700
+ $ref: "#/components/schemas/IngestShroudActivityRequest"
2701
+ responses:
2702
+ "201":
2703
+ description: Event recorded
2704
+ "401":
2705
+ description: Unauthorized
2706
+
2707
+ /v1/shroud/threat-summary:
2708
+ get:
2709
+ tags: [Shroud]
2710
+ summary: Shroud threat analytics summary
2711
+ description: >
2712
+ Aggregated threat metrics for the organization from `shroud_activity`
2713
+ (detectors, blocked counts, recent flagged requests). Query `period` selects
2714
+ the window; the previous window of equal length is used for request volume trend.
2715
+ security:
2716
+ - BearerAuth: []
2717
+ parameters:
2718
+ - in: query
2719
+ name: period
2720
+ schema:
2721
+ type: string
2722
+ enum: [1h, 24h, 7d, 30d]
2723
+ default: 24h
2724
+ description: Rolling window ending now
2725
+ responses:
2726
+ "200":
2727
+ description: Threat summary
2728
+ content:
2729
+ application/json:
2730
+ schema:
2731
+ $ref: "#/components/schemas/ShroudThreatSummary"
2732
+ "400":
2733
+ description: Invalid period
2734
+ "401":
2735
+ description: Unauthorized
2736
+
2600
2737
  # =============================================================================
2601
2738
  # COMPONENTS
2602
2739
  # =============================================================================
@@ -3077,6 +3214,9 @@ components:
3077
3214
  type: string
3078
3215
  description:
3079
3216
  type: string
3217
+ mpc_custody:
3218
+ type: string
3219
+ description: MPC custody mode to enable at creation (e.g. "2-of-2", "2-of-3")
3080
3220
 
3081
3221
  VaultResponse:
3082
3222
  type: object
@@ -3102,6 +3242,17 @@ components:
3102
3242
  cmek_fingerprint:
3103
3243
  type: string
3104
3244
  description: SHA-256 fingerprint of the CMEK key (64 hex chars)
3245
+ mpc_custody:
3246
+ type: string
3247
+ description: MPC custody mode (e.g. "2-of-2", "2-of-3"), absent when MPC is not enabled
3248
+ mpc_threshold:
3249
+ type: integer
3250
+ description: Number of shares required to reconstruct the key
3251
+ mpc_providers:
3252
+ type: array
3253
+ items:
3254
+ type: string
3255
+ description: List of MPC share providers (e.g. ["server", "client"])
3105
3256
 
3106
3257
  VaultListResponse:
3107
3258
  type: object
@@ -3163,6 +3314,16 @@ components:
3163
3314
  type: string
3164
3315
  format: date-time
3165
3316
 
3317
+ # --- MPC ---
3318
+
3319
+ EnableMpcRequest:
3320
+ type: object
3321
+ required: [mpc_custody]
3322
+ properties:
3323
+ mpc_custody:
3324
+ type: string
3325
+ description: MPC custody mode (e.g. "2-of-2", "2-of-3")
3326
+
3166
3327
  # --- Secrets ---
3167
3328
 
3168
3329
  PutSecretRequest:
@@ -3210,6 +3371,33 @@ components:
3210
3371
  type: string
3211
3372
  format: date-time
3212
3373
 
3374
+ SecretCreatedResponse:
3375
+ description: Returned when a secret is created or updated. Extends SecretMetadataResponse with an optional client_share for MPC vaults.
3376
+ type: object
3377
+ required: [id, path, type, version, created_at]
3378
+ properties:
3379
+ id:
3380
+ type: string
3381
+ format: uuid
3382
+ path:
3383
+ type: string
3384
+ type:
3385
+ type: string
3386
+ version:
3387
+ type: integer
3388
+ metadata:
3389
+ type: object
3390
+ additionalProperties: true
3391
+ created_at:
3392
+ type: string
3393
+ format: date-time
3394
+ expires_at:
3395
+ type: string
3396
+ format: date-time
3397
+ client_share:
3398
+ type: string
3399
+ description: Base64-encoded client key share. Returned only for MPC 2-of-2 vaults. The client must store this share securely — it is not persisted server-side.
3400
+
3213
3401
  SecretResponse:
3214
3402
  type: object
3215
3403
  required: [id, path, type, value, version, created_at]
@@ -3715,6 +3903,21 @@ components:
3715
3903
  type: boolean
3716
3904
  default: true
3717
3905
  description: Whether to log all detected threats to audit (even when action is allow/warn)
3906
+ tool_call_inspection:
3907
+ $ref: "#/components/schemas/ToolCallPolicy"
3908
+ output_policy:
3909
+ $ref: "#/components/schemas/OutputPolicy"
3910
+ secret_injection_detection:
3911
+ $ref: "#/components/schemas/SecretInjectionConfig"
3912
+ advanced_redaction:
3913
+ $ref: "#/components/schemas/AdvancedRedactionConfig"
3914
+ semantic_policy:
3915
+ $ref: "#/components/schemas/SemanticPolicy"
3916
+ flagged_request_retention_days:
3917
+ type: integer
3918
+ minimum: 0
3919
+ maximum: 365
3920
+ description: Number of days to retain flagged request bodies for replay/investigation
3718
3921
 
3719
3922
  UnicodeNormalizationConfig:
3720
3923
  type: object
@@ -3850,6 +4053,150 @@ components:
3850
4053
  type: string
3851
4054
  description: Path patterns to block (e.g., /etc/passwd, ~/.ssh)
3852
4055
 
4056
+ ToolCallPolicy:
4057
+ type: object
4058
+ description: Tool/function call inspection settings
4059
+ properties:
4060
+ enabled:
4061
+ type: boolean
4062
+ default: false
4063
+ description: Enable tool call inspection
4064
+ allowed_tool_names:
4065
+ type: array
4066
+ items:
4067
+ type: string
4068
+ description: Allowed tool/function names (empty = all allowed)
4069
+ denied_tool_names:
4070
+ type: array
4071
+ items:
4072
+ type: string
4073
+ description: Denied tool/function names
4074
+ scan_arguments:
4075
+ type: boolean
4076
+ default: true
4077
+ description: Scan tool call arguments for credential exfiltration
4078
+ block_credential_exfil:
4079
+ type: boolean
4080
+ default: true
4081
+ description: Block tool calls that appear to exfiltrate credentials
4082
+ action:
4083
+ type: string
4084
+ enum: [block, sanitize, warn, log]
4085
+ default: block
4086
+ description: Action when a tool call violation is detected
4087
+
4088
+ OutputPolicy:
4089
+ type: object
4090
+ description: Output content policy settings for LLM responses
4091
+ properties:
4092
+ enabled:
4093
+ type: boolean
4094
+ default: false
4095
+ description: Enable output content policies
4096
+ blocked_patterns:
4097
+ type: array
4098
+ items:
4099
+ type: string
4100
+ description: Custom regex patterns to block in responses
4101
+ blocked_entities:
4102
+ type: array
4103
+ items:
4104
+ type: string
4105
+ description: Named entities to block (e.g., competitor names)
4106
+ block_harmful_content:
4107
+ type: boolean
4108
+ default: false
4109
+ description: Block responses containing harmful content categories
4110
+ harmful_categories:
4111
+ type: array
4112
+ items:
4113
+ type: string
4114
+ enum: [violence, self_harm, illegal, hate, sexual, malware]
4115
+ description: Harm categories to block
4116
+ action:
4117
+ type: string
4118
+ enum: [block, sanitize, warn, log]
4119
+ default: warn
4120
+ description: Action when output policy is violated
4121
+
4122
+ SecretInjectionConfig:
4123
+ type: object
4124
+ description: Detects credentials injected into prompts that are not from the vault
4125
+ properties:
4126
+ enabled:
4127
+ type: boolean
4128
+ default: false
4129
+ description: Enable secret injection detection
4130
+ action:
4131
+ type: string
4132
+ enum: [block, sanitize, warn, log]
4133
+ default: block
4134
+ description: Action when injected credentials are detected
4135
+ sensitivity:
4136
+ type: string
4137
+ enum: [low, medium, high]
4138
+ default: medium
4139
+ description: Detection sensitivity level
4140
+
4141
+ AdvancedRedactionConfig:
4142
+ type: object
4143
+ description: Advanced secret redaction settings (base64-encoded, split, prefix leaks)
4144
+ properties:
4145
+ enabled:
4146
+ type: boolean
4147
+ default: false
4148
+ description: Enable advanced redaction checks
4149
+ detect_base64_encoded:
4150
+ type: boolean
4151
+ default: false
4152
+ description: Detect base64-encoded vault secrets
4153
+ detect_split_secrets:
4154
+ type: boolean
4155
+ default: false
4156
+ description: Detect secrets split across tokens or messages
4157
+ detect_prefix_leak:
4158
+ type: boolean
4159
+ default: false
4160
+ description: Detect partial/prefix leaks of vault secrets
4161
+ min_secret_length:
4162
+ type: integer
4163
+ default: 16
4164
+ description: Minimum secret length to consider for advanced matching
4165
+
4166
+ SemanticPolicy:
4167
+ type: object
4168
+ description: Semantic/intent-level policy enforcement
4169
+ properties:
4170
+ enabled:
4171
+ type: boolean
4172
+ default: false
4173
+ description: Enable semantic policy enforcement
4174
+ allowed_topics:
4175
+ type: array
4176
+ items:
4177
+ type: string
4178
+ description: Topics the agent is allowed to discuss (empty = all)
4179
+ denied_topics:
4180
+ type: array
4181
+ items:
4182
+ type: string
4183
+ description: Topics to block
4184
+ allowed_tasks:
4185
+ type: array
4186
+ items:
4187
+ type: string
4188
+ description: Tasks the agent is allowed to perform (empty = all)
4189
+ denied_tasks:
4190
+ type: array
4191
+ items:
4192
+ type: string
4193
+ description: Tasks to block (e.g., code_generation, data_export)
4194
+ action:
4195
+ type: string
4196
+ enum: [block, sanitize, warn, log]
4197
+ default: warn
4198
+ description: Action when semantic policy is violated
4199
+
3853
4200
  AgentCreatedResponse:
3854
4201
  type: object
3855
4202
  required: [agent]
@@ -4995,6 +5342,155 @@ components:
4995
5342
  description:
4996
5343
  type: string
4997
5344
 
5345
+ # --- Shroud Activity ---
5346
+
5347
+ ShroudActivityEvent:
5348
+ type: object
5349
+ properties:
5350
+ id:
5351
+ type: string
5352
+ format: uuid
5353
+ org_id:
5354
+ type: string
5355
+ format: uuid
5356
+ agent_id:
5357
+ type: string
5358
+ provider:
5359
+ type: string
5360
+ model:
5361
+ type: string
5362
+ action:
5363
+ type: string
5364
+ description: Action taken (allowed, blocked, warned)
5365
+ request_tokens:
5366
+ type: integer
5367
+ response_tokens:
5368
+ type: integer
5369
+ latency_ms:
5370
+ type: integer
5371
+ had_secrets_redacted:
5372
+ type: boolean
5373
+ had_pii_detected:
5374
+ type: boolean
5375
+ injection_score:
5376
+ type: number
5377
+ policy_violations:
5378
+ type: array
5379
+ items:
5380
+ type: string
5381
+ metadata:
5382
+ type: object
5383
+ timestamp:
5384
+ type: string
5385
+ format: date-time
5386
+
5387
+ IngestShroudActivityRequest:
5388
+ type: object
5389
+ required: [agent_id, action]
5390
+ properties:
5391
+ agent_id:
5392
+ type: string
5393
+ provider:
5394
+ type: string
5395
+ model:
5396
+ type: string
5397
+ action:
5398
+ type: string
5399
+ request_tokens:
5400
+ type: integer
5401
+ default: 0
5402
+ response_tokens:
5403
+ type: integer
5404
+ default: 0
5405
+ latency_ms:
5406
+ type: integer
5407
+ had_secrets_redacted:
5408
+ type: boolean
5409
+ default: false
5410
+ had_pii_detected:
5411
+ type: boolean
5412
+ default: false
5413
+ injection_score:
5414
+ type: number
5415
+ default: 0
5416
+ policy_violations:
5417
+ type: array
5418
+ items:
5419
+ type: string
5420
+ metadata:
5421
+ type: object
5422
+
5423
+ ShroudThreatSummary:
5424
+ type: object
5425
+ properties:
5426
+ total_requests:
5427
+ type: integer
5428
+ format: int64
5429
+ total_requests_prev:
5430
+ type: integer
5431
+ format: int64
5432
+ blocked_requests:
5433
+ type: integer
5434
+ format: int64
5435
+ detectors_triggered:
5436
+ type: integer
5437
+ format: int64
5438
+ active_agents:
5439
+ type: integer
5440
+ format: int64
5441
+ detectors:
5442
+ type: array
5443
+ items:
5444
+ $ref: "#/components/schemas/ShroudDetectorStats"
5445
+ flagged_requests:
5446
+ type: array
5447
+ items:
5448
+ $ref: "#/components/schemas/ShroudFlaggedRequest"
5449
+
5450
+ ShroudDetectorStats:
5451
+ type: object
5452
+ properties:
5453
+ detector:
5454
+ type: string
5455
+ detections:
5456
+ type: integer
5457
+ format: int64
5458
+ blocks:
5459
+ type: integer
5460
+ format: int64
5461
+ actions:
5462
+ type: object
5463
+ properties:
5464
+ blocked:
5465
+ type: integer
5466
+ format: int64
5467
+ warned:
5468
+ type: integer
5469
+ format: int64
5470
+ logged:
5471
+ type: integer
5472
+ format: int64
5473
+
5474
+ ShroudFlaggedRequest:
5475
+ type: object
5476
+ properties:
5477
+ id:
5478
+ type: string
5479
+ timestamp:
5480
+ type: string
5481
+ format: date-time
5482
+ agent_id:
5483
+ type: string
5484
+ agent_name:
5485
+ type: string
5486
+ score:
5487
+ type: number
5488
+ reason:
5489
+ type: string
5490
+ action:
5491
+ type: string
5492
+ enum: [blocked, warned, logged]
5493
+
4998
5494
  # --- Health ---
4999
5495
 
5000
5496
  HealthResponse:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1claw/openapi-spec",
3
- "version": "0.16.3",
3
+ "version": "0.18.0",
4
4
  "description": "OpenAPI 3.1.0 specification for the 1Claw Vault API — generate clients in any language",
5
5
  "license": "MIT",
6
6
  "repository": {