Commit Graph

361 Commits

Author SHA1 Message Date
Patrik Oldsberg d65d4812f6 frontend-plugin-api: support predicate overrides
Allow plugin and extension overrides to replace or remove existing if predicates. This makes conditional plugin and extension behavior overrideable through both plugin overrides and module-installed extension overrides.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-17 13:03:21 +01:00
Patrik Oldsberg 5fec07d083 docs: cover phased frontend app setup
This documents the new phased app preparation flow and conditional feature behavior in the frontend-system docs, and adds the missing changeset coverage for related published package changes.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-17 13:03:11 +01:00
Patrik Oldsberg 55b18a3c2e Merge pull request #33113 from backstage/rugvip/docs-frontend-plugin-installation
docs: default frontend plugin docs to the new frontend system
2026-03-16 22:08:47 +01:00
Patrik Oldsberg 989a1dcc9b Restrict createDevApp options
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
2026-03-16 16:10:28 +01:00
Patrik Oldsberg 1594749d8e Simplify createDevApp options
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
2026-03-16 16:10:28 +01:00
Patrik Oldsberg 0b4ed8550d Document createDevApp pattern for frontend plugin development
Add documentation for the new `@backstage/frontend-dev-utils` package
across three docs pages: the frontend system building plugins guide,
the CLI build system reference, and the project structure overview.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-16 16:10:27 +01:00
Patrik Oldsberg 17dff0ba25 docs: rename package discovery to feature discovery and reduce duplication
Rename "package discovery" to "feature discovery" across all plugin
READMEs and docs to match the established terminology. Slim down the
Feature Discovery section in the architecture docs to avoid duplicating
the configuration details now covered in the installing plugins page.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 12:57:49 +01:00
Patrik Oldsberg 67723818b5 docs: improve cross-references for installing plugins page
Update the Building Apps overview to reference the new installing
plugins page instead of duplicating feature discovery content. Add
cross-references between the installing plugins page, the architecture
feature discovery docs, the plugin conversion page, and the extension
configuration page.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 12:14:48 +01:00
Patrik Oldsberg 5a463b320c docs: update frontend plugin docs to default to new frontend system
Restructure plugin documentation so that the new frontend system is
the default, unlabeled installation path. Old frontend system
instructions are moved to a dedicated "Old Frontend System" section.

