---
title: "Upsert deployment product config"
method: PUT
path: "/api/agent/deployments/{deploymentId}/products"
tags: ["DeploymentProductsService"]
---

# Upsert deployment product config

`PUT /api/agent/deployments/{deploymentId}/products`

Create or update the product configuration for a deployment

## Path parameters

- `deploymentId` integer, required

## Request body

- ProtosDeploymentV1PutDeploymentProductConfigRequest
  - `deploymentId` integer
  - `ai` ProtosDeploymentV1AiProductConfig
    - `legacy_allow_openai_code_sharing` boolean
    - `enabled` boolean
    - `send_patch_emails` boolean
    - `allowed_providers` string[]
  - `sast` ProtosDeploymentV1SastProductConfig
    - `enabled` boolean
    - `human_autofix_enabled` boolean
    - `ai_autofix` ProtosDeploymentV1AiAutofixConfig — Controls AI fix suggestions in PR comments ("Suggested fix"), not Autofix PR creation
      - `enabled` boolean
      - `min_confidence` number, float
    - `ai_autotriage` ProtosDeploymentV1AiAutotriageConfig
      - `enabled` boolean
      - `hide_false_positive_comments` boolean
      - `send_to_scm_comments` boolean
      - `send_to_slack` boolean
    - `ai_detection` ProtosDeploymentV1SastAiDetectionConfig
      - `enabled` boolean
    - `autofix_pr_enabled` boolean
    - `triagePermission` 'TRIAGE_PERMISSION_IGNORE' | 'TRIAGE_PERMISSION_REQUEST' | 'TRIAGE_PERMISSION_NONE', enum — triage permissions for the sast product | value | description | |-------|---------------| | TRIAGE_PERMISSION_IGNORE | | | TRIAGE_PERMISSION_REQUEST | | | TRIAGE_PERMISSION_NONE | |
  - `sca` ProtosDeploymentV1ScaProductConfig
    - `enabled` boolean
    - `blockPrEnabled` boolean
    - `prCommentsEnabled` boolean
    - `maliciousDependencyAdvisoriesEnabled` boolean
    - `upgradeGuidanceEnabled` boolean
    - `triagePermission` 'TRIAGE_PERMISSION_IGNORE' | 'TRIAGE_PERMISSION_REQUEST' | 'TRIAGE_PERMISSION_NONE', enum — triage permissions for the sca product | value | description | |-------|---------------| | TRIAGE_PERMISSION_IGNORE | | | TRIAGE_PERMISSION_REQUEST | | | TRIAGE_PERMISSION_NONE | |
    - `malwareFirewallEnabled` boolean
  - `secrets` ProtosDeploymentV1SecretsProductConfig
    - `enabled` boolean
    - `global_validation_state_policy` ProtosDeploymentV1SecretsValidationStatePolicyConfig
      - `error` string
      - `invalid` string
    - `historical_scan` ProtosDeploymentV1SecretsHistoricalScanConfig
      - `enabled` boolean
    - `generic_secrets` ProtosDeploymentV1SecretsGenericSecretsConfig
      - `enabled` boolean
    - `triagePermission` 'TRIAGE_PERMISSION_IGNORE' | 'TRIAGE_PERMISSION_REQUEST' | 'TRIAGE_PERMISSION_NONE', enum — triage permissions for the secrets product | value | description | |-------|---------------| | TRIAGE_PERMISSION_IGNORE | | | TRIAGE_PERMISSION_REQUEST | | | TRIAGE_PERMISSION_NONE | |
  - `approversTag` string
  - `hasDeveloperTriage` boolean — whether developers can triage findings themselves

## Response `200`

OK

- ProtosDeploymentV1PutDeploymentProductConfigResponse
  - `products` ProtosDeploymentV1DeploymentProductConfig — Regular product configuration types
    - `ai` ProtosDeploymentV1AiProductConfig
      - `legacy_allow_openai_code_sharing` boolean
      - `enabled` boolean
      - `send_patch_emails` boolean
      - `allowed_providers` string[]
    - `sast` ProtosDeploymentV1SastProductConfig
      - `enabled` boolean
      - `human_autofix_enabled` boolean
      - `ai_autofix` ProtosDeploymentV1AiAutofixConfig — Controls AI fix suggestions in PR comments ("Suggested fix"), not Autofix PR creation
        - `enabled` boolean
        - `min_confidence` number, float
      - `ai_autotriage` ProtosDeploymentV1AiAutotriageConfig
        - `enabled` boolean
        - `hide_false_positive_comments` boolean
        - `send_to_scm_comments` boolean
        - `send_to_slack` boolean
      - `ai_detection` ProtosDeploymentV1SastAiDetectionConfig
        - `enabled` boolean
      - `autofix_pr_enabled` boolean
      - `triagePermission` 'TRIAGE_PERMISSION_IGNORE' | 'TRIAGE_PERMISSION_REQUEST' | 'TRIAGE_PERMISSION_NONE', enum — triage permissions for the sast product | value | description | |-------|---------------| | TRIAGE_PERMISSION_IGNORE | | | TRIAGE_PERMISSION_REQUEST | | | TRIAGE_PERMISSION_NONE | |
    - `sca` ProtosDeploymentV1ScaProductConfig
      - `enabled` boolean
      - `blockPrEnabled` boolean
      - `prCommentsEnabled` boolean
      - `maliciousDependencyAdvisoriesEnabled` boolean
      - `upgradeGuidanceEnabled` boolean
      - `triagePermission` 'TRIAGE_PERMISSION_IGNORE' | 'TRIAGE_PERMISSION_REQUEST' | 'TRIAGE_PERMISSION_NONE', enum — triage permissions for the sca product | value | description | |-------|---------------| | TRIAGE_PERMISSION_IGNORE | | | TRIAGE_PERMISSION_REQUEST | | | TRIAGE_PERMISSION_NONE | |
      - `malwareFirewallEnabled` boolean
    - `secrets` ProtosDeploymentV1SecretsProductConfig
      - `enabled` boolean
      - `global_validation_state_policy` ProtosDeploymentV1SecretsValidationStatePolicyConfig
        - `error` string
        - `invalid` string
      - `historical_scan` ProtosDeploymentV1SecretsHistoricalScanConfig
        - `enabled` boolean
      - `generic_secrets` ProtosDeploymentV1SecretsGenericSecretsConfig
        - `enabled` boolean
      - `triagePermission` 'TRIAGE_PERMISSION_IGNORE' | 'TRIAGE_PERMISSION_REQUEST' | 'TRIAGE_PERMISSION_NONE', enum — triage permissions for the secrets product | value | description | |-------|---------------| | TRIAGE_PERMISSION_IGNORE | | | TRIAGE_PERMISSION_REQUEST | | | TRIAGE_PERMISSION_NONE | |
    - `approversTag` string — optional tag for approvers on responses to PR/MR comments when developers request exceptions
    - `hasDeveloperTriage` boolean — whether developers can triage findings themselves; defaults to true

---

[API](https://skmtc.dev/semgrep/apis/semgrep-web-app.md) · [All operations](https://skmtc.dev/semgrep/apis/semgrep-web-app/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/semgrep/semgrep-web-app/revisions/6483eeecd582/schema)
