> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/infrastructure-as-code-management/3.0/platform/iacm-pipelines/operations-overview/approval-step-operations-overview.md).

# Approval Step

{% @harness-package-selector/package-selector platforms="%5B%7B%22label%22%3A%22Approval%20Step%22%2C%22slug%22%3A%22approval-step%22%2C%22path%22%3A%22infrastructure-as-code-management%2Fplatform%2Fiacm-pipelines%2Foperations-overview%2Fapproval-step-operations-overview%22%7D%2C%7B%22label%22%3A%22Queue%20Step%22%2C%22slug%22%3A%22queue-step%22%2C%22path%22%3A%22infrastructure-as-code-management%2Fplatform%2Fiacm-pipelines%2Foperations-overview%2Fqueue-step-operations-overview%22%7D%2C%7B%22label%22%3A%22Drift%20Detection%22%2C%22slug%22%3A%22drift-detection%22%2C%22path%22%3A%22infrastructure-as-code-management%2Fplatform%2Fiacm-pipelines%2Foperations-overview%2Fdrift-detection-operations-overview%22%7D%2C%7B%22label%22%3A%22PR%20Automation%22%2C%22slug%22%3A%22pr-automation%22%2C%22path%22%3A%22infrastructure-as-code-management%2Fplatform%2Fiacm-pipelines%2Foperations-overview%2Fpr-automation-operations-overview%22%7D%5D" selectedPlatform="approval-step" %}

If you want to see the result and impact of the Terraform plan before applying it against the resources, you can add an approval step to your flow.

The approval step provides the following information:

* The resources that were added (including Terraform outputs).
* The resources that were deleted.
* The resources that were changed.
* Cost estimation.
* OPA rules that were evaluated so far in the flow.

Once you have reviewed the plan and are confident in the proposed changes, you can approve it. Approving the plan acknowledges that you understand the modifications that will be made to your infrastructure.

{% hint style="warning" %}
**APPROVAL STEPS HOLD RESOURCES**

When using an Approval step, the underlying machine running the pipeline remains active until the approval is resolved. This means it will continue consuming compute resources.
{% endhint %}

***

### Add an approval step <a href="#add-an-approval-step" id="add-an-approval-step"></a>

{% tabs %}
{% tab title="Interactive guide" %}
The following example adds an **IaCM Approval** step to a provision pipeline, placing the approval step between `terraform plan` and `terraform apply`.

{% embed url="<https://app.tango.us/app/embed/3efdb37e-0d97-4875-a0b2-91fd4442cbe9?defaultListView=false&hideAuthorAndDetails=true&makeViewOnly=true&skipBranding=false&skipCover=true>" %}
Add an IaCM Approval step to your provision pipeline
{% endembed %}
{% endtab %}

{% tab title="Step-by-step" %}

1. Go to the pipeline where you want to add an approval step to the infrastructure stage.
2. Edit the stage, and then select the **Execution** tab.
3. Hover between the **Plan** and **Apply** steps, and then select **Add Step**.
4. From the **Step Library**, select **IaCM Approval** and add it to the pipeline.

![Add approval step from step library](/files/dqKX8RvkV9mUo8z65sEE)
{% endtab %}
{% endtabs %}

{% hint style="info" %}
**APPROVAL TIMEOUT**

The approval plan step has a timeout of up to *60 minutes*. You can configure this setting when you are editing the step. Upon timeout, the pipeline fails.
{% endhint %}

***

### Review and approve changes <a href="#review-and-approve-changes" id="review-and-approve-changes"></a>

During pipeline execution, once the approval plan appears, you can see all the changes and decide whether to approve or reject the changes. Approving runs the **Apply** command. Rejecting causes the pipeline to fail.

{% hint style="info" %}
**OPTIONAL WIZ SCAN**

As an additional safeguard, you can add a [Wiz Scan](/security-testing-orchestration/use-sto/sto-scanner-configuration/wiz/iac-scans-with-wiz.md) to scan your proposed infrastructure change for security vulnerabilities.

The Wiz scan feature is part of the [Harness STO module](/security-testing-orchestration/readme.md) and requires an STO license.
{% endhint %}

If you have the right access control, you can select each resource and see which attributes have changed.

![Approval step showing resource changes at runtime](/files/Kp6wnOIhaRgGwd8ldjP2)