Add a new "Installing Plugins" page to the frontend system docs
covering package discovery, manual installation, and configuration.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 11:24:35 +01:00
Patrik Oldsberg 92d77a98ff rename header action to plugin header action
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-17 11:55:37 +01:00
Patrik Oldsberg 5920062fcc app-react: API cleanup and component utility for nav items
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-17 11:55:34 +01:00
Patrik Oldsberg cc3c035267 frontend-plugin-api: document that icons should be 24x24
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-17 11:55:32 +01:00
Patrik Oldsberg 1ec7e80635 docs/frontend-system: document SubPage and HeaderAction blueprints
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-17 11:55:32 +01:00
Patrik Oldsberg a2133bebd4 docs: document new nav content extensibility
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-17 11:55:31 +01:00
Patrik Oldsberg 6d3c8065a6 docs/frontend-system: update to use icon element
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-17 11:55:25 +01:00
Patrik Oldsberg e1f22f2d15 plugin icons and titles
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-17 11:55:22 +01:00
Patrik Oldsberg fdbd40488e module-federation-common: followup to initial implementation
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-13 13:47:35 +01:00
Patrik Oldsberg 903a854ebc Merge branch 'master' into runtime-module-federation-enablement
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-12 23:46:00 +01:00
Patrik Oldsberg 94e05532be Apply suggestions from code review
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-12 23:20:05 +01:00
Aramis Sennyey 36573c6dd0 docs: fix reference to parent inputs in child extension (#32801)
Signed-off-by: Aramis Sennyey <159921952+aramissennyeydd@users.noreply.github.com>
2026-02-11 10:23:55 -05:00
Patrik Oldsberg be7ebadb21 repo: promote app-next to main example app
This renames packages to make the new frontend system the default:

- packages/app → packages/app-legacy (example-app-legacy)
- packages/app-next → packages/app (example-app)
- packages/app-next-example-plugin → packages/app-example-plugin

Updated all related configuration, scripts, and documentation.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-10 14:30:16 +01:00
Patrik Oldsberg 8fa6ef3452 frontend-test-utils: review fixes
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-10 10:42:32 +01:00
Patrik Oldsberg 7ee7f122a8 frontend-test-utils: adjust fetch mock + add createApiMock
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-09 19:22:58 +01:00
Patrik Oldsberg b9d90a7140 frontend-test-utils: review and type fixes + cleanup
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-07 11:37:37 +01:00
Patrik Oldsberg f4bb4d1983 frontend-test-utils: remove redundant .factory util
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-07 00:34:36 +01:00
Patrik Oldsberg 0a1faaa076 docs/frontend-system: add utility API testing docs
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-07 00:06:58 +01:00
Andreas Berger d6ff861d1c rename showIcons config to showNavItemIcons
Signed-off-by: Andreas Berger <andreas@berger-ecommerce.com>
2026-02-05 11:15:57 +01:00
Andreas Berger c3a5f972f6 Adjustments after review
Signed-off-by: Andreas Berger <andreas@berger-ecommerce.com>
2026-02-05 11:15:56 +01:00
Andreas Berger d04264404e update doc
Signed-off-by: Andreas Berger <andreas@berger-ecommerce.com>
2026-02-05 11:15:56 +01:00
Andreas Berger 491a06cbf1 Add the ability to show icons for the tabs on the entity page (new frontend)
Signed-off-by: Andreas Berger <andreas@berger-ecommerce.com>
2026-02-05 11:15:56 +01:00
Patrik Oldsberg 4eb50ed4c8 Merge pull request #32678 from backstage/sennyeya/fix-reference-docs
fix: update more /docs/references links
2026-02-04 23:56:06 +01:00
aramissennyeydd efbf232bfa fix: update more /docs/references links
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
2026-02-04 10:11:36 -06:00
Patrik Oldsberg ac9bead0dc Add createTestEntityPage utility for testing entity extensions
This adds a test utility that simplifies testing entity cards and content
extensions in the new frontend system. The utility creates a test page
that provides EntityProvider context and accepts entity extensions through
input redirects.

Also adds the `apis` option to `renderTestApp` for API overrides, and
includes tests for entity cards in catalog, org, and api-docs plugins.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-04 11:29:47 +01:00
Patrik Oldsberg 15ed3f9ccb Add extension snapshot testing support to frontend-test-utils
Adds the snapshot() method to ExtensionTester, enabling snapshot
testing of extension tree structures. The snapshots use a tree-shaped
format that mirrors the extension hierarchy, with empty fields and
default values omitted for clarity.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-04 10:37:33 +01:00
Patrik Oldsberg 013ec22eab frontend-test-utils: add mountedRoutes option for renderTestApp + document
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-03 23:05:57 +01:00
Patrik Oldsberg 68d2c57d94 docs: update to prefer new apis option and use mockApis
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-03 00:11:48 +01:00
Patrik Oldsberg 22864b75a9 feat(frontend-test-utils): add API override support to test utilities
Added support for API overrides in `createExtensionTester` and
`renderInTestApp` to allow tests to override specific APIs without
requiring wrapper components. This provides app-level API overrides
that are available throughout the entire extension tree.

The `apis` option follows the same typing pattern as `TestApiProvider`
from `@backstage/test-utils` for consistency and type safety.

Example usage:

```typescript
const tester = createExtensionTester(MyExtension, {
  apis: [
    [errorApiRef, mockErrorApi],
    [analyticsApiRef, mockAnalyticsApi],
  ],
});

renderInTestApp(<MyComponent />, {
  apis: [
    [errorApiRef, mockErrorApi],
    [analyticsApiRef, mockAnalyticsApi],
  ],
});
```

This enables cleaner tests with app-level API overrides, eliminating
the need to wrap components with TestApiProvider in many cases.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-03 00:11:48 +01:00
David Festal 00638e4145 Fix review comment on 07-module-federation.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: David Festal <dfestal@redhat.com>
2026-01-27 14:54:21 +01:00
David Festal 95693a951b Complete docs
Signed-off-by: David Festal <dfestal@redhat.com>
2026-01-27 14:54:20 +01:00
David Festal 86bb4321a9 Add and update documentation
Signed-off-by: David Festal <dfestal@redhat.com>
Assisted-by: Cursor
2026-01-27 14:54:19 +01:00
Patrik Oldsberg 9554c36e4c frontend-plugin-api: deprecate multiple attachment points and document api pattern
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-01-26 16:53:03 +01:00
Patrik Oldsberg f73d947c85 docs/frontend-system: document internal option for createExtensionInput
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-01-23 11:41:16 +01:00
Patrik Oldsberg 3799135578 Update docs/frontend-system/building-plugins/03-common-extension-blueprints.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-01-17 01:09:55 +01:00
Patrik Oldsberg 872cecb902 docs: updates for app and plugin wrapper blueprint changes
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-01-16 17:08:55 +01:00
Patrik Oldsberg c4e03c31ac Merge pull request #32345 from backstage/rugvip/restrict
frontend-app-api: restrict the ability for plugins to override APIs
2026-01-16 16:48:58 +01:00
Patrik Oldsberg 9ccf84e219 frontend-plugin-api: move app blueprints to new app-react package
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-01-16 11:59:49 +01:00
Patrik Oldsberg 3bd2a1a5bf frontend-app-api: restrict the ability for plugins to override APIs
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-01-16 01:18:58 +01:00
Nguyễn Nhật Thành fc63723560 fix(frontend-system-doc): use PascalCase for SidebarContent in migration guide (#32228)
* fix(frontend-system-doc): update import statement for sidebar content in migration guide

Signed-off-by: Thanh Nguyen <thanh.nguyen35@mservice.com.vn>

* fix(frontend-system-doc): update capitalization for SidebarContent naming in migration guide

Signed-off-by: Thanh Nguyen <thanh.nguyen35@mservice.com.vn>

---------

Signed-off-by: Thanh Nguyen <thanh.nguyen35@mservice.com.vn>
Co-authored-by: Thanh Nguyen <thanh.nguyen35@mservice.com.vn>
2026-01-01 13:20:19 -07:00
aramissennyeydd 3904a1ac1c chore: point to new api reference site
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
2025-12-18 10:27:56 -07:00
Andre Wanlin be6b8aa2af docs - New Frontend System - Add missing --next flag (#32041)
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2025-12-05 20:42:16 -05:00