Webhook Payload

Webhook Payload

A Firewall quarantine webhook payload is the JSON body sent via HTTP POST to your configured URL when a component is quarantined by firewall due to a policy violation. The payload includes repository, component, policy, and request context. A complete structure of the payload is given below:

{
  "timestamp": "2026-02-23T10:56:00.000Z",
  "initiator": "admin",
  "nodeId": "node-abc123",
  "event": "FIREWALL_QUARANTINE_DOWNLOAD_BLOCKED",
  "repository": "maven-central",
  "repository_format": "maven2",
  "component_identifier": {
    "format": "maven2",
    "coordinates": {
      "groupId": "org.apache.logging.log4j",
      "artifactId": "log4j-core",
      "version": "2.14.1"
    },
    "purl": "pkg:maven/org/apache/logging/log4j/log4j-core@2.14.1"
  },
  "asset_path": "/org/apache/logging/log4j/log4j-core/2.14.1/log4j-core-2.14.1.jar",
  "asset_checksums": {
    "sha1": "fca480c9018010760e5e2e1eaed9c2b0546e7138",
    "sha256": "e16500ad571de1612e4ff8555c179b41596d6322e915b5a221e134d0571d4bf0",
    "md5": "4f100dfb02f121b34a9c472d829e9a7a"
  },
  "quarantine_status": "QUARANTINE",
  "quarantine_reasons": [
    {
      "policy_name": "Security-Critical",
      "threat_level": 10,
      "violations": [
        {
          "constraint_name": "Security Vulnerability Severity >= 9",
          "reasons": [
            "CVE-2021-44228 (CVSS Score: 10.0)",
            "CVE-2021-45046 (CVSS Score: 9.0)"
          ]
        }
      ]
    },
    {
      "policy_name": "License-Copyleft",
      "threat_level": 7,
      "violations": [
        {
          "constraint_name": "GPL License",
          "reasons": [
            "Component has GPL license"
          ]
        }
      ]
    }
  ],
  "firewall_report_url": "http://localhost:8072/ui/links/firewall/repositories/quarantinedComponent/abc123",
  "quarantine_timestamp": "2026-02-23T10:56:00.000Z",
  "action": "BLOCKED",
  "http_method": "GET",
  "http_status": 403,
  "username": "admin",
  "realm": "NexusAuthenticatingRealm",
  "user_ip_address": "192.168.1.100",
  "user_agent": "Maven/3.8.1"
}

Field Descriptions

Top Level Fields

Field Description
timestamp Time when the webhook was generated
initiator Username of the user who triggered the download
nodeId Nexus cluster node ID that generated the event
event Always "FIREWALL_QUARANTINE_DOWNLOAD_BLOCKED"
repository Repository name where download was attempted
repository_format Format Name - maven2, npm, docker, pypi, nuget, etc.
component_identifier Optional; Parsed component coordinates (see below)
asset_path Full path to the asset within the repository
asset_checksums Map of checksum algorithms to values
quarantine_status BLOCKED or QUARANTINED
quarantine_reasons List of policy violations (see below)
firewall_report_url Optional; Direct link to IQ Server report
quarantine_timestamp Time when component was quarantined
action BLOCKED or QUARANTINED
http_method HTTP method of the download request (usually "GET")
http_status HTTP status code returned (403 for blocked)
username Username from authentication
realm Authentication realm
user_ip_address Optional; Client IP address
user_agent Optional; Client User-Agent header

Component Identifier Object

Field Description
format Repository format
coordinates Format specific coordinates
purl Package URL (PURL) - universal component identifier

Quarantine Reasons Array

Field Description
policy_name Name of the violated IQ Server policy
threat_level IQ threat level (0-10; higher = more severe)
violations List of constraint violations within this policy

Every violation object contains the following fields:

Field Description
constraint_name Name of the constraint that was violated
reasons Specific reasons (CVE IDs with scores, license names, etc.)

When quarantine_reasons contains only the following codeblock, it indicates a repeat access attempt to an already quarantined component (no new policy evaluation).

{"policy_name": "Subsequent access to previously quarantined component",
"threat_level": 0,
"violations": [ ]
}

Example: Log4Shell Vulnerability Payload (First-Time Quarantine)

The following is an example payload for first time quarantine of log4Shell vulnerability.

{
  "event": "FIREWALL_QUARANTINE_DOWNLOAD_BLOCKED",
  "repository": "maven-central",
  "repository_format": "maven2",
  "component_identifier": {
    "format": "maven2",
    "coordinates": {
      "groupId": "org.apache.logging.log4j",
      "artifactId": "log4j-core",
      "version": "2.14.1"
    },
    "purl": "pkg:maven/org/apache/logging/log4j/log4j-core@2.14.1"
  },
  "quarantine_status": "QUARANTINED",
  "quarantine_reasons": [
    {
      "policy_name": "Security-Critical",
      "threat_level": 10,
      "violations": [
        {
          "constraint_name": "Security Vulnerability Severity >= 9",
          "reasons": [
            "CVE-2021-44228 (CVSS Score: 10.0)",
            "CVE-2021-45046 (CVSS Score: 9.0)",
            "CVE-2021-45105 (CVSS Score: 7.5)"
          ]
        }
      ]
    }
  ],
  "action": "QUARANTINED",
  "http_status": 403,
  "username": "developer",
  "user_agent": "Apache-Maven/3.8.1"
}

The "action": "QUARANTINED" indicates that it is the first time a component was evaluated and blocked. Complete policy violation details are included.

Example: GPL License Violation Payload

The following is an example payload for first time quarantine of GPL license violation.

{
  "event": "FIREWALL_QUARANTINE_DOWNLOAD_BLOCKED",
  "repository": "npm-proxy",
  "repository_format": "npm",
  "component_identifier": {
    "format": "npm",
    "coordinates": {
      "packageId": "some-gpl-package",
      "version": "1.0.0"
    },
    "purl": "pkg:npm/some-gpl-package@1.0.0"
  },
  "quarantine_status": "QUARANTINED",
  "quarantine_reasons": [
    {
      "policy_name": "License-Copyleft",
      "threat_level": 7,
      "violations": [
        {
          "constraint_name": "GPL License",
          "reasons": [
            "Component has GPL-3.0 license"
          ]
        }
      ]
    }
  ],
  "action": "QUARANTINED",
  "http_status": 403
}

Example: Subsequent Access Payload

The following example illustrate the webhook payload for subsequent access to a previously quarantined component.

{
  "event": "FIREWALL_QUARANTINE_DOWNLOAD_BLOCKED",
  "repository": "maven-central",
  "repository_format": "maven2",
  "component_identifier": {
    "format": "maven2",
    "coordinates": {
      "groupId": "org.apache.logging.log4j",
      "artifactId": "log4j-core",
      "version": "2.14.1"
    },
    "purl": "pkg:maven/org/apache/logging/log4j/log4j-core@2.14.1"
  },
  "quarantine_status": "BLOCKED",
  "quarantine_reasons": [
    {
      "policy_name": "Subsequent access to previously quarantined component",
      "threat_level": 0,
      "violations": []
    }
  ],
  "action": "BLOCKED",
  "http_status": 403,
  "username": "developer",
  "user_agent": "Apache-Maven/3.8.1"
}

The "action": "BLOCKED" indicates this component was already in quarantine. No new policy evaluation was performed. The original policy violation details are not included in this webhook.