Skip to content

chore: close runtime Dependabot advisories, honour LOG_LEVEL - #23

Merged
ConalMullan merged 1 commit into
developfrom
chore/dependabot-runtime-overrides
Aug 12, 2026
Merged

chore: close runtime Dependabot advisories, honour LOG_LEVEL#23
ConalMullan merged 1 commit into
developfrom
chore/dependabot-runtime-overrides

Conversation

@ConalMullan

Copy link
Copy Markdown
Collaborator

Two small fixes found while checking why the v1.1.0 release didn't clear the GitHub vulnerability alerts.

Dependabot

The release closed 83 of 90 alerts. Of the 7 remaining, 5 are runtime — all transitive via @modelcontextprotocol/sdk@1.30.0, which is already the latest, so there was no SDK upgrade to take:

Package Before → after Advisories
fast-uri 3.1.4 → 3.1.5 host confusion via backslash authority introducer (high)
hono 4.12.32 → 4.13.1 memo() cross-user data disclosure, CORS ReDoS, language-middleware DoS, proxy header leak

Pinned via overrides, within the existing major version: ^3.1.5 rather than >=3.1.5, which had pulled fast-uri 4.x into ajv's schema validation — an unnecessary major bump in a transitive dependency.

npm audit --omit=dev now reports 0 vulnerabilities.

The 2 remaining alerts are js-yaml, development-only and absent from the production tree — left alone deliberately rather than pinning a dev dependency we don't ship.

Worth noting the Hono advisories were unlikely to be reachable anyway (we use Express with our own CORS middleware, not Hono's), but the versions are patch-level and free to take.

Logger

Production has been running silently at warn for months. The host sets LOG_LEVEL=info, but src/logger.ts only ever read DS_LOG_LEVEL:

set on host code read effective
dev DS_LOG_LEVEL=debug DS_LOG_LEVEL debug ✅
prod LOG_LEVEL=info DS_LOG_LEVEL warn

So every logger.info was dropped — startup banner, session lifecycle, OAuth diagnostics. docker logs digitalsamba-mcp returns zero lines on prod. That's the exact tool that diagnosed the dev OAuth failure, and it would have been empty during Friday's prod OAuth work.

LOG_LEVEL is now accepted as a fallback; DS_LOG_LEVEL still wins when both are set, and the default stays warn. 3 new tests cover all three cases.

556 tests passing (was 553). Lint and format clean.

Still needs ops

The env var on apps3 should be renamed to DS_LOG_LEVEL regardless — this change means prod gets its logs back at the next deploy either way, but the host config is still misleading as written.

Two unrelated-but-small fixes found while checking why the v1.1.0
release did not clear the GitHub vulnerability alerts.

Dependabot: 83 of 90 alerts closed with the release; 7 remained. Five
are runtime, all transitive via @modelcontextprotocol/sdk 1.30.0 (which
is already the latest, so there is no upgrade to take):

  fast-uri  3.1.4 -> 3.1.5   host confusion via backslash authority
  hono      4.12.32 -> 4.13.1  4 advisories (memo() cross-user data
                               disclosure, CORS ReDoS, language
                               middleware DoS, proxy header leak)

Pinned via overrides within the existing major version - ^3.1.5 rather
than >=3.1.5, which had pulled fast-uri 4.x into ajv's schema
validation. `npm audit --omit=dev` now reports 0 vulnerabilities. The
two remaining alerts are js-yaml, development-only and not shipped.

Logger: production has been running silently at "warn" for months. The
host sets LOG_LEVEL=info but the code only ever read DS_LOG_LEVEL, so
every logger.info - the startup banner, session lifecycle, OAuth
diagnostics - was dropped. Container logs were the tool that diagnosed
the dev OAuth failure and they would have been empty on prod. Accept
LOG_LEVEL as a fallback; DS_LOG_LEVEL still wins when both are set.
@ConalMullan
ConalMullan merged commit 819161c into develop Aug 12, 2026
3 checks passed
@ConalMullan
ConalMullan deleted the chore/dependabot-runtime-overrides branch August 12, 2026 21:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant