For the complete documentation index, see llms.txt. This page is also available as Markdown.

Registry V3 Firewall

V3 firewall endpoints

Add build info

post

Adds build info generated by CLI after package installation.

Query parameters
account_identifierstringRequired

Unique identifier for the Harness account.

Body

Request to add build info

packageTypestringRequired

Package type. Known values include: DOCKER, MAVEN, PYTHON, GENERIC, HELM, HELM_HTTP, NUGET, NPM, RPM, CARGO, COMPOSER, GO, HUGGINGFACE, CONDA, DART, SWIFT, PUPPET, RUBY, RAW, DEBIAN, CONAN, TERRAFORM, TERRAFORM_BACKEND, CRAN, WOLFI, ALPINE. This field is extensible; clients must handle unknown values.

Example: DOCKER
registryIdstring · uuidRequired

UUID of the registry to add build info for

statusstring · enumRequired

Status of the evaluation

Possible values:
Responses
201

Build info added successfully

No content

post/v3/build-info
POST /api/v3/build-info?account_identifier=text HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 325

{
  "metadata": [
    {
      "nodeKey": "text",
      "parentNodeKey": "text"
    }
  ],
  "packageType": "DOCKER",
  "pipelineContext": {
    "executionId": "text",
    "orgId": "text",
    "pipelineId": "text",
    "projectId": "text",
    "stageId": "text",
    "stepId": "text"
  },
  "registryId": "123e4567-e89b-12d3-a456-426614174000",
  "rootPackage": {
    "name": "text",
    "version": "text"
  },
  "status": "PENDING"
}

No content

List pipeline build info details

get

Returns all pipeline build info details.

Query parameters
package_namestringOptional

Filter by package name

versionstringOptional

Filter by version

registry_idstringOptional

Filter by registry ID

account_identifierstringRequired

Unique identifier for the Harness account.

org_identifierstringOptional

Unique identifier for the organization within the account.

Example: default or engineering_org

project_identifierstringOptional

Unique identifier for the project within the organization.

Example: my_project or frontend_services

pipeline_idstringOptional

Filter by pipeline identifier

scan_idstringOptional

Scan Identifier

pageinteger · int64Optional

The page number for pagination (0-indexed).

Used to navigate through large result sets. Combined with size parameter to control which subset of results to return.

Example: page=0 returns the first page, page=1 returns the second page

Default: 0
sizeinteger · int64 · min: 1 · max: 100Optional

The number of items to return per page.

Controls the page size for paginated results.

Example: size=50 returns up to 50 items per page

Default: 20
projectsstring[]Optional

Filter by projects

categoriesstring[]Optional

Filter by categories

package_typesstring[]Optional

Registry Package Type

scopestring · enumOptional

Scope of registries to list

  • none – current space only (default) * ancestors – current space plus all parent spaces * descendants – current space plus all child spaces
    If omitted, none is assumed.
Possible values:
Responses
200

Response containing pipeline build info details

application/json

Pagination metadata.

  • page selects which page of results to return (0 = first page).
  • size controls how many items are returned per page.
  • hasMore is true if more results exist after this page.
hasMorebooleanRequired

True if more results exist after this page.

Example: true
pageinteger · int64Required

The current page (0-indexed)

Example: 0
sizeinteger · int64Required

Number of items per page

