mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-08 12:32:43 +00:00
Adds `pnpm check-env` — a CLI tool that reads `scripts/env-manifest.json` and verifies every required env var is present + non-empty. Exit code 0 on green, 1 on missing required vars, 2 on a malformed manifest. Two modes: pnpm check-env # against process.env pnpm check-env --file <path> # against a Coolify export / .env.production The manifest is JSON so it's git-trackable and reviewable. Groups can be marked `required: true` (boot-blocking) or `required: false` (silently disable a feature). An `allOrNone: true` group emits a synthetic <all-or-none> required row when partially populated — this is the v1.4.40 AP-2 silent-disable pattern (three of four APNS_* set, .p8 missing) made into a hard failure. Documents the workflow in docs/ops/env-check.md including the planned v1.4.43 CI integration. 16 unit tests pin parseEnvFile + checkEnv; renderResults stays untested as a thin shell over the pure helpers. This is a CLI tool, not a runtime gate — the app still boots without this check having run. The point is to make the operator-visible step between "Coolify env block edited" and "deploy fires" loud about missing vars before the deploy ships.