fix: resolve security review findings on .env.example template (E00-S04-T05)
CI / Frozen lockfile install (pull_request) Successful in 53s
CI / Secrets not embedded (E00-S02-T08) (pull_request) Successful in 25s
CI / Database-postgres import isolation (E00-S03-T02) (pull_request) Successful in 24s
CI / Migration ledger (E00-S03-T03) (pull_request) Successful in 52s
CI / Migration advisory lock (E00-S03-T04) (pull_request) Successful in 49s
CI / Migration failure diagnostic (E00-S03-T05) (pull_request) Successful in 47s
CI / App readiness after migrations (E00-S03-T06) (pull_request) Successful in 1m8s
CI / Field-specific startup errors (E00-S04-T02) (pull_request) Successful in 1m2s
CI / Secret redaction from logs (E00-S04-T03) (pull_request) Successful in 1m5s
CI / Env adapter owns process.env (E00-S04-T04) (pull_request) Successful in 1m2s
CI / TypeBox/Ajv config schema (E00-S04-T01) (pull_request) Successful in 58s
CI / .env.example placeholders only (E00-S04-T05) (pull_request) Successful in 24s
CI / Compose config (E00-S03-T01) (pull_request) Successful in 25s
CI / Frozen lockfile install (pull_request) Successful in 53s
CI / Secrets not embedded (E00-S02-T08) (pull_request) Successful in 25s
CI / Database-postgres import isolation (E00-S03-T02) (pull_request) Successful in 24s
CI / Migration ledger (E00-S03-T03) (pull_request) Successful in 52s
CI / Migration advisory lock (E00-S03-T04) (pull_request) Successful in 49s
CI / Migration failure diagnostic (E00-S03-T05) (pull_request) Successful in 47s
CI / App readiness after migrations (E00-S03-T06) (pull_request) Successful in 1m8s
CI / Field-specific startup errors (E00-S04-T02) (pull_request) Successful in 1m2s
CI / Secret redaction from logs (E00-S04-T03) (pull_request) Successful in 1m5s
CI / Env adapter owns process.env (E00-S04-T04) (pull_request) Successful in 1m2s
CI / TypeBox/Ajv config schema (E00-S04-T01) (pull_request) Successful in 58s
CI / .env.example placeholders only (E00-S04-T05) (pull_request) Successful in 24s
CI / Compose config (E00-S03-T01) (pull_request) Successful in 25s
Addresses PR #404 review findings F2/F3/F4 on issue #186: - F3 (fail-closed): ship EPPP_SESSION_SECRET placeholder as `change-me` (9 chars), shorter than the schema's 32-character minimum, so an unedited `cp .env.example .env` is rejected at startup instead of booting with a publicly known secret. - F2 (gitleaks-clean): build the secret-shaped mutation-probe literal at runtime from short non-secret fragments; the branch no longer embeds a secret-shaped literal in the test source. - F4 (masked messages): assertion messages mask/truncate values that come from the template instead of echoing the raw string. - test: add a fail-closed length test for the EPPP_SESSION_SECRET placeholder (< 32 chars); keep mutation probes non-vacuous.
This commit is contained in:
@@ -294,8 +294,11 @@ jobs:
|
||||
# source (HOST/PORT/DATABASE_URL/EPPP_SESSION_SECRET), and contains
|
||||
# placeholder values only — no credential URI, no long secret-looking value,
|
||||
# and no compose default credential — with mutation probes proving the
|
||||
# assertions are non-vacuous. The test needs no dependencies, so the job
|
||||
# only installs Node.
|
||||
# assertions are non-vacuous. It also locks the fail-closed EPPP_SESSION_SECRET
|
||||
# placeholder (shorter than the schema's 32-character minimum), builds the
|
||||
# secret-shaped probe at runtime so the branch stays gitleaks-clean, and
|
||||
# masks raw values in assertion messages. The test needs no dependencies, so
|
||||
# the job only installs Node.
|
||||
env-example:
|
||||
name: .env.example placeholders only (E00-S04-T05)
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
Reference in New Issue
Block a user