Example: 20
get/v3/build-info/pipeline/details
GET /api/v3/build-info/pipeline/details?account_identifier=text HTTP/1.1
Accept: */*
{
  "hasMore": true,
  "page": 0,
  "size": 20,
  "meta": {
    "totalBlockedDependencies": 1,
    "totalBlockedPipelines": 1
  },
  "pipelineData": [
    {
      "lastExecutionTime": 1,
      "orgIdentifier": "text",
      "packageType": "DOCKER",
      "pipelineExecutionIdentifier": "text",
      "pipelineIdentifier": "text",
      "projectIdentifier": "text",
      "rootPackageName": "text",
      "rootPackageVersion": "text",
      "securityViolationCategories": [
        "Security"
      ],
      "stageIdentifier": "text",
      "stepIdentifier": "text",
      "violations": [
        {
          "package": "text",
          "purl": "text",
          "scanId": "text",
          "securityViolationCategories": [
            "Security"
          ],
          "status": "BLOCKED"
        }
      ]
    }
  ]
}

Get the list of artifact scan result for a particular scope

get

Get the list of artifact scan result for a particular scope

Query parameters
account_identifierstringRequired

Unique identifier for the Harness account.

org_identifierstringOptional

Unique identifier for the organization within the account.

Example: default or engineering_org

project_identifierstringOptional

Unique identifier for the project within the organization.

Example: my_project or frontend_services

package_typesstring[]Optional

Registry Package Type

registry_idsstring · uuid[]Optional

Unique id for the registry. Note: This parameter should have one id if package query param is provided

Example: ["12345678-1234-1234-1234-123456789012","aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"]
policy_set_refstringOptional

Unique reference for the opa policy set. Example: my-policy or account.my-policy

categoriesstring[]Optional

Filter by categories

scan_idstringOptional

Scan Identifier

scan_statusstring · enumOptional

Status of an artifact scan evaluation.

Possible values:
pageinteger · int64Optional

The page number for pagination (0-indexed).

Used to navigate through large result sets. Combined with size parameter to control which subset of results to return.

Example: page=0 returns the first page, page=1 returns the second page

Default: 0
sizeinteger · int64 · min: 1 · max: 100Optional

The number of items to return per page.

Controls the page size for paginated results.

Example: size=50 returns up to 50 items per page

Default: 20
sortstringOptional

The sort for the results. Accepted pattern: sort_field:sort_order where sort_field is the field name and sort_order is either asc or desc.

Examples: name:asc, modifiedAt:desc

search_termstringOptional

Search term for filtering results.

Example: search_term=prod might match keys like "production", "prod-env", etc.

scopestring · enumOptional

Scope of registries to list

  • none – current space only (default) * ancestors – current space plus all parent spaces * descendants – current space plus all child spaces
    If omitted, none is assumed.
Possible values:
Responses
200

Response containing list of artifact scan

application/json
itemCountinteger · int64Required

The total number of items

Example: 1
pageCountinteger · int64Required

The total number of pages

Example: 100
pageIndexinteger · int64Required

The current page

Example: 0
pageSizeintegerRequired

The number of items per page

Example: 1
get/v3/scans
GET /api/v3/scans?account_identifier=text HTTP/1.1
Accept: */*
{
  "data": [
    {
      "RegistryOrgId": "text",
      "RegistryProjectId": "text",
      "buildDetails": [
        {
          "lastExecutionTime": 1,
          "latestExecutionId": "text",
          "pipelineId": "text",
          "rootPackage": "text",
          "stageId": "text",
          "stepId": "text"
        }
      ],
      "exemptionStatus": {
        "createdAt": 1736360000123,
        "expirationAt": 1736360000123,
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "status": "PENDING"
      },
      "id": "text",
      "lastEvaluatedAt": "text",
      "lastEvaluatedBy": "text",
      "packageName": "text",
      "packageType": "DOCKER",
      "parentRegistryId": "text",
      "parentRegistryName": "text",
      "parentRegistryOrgId": "text",
      "parentRegistryProjectId": "text",
      "policySets": [
        {
          "policySetName": "text",
          "policySetRef": "text"
        }
      ],
      "purl": "text",
      "registryId": "text",
      "registryName": "text",
      "rootPackages": [
        "text"
      ],
      "scanStatus": "BLOCKED",
      "securityViolationCategories": [
        "Security"
      ],
      "totalAffectedPipelines": 1,
      "version": "text",
      "versionId": "text"
    }
  ],
  "itemCount": 1,
  "meta": {
    "blockedCount": 95,
    "totalCount": 5,
    "warnCount": 5
  },
  "pageCount": 100,
  "pageIndex": 0,
  "pageSize": 1
}

Get the details of a artifact scan

get

Get the details of a artifact scan

Path parameters
idstringRequired
Query parameters
account_identifierstringRequired

Unique identifier for the Harness account.

policy_set_refstringOptional

Unique reference for the opa policy set. Example: my-policy or account.my-policy

Responses
200

