The caution block referenced a new frontend system version of the
search integration doc that was never created. Remove the dead link
while keeping the rest of the legacy notice intact.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
- Update internationalization page to use new frontend system patterns
(TranslationBlueprint from @backstage/plugin-app-react instead of
createApp __experimentalTranslations)
- Fix AnalyticsImplementationBlueprint import to use @backstage/plugin-app-react
- Remove search integration page from frontend-system section as it
belongs in the core feature search docs
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Instead of just referencing the legacy docs/plugins documentation, adapt
and add them as new pages under frontend-system/building-plugins/ with
updated imports and examples for the new frontend system.
Also moves the OpenAPI sidebar entry under Framework instead of top-level.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Mark all pages in docs/plugins/ with legacy admonition banners pointing
to the appropriate new frontend system and backend system documentation.
Rename the sidebar section to "Plugins (Legacy)" and move it lower in
the navigation hierarchy. Add cross-references from the new frontend
system building-plugins guide to relevant cross-cutting topics (i18n,
analytics, feature flags, search) that still live in the legacy section.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
* feat(scaffolder): create get scaffolder task log action
Adds a new action to allow retrieving logs from scaffolder tasks, by way of the scaffolderService.getLogs function
Signed-off-by: John Collier <jcollier@redhat.com>
* Fix typo after rename
Signed-off-by: John Collier <jcollier@redhat.com>
* Add to list of known actions
Signed-off-by: John Collier <jcollier@redhat.com>
---------
Signed-off-by: John Collier <jcollier@redhat.com>
The example app (packages/app) had a separate app-config.yaml that was
loaded via --config flags in the start script. This moves the NFS
configuration (routes, pluginOverrides, extensions) into the root
app-config.yaml and removes the --config flags so the app uses the
default config resolution.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Add the App Visualizer navigation item back to the plugin extension list and include the regenerated API report for the restored public surface.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Keep the original icon element as the rendered root so legacy MUI-backed icons can still be styled through CSS like other Backstage UI icons.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Move the cell wrapper requirement documentation from the package
README to the docs-ui table component page where it belongs.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Added TSDoc comments to ColumnConfig.cell, RowRenderFn, CellProps,
CellTextProps, and CellProfileProps making it explicit that cell render
functions must return a cell component (Cell, CellText, or CellProfile)
as the top-level element. Also added a Table Cell Requirement section
to the package README with correct and incorrect usage examples.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Move the old frontend system homepage guide to its own companion page and add a banner to the main homepage guide that directs legacy users to the split-out documentation.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Clarify the remaining old frontend system sections, tighten the scaffolder follow-up wording, and rename the docs sidebar entry to match the frontend system terminology used elsewhere.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Only suspend the lazy BUI CSS import so the app root keeps its built-in loading UI, and lock that behavior down in the mocked render test.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
* feat(ui): centralize routing in BUIProvider
BUIProvider now auto-detects React Router context and provides
client-side navigation for all BUI components. Retired
InternalLinkProvider and added BUIRouterProvider as a public
export for integration use.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* feat(plugin-app): move BUIProvider inside app router
Moved BUIProvider from wrapping AppRouter to being a child inside
it, so it detects the React Router context and provides client-side
routing for all BUI components.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* feat(core-app-api): add BUIRouterProvider to legacy app router
Added BUIRouterProvider inside the legacy AppRouter to provide
React Aria routing for all BUI components.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* docs(ui): update BUIProvider documentation for routing
Updated installation docs to cover BUIProvider's routing role
and the requirement to render it inside a React Router context.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* refactor(ui): move BUIProvider from analytics to provider directory
BUIProvider now handles both analytics and routing, so it no longer
belongs in the analytics directory.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* fix(ui): add BUIProvider to storybook stories with MemoryRouter
Added BUIProvider inside MemoryRouter in all stories that use
routing, so client-side navigation works in Storybook.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* fix(plugin-app): move BUIProvider inside RouterComponent
Moved BUIProvider to wrap all content inside RouterComponent
so that extraElements (like dialogs) also get BUI context.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* refactor: replace BUIRouterProvider with BUIProvider in legacy app
Use BUIProvider directly inside the legacy AppRouter instead of a
separate BUIRouterProvider export. Removes BUIRouterProvider from
the public API of @backstage/ui.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* refactor(ui): inline routing logic into BUIProvider
Removed the routing/ directory and inlined the RouterProvider
setup directly into BUIProvider since it's the only consumer.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
---------
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Align the dev app render path with the existing dev-utils helper, add a clearer missing-root error, and extend the tests to cover bindRoutes forwarding and env cleanup.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Updated `resolvePackagePath` to correctly resolve `package.json` for dynamic plugins that bundle their own copy of `@backstage/backend-plugin-api`. This change ensures that the resolution works for both the host application and bundled dependencies, enhancing compatibility with plugins created using the `backstage-cli package bundle` command.
Signed-off-by: David Festal <dfestal@redhat.com>
Assisted-by: Cursor
Define createDevApp options directly so the helper only exposes features and a typed bindRoutes property without inheriting from createApp options.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Update the new frontend plugin template to use createDevApp in its dev entry point and teach cli-module-new to resolve frontend-dev-utils versions for generated packages.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Limit createDevApp to features and bindRoutes so advanced createApp configuration stays out of the dev-app helper API.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Move the BUI stylesheet into a lazily rendered helper so importing frontend-dev-utils no longer triggers global CSS side effects.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Accept createApp options at the top level in createDevApp and update the tests, docs, API report, and changeset to match the new shape.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Add @backstage/frontend-dev-utils to the except list for the rule
that prevents web-library packages from depending on frontend-plugin
packages, since it legitimately wraps @backstage/plugin-app for
development environments.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
The dev app now automatically disables the sign-in page extension,
so plugins under development don't require authentication.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor