diff --git a/.gitlab/README.md.template b/.gitlab/README.md.template
index 520248f81b5cdbfe8ab703deec2ff1331f0c642b..2120dba08024c808a71cb3853c909daa041965e8 100644
--- a/.gitlab/README.md.template
+++ b/.gitlab/README.md.template
@@ -105,6 +105,7 @@ but no destructive actions.
 
 - [`validate-plan`](templates/validate-plan.yml)
 - [`validate-plan-apply`](templates/validate-plan-apply.yml)
+- [`validate-plan-destroy`](templates/validate-plan-destroy.yml)
 
 ### Job Templates
 
diff --git a/README.md b/README.md
index fb79a6165ef33ce7b3d9738bcf0d216834ee9632..44a22673162cd066e52450e75c70f1a0d3d68de5 100644
--- a/README.md
+++ b/README.md
@@ -107,6 +107,7 @@ but no destructive actions.
 
 - [`validate-plan`](templates/validate-plan.yml)
 - [`validate-plan-apply`](templates/validate-plan-apply.yml)
+- [`validate-plan-destroy`](templates/validate-plan-destroy.yml)
 
 ### Job Templates
 
diff --git a/src/gitlab-tofu.sh b/src/gitlab-tofu.sh
index 9282763d5e39d4e8de75f79c4de0c5fe9af2a48b..0f8b02b5949b2822524cd6149de483a51ccb2d5a 100644
--- a/src/gitlab-tofu.sh
+++ b/src/gitlab-tofu.sh
@@ -16,6 +16,10 @@ if [ -z "$TF_FF_AUTO_URLENCODE_STATE_NAME" ]; then
   TF_FF_AUTO_URLENCODE_STATE_NAME=true
 fi
 
+if [ -z "$TF_FF_AUTO_APPROVE_APPLY" ]; then
+  TF_FF_AUTO_APPROVE_APPLY=true
+fi
+
 # Helpers
 
 # Evaluate if this script is being sourced or executed directly.
@@ -165,11 +169,16 @@ if [ $sourced -eq 0 ]; then
 
   case "${1}" in
     "apply")
+      auto_approve_args=""
+      if [ "${TF_FF_AUTO_APPROVE_APPLY}" = true ]; then
+        auto_approve_args="-auto-approve"
+      fi
+
       $TF_IMPLICIT_INIT && terraform_init
       if [ "$TF_APPLY_NO_PLAN" = false ]; then
-        tofu "${TF_CHDIR_OPT}" "${@}" -input=false "${TF_PLAN_CACHE}"
+        tofu "${TF_CHDIR_OPT}" "${@}" -input=false "${auto_approve_args}" "${TF_PLAN_CACHE}"
       else
-        tofu "${TF_CHDIR_OPT}" "${@}" -input=false
+        tofu "${TF_CHDIR_OPT}" "${@}" -input=false "${auto_approve_args}"
       fi
     ;;
     "destroy")