You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sims-hq/apps/hq
Thomas Joise ee0367dfb5 fix(db-pg): make requireDbUrlForEnv guard outcome-based, not NODE_ENV-gated
The guard only threw when NODE_ENV==='production' AND resolution came
back empty. But NODE_ENV is exactly what isn't reliably set for the
maintenance scripts this guards (they're run by hand from an operator
shell with no service-definition env and no dotenv), so on the real
prod box the guard never fired: resolution silently returned '', the
script opened a brand-new empty SQLite file under <cwd>/data, and
printed a false "0 project(s) rebuilt" success.

Now the guard fires on the OUTCOME instead: whenever resolution
selects SQLite, refuse to run unless the target file already exists —
a migration/maintenance script must never CREATE a database. Applies
only to requireDbUrlForEnv (the script entry path); server.ts calls
resolveDbUrl directly and is untouched, so first boot still creates
its DB as before.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 day ago
..
scripts fix(scripts): harden apply-ltd-numbers/apply-name-fixes/import-employees DB resolution 1 day ago
src fix(db-pg): make requireDbUrlForEnv guard outcome-based, not NODE_ENV-gated 1 day ago
test fix(db-pg): make requireDbUrlForEnv guard outcome-based, not NODE_ENV-gated 1 day ago
.env.example feat(d32): remove the key concept entirely + keyless legacy cleanup 3 days ago
build-server.mjs feat(hq): server assembly, build script and e2e smoke (HQ-1 task 14) 2 weeks ago
package.json feat(d20): P4 — full-APEX importer v2 (9 files, stage/commit, CLI) 4 days ago
schema.sql docs+chore: HQ DDL snapshot, gitignored import-drop, Postgres locked pre-go-live (D15) 2 weeks ago
tsconfig.json feat(hq): app skeleton with health endpoint (HQ-1 task 1) 2 weeks ago