Skip to content

Enable Burr UI to be added to existing FastAPI app#671

Merged
skrawcz merged 4 commits intoapache:mainfrom
Smitaambiger:feature/burr-ui-mount
Mar 22, 2026
Merged

Enable Burr UI to be added to existing FastAPI app#671
skrawcz merged 4 commits intoapache:mainfrom
Smitaambiger:feature/burr-ui-mount

Conversation

@Smitaambiger
Copy link
Contributor

This PR adds a reusable FastAPI factory and helper function to allow the Burr UI
to be mounted inside an existing FastAPI application.

Changes:

  • Added create_burr_ui_app() factory to construct the Burr UI FastAPI app.
  • Added mount_burr_ui(parent_app, path="/burr") helper to mount the UI as a sub-application.
  • Preserved existing behaviour with app = create_burr_ui_app().

This enables users to run Burr tracking UI alongside their own FastAPI services
in the same application.

Closes #503

@Smitaambiger
Copy link
Contributor Author

@skrawcz,Thanks for the feedback! I've updated the PR to:

• expose the name parameter in mount_burr_ui
• add parameter docstrings and an example in the function docstring
• add a working example under /examples
• add documentation under docs/concepts/tracking.rst

Let me know if any further adjustments are needed.

Smita Ambiger and others added 3 commits March 21, 2026 12:54
Refactor run.py to use a factory pattern (create_burr_ui_app) so all routes
are registered on the sub-app instance, not at module level. Add mount_burr_ui()
helper for embedding the Burr UI into an existing FastAPI application.

When mounted at a sub-path (e.g. /burr), the server rewrites CRA's hardcoded
absolute paths in index.html and injects window.__BURR_BASE_PATH__ so the
React app can prefix all API calls and client-side routes at runtime.

React-side changes:
- OpenAPI.ts reads __BURR_BASE_PATH__ for API client BASE
- App.tsx uses it as Router basename
- appcontainer.tsx prefixes logo image paths
- StreamingChatbot.tsx prefixes direct fetch calls
@skrawcz skrawcz force-pushed the feature/burr-ui-mount branch from 9f8261a to 655e923 Compare March 21, 2026 19:56
@skrawcz
Copy link
Contributor

skrawcz commented Mar 21, 2026

@Smitaambiger with changes like these you really need to run things locally and verify that things work. Please do that next time and provide screenshots of things working. I have fixed up the issues that I found.

- Add Window.__BURR_BASE_PATH__ type declaration to avoid no-explicit-any
- Apply prettier formatting to TS files
- Apply black formatting to test_local_tracking_client.py
@skrawcz skrawcz merged commit 04d172f into apache:main Mar 22, 2026
12 checks passed
@skrawcz
Copy link
Contributor

skrawcz commented Mar 22, 2026

Otherwise thanks for getting this started @Smitaambiger !

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.

Enable Burr UI to be added to existing FastAPI app

2 participants