Repository navigation
Conversation
Contributor
📦 Bundle size reportCompared against
|
| dist | raw | gzip |
|---|---|---|
| JS (runtime) | 1.3 MB (+15 KB) | 467 KB (+7.7 KB) |
| Type declarations | 474 KB (+9.7 KB) | 172 KB (+3.4 KB) |
| Source maps | 2.6 MB (+41 KB) | 876 KB (+17 KB) |
| Other | 11 KB | 3.7 KB |
| Total | 4.3 MB (+66 KB) | 1.5 MB (+28 KB) |
Per-entry composition (own code — deps external (as shipped))
| Entry | Initial (gz) | Lazy (gz) | Total (gz) | node_modules (min) | Own code (min) |
|---|---|---|---|---|---|
. |
111 KB (+4.3 KB) | 2.5 KB (-1 B) | 113 KB (+4.3 KB) | external | 357 KB (+12 KB) |
./beta |
105 KB (+1.9 KB) | 4.5 KB (+4.0 KB) | 109 KB (+5.9 KB) | external | 320 KB (+10 KB) |
./testing |
45 KB (+311 B) | 36 KB (+4.0 KB) | 82 KB (+4.3 KB) | external | 236 KB (+12 KB) |
./tsdown |
630 B (+110 B) | 0 B | 630 B (+110 B) | external | 1.0 KB (+233 B) |
./type-generator |
30 KB (+3.7 KB) | 0 B | 30 KB (+3.7 KB) | external | 85 KB (+11 KB) |
Chunks:
| Entry | Chunk | Load | Size (gz) |
|---|---|---|---|
. |
index.js |
initial | 106 KB |
. |
utils.js |
initial | 4.6 KB |
. |
remote-tunnel-manager.js |
lazy | 2.5 KB |
./beta |
beta.js |
initial | 79 KB |
./beta |
stream-manager.js |
initial | 5.9 KB |
./beta |
define-schema.js |
initial | 5.8 KB |
./beta |
service-context.js |
initial | 4.2 KB |
./beta |
modular.js |
initial | 3.5 KB |
./beta |
databricks.js |
initial | 3.3 KB |
./beta |
wide-event-emitter.js |
initial | 2.8 KB |
./beta |
client.js |
initial | 645 B |
./beta |
index.js |
initial | 20 B |
./beta |
index.js |
lazy | 4.0 KB |
./beta |
supervisor-api.js |
lazy | 201 B |
./beta |
databricks.js |
lazy | 185 B |
./beta |
index.js |
lazy | 125 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 | 32 KB |
./testing |
remote-tunnel-manager.js |
lazy | 2.5 KB |
./testing |
utils.js |
lazy | 1.8 KB |
./tsdown |
index.js |
initial | 630 B |
./type-generator |
index.js |
initial | 30 KB |
@databricks/appkit-ui
npm tarball (packed): 377 KB (-20 KB) — gzipped download (dist + bin; excludes release-only docs/NOTICE).
| dist | raw | gzip |
|---|---|---|
| JS (runtime) | 416 KB (-13 KB) | 141 KB (-5.6 KB) |
| Type declarations | 244 KB (-23 KB) | 90 KB (-8.5 KB) |
| Source maps | 814 KB (-39 KB) | 271 KB (-14 KB) |
| CSS | 16 KB | 3.2 KB |
| Total | 1.5 MB (-75 KB) | 506 KB (-28 KB) |
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.4 KB (+277 B) | 0 B | 2.4 KB (+277 B) | 0 B | 5.2 KB (+200 B) |
./react |
433 KB | 49 KB | 481 KB | 1.3 MB | 177 KB |
./react/beta |
3.7 KB (-1.2 KB) | 0 B | 3.7 KB (-1.2 KB) | 0 B | 8.6 KB (-3.8 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.4 KB |
./react |
index.js |
initial | 431 KB |
./react |
tslib |
initial | 2.1 KB |
./react |
apache-arrow |
lazy | 49 KB |
./react/beta |
beta.js |
initial | 3.7 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 42205550889 -R databricks/appkit -n appkit-template-0.90.0-pr.2398f3e-stack-database-stable-06-serve-operations-692 -D appkit-pr-692 \
&& unzip -o "appkit-pr-692/appkit-template-0.90.0-pr.2398f3e-stack-database-stable-06-serve-operations-692.zip" -d "appkit-pr-692" \
&& databricks apps init --template "appkit-pr-692"The template pins |
ditadi
force-pushed
the
stack/database-stable/06-serve-operations
branch
from
October 26, 2026 10:41
f72c9a7 to
8a9f21c
Compare
ditadi
marked this pull request as ready for review
October 28, 2026 11:05
ditadi
force-pushed
the
stack/database-stable/06-serve-operations
branch
from
November 3, 2026 13:01
4b113fa to
2fd1455
Compare
ditadi
force-pushed
the
stack/database-stable/06-serve-operations
branch
from
November 3, 2026 13:47
2fd1455 to
30d4a43
Compare
ditadi
requested review from
MarioCadenas
and removed request for
atilafassina
November 3, 2026 13:55
ditadi
force-pushed
the
stack/database-stable/06-serve-operations
branch
from
November 3, 2026 15:18
30d4a43 to
a483f29
Compare
This was referenced Nov 3, 2026
ditadi
force-pushed
the
stack/database-stable/06-serve-operations
branch
from
November 4, 2026 19:15
a483f29 to
4fb8105
Compare
ditadi
force-pushed
the
stack/database-stable/06-serve-operations
branch
from
November 4, 2026 20:06
4fb8105 to
2f36a19
Compare
database({ routes }) mounts the generated registry under
/api/database/operations/<name>; without routes the plugin serves no
HTTP endpoint. The table routes, the api and crudRoutes options, the
entity client and hooks, and their HTTP facets are removed.
The playground, template, and docs move to named operations. The
playground writes a note and its event in one transaction, and only
the author may change or delete the note.
Signed-off-by: ditadi <victordperd@gmail.com>
Signed-off-by: ditadi <victordperd@gmail.com>
Signed-off-by: ditadi <victordperd@gmail.com>
Signed-off-by: ditadi <victordperd@gmail.com>
The plugin validates and serves operations without the schema's table set, and the playground declares an output on boards.create, notes.create, and notes.update while notes.delete answers no body. The database guide drops the entity field and the default-output table, says that every callback, the resource lookup included, receives the actor, and states that private() does not sanitize an operation's output. The table contract and column codecs that only default outputs used go with them, along with the shared WireOutput type. Co-authored-by: Isaac <no-reply@databricks.com> Signed-off-by: ditadi <victordperd@gmail.com>
ditadi
force-pushed
the
stack/database-stable/06-serve-operations
branch
from
November 6, 2026 10:49
2f36a19 to
5fef7c8
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.
What did you change, and why?
Authored operations are now the only database HTTP surface.
database()discovers the generated registry forserver/database/routes/, so an app using the conventional layout no longer importsroutes.gen.tsin its server entry.database()discovers operations,database({ routes: false })keeps server-side access only, anddatabase({ routes: customRoutes })uses an explicit registry.appkitServerConfig()build includes the registry, schema, and operation modules automatically. Production discovery loads the compiled registry beside the server entry, including custom output directories. Clean builds remove stale registries when sources are deleted.tsx watchtrack routes, shared row schemas, and policies; first-route additions and last-route deletions reload correctly. Production uses the compiled registry without generating files.apioption, thecrudRoutescheck, the entity client and hooks, the CRUD HTTP facets, and theDatabricksAppKitDatabaseRegistryglobal, with no compatibility layer.skipTokenfor dependent note reads. Its row-answering operations declare explicit outputs withoutauthor_email, andnotes.deleteanswers no body. Documentation explains omitted-input and omitted-output semantics, explicit schemas, that.private()does not filter anoutput, and that a policy'sresourcelookup receivesactor.This replaces the beta database HTTP API. Operations without input schemas accept no parameters, and operations without output schemas answer no body.
Interface
An explicit schema overrides conventional schema discovery. With an explicit routes registry, the schema must be the same object the registry loads. Custom server builds must include the registry entry beside their server using the same file extension, or import and pass the registry explicitly.
Removed without a compatibility layer:
database({ api }), its AutoCRUD configuration types, and routes under/api/database/<table>.databaseApi.list,get,create,update, andremove; the entity CRUD hooks; andinvalidateDatabaseReads.DatabricksAppKitDatabaseRegistryglobal that the entity hooks read.crud/codecs.ts,compileCrudTables) and the sharedWireOutputtype, which lost their last consumers.Validation
tsx watchtest below) and the playground smoke test (10) pass.tsx watch+ Vite test covers schema-only startup, first route creation, route edits, shared schema edits, added routes, deletions, and final route removal without a restart loop.pnpm build,pnpm docs:build,pnpm check:fix, andpnpm -r typecheckpass.Live Databricks Apps identity and Lakebase were not exercised. The docs build reports an existing broken anchor in custom-plugin telemetry documentation; it completes successfully.
Stack
#683 → #687 → #688 → #689 → #690 → #691 → #692
Design: #683. Previous layer: #691.
Review feedback:
refactor(appkit): migrate operations to explicit outputsmigrates the playground, tests, and guide, and removes the orphaned codecs.Stack created with GitHub Stacks CLI • Give Feedback 💬