Repository navigation
feat(app): make demo launches asynchronous and feature the 100-table - #492
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## v0.1.1 #492 +/- ##
=======================================
Coverage 89.24% 89.24%
=======================================
Files 18 18
Lines 5030 5030
Branches 1029 1029
=======================================
Hits 4489 4489
Misses 313 313
Partials 228 228
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
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
Improve the Databricks App demo experience by replacing the long list of demo
cards with a compact featured-demo picker, making the At-scale Auto Loader
100-table demo the default, and running every demo asynchronously with streamed
logs and clickable Databricks run URLs.
The change also hardens background subprocess execution, makes local App
authentication non-interactive, propagates launcher failures correctly, and
prevents unbounded in-memory job/log growth.
Problem
The existing demo-launch experience has several usability and reliability
issues:
scan.
launcher waits for a Databricks job or pipeline.
Notebook demo, may run for 60–90 minutes.
actionable links.
with
EOFErrorwhen no terminal input is available.App to report false success.
healthy remote job waiter.
bounded retention.
still active.
Proposed User Experience
Featured demo picker
Replace the six large demo cards with one dropdown:
The selected demo displays its title, icon, and short description next to one
Run featured demoaction.Featured onboarding entry
The Onboarding page's
Pick a bundled demodropdown should default to:When selected:
Run Featured Demo.launcher rather than one static onboarding template.
Selecting a normal bundled onboarding specification restores the existing
Run Onboardingand Preview behavior.Asynchronous launch
Every registered demo should follow the same flow:
202immediately.The App page must remain usable while the remote Databricks job continues.
Progress dialog
The progress dialog should:
request completes.
Backend Design
Demo registry
Keep one allow-listed registry mapping UI command names to launcher files,
catalog argument names, and optional fixed arguments.
Registered App demos:
Unsupported launchers that require Terraform or unavailable external
infrastructure remain excluded from the App.
Shared background runner
Use one subprocess runner for CLI and demo commands.
Required behavior:
terminate, followed bykillafter a bounded grace period.Onboarding and deployment commands retain the shorter default idle timeout.
Demo launchers use a two-hour idle timeout because healthy remote jobs may
produce no output while waiting for completion.
Job registry
The in-process job registry should:
next_offsetto polling clients.Authentication behavior
Deployed Databricks Apps continue to use ambient service-principal
authentication.
Local Flask runs should:
DATABRICKS_CONFIG_PROFILEto demo launcher commands as--profile <name>.DATABRICKS_APP_PORTartificially..pysuffix.Failure propagation
Legacy demo launchers must re-raise caught exceptions after logging their
tracebacks. A failed launcher must produce a non-zero subprocess exit code so
the App reports failure.
Affected launchers:
launch_af_cloudfiles_demo.pylaunch_acfs_demo.pylaunch_silver_fanout_demo.pylaunch_dais_demo.pyAPI Contract
Start a demo
Accepted response:
{ "token": "<job-token>" }Status:
202 AcceptedPoll logs
Response:
{ "logs": [ { "stream": "stdout", "line": "At-scale demo job: https://..." } ], "next_offset": 1, "done": false, "returncode": null, "error": null }When complete,
doneistrueandresultcontains the parsed commandresult.
Invalid offsets return
400. Missing or expired tokens return404.Test Plan
Automated
Manual
--profile fevm.