feat(boost): add FE plugin, dev Backstage instance and initial config#3640
feat(boost): add FE plugin, dev Backstage instance and initial config#3640mareklibra wants to merge 13 commits into
Conversation
Signed-off-by: Marek Libra <marek.libra@gmail.com>
Changed Packages
|
|
🤖 Finished Review · ✅ Success · Started 10:47 AM UTC · Completed 11:00 AM UTC |
ReviewFindingsMedium
Low
Labels: PR modifies only files under workspaces/boost/ adding a new frontend plugin and dev shell. Previous runReviewFindingsMedium
Low
Previous run (2)ReviewReason: stale-head The review agent reviewed commit Previous run (3)ReviewFindingsHigh
Medium
Low
Labels: PR adds a new frontend plugin and dev shell in the boost workspace Previous run (4)ReviewReason: stale-head The review agent reviewed commit Previous run (5)ReviewFindingsHigh
Medium
Low
Labels: PR adds Boost frontend plugin and dev infrastructure in the boost workspace Previous run (6)ReviewReason: stale-head The review agent reviewed commit Previous run (7)ReviewReason: stale-head The review agent reviewed commit |
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 11:03 AM UTC · Completed 11:17 AM UTC |
|
/fs-review |
|
🤖 Review · ❌ Terminated · Started 11:20 AM UTC · Ended 11:56 AM UTC |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #3640 +/- ##
=======================================
Coverage 54.03% 54.03%
=======================================
Files 2325 2329 +4
Lines 89195 89207 +12
Branches 24936 24933 -3
=======================================
+ Hits 48193 48202 +9
- Misses 40707 40757 +50
+ Partials 295 248 -47
*This pull request uses carry forward flags. Click here to find out more. Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
|
🤖 Finished Review · ❌ Failure · Started 11:20 AM UTC · Completed 11:56 AM UTC |
|
🤖 Finished Review · ✅ Success · Started 11:59 AM UTC · Completed 12:17 PM UTC |
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 12:21 PM UTC · Completed 12:38 PM UTC |
|
🤖 Finished Review · ✅ Success · Started 1:08 PM UTC · Completed 1:25 PM UTC |
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 1:28 PM UTC · Completed 1:39 PM UTC |
Backend host package for local development. Registers all boost plugins (boost-backend, both provider modules, both entity providers) plus core Backstage infrastructure (catalog, auth, permissions, proxy). Includes a no-op metricsServiceRef factory because catalog-backend depends on a metrics service that backend-defaults does not yet provide (still absent as of Backstage 1.52 / backend-defaults 0.17.3). The import uses @backstage/backend-plugin-api/alpha — an unstable API surface. This shim should be removed when backend-defaults adds a default metrics service factory. Note: packages/app is not included here — it will be added by the frontend PR (redhat-developer#3640) which uses the NFS (New Frontend System) architecture. Includes yarn install update Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> asdf
Backend host package for local development. Registers all boost plugins (boost-backend, both provider modules, both entity providers) plus core Backstage infrastructure (catalog, auth, permissions, proxy). Includes a no-op metricsServiceRef factory because catalog-backend depends on a metrics service that backend-defaults does not yet provide (still absent as of Backstage 1.52 / backend-defaults 0.17.3). The import uses @backstage/backend-plugin-api/alpha — an unstable API surface. This shim should be removed when backend-defaults adds a default metrics service factory. Note: packages/app is not included here — it will be added by the frontend PR (redhat-developer#3640) which uses the NFS (New Frontend System) architecture. Includes yarn install update Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> asdf
|
|
🤖 Finished Review · ✅ Success · Started 8:27 PM UTC · Completed 8:44 PM UTC |
Superseded by updated review
| @@ -13,6 +13,7 @@ | |||
| "pluginId": "boost", | |||
| "pluginPackage": "@red-hat-developer-hub/backstage-plugin-boost-backend", | |||
| "pluginPackages": [ | |||
There was a problem hiding this comment.
[medium] consumer-completeness
pluginPackages array missing boost-responses-api-toolkit and boost-toolscope, inconsistent with other boost family packages after this PR.
Suggested fix: Add the two missing entries to match sibling packages.
| @@ -13,6 +13,7 @@ | |||
| "pluginId": "boost", | |||
| "pluginPackage": "@red-hat-developer-hub/backstage-plugin-boost-backend", | |||
| "pluginPackages": [ | |||
There was a problem hiding this comment.
[medium] consumer-completeness
Same pluginPackages inconsistency as boost-backend-module-kagenti.
Suggested fix: Add the two missing entries.
| auth: | ||
| environment: production | ||
| providers: | ||
| guest: {} |
There was a problem hiding this comment.
[low] guest-auth-in-production
Production config overlay still includes auth.providers.guest: {}. While restricted in production mode, removing it from the production template would be cleaner.
|
|
||
| // search engine | ||
| // See https://backstage.io/docs/features/search/search-engines | ||
| backend.add(import('@backstage/plugin-search-backend-module-pg')); |
There was a problem hiding this comment.
[low] allow-all-policy
Backend unconditionally registers allow-all-policy. Code comments correctly mark it dev-only, standard Backstage scaffolding.
|
|
||
| describe('App', () => { | ||
| it('should render', async () => { | ||
| process.env = { |
There was a problem hiding this comment.
[low] test-isolation
Test replaces entire process.env without saving and restoring the original.
Suggested fix: Save and restore process.env in afterEach/afterAll.
| "@backstage/plugin-search-backend-module-techdocs": "^0.4.15", | ||
| "@backstage/plugin-search-backend-node": "^1.4.5", | ||
| "@backstage/plugin-signals-backend": "^0.3.16", | ||
| "@backstage/plugin-techdocs-backend": "^2.2.1", |
There was a problem hiding this comment.
[low] unused-dependency
@backstage/plugin-auth-backend-module-github-provider declared as dependency but never registered via backend.add().
Suggested fix: Remove dependency or add backend.add() call.
|
Closing this as #3645 is merged now. Any incremental updates can be done in follow up PR. |



Summary
@red-hat-developer-hub/backstage-plugin-boost, a New Frontend System plugin with a lazy-loaded/ai-catalogpage routepackages/app(NFS app) andpackages/backend(registers all Boost backend plugins, provider modules, and entity providers)app-config.yamlwith aboost:section for security mode, model, providers, and entity providersyarn devfor isolated frontend/backend plugin iteration and extendsyarn choreswith OpenSpec validationRationale
The Boost workspace already had backend plugins and specification-driven requirements, but no frontend plugin or way to run a full Backstage app locally. This PR establishes the development foundation described in
specifications/boost-context.md:packages/app— NFS dev app that registers the Boost frontend pluginpackages/backend— backend that wires in all registerable Boost pluginsapp-config.yaml— local configuration under theboost.*namespaceThis mirrors the NFS-first approach used in other RHDH workspaces . The
/ai-catalogroute currently renders the Backstage scaffold page; real chat and agent UI will follow in subsequent PRs against the OpenSpec changes.Aligned with Backstage 1.52.0 (see
backstage.jsonand #3621).Review follow-up
Addresses fullsend-ai-review findings:
pluginPackage, providerpluginPackagessync)boostPage,AiCatalogIconprop forwarding)boost-frontendreferences in specs/openspecbuild:api-reportsscript chaining and page extension test coverageDeferred: protected-path
[AGENTS.md]governance items — intentionally skipped pending linked issue / human approval.Files changed
New plugin package
plugins/boost/— frontend plugin (plugin.tsx, routes, scaffold components, tests,dev/app,report.api.md)Local dev shell
packages/app/— NFS app (App.tsxregisters catalog + nav + boost plugin), sidebar nav module, e2e smoke testpackages/backend/— backend entrypoint registering boost-backend, provider modules, entity providers, and standard Backstage pluginsWorkspace tooling & config
app-config.yaml— full local dev config includingboost:sectionpackage.json—yarn dev, updatedchores/build:api-reports, dependency resolutionsDocumentation
README.md,AGENTS.md,specifications/boost-context.md,packages/README.md,plugins/boost/README.mdTest plan
cd workspaces/boost && yarn installyarn chores— prettier, lint, tsc, API reports, OpenSpec validation, testsyarn start— app loads at http://localhost:3000,/ai-catalogrenders the scaffold pageyarn test:all— plugin and app unit tests pass