Bulk Waivers API
Bulk Waivers API
Overview
The Firewall Bulk Waivers API extends the Firewall waiver APIs to create multiple repository policy waivers in a single request. It supports both quarantine violations (FAIL) and non-quarantine violations (WARN).
This API is atomic, if any violation fails validation, the entire request is rolled back and no waivers are created. Duplicate violation IDs are automatically deduplicated, and violations that already have applicable waivers are skipped without error. A maximum of 1000 violation IDs can be processed per request.
The Bulk Waivers feature supports bulk creation of waivers only. There is no bulk waiver request workflow for later approval.
Required permission: Waive Policy Violations
Endpoint
POST /api/v2/firewall/repositories/{ownerType}/{ownerId}/waivers/bulk
Path Parameter
| Parameter | Type | Required | Description |
|---|---|---|---|
ownerType |
string | Yes | Scope of the waiver. One of: organization, repository, repository_manager, repository_container. |
ownerId |
string | Yes | ID corresponding to ownerType. All submitted violations must belong to this owner’s tenant hierarchy. |
Request Body
The request body must be a JSON object in the following format:
{
"violationIds": ["violation-id-1", "violation-id-2"],
"apiWaiverOptionsDTO": {
"comment": "string",
"matcherStrategy": "EXACT_COMPONENT",
"expiryTime": "2026-04-30T23:59:59.999Z",
"waiverReasonId": "string",
"expireWhenRemediationAvailable": false
}
}
Request Body Properties
| Property | Type | Required | Description |
|---|---|---|---|
violationIds |
array |
Yes | List of repository policy violation IDs to waive. Maximum 1000 per request. Duplicate IDs are deduplicated automatically. Already-waived violations are skipped without error. |
apiWaiverOptionsDTO |
object | Yes | Waiver configuration options applied to all submitted violations. |
Waiver Options Properties
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
comment |
string | No | null |
Comment describing why the violations are being waived. |
matcherStrategy |
string | Yes | - | Supported values: EXACT_COMPONENT, ALL_VERSIONS. |
expiryTime |
string | No | null |
Optional expiration date/time in ISO 8601 format. Must be in the future if provided. |
waiverReasonId |
string | No | null |
Optional Waiver Reason ID. |
expireWhenRemediationAvailable |
boolean | No | false |
Automatically expires the waiver when remediation becomes available. Only valid with EXACT_COMPONENT. |
Behavior and Validation
Only Firewall repository policy violations can be bulk waived with this endpoint.
All violations must belong to the specified owner’s tenant hierarchy.
Only
EXACT_COMPONENTandALL_VERSIONSare supported.If
expireWhenRemediationAvailable=true,matcherStrategymust beEXACT_COMPONENT.If
expiryTimeis provided, it must validate as a future date on the server.The endpoint returns 204 No Content when the bulk waiver is created successfully.
Example:
Basic Firewall Bulk Waiver Creation Request:
curl -X POST \
"https://your-server/api/v2Responses/firewall/repositories/repository/repo-12345/waivers/bulk" \
-H "Content-Type: application/json" \
-u username:password \
-d '{\
"violationIds": [\
"violation-id-1",\
"violation-id-2",\
"violation-id-3"\
],\
"apiWaiverOptionsDTO": {\
"comment": "Bulk waiver for approved internal dependencies",\
"matcherStrategy": "EXACT_COMPONENT",\
"expiryTime": "2026-04-30T23:59:59.999Z"\
}\
}'
Responses
| HTTP Status | Description |
|---|---|
204 |
Bulk waiver created successfully. |
400 |
Bad request, including invalid IDs, invalid owner scope, invalid waiver options, unsupported matcher strategy, or more than 1000 violation IDs. |
403 |
User lacks permission or Firewall license is not active. |
404 |
A repository associated with a submitted violation could not be found. |