Response containing details of artifact scan

application/json
get/v3/scans/{id}/details
GET /api/v3/scans/{id}/details?account_identifier=text HTTP/1.1
Accept: */*
{
  "data": {
    "buildDetails": [
      {
        "lastExecutionTime": 1,
        "latestExecutionId": "text",
        "pipelineId": "text",
        "rootPackage": "text",
        "stageId": "text",
        "stepId": "text"
      }
    ],
    "createdAt": "text",
    "exemptionStatus": {
      "createdAt": 1736360000123,
      "expirationAt": 1736360000123,
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "status": "PENDING"
    },
    "fixVersionDetails": {
      "currentVersion": "1.2.0",
      "fixVersion": "1.2.2",
      "fixVersionAvailable": true
    },
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "lastEvaluatedAt": "text",
    "packageName": "text",
    "packageType": "DOCKER",
    "parentRegistryId": "123e4567-e89b-12d3-a456-426614174000",
    "parentRegistryName": "text",
    "parentRegistryOrgId": "text",
    "parentRegistryProjectId": "text",
    "policySetFailureDetails": [
      {
        "policyFailureDetails": [
          {
            "vulnerabilities": [
              {
                "cveId": "text",
                "cvssScore": 1,
                "cvssThreshold": 1
              }
            ]
          }
        ],
        "policySetName": "text",
        "policySetRef": "text"
      }
    ],
    "purl": "text",
    "registryId": "123e4567-e89b-12d3-a456-426614174000",
    "registryName": "text",
    "registryOrgId": "text",
    "registryProjectId": "text",
    "rootPackages": [
      "text"
    ],
    "scanStatus": "BLOCKED",
    "version": "text",
    "versionId": "123e4567-e89b-12d3-a456-426614174000"
  }
}

Initiate bulk scan evaluation

post

Triggers firewall policy evaluation for multiple artifacts

Query parameters
account_identifierstringRequired

Unique identifier for the Harness account.

org_identifierstringOptional

Unique identifier for the organization within the account.

Example: default or engineering_org

project_identifierstringOptional

Unique identifier for the project within the organization.

Example: my_project or frontend_services

Body

Request to initiate bulk scan evaluation

registryIdstring · uuidRequired

Registry identifier

Responses
202

Bulk scan evaluation request accepted for processing

application/json
post/v3/scans/bulk-evaluate
POST /api/v3/scans/bulk-evaluate?account_identifier=text HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 107

{
  "artifacts": [
    {
      "packageName": "text",
      "version": "text"
    }
  ],
  "registryId": "123e4567-e89b-12d3-a456-426614174000"
}
{
  "data": {
    "evaluationId": "text"
  }
}

Synchronous bulk artifact scan evaluation (no DB write)

post

Synchronously evaluates firewall policies for up to 50 artifacts and returns the scan result for each one. No data is written to the database.

Query parameters
account_identifierstringRequired

Unique identifier for the Harness account.

org_identifierstringOptional

Unique identifier for the organization within the account.

Example: default or engineering_org

project_identifierstringOptional

Unique identifier for the project within the organization.

Example: my_project or frontend_services

Body

Request body for synchronous bulk artifact scan evaluation. Maximum 50 artifacts per request. No data is written to the database.

registryIdstring · uuidRequired

Registry identifier

skipCachebooleanOptional

When true, skip the cached scan result and force a fresh OPA evaluation

Responses
200

Synchronous bulk scan evaluation response

application/json
post/v3/scans/bulk-evaluate-sync
POST /api/v3/scans/bulk-evaluate-sync?account_identifier=text HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 124

{
  "artifacts": [
    {
      "packageName": "text",
      "version": "text"
    }
  ],
  "registryId": "123e4567-e89b-12d3-a456-426614174000",
  "skipCache": true
}
{
  "data": [
    {
      "buildDetails": [
        {
          "lastExecutionTime": 1,
          "latestExecutionId": "text",
          "pipelineId": "text",
          "rootPackage": "text",
          "stageId": "text",
          "stepId": "text"
        }
      ],
      "createdAt": "text",
      "exemptionStatus": {
        "createdAt": 1736360000123,
        "expirationAt": 1736360000123,
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "status": "PENDING"
      },
      "fixVersionDetails": {
        "currentVersion": "1.2.0",
        "fixVersion": "1.2.2",
        "fixVersionAvailable": true
      },
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "lastEvaluatedAt": "text",
      "packageName": "text",
      "packageType": "DOCKER",
      "parentRegistryId": "123e4567-e89b-12d3-a456-426614174000",
      "parentRegistryName": "text",
      "parentRegistryOrgId": "text",
      "parentRegistryProjectId": "text",
      "policySetFailureDetails": [
        {
          "policyFailureDetails": [
            {
              "vulnerabilities": [
                {
                  "cveId": "text",
                  "cvssScore": 1,
                  "cvssThreshold": 1
                }
              ]
            }
          ],
          "policySetName": "text",
          "policySetRef": "text"
        }
      ],
      "purl": "text",
      "registryId": "123e4567-e89b-12d3-a456-426614174000",
      "registryName": "text",
      "registryOrgId": "text",
      "registryProjectId": "text",
      "rootPackages": [
        "text"
      ],
      "scanStatus": "BLOCKED",
      "version": "text",
      "versionId": "123e4567-e89b-12d3-a456-426614174000"
    }
  ]
}

Get bulk scan evaluation status

get

Returns the status of a bulk scan evaluation

Path parameters
evaluation_idstringRequired

Bulk evaluation identifier

Query parameters
account_identifierstringRequired

Unique identifier for the Harness account.

org_identifierstringOptional

Unique identifier for the organization within the account.

Example: default or engineering_org

project_identifierstringOptional

Unique identifier for the project within the organization.

Example: my_project or frontend_services

Responses
200

Bulk scan evaluation status response

application/json
get/v3/scans/bulk-evaluate/{evaluation_id}
GET /api/v3/scans/bulk-evaluate/{evaluation_id}?account_identifier=text HTTP/1.1
Accept: */*
{
  "data": {
    "error": "text",
    "evaluationId": "text",
    "scans": [
      {
        "packageName": "text",
        "scanId": "123e4567-e89b-12d3-a456-426614174000",
        "scanStatus": "ALLOWED",
        "version": "text"
      }
    ],
    "status": "PENDING"
  }
}

