Enable Burr UI to be added to existing FastAPI app#671
Conversation
|
@skrawcz,Thanks for the feedback! I've updated the PR to: • expose the Let me know if any further adjustments are needed. |
… UI into existing FastAPI apps
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
9f8261a to
655e923
Compare
|
@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
|
Otherwise thanks for getting this started @Smitaambiger ! |
|
@skrawcz, Thanks for the feedback! I’ll make sure to run and verify the feature locally end-to-end and include screenshots or validation steps in future PRs. |
This PR adds a reusable FastAPI factory and helper function to allow the Burr UI
to be mounted inside an existing FastAPI application.
Changes:
create_burr_ui_app()factory to construct the Burr UI FastAPI app.mount_burr_ui(parent_app, path="/burr")helper to mount the UI as a sub-application.app = create_burr_ui_app().This enables users to run Burr tracking UI alongside their own FastAPI services
in the same application.
Closes #503