Applicable Waivers REST API - v2

NEW IN RELEASE 98

This API provides a way to obtain all waivers that are applicable to a particular policy violation. A waiver is considered applicable to a given violation if the following conditions apply:

  • PolicyId matches
  • Violated Policy Conditions match
  • If the waiver was scoped to a particular component then the component hash should also match

The API can be accessed via the following endpoint as a GET request, relative to IQ Server's base URL.

GET /api/v2/policyViolations/{policyViolationId}/applicableWaivers

Getting the policy violation id

The Policy Violation ID can be obtained by Policy Violation REST API or Report Related REST API.


Assuming a local installation of IQ Server with its default configuration, the following example using cURL lists waivers that apply to a policy violation:

curl -u admin:admin123 -X GET -H "Content-Type: application/json" 'http://localhost:8070/api/v2/policyViolations/{policyViolationId}/applicableWaivers'


The response returned by this API contains two sets of waivers, one set containing active waivers and another containing expired waivers, that are applicable to the provided violation. Each of the waiver items contain several details regarding the waivers as described in the table below.

ItemDescription
policyWaiverIdA unique identifier that identifies this policy waiver.
commentComment text that was entered during waiver creation.
createTimeThe waiver creation time.
expiryTime

NEW IN RELEASE 100

The time after which the policy waiver is considered expired.
This field may not be present in the response, in which case it indicates that the waiver is not set to expire.

scopeOwnerTypeThe scope at which the waiver was applied.

This can be one of three values:
  • root_organization
  • organization
  • application
scopeOwnerIdA unique identifier that identifies the scope.
scopeOwnerName

The descriptive name of the scope.

If the scope type is application, this will be the application name.
If the scope type is organization, this will be the organization name.
If the scope type is root_organization, this will be the root organization name.

hashIf the waiver was applied to a specific component, this will contain the uniquely identifying hash of that component.
If the waiver was applied to all components, the value for this property will be null.
policyIdThe unique id of the policy for which the waiver is applied.


Sample response

Here is a sample response that is returned by this API.
NEW IN RELEASE 100 The response now also returns the list of expired waivers in the expiredWaivers property.

{
   "activeWaivers": [
       {
           "policyWaiverId": "51cc218d0e154fac9f3e0f2716e4e3ad",
           "comment": "",
           "createTime": "2020-09-16T21:22:14.718+0000",
           "scopeOwnerType": "root_organization",
           "scopeOwnerId": "ROOT_ORGANIZATION_ID",
           "scopeOwnerName": "Root Organization",
           "hash": null,
           "policyId": "e0c2d9ad727243caa7a63760be24f249"
       },
       {
           "policyWaiverId": "69e9bd21d0cf43b7999b7ae21b5008e7",
           "comment": "",
           "createTime": "2020-09-16T21:22:03.082+0000",
           "scopeOwnerType": "organization",
           "scopeOwnerId": "8d0b5b325bdd4e68940a32ad5feb369d",
           "scopeOwnerName": "org",
           "hash": "761ea405b9b37ced573d",
           "policyId": "e0c2d9ad727243caa7a63760be24f249"
       },
       {
           "policyWaiverId": "e5cd9807538641338330d4cf18e3ff76",
           "comment": "Application level waiver for all components matching a policy",
           "createTime": "2020-09-15T14:25:15.494+0000",
           "expiryTime": "2030-09-30T00:00:00.000+0000",
           "scopeOwnerType": "application",
           "scopeOwnerId": "4b3f46a17a354706885af9a57e7ae1eb",
           "scopeOwnerName": "app",
           "hash": null,
           "policyId": "e0c2d9ad727243caa7a63760be24f249"
       }
   ],
   "expiredWaivers": [
       {
           "policyWaiverId": "d19db6d3831e4d9dbdb89c0bb77d5a48",
           "comment": "An expired policy",
           "createTime": "2020-09-25T21:49:52.817+0000",
           "expiryTime": "2020-09-26T00:00:00.000+0000",
           "scopeOwnerType": "application",
           "scopeOwnerId": "4b3f46a17a354706885af9a57e7ae1eb",
           "scopeOwnerName": "app",
           "hash": null,
           "policyId": "e0c2d9ad727243caa7a63760be24f249"
       }
   ]
}