Skip to content

AppKit templates: clear the last npm audit moderates (minimatch) - #304

Open
mikehelmick wants to merge 4 commits into
databricks:mainfrom
mikehelmick:deps/appkit-moderates
Open

mikehelmick wants to merge 4 commits into
databricks:mainfrom
mikehelmick:deps/appkit-moderates

Conversation

@mikehelmick

@mikehelmick mikehelmick commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #303 (AppKit 0.91.3). Merge #303 first; the change here is the last commit, AppKit templates: clear the last npm audit moderates (minimatch).

Summary

With AppKit 0.91.3 (#303), the echarts, yaml and qs findings are fixed upstream (databricks/appkit#724), so this PR no longer needs overrides for them. Each of the 10 AppKit templates still reports 7 moderate npm audit findings, and they all trace to a single package:

Root Advisory Pulled in by Override
minimatch 10.x GHSA-g3hv-75wg-m249 (DoS via glob-pattern amplification) typescript-eslint 8.72.1, the latest release, which needs minimatch ^10 11.0.3, scoped to @typescript-eslint/typescript-estree

The fix only exists in minimatch 11, and typescript-eslint hasn't moved to it yet, so a scoped override is the only way to clear it. typescript-eslint is a dev-only lint dependency and isn't in the app's runtime. The other six findings are "via" rollups of this one (@typescript-eslint/* and typescript-eslint).

With this PR, npm audit reports 0 findings of any severity in all 10 templates. The override can be removed once typescript-eslint depends on minimatch 11.

Validation

  • npm audit: 7 moderate → 0 in all 10. A plain npm ci passes, and the lockfiles use only registry.npmjs.org URLs.
  • npm run lint gives identical output with and without the override (3 errors that already exist in the template), so minimatch 11 works with typescript-eslint.
  • On the shared template-e2e-test app, on top of 0.91.3 and together with content-moderator, saas-tracker: AppKit 0.40 -> 0.91.3; build without their tables #305: --val-force-build 12/12, deploy + serve 12/12.

This pull request and its description were written by Isaac.

mikehelmick and others added 2 commits November 9, 2026 10:20
…ides

AppKit 0.91.2 ships the dependency fixes from databricks/appkit#720
(dompurify 3.4.17, zod 4.6.7, js-yaml 4.3.2, OTel auto-instrumentations
0.81.2), so the overrides added in databricks#299 for versions AppKit pinned are no
longer needed:
- removed: dompurify, zod, js-yaml, @opentelemetry/propagator-jaeger
- @opentelemetry/core override 2.8.0 -> 2.12.0 (six appkit-* templates),
  matching AppKit's OTel set and its own scaffold
- systeminformation 5.33.16 kept (matches the AppKit scaffold)

Ten templates: the six appkit-* plus agentic-support-console,
inventory-intelligence, rag-chat and vacation-rentals. content-moderator
and saas-tracker stay on 0.40 (typegen needs their tables first).

Lockfiles updated incrementally. npm audit stays 0 critical / 0 high and
moderates drop 30 -> 13 per template; plain npm ci passes.

Co-authored-by: Isaac <no-reply@databricks.com>
The server build bundled every npm dependency (noExternal: /.*/). With
AppKit 0.91.2 and its OTel 2.12 set, the bundled CommonJS modules
initialize out of order and the app crashes on startup:

  ReferenceError: Cannot access 'require_SemanticAttributes' before
  initialization

Use the same build as the sibling showcase apps (vacation-rentals,
agentic-support-console, rag-chat): unbundle the server and keep
node_modules packages external. The Apps runtime installs dependencies
from package.json, so nothing needs to be bundled.

Co-authored-by: Isaac <no-reply@databricks.com>
mikehelmick and others added 2 commits November 10, 2026 09:25
AppKit 0.91.3 bumps its echarts (6.1.0), yaml (2.9.1) and express (4.22.3,
qs 6.16.x) pins (databricks/appkit#724), clearing those moderate npm audit
findings without template overrides. The 7 moderates left per template are
all minimatch via the dev-only typescript-eslint.

Co-authored-by: Isaac <no-reply@databricks.com>
With AppKit 0.91.3, the 7 moderate findings left per template all trace to
minimatch 10.x (GHSA-g3hv-75wg-m249, DoS) via typescript-eslint 8.72.1, the
latest release, which needs minimatch ^10. The fix exists only in
minimatch 11, so override it for @typescript-eslint/typescript-estree only.
typescript-eslint is a dev-only lint dependency; `npm run lint` output is
unchanged with the override.

npm audit: 7 moderate -> 0 findings in all 10 templates.

Co-authored-by: Isaac <no-reply@databricks.com>
@mikehelmick
mikehelmick force-pushed the deps/appkit-moderates branch from 883047a to be0e303 Compare November 10, 2026 17:58
mikehelmick added a commit to mikehelmick/app-templates that referenced this pull request Nov 10, 2026
… their tables

Both apps read UC catalogs over Lakebase tables that the app creates on
first start. Their prebuild ran `appkit generate-types --wait` (blocking),
where a missing table is a SQL error that always fails the build, so a
fresh deploy could never build and these two were left on AppKit 0.40.

- prebuild runs typegen non-blocking (no --wait). It never queries the
  warehouse at build time; predev still generates real types locally.
- AnalyticsPage types its overview row explicitly, so the client compiles
  whether the generated result type is real or degraded (`unknown`).
- @databricks/appkit(-ui) 0.40.0 -> 0.91.3, zod aligned to 4.6.7.
- Direct dependencies refreshed to the same level as the other AppKit
  templates (databricks#282/databricks#299: minor/patch, patch-only for 0.x, 7-day cooldown;
  sharp 0.35.5), plus the scoped minimatch override from databricks#304.
- Commit package-lock.json, as every other npm template does.

npm audit: 1 critical / 3 high / 6 moderate -> 0 findings in each.

Co-authored-by: Isaac <no-reply@databricks.com>
@mikehelmick mikehelmick changed the title AppKit templates: clear the remaining npm audit moderates AppKit templates: clear the last npm audit moderates (minimatch) Nov 10, 2026
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