Repository navigation
content-moderator, saas-tracker: AppKit 0.40 -> 0.91.3; build without their tables - #305
Open
mikehelmick wants to merge 5 commits into
Open
mikehelmick wants to merge 5 commits into
mikehelmick wants to merge 5 commits into
Conversation
…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>
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>
… 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
force-pushed
the
deps/appkit-0.91.2-showcase
branch
from
November 10, 2026 17:58
16355e1 to
a8a819f
Compare
This was referenced Nov 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Moves
content-moderatorandsaas-trackerfrom AppKit 0.40.0 to 0.91.3. These two were left behind when the other AppKit templates moved to 0.87 (#287), because a fresh deploy couldn't build:content_moderation.content_moderation.*,saas_tracker.saas_tracker.*).prebuildranappkit generate-types --wait(blocking mode). There, a missing table is a SQL error, and AppKit always fails the build on SQL errors, with no fallback to committed types.Changes
prebuildruns typegen non-blocking (--waitremoved). Non-blocking typegen never queries the warehouse at build time.predevstill generates real types locally once the tables exist.AnalyticsPage.tsxdeclares its overview row type (ContentOverviewRow,SpendOverviewRow) and casts the hook'sdatato it. The client then compiles whether the generated result type is real or degraded (unknown).zodaligned to AppKit's 4.6.7. Leaving it at 4.1.13 produced a nested copy that brokepostinstall.vitest) and 3 high (react-router,sharp) findings. They get the same rules: minor/patch only, patch-only for 0.x, a 7-day cooldown, andsharp0.35.5 to match the siblings. They also get AppKit templates: clear the last npm audit moderates (minimatch) #304's scopedminimatchoverride. AppKit 0.91.3 already fixesecharts,yamlandqs, so no overrides are needed for those.package-lock.jsonis now committed, as for every other npm template. Neither app had one before.Validation
npm audit: 1 critical / 3 high / 6 moderate → 0 findings in each. A plainnpm cipasses, and the lockfiles use onlyregistry.npmjs.orgURLs.npm run buildwith no warehouse configured (so no tables) succeeds in both. That's exactly what failed before.template-e2e-testapp (rerun on 0.91.3 across all 12 AppKit templates: force-build 12/12, deploy 12/12):Follow-up:
.github/dependabot.ymldoesn't list these two directories. Now that they have lockfiles, they can be added.This pull request and its description were written by Isaac.