Repository navigation
Conversation
ditadi
force-pushed
the
stack/database-dev-flow/02-default-app-schema
branch
from
October 12, 2026 21:32
59db797 to
f8a437d
Compare
ditadi
added this pull request to stack #667
October 13, 2026 13:34
Contributor
📦 Bundle size reportCompared against
|
| dist | raw | gzip |
|---|---|---|
| JS (runtime) | 1.3 MB (+58 KB) | 468 KB (+21 KB) |
| Type declarations | 464 KB (+8.1 KB) | 168 KB (+2.8 KB) |
| Source maps | 2.6 MB (+109 KB) | 873 KB (+36 KB) |
| Other | 11 KB | 3.7 KB |
| Total | 4.3 MB (+175 KB) | 1.5 MB (+59 KB) |
Per-entry composition (own code — deps external (as shipped))
| Entry | Initial (gz) | Lazy (gz) | Total (gz) | node_modules (min) | Own code (min) |
|---|---|---|---|---|---|
. |
106 KB (+3.9 KB) | 2.5 KB (+1 B) | 108 KB (+3.9 KB) | external | 343 KB (+12 KB) |
./beta |
107 KB (+8.8 KB) | 483 B (-2 B) | 108 KB (+8.8 KB) | external | 322 KB (+25 KB) |
./testing |
45 KB (+3.1 KB) | 32 KB (-2 B) | 77 KB (+3.1 KB) | external | 223 KB (+8.7 KB) |
./tsdown |
520 B | 0 B | 520 B | external | 813 B |
./type-generator |
26 KB (+2.8 KB) | 0 B | 26 KB (+2.8 KB) | external | 74 KB (+7.9 KB) |
Chunks:
| Entry | Chunk | Load | Size (gz) |
|---|---|---|---|
. |
index.js |
initial | 101 KB |
. |
utils.js |
initial | 4.6 KB |
. |
remote-tunnel-manager.js |
lazy | 2.5 KB |
./beta |
beta.js |
initial | 87 KB |
./beta |
modular.js |
initial | 6.0 KB |
./beta |
stream-manager.js |
initial | 5.9 KB |
./beta |
service-context.js |
initial | 4.2 KB |
./beta |
databricks.js |
initial | 3.3 KB |
./beta |
client.js |
initial | 647 B |
./beta |
index.js |
initial | 20 B |
./beta |
supervisor-api.js |
lazy | 192 B |
./beta |
databricks.js |
lazy | 177 B |
./beta |
index.js |
lazy | 114 B |
./testing |
manifest.js |
initial | 32 KB |
./testing |
index.js |
initial | 10 KB |
./testing |
wide-event-emitter.js |
initial | 2.9 KB |
./testing |
index.js |
lazy | 28 KB |
./testing |
remote-tunnel-manager.js |
lazy | 2.5 KB |
./testing |
utils.js |
lazy | 1.8 KB |
./tsdown |
index.js |
initial | 520 B |
./type-generator |
index.js |
initial | 26 KB |
@databricks/appkit-ui
npm tarball (packed): 397 KB (+501 B) — gzipped download (dist + bin; excludes release-only docs/NOTICE).
| dist | raw | gzip |
|---|---|---|
| JS (runtime) | 429 KB (+235 B) | 147 KB (+108 B) |
| Type declarations | 267 KB (+983 B) | 98 KB (+226 B) |
| Source maps | 853 KB (+314 B) | 286 KB (+143 B) |
| CSS | 16 KB | 3.2 KB |
| Total | 1.5 MB (+1.5 KB) | 534 KB (+477 B) |
Per-entry composition (consumer bundle — deps bundled, peerDeps external)
| Entry | Initial (gz) | Lazy (gz) | Total (gz) | node_modules (min) | Own code (min) |
|---|---|---|---|---|---|
./js |
5.3 KB | 49 KB | 55 KB | 208 KB | 14 KB |
./js/beta |
2.1 KB | 0 B | 2.1 KB | 0 B | 5.0 KB |
./react |
433 KB (+12 B) | 49 KB | 481 KB (+12 B) | 1.3 MB | 177 KB (+41 B) |
./react/beta |
4.9 KB | 0 B | 4.9 KB | 0 B | 12 KB |
Chunks:
| Entry | Chunk | Load | Size (gz) |
|---|---|---|---|
./js |
index.js |
initial | 5.2 KB |
./js |
chunk |
initial | 120 B |
./js |
apache-arrow |
lazy | 49 KB |
./js/beta |
beta.js |
initial | 2.1 KB |
./react |
index.js |
initial | 431 KB |
./react |
tslib |
initial | 2.1 KB |
./react |
apache-arrow |
lazy | 49 KB |
./react/beta |
beta.js |
initial | 4.9 KB |
Contributor
🤖 AppKit PR bot🔬 Run evalsStart an eval for this PR from the evals-monitor app: Go to Evals Monitor → 📦 Try this PR's app templateScaffolds a new app from this PR's SDK build. Run it in any folder (requires the GitHub CLI — gh run download 38406009750 -R databricks/appkit -n appkit-template-0.87.0-pr.43ebfc8-stack-database-dev-flow-02-default-app-schema-655 -D appkit-pr-655 \
&& unzip -o "appkit-pr-655/appkit-template-0.87.0-pr.43ebfc8-stack-database-dev-flow-02-default-app-schema-655.zip" -d "appkit-pr-655" \
&& databricks apps init --template "appkit-pr-655"The template pins |
defineSchema() without a schemaName now places its tables in the Postgres schema "app" instead of "public". The deployed app's service principal can create and own a schema of its own, but has no CREATE on public, so tables in public could not be migrated on deploy without a manual grant. Signed-off-by: ditadi <victordperd@gmail.com>
An app whose tables predate the app default fails setup with advice to commit migrations, which would create an empty copy in app. Name the public tables instead, give public its own ownership hint, document one schema per app, and pin the dev-playground to public. Signed-off-by: ditadi <victordperd@gmail.com>
ditadi
force-pushed
the
stack/database-dev-flow/02-default-app-schema
branch
from
October 19, 2026 12:25
f8a437d to
ec8da9c
Compare
This branch has not been deployed
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.
Stacked on #654. The design is #677.
What did you change, and why?
Why: On Lakebase, the deployed app's service principal has no
CREATEonpublic. Onlypg_database_owneranddatabricks_superuserhave it. The service principal can create and own a schema of its own. #654 applies migrations on start as that service principal, so withpublicas the default the first deploy would fail until someone ran a grant by hand.Change:
defineSchema()without aschemaNameputs its tables in the Postgres schemaapp. The service principal createsappon its first start and owns everything in it, including the migration journal.DEFAULT_SCHEMA_NAMEindefine-schema.tsis the only place the default is set.{ schemaName: "public" }still produces unqualified SQL (pgTable/pgEnum).public: they look inappand fail setup. When every missing table exists inpublic, the error says so and shows{ schemaName: "public" }. The usual advice to commit migrations would create a second, empty copy inapp, so the error leaves it out in this case.42501while migrating intopublicgets its own hint: grantCREATE ON SCHEMA publicto the service principal, or use the defaultapp. The general hint blames a re-added resource or a recreated app, which is wrong forpublic.public.{ schemaName: "public" }, because its tables were created by hand inpublic.How do you know it works?
Testing:
define-schema.test.ts: tables and enums go toappby default, and stay unqualified with an explicitpublic.schema-check.test.ts: the error namespublicwhen every missing table is there. It keeps the usual advice when only some are there, and when the declared schema ispublic.ownership.test.ts: thepublichint.migrate-on-start.test.tsuses the default, so it checks that the journal goes toapp.public.*names passpublicexplicitly, and their assertions are unchanged.