From c35bbb48b0f158e67f668cce8294807e6d16df0d Mon Sep 17 00:00:00 2001 From: SaelixCode Date: Fri, 7 Aug 2026 09:57:23 -0400 Subject: [PATCH] docs: write Configure Environment Guardrails tutorial Covers the Block deploy on missing required env vars guardrail end to end: deploy a Postgres stack with a required password, enable the guardrail, watch a real update get refused with a named-variable message, fix it, and verify from the Activity and Environment tabs. --- .../activity-tab-block-and-fix.png | Bin 0 -> 337949 bytes .../compose-env-file-mistake.png | Bin 0 -> 244216 bytes .../compose-required-password.png | Bin 0 -> 131278 bytes .../deploy-guardrails-setting-on.png | Bin 0 -> 115390 bytes .../env-file-password-cleared.png | Bin 0 -> 291242 bytes .../env-tab-db-password-required.png | Bin 0 -> 333353 bytes .../update-blocked-notification.png | Bin 0 -> 39476 bytes .../update-succeeded-health-gate.png | Bin 0 -> 240704 bytes .../configure-environment-guardrails.mdx | 111 ++++++++++++++++-- 9 files changed, 101 insertions(+), 10 deletions(-) create mode 100644 docs/images/tutorials/configure-environment-guardrails/activity-tab-block-and-fix.png create mode 100644 docs/images/tutorials/configure-environment-guardrails/compose-env-file-mistake.png create mode 100644 docs/images/tutorials/configure-environment-guardrails/compose-required-password.png create mode 100644 docs/images/tutorials/configure-environment-guardrails/deploy-guardrails-setting-on.png create mode 100644 docs/images/tutorials/configure-environment-guardrails/env-file-password-cleared.png create mode 100644 docs/images/tutorials/configure-environment-guardrails/env-tab-db-password-required.png create mode 100644 docs/images/tutorials/configure-environment-guardrails/update-blocked-notification.png create mode 100644 docs/images/tutorials/configure-environment-guardrails/update-succeeded-health-gate.png diff --git a/docs/images/tutorials/configure-environment-guardrails/activity-tab-block-and-fix.png b/docs/images/tutorials/configure-environment-guardrails/activity-tab-block-and-fix.png new file mode 100644 index 0000000000000000000000000000000000000000..fe09fe72c16be90161c0d0b81edf8558bbcf0324 GIT binary patch literal 337949 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