• DcRouter v32.1.4
    Release / build-and-release (push) Successful in 24m28s
    Stable

    jkunz released this 2026-09-22 11:26:29 +00:00 | 65 commits to main since this release

    2026-09-22 - 32.1.4

    Fixes

    • Upgrade tsdocker to 3.7.0 for validated cleanup of root-owned registry cache files.

    • Consume @push.rocks/qenv 8.0.0 (pinned exactly), which enforces a qenv.yml required: list while constructing and throws QenvMissingRequiredEnvVarsError instead of calling process.exit, a path 6.1.4 carried but could never reach. dcrouter deliberately ships no qenv.yml: it has no unconditionally mandatory environment variable. The four names it reads through qenv (DCROUTER_WEB_PUSH_ENABLED, DCROUTER_WEB_PUSH_MASTER_KEY_RING, DCROUTER_WEB_PUSH_HMAC_KEY_RING, DCROUTER_WEB_PUSH_VAPID_SUBJECT) only become mandatory once Web Push is switched on — WebPushManager.start() then refuses with a message naming all three key materials — and the reseal migration only demands the master key ring when sealed Web Push documents exist; every other name is read from process.env with a default of its own. Both construction sites (ts/classes.dcrouter.ts, ts/webpush/classes.webpush-manager.ts) therefore now pass failOnMissing = false identically, where the first one previously used the default: a qenv.yml an operator leaves in the working directory is recorded as a warning listing the missing names instead of killing a DNS and mail gateway over a feature that is off, and the refusal stays with the reader that knows which feature is blocked.

    Downloads