Re-evaluate artifact scan

post

Re-evaluate artifact scan

Query parameters
account_identifierstringRequired

Unique identifier for the Harness account.

Body

Input for re-evaluate artifact scan. Exactly one of scanId or versionId must be provided.

scanIdstringOptional

Scan identifier

versionIdstringOptional

Artifact version identifier

Responses
202

Artifact scan evaluate request accepted for processing

application/json
post/v3/scans/evaluate
POST /api/v3/scans/evaluate?account_identifier=text HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 36

{
  "scanId": "text",
  "versionId": "text"
}
{
  "data": {
    "status": "PENDING"
  }
}

List firewall exceptions

get

List firewall exceptions with optional filters

Query parameters
account_identifierstringRequired

Unique identifier for the Harness account.

org_identifierstringOptional

Unique identifier for the organization within the account.

Example: default or engineering_org

project_identifierstringOptional

Unique identifier for the project within the organization.

Example: my_project or frontend_services

statusstring · enumOptional

Status of the firewall exception

Possible values:
package_namestringOptional

Filter by package name

versionstringOptional

Filter by version

package_typesstring[]Optional

Registry Package Type

registry_idsstring · uuid[]Optional

Unique id for the registry. Note: This parameter should have one id if package query param is provided

Example: ["12345678-1234-1234-1234-123456789012","aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"]
exception_idstringOptional

Filter by firewall exception ID

search_termstringOptional

Search term for filtering results.

Example: search_term=prod might match keys like "production", "prod-env", etc.

pageinteger · int64Optional

The page number for pagination (0-indexed).

Used to navigate through large result sets. Combined with size parameter to control which subset of results to return.

Example: page=0 returns the first page, page=1 returns the second page

Default: 0
sizeinteger · int64 · min: 1 · max: 100Optional

The number of items to return per page.

Controls the page size for paginated results.

Example: size=50 returns up to 50 items per page

