# PUT /api/v1/app/{appId}/policy/flags

**Update application tech flags**

## Update Tech Flags
Updates the technology flags for this application.

Adjusting these tech flags alters the behavior of plugins by either conditionally executing or operating differently based on the enabled flags. Optimizing tech flags by excluding unused technologies can speed up scans and reduce false positives.

**Additional Information:**
- The `techFlags` map provided must contain keys that exactly match the accepted technology flags. Use the [Get application tech flags](ref:getapptechflags) endpoint to read the current configuration for an application.
- The default value for all flags is `true`. Setting a flag to `false` will disable or alter the behavior of related plugins.

**Accepted Technology Flags:**

| Technology Flags        |
|-------------------------|
| Db                      |
| Db.MySQL                |
| Db.PostgreSQL           |
| Db.Microsoft SQL Server |
| Db.Oracle               |
| Db.SQLite               |
| Db.Microsoft Access     |
| Db.Firebird             |
| Db.SAP MaxDB            |
| Db.Sybase               |
| Db.IBM DB2              |
| Db.HypersonicSQL        |
| Db.MongoDB              |
| Db.CouchDB              |
| Language                |
| Language.ASP            |
| Language.C              |
| Language.Java           |
| Language.Java.Spring    |
| Language.JavaScript     |
| Language.JSP/Servlet    |
| Language.PHP            |
| Language.Python         |
| Language.Ruby           |
| Language.XML            |
| OS                      |
| OS.Linux                |
| OS.MacOS                |
| OS.Windows              |
| SCM                     |
| SCM.Git                 |
| SCM.SVN                 |
| WS                      |
| WS.Apache               |
| WS.IIS                  |

> 🧾 Audited
> This is recorded as `TECH_FLAG_MODIFIED` [User Activity](https://apidocs.stackhawk.com/reference/listauditactivity#user-activity-types).

> Requires `write:application` permission.

## Parameters

- `appId` (in: path, string<uuid>) *(required)* — UUID identifier for this StackHawk Application.

## Request Body

### application/json

- type: object

## Responses

### 200 — OK

#### application/json

- `scanPolicy` (scanpolicy.ScanPolicy)
  - `applicationId` (string) — The UUID identifier of the scan policy application. If no application ID is present, the scan policy is defined by StackHawk. If the application ID is present, then the scan policy is customized for the given application only.
  - `description` (string) — The description for this policy.
  - `displayName` (string) — The human readable display name for this policy.
  - `id` (string) — The UUID identifier of this scan policy.
  - `isCustomized` (boolean) — Indicates whether the plugins have been updated from original scan policy.
  - `name` (string) — The referencable unique name of a StackHawk scan policy.
  - `plugins` (scanpolicy.Plugin[]) — List of the plugins defined for this policy.
    - `defaultRisk` (string) — Default risk for this plugin. Currently unused.
    - `enabled` (boolean) — Enables the plugin. Plugins will only run in a scan when marked as enabled.
    - `maxAlerts` (integer<int32>) — Maximum number of alerts from this plugin reported to the platform. The plugin keeps testing past the limit; only reporting is capped. Unset or 0 means unlimited. Must be non-negative; HawkScan treats a negative value as 0 (unlimited). Managed by StackHawk.
    - `name` (string) — The Plugin name.
    - `pluginId` (string) — The UUID identifier of this plugin.
    - `pluginType` (string) — The type of plugin to run as. Either ACTIVE or PASSIVE.
    - `status` (string) — The release quality of this plugin.
    - `strength` (string) — The strength of this plugin. Currently unused.
    - `threshold` (string) — The threshold of this plugin. Currently unused.
  - `techFlags` (object) — Technology flags for this policy. This is a collection of specific technology identifiers that further configure scan behavior.

#### application/x-protobuf

- `scanPolicy` (scanpolicy.ScanPolicy)
  - `applicationId` (string) — The UUID identifier of the scan policy application. If no application ID is present, the scan policy is defined by StackHawk. If the application ID is present, then the scan policy is customized for the given application only.
  - `description` (string) — The description for this policy.
  - `displayName` (string) — The human readable display name for this policy.
  - `id` (string) — The UUID identifier of this scan policy.
  - `isCustomized` (boolean) — Indicates whether the plugins have been updated from original scan policy.
  - `name` (string) — The referencable unique name of a StackHawk scan policy.
  - `plugins` (scanpolicy.Plugin[]) — List of the plugins defined for this policy.
    - `defaultRisk` (string) — Default risk for this plugin. Currently unused.
    - `enabled` (boolean) — Enables the plugin. Plugins will only run in a scan when marked as enabled.
    - `maxAlerts` (integer<int32>) — Maximum number of alerts from this plugin reported to the platform. The plugin keeps testing past the limit; only reporting is capped. Unset or 0 means unlimited. Must be non-negative; HawkScan treats a negative value as 0 (unlimited). Managed by StackHawk.
    - `name` (string) — The Plugin name.
    - `pluginId` (string) — The UUID identifier of this plugin.
    - `pluginType` (string) — The type of plugin to run as. Either ACTIVE or PASSIVE.
    - `status` (string) — The release quality of this plugin.
    - `strength` (string) — The strength of this plugin. Currently unused.
    - `threshold` (string) — The threshold of this plugin. Currently unused.
  - `techFlags` (object) — Technology flags for this policy. This is a collection of specific technology identifiers that further configure scan behavior.

### 400 — Bad Request

- (no body)

### 401 — Unauthorized

- (no body)
