# Cascade Component Re-evaluation API

When Nexus Repository Managers are deployed in multiple locations for distributed environments, a same component can exist in multiple repositories across different Repository Manager instances.

When a policy waiver is created with the Repository Managers scope, the waiver applies globally. However, the component must still be re-evaluated in each repository before it is released from quarantine. Manually re-evaluating the component in every repository can be time-consuming and error-prone. The Cascade Component Re-evaluation API automates this process.

## How the API works

The Cascade Component Re-evaluation API executes the task in the following sequence

1. Accepts a component hash as input  
2. Locates all repositories that contain the specified component  
3. Triggers re-evaluation for each repository asynchronously  
4. Provides a status endpoint to track progress and results

## Cascade Re-evaluation Lifecycle

To start an asynchronous re-evaluation of a component across all repositories, use the end point given below.

```
POST /api/v2/firewall/repositories/cascade-reevaluate/componentHash/{componentHash}
```

The response returns a URL that you can use to check the status of the asynchronous operation. For example:

```
{
  "statusUrl": "api/v2/malware-defense/repositories/cascade-reevaluate/status/30a4cc9740a44f96910b8810766bbf1b"
}
```

### Request Status

To monitor the progress of a cascade re-evaluation request, check the status of the request by using the following end point:

```
GET /api/v2/malware-defense/repositories/cascade-reevaluate/status/{statusId}
```

The following table describes various states of the cascade re-evaluation request:

| State               | Description                                                   |
|---------------------|---------------------------------------------------------------|
| `PENDING`           | The request has been accepted but processing has not started. |
| `IN_PROGRESS`       | Re-evaluation is running for one or more repositories.       |
| `COMPLETED`         | Processing has finished for all repositories.                |
| `NO_COMPONENTS_FOUND` | The specified component hash was not found in any repository. |

### Repository Level Results

The status response groups repositories based on their processing outcome.

| Status   | Description                                              |
|----------|----------------------------------------------------------|
| `evaluated` | Repositories where re-evaluation has completed.       |
| `pending`   | Repositories that have not finished processing.         |
| `failed`    | Repositories where re-evaluation could not be completed.|

For repositories listed under `evaluated` state, the response includes a `quarantined` field. This field indicates whether the component remains in quarantine after re-evaluation.

**Note**  
A component can remain quarantined if repositories enforce any repository specific policies.

Failures can occur during processing. When this happens, the request still reaches the `COMPLETED` state and the failed repositories are listed under `failed` state. Failures do not prevent successful re-evaluation of other repositories.

## Search results

No results found
