Dentolize · PR Template Sandbox Block Walkthrough
On this pageSettings keys

Glossary

PR template (.github/PULL_REQUEST_TEMPLATE.md) — the Markdown file GitHub uses to pre-fill the description box whenever someone opens a new pull request against this repo. This PR is the only file changed.

🧪 Sandbox block — the ## 🧪 Sandbox heading and fenced YAML block this PR adds to the template. Lives in the PR description text, not a separate file; edited by hand like any other part of the description.

Sandbox (in this context) — the disposable per-PR preview deployment of the full Dentolize stack (web, API, database, S3 mock, etc.), automatically created when a PR opens and destroyed when it closes. Not to be confused with "sandbox mode" inside the product itself — there isn't one; this is purely a CI/infrastructure concept.

sandbox CLI (/opt/homelab/sandbox/bin/sandbox) — the binary on the self-hosted GitHub Actions runner that actually clones, builds, deploys, seeds, and tears down a PR's sandbox. Lives outside this repository; the workflow shells out to it.

gate job — the CI job (sandbox.yml) that decides whether a given PR event should trigger a redeploy. See gate-and-deploy-flow.md.

SANDBOX_SETTINGS_FILE — the JSON file (converted from the PR's YAML Sandbox block, or {} if none/invalid) that the deploy step passes to the sandbox CLI.

SETTINGS_SUMMARY — a short string (e.g. two_regions=false whatsapp=false cron=true env_overrides=0) produced by sandbox … info and shown in the job summary always, but only added to the PR comment when it differs from "defaults (no settings block)".

Settings keys

KeyDefaultEffect
two_regionsfalseOn regional branches only (those with packages/auth-server): also brings up the ME-1 region and its own S3 mock.
whatsappfalseBrings up the whatsapp-official service in the sandbox.
crontrueRuns scheduled jobs in the sandbox; set false for a frozen dataset.
seedrichrich = full dynamic demo dataset; basic = minimal auto-seed (owner + admin only).
env{ IS_SANDBOX: "true" }Extra environment variables injected into the server/queue/cron app containers. Currently unread by any application code (see sandbox-settings-block.md).