Repository navigation
v0.27.2
·
45 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Fixed
- A connection pool that could not be created no longer prints its raw error at
serve/verify
startup. The ADR-0012 D-9 startup check echoed the pool factory's (or thepgPool
constructor's) own message unscrubbed, and that message can carry the DSN and its password.
ensureConnectionin@archstone/provider-sqlno longer throws: a pool that cannot be created
is a failed check, reported through the same path as every other driver failure — the error
code only, with the DSN and its password scrubbed from the one stderr line — and is not cached,
so the next call retries. The string for this case is nowpool creation failed (…)at startup
and at invocation; invocation previously saidpool checkout failed (…).
Terminal hygiene: the unscrubbed message never reached the model.
Security
@archstone/provider-sqlcould echo a literal DSN to the model. When a binding'sdsnwas
not a${VAR}reference,invokeSqlused the DSN itself, password included, where the env var
name belongs, and the over-privileged connection refusals (rolsuper,rolbypassrls, an owned
relation) returned it to the caller.applyalready refuses that shape, so this was reachable
only past it. NowinvokeSqlrefuses a non-${VAR}dsn before any connection is used, with an
error that names no part of it, and the refusals from the exportedensureConnectionname a
DSN that is not an env var name as(unnamed dsn).