Skip to content

feat(apps): add the Impulse App as apps/adhoc-reporting - #128

Closed
MaximHammer wants to merge 3 commits into
databrickslabs:mainfrom
MaximHammer:feature/adhoc_reporting_app
Closed

MaximHammer wants to merge 3 commits into
databrickslabs:mainfrom
MaximHammer:feature/adhoc_reporting_app

Conversation

@MaximHammer

Copy link
Copy Markdown
Contributor

Summary

Adds the Impulse App, a Databricks App for building Impulse reports step by step or with an assistant, as an optional, self-contained project in apps/adhoc-reporting, and an "Impulse App" section in the docs next to the framework docs. Nothing changes for framework users: the databricks-impulse wheel and sdist are identical to main, and the root make targets and the existing CI don't include the app.

This PR comes from a fork while my write access to databrickslabs is renewed, so CI is skipped here. After review, a maintainer can run make fork-sync PR=<this PR> to run the full CI.

Changes

  • apps/adhoc-reporting: the app, imported from the standalone repository (commit 0f47355, without history) and adapted to this repo: public registries in both lockfiles, its own uv settings, report.run() instead of the deprecated determine_report() and persist_results(), Impulse pinned to 0.9.0, and renamed from impulse-v4 to impulse-adhoc-reporting.
  • .github/workflows/app-adhoc-reporting.yml: unit tests, contract tests against the pinned release and against src/ of the same commit, and the frontend build. Path-filtered, not a required check, no Codecov upload.
  • Docs: a second docs instance under /app (Overview, Requirements, Install, Architecture). The navbar entry "Docs" becomes "Impulse Analytics Framework" and still opens Motivation; existing /docs URLs are unchanged. The landing page gets an "Impulse App" button.
  • README "Apps" section, a pointer in CONTRIBUTING, and a NOTICE section for the app's dependencies.

Test Plan

  • Unit tests added/updated
  • Manual testing completed
  • Documentation updated (if applicable)

Locally: the app's unit and contract tests (131 + 32) pass against the pinned 0.9.0 wheel and against src/; the frontend builds; make lint passes; the wheel and sdist match main; the docs build passes the broken-link check and search indexes the app pages.

On a Databricks workspace: demo data seed, serverless smoke runs with and without gold writes, live data tests (12/12), assistant evals (10/10), bundle deploy, and a report built, run as the app's service principal and read back through the deployed app's API.

Not verified: the framework's Spark test suite (no framework code changed) and the new workflow on the protected runners, which need to download the pinned wheel from GitHub releases.

Checklist

  • Code follows project style guidelines
  • Self-review completed
  • No new linter warnings introduced

This pull request and its description were written by Isaac.

MaximHammer and others added 3 commits October 16, 2026 14:32
Adds the Impulse App, a Databricks App for building Impulse reports step by
step or with an assistant, as a self-contained project under
apps/adhoc-reporting. It is optional and not part of the databricks-impulse
package: the wheel and sdist are unchanged, and the root make targets and CI
don't include it.

Imported from the standalone impulse-app repository at commit 0f47355 (main),
without history, then adapted to its new home:

- Lockfiles point to public PyPI and npm instead of internal mirrors;
  `make lock` keeps them there.
- Own [tool.uv] table and .python-version (3.11), so uv doesn't apply the root
  project's settings; project installs use --frozen, so a local package mirror
  can't rewrite uv.lock.
- `make deploy` only checks the app folder for uncommitted changes.
- The bundle and the default app name are impulse-adhoc-reporting instead of
  impulse-v4.
- Generated notebooks call report.run() and run(persist_results=False) instead
  of the deprecated determine_report() and persist_results(); the contract test
  binds every call against the real Report.run signature.
- Pins Impulse 0.9.0, with the vendored framework skills re-synced.
- `make test FRAMEWORK=../..` builds the contract tests against the framework
  source in this repo.
- The install guide moves to the docs site; the README keeps the development
  notes.

The root README and CONTRIBUTING point to the app, and NOTICE lists its
dependencies.

Co-authored-by: Isaac <[email protected]>
Runs the app's unit tests, its contract tests against the pinned framework
release and against the framework source of the same commit, and the frontend
build. It triggers on changes to apps/adhoc-reporting/, src/ and the workflow
itself, so framework changes that break the app's generated notebooks show up
in the PR that makes them. It isn't a required check and uploads no coverage,
so the framework's CI and Codecov status stay as they are.

Co-authored-by: Isaac <[email protected]>
Adds a second docs instance under /app with Overview, Requirements, Install
and Architecture pages for the Impulse App. The navbar entry "Docs" becomes
"Impulse Analytics Framework"; it still opens Motivation, and all existing
/docs URLs stay the same. The landing page gets an "Impulse App" button.

Co-authored-by: Isaac <[email protected]>
@MaximHammer
MaximHammer requested a review from a team as a code owner October 16, 2026 12:52
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