Default: 20
sortstringOptional

The sort for the results. Accepted pattern: sort_field:sort_order where sort_field is the field name and sort_order is either asc or desc.

Examples: name:asc, modifiedAt:desc

Responses
200

Response containing list of firewall exceptions

application/json

Pagination metadata.

  • page selects which page of results to return (0 = first page).
  • size controls how many items are returned per page.
  • hasMore is true if more results exist after this page.
hasMorebooleanRequired

True if more results exist after this page.

Example: true
pageinteger · int64Required

The current page (0-indexed)

Example: 0
sizeinteger · int64Required

Number of items per page

Example: 20
get/v3/scans/exceptions
GET /api/v3/scans/exceptions?account_identifier=text HTTP/1.1
Accept: */*
{
  "hasMore": true,
  "page": 0,
  "size": 20,
  "items": [
    {
      "businessJustification": "text",
      "createdAt": 1,
      "createdBy": {
        "display_name": "text",
        "email": "text",
        "type": "text",
        "uid": "text"
      },
      "exceptionId": "123e4567-e89b-12d3-a456-426614174000",
      "expirationAt": 1,
      "expireAfter": 1,
      "notes": "text",
      "packageName": "text",
      "packageType": "text",
      "registryId": "text",
      "registryName": "text",
      "remediationPlan": "text",
      "status": "PENDING",
      "statusChangedAt": 1,
      "statusChangedBy": {
        "display_name": "text",
        "email": "text",
        "type": "text",
        "uid": "text"
      },
      "updatedAt": 1,
      "updatedBy": {
        "display_name": "text",
        "email": "text",
        "type": "text",
        "uid": "text"
      },
      "versionId": "text",
      "versionList": [
        "text"
      ],
      "versionScanMap": {
        "ANY_ADDITIONAL_PROPERTY": "text"
      }
    }
  ],
  "meta": {
    "approvedCount": 25,
    "expiredCount": 10,
    "pendingCount": 10,
    "rejectedCount": 5,
    "totalCount": 50
  }
}

Create a firewall exception

post

Create a firewall exception for an artifact

Query parameters
account_identifierstringRequired

Unique identifier for the Harness account.

Body

Request to create a firewall exception

businessJustificationstringRequired

Business justification for the exception

expireAfterinteger · int32 · nullableOptional

Number of days after approval when the exception expires. Null means never expires.

packageNamestringRequired

Name of the package

registryIdstring · uuidRequired

UUID of the registry

remediationPlanstring · nullableOptional

Plan for remediation (optional)

versionListstring[]Optional

List of versions to except. Empty array means all versions.

Responses
201

Firewall exception created successfully

application/json

Firewall exception details

businessJustificationstringRequired

Business justification for the exception

createdAtinteger · int64Required

Unix timestamp (milliseconds) when created

exceptionIdstring · uuidRequired

Unique identifier for the exception

expirationAtinteger · int64 · nullableOptional

Unix timestamp (milliseconds) when the exception expires. Computed at approval time.

expireAfterinteger · int32 · nullableOptional

Number of days after approval when the exception expires

notesstring · nullableOptional

Note from approver (if approved/rejected)

packageNamestringRequired

Name of the package

packageTypestringRequired

type of the package

registryIdstringRequired

Registry identifier

registryNamestringOptional

Name of the registry

remediationPlanstring · nullableOptional

Plan for remediation

statusstring · enumRequired

Status of the firewall exception

Possible values:
statusChangedAtinteger · int64 · nullableOptional

Unix timestamp (milliseconds) when status was changed

updatedAtinteger · int64Required

Unix timestamp (milliseconds) when last updated

versionIdstring · nullableOptional

Version identifier

versionListstring[]Required

List of versions covered by exception

post/v3/scans/exceptions
POST /api/v3/scans/exceptions?account_identifier=text HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 169

{
  "businessJustification": "text",
  "expireAfter": 1,
  "packageName": "text",
  "registryId": "123e4567-e89b-12d3-a456-426614174000",
  "remediationPlan": "text",
  "versionList": [
    "text"
  ]
}
{
  "businessJustification": "text",
  "createdAt": 1,
  "createdBy": {
    "display_name": "text",
    "email": "text",
    "type": "text",
    "uid": "text"
  },
  "exceptionId": "123e4567-e89b-12d3-a456-426614174000",
  "expirationAt": 1,
  "expireAfter": 1,
  "notes": "text",
  "packageName": "text",
  "packageType": "text",
  "registryId": "text",
  "registryName": "text",
  "remediationPlan": "text",
  "status": "PENDING",
  "statusChangedAt": 1,
  "statusChangedBy": {
    "display_name": "text",
    "email": "text",
    "type": "text",
    "uid": "text"
  },
  "updatedAt": 1,
  "updatedBy": {
    "display_name": "text",
    "email": "text",
    "type": "text",
    "uid": "text"
  },
  "versionId": "text",
  "versionList": [
    "text"
  ],
  "versionScanMap": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  }
}

Update a firewall exception

put

Update a firewall exception. Only allowed when status is PENDING.

Path parameters
idstringRequired
Query parameters
account_identifierstringRequired

Unique identifier for the Harness account.

Body

Request to update a firewall exception. Only allowed when status is PENDING.

businessJustificationstringOptional

Updated business justification for the exception

expireAfterinteger · int32 · nullableOptional

Number of days after approval when the exception expires. Null means never expires.

remediationPlanstring · nullableOptional

Updated plan for remediation

versionListstring[]Optional

Updated list of versions to except. Empty array means all versions.

Responses
200

Firewall exception updated successfully

application/json

Firewall exception details

businessJustificationstringRequired

Business justification for the exception

createdAtinteger · int64Required

Unix timestamp (milliseconds) when created

exceptionIdstring · uuidRequired

Unique identifier for the exception

expirationAtinteger · int64 · nullableOptional

Unix timestamp (milliseconds) when the exception expires. Computed at approval time.

expireAfterinteger · int32 · nullableOptional

Number of days after approval when the exception expires

notesstring · nullableOptional

Note from approver (if approved/rejected)

packageNamestringRequired

Name of the package

packageTypestringRequired

type of the package

registryIdstringRequired

Registry identifier

registryNamestringOptional

Name of the registry

remediationPlanstring · nullableOptional

Plan for remediation

statusstring · enumRequired

Status of the firewall exception

Possible values:
statusChangedAtinteger · int64 · nullableOptional

Unix timestamp (milliseconds) when status was changed

updatedAtinteger · int64Required

Unix timestamp (milliseconds) when last updated

versionIdstring · nullableOptional

Version identifier

versionListstring[]Required

List of versions covered by exception

put/v3/scans/exceptions/{id}
PUT /api/v3/scans/exceptions/{id}?account_identifier=text HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 96

{
  "businessJustification": "text",
  "expireAfter": 1,
  "remediationPlan": "text",
  "versionList": [
    "text"
  ]
}
{
  "businessJustification": "text",
  "createdAt": 1,
  "createdBy": {
    "display_name": "text",
    "email": "text",
    "type": "text",
    "uid": "text"
  },
  "exceptionId": "123e4567-e89b-12d3-a456-426614174000",
  "expirationAt": 1,
  "expireAfter": 1,
  "notes": "text",
  "packageName": "text",
  "packageType": "text",
  "registryId": "text",
  "registryName": "text",
  "remediationPlan": "text",
  "status": "PENDING",
  "statusChangedAt": 1,
  "statusChangedBy": {
    "display_name": "text",
    "email": "text",
    "type": "text",
    "uid": "text"
  },
  "updatedAt": 1,
  "updatedBy": {
    "display_name": "text",
    "email": "text",
    "type": "text",
    "uid": "text"
  },
  "versionId": "text",
  "versionList": [
    "text"
  ],
  "versionScanMap": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  }
}

Delete a firewall exception

delete

Delete a firewall exception by ID

Path parameters
idstringRequired
Query parameters
account_identifierstringRequired

Unique identifier for the Harness account.

Responses
204

Firewall exception deleted successfully

No content

delete/v3/scans/exceptions/{id}
DELETE /api/v3/scans/exceptions/{id}?account_identifier=text HTTP/1.1
Accept: */*

No content

Update status of a firewall exception

put

Update the status of a firewall exception (approve or reject)

Path parameters
idstringRequired
Query parameters
account_identifierstringRequired

Unique identifier for the Harness account.

Body

Request to approve or reject a firewall exception

notesstring · nullableOptional

Note from approver explaining the decision

statusstring · enumRequired

Status of the firewall exception

Possible values:
Responses
200

Firewall exception status updated successfully

application/json

Firewall exception details

businessJustificationstringRequired

Business justification for the exception

createdAtinteger · int64Required

Unix timestamp (milliseconds) when created

exceptionIdstring · uuidRequired

Unique identifier for the exception

expirationAtinteger · int64 · nullableOptional

Unix timestamp (milliseconds) when the exception expires. Computed at approval time.

expireAfterinteger · int32 · nullableOptional

Number of days after approval when the exception expires

notesstring · nullableOptional

Note from approver (if approved/rejected)

packageNamestringRequired

Name of the package

packageTypestringRequired

type of the package

registryIdstringRequired

Registry identifier

registryNamestringOptional

Name of the registry

remediationPlanstring · nullableOptional

Plan for remediation

statusstring · enumRequired

Status of the firewall exception

Possible values:
statusChangedAtinteger · int64 · nullableOptional

Unix timestamp (milliseconds) when status was changed

updatedAtinteger · int64Required

Unix timestamp (milliseconds) when last updated

versionIdstring · nullableOptional

Version identifier

versionListstring[]Required

List of versions covered by exception

put/v3/scans/exceptions/{id}/status
PUT /api/v3/scans/exceptions/{id}/status?account_identifier=text HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 35

{
  "notes": "text",
  "status": "PENDING"
}
{
  "businessJustification": "text",
  "createdAt": 1,
  "createdBy": {
    "display_name": "text",
    "email": "text",
    "type": "text",
    "uid": "text"
  },
  "exceptionId": "123e4567-e89b-12d3-a456-426614174000",
  "expirationAt": 1,
  "expireAfter": 1,
  "notes": "text",
  "packageName": "text",
  "packageType": "text",
  "registryId": "text",
  "registryName": "text",
  "remediationPlan": "text",
  "status": "PENDING",
  "statusChangedAt": 1,
  "statusChangedBy": {
    "display_name": "text",
    "email": "text",
    "type": "text",
    "uid": "text"
  },
  "updatedAt": 1,
  "updatedBy": {
    "display_name": "text",
    "email": "text",
    "type": "text",
    "uid": "text"
  },
  "versionId": "text",
  "versionList": [
    "text"
  ],
  "versionScanMap": {
    "ANY_ADDITIONAL_PROPERTY": "text"
  }
}

List versions for firewall exceptions

get

List versions for a specific package in a registry, for use when creating firewall exceptions

Query parameters
account_identifierstringRequired

Unique identifier for the Harness account.

registry_idstringOptional

Filter by registry ID

package_namestringOptional

Filter by package name

pageinteger · int64Optional

The page number for pagination (0-indexed).

Used to navigate through large result sets. Combined with size parameter to control which subset of results to return.

Example: page=0 returns the first page, page=1 returns the second page

Default: 0
sizeinteger · int64 · min: 1 · max: 100Optional

The number of items to return per page.

Controls the page size for paginated results.

Example: size=50 returns up to 50 items per page

Default: 20
Responses
200

Response containing list of versions for firewall exceptions

application/json

Pagination metadata.

  • page selects which page of results to return (0 = first page).
  • size controls how many items are returned per page.
  • hasMore is true if more results exist after this page.
hasMorebooleanRequired

True if more results exist after this page.

Example: true
pageinteger · int64Required

The current page (0-indexed)

Example: 0
sizeinteger · int64Required

Number of items per page

Example: 20
itemsstring[]Required

A list of versions

get/v3/scans/versions
GET /api/v3/scans/versions?account_identifier=text HTTP/1.1
Accept: */*
{
  "hasMore": true,
  "page": 0,
  "size": 20,
  "items": [
    "text"
  ]
}

Last updated

Was this helpful?