The test assertions for lazy-loaded extension components used the
default 1000ms RTL timeout, which is insufficient under CI load.
Increased to 10000ms to match the pattern in createDevApp.test.tsx.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Add each plugin and package translation ref to the corresponding stable
entry point, changing the JSDoc tag from @alpha to @public. The alpha
entry points now re-export with a @deprecated annotation so existing
consumers continue to work.
Affected packages: core-components, api-docs, catalog, catalog-graph,
catalog-import, catalog-react, home, home-react, kubernetes,
kubernetes-cluster, kubernetes-react, notifications, org, scaffolder,
scaffolder-react, search, search-react, user-settings.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
* feat(catalog-react): add EntityDataTable and EntityRelationCard components
Add EntityDataTable (BUI Table wrapper for entity data) and
EntityRelationCard (card shell + data fetching + table) as shared
building blocks for entity relation table cards. Includes BUI column
factories, column presets for common entity types, and a new
translation key for the empty state help link.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* refactor(catalog): migrate 8 entity table cards to EntityRelationCard
Rewrite HasComponentsCard, HasResourcesCard, HasSubcomponentsCard,
HasSubdomainsCard, HasSystemsCard, DependsOnComponentsCard,
DependsOnResourcesCard, and DependencyOfComponentsCard as thin
wrappers around EntityRelationCard from catalog-react. Remove variant
and tableOptions props.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* refactor(api-docs): migrate 5 entity table cards to EntityRelationCard
Rewrite ConsumedApisCard, ProvidedApisCard, HasApisCard,
ConsumingComponentsCard, and ProvidingComponentsCard to use
EntityRelationCard from catalog-react. Add BUI column presets for
API-specific columns alongside existing MUI presets. Remove variant
and tableOptions props.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* chore: add API reports and changesets for entity table card migration
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* fix(catalog-react,api-docs): refine entity card migration
Use BUI Alert for error states and BUI Link for empty state help
links in EntityRelationCard instead of core-components. Replace MUI
ToggleButton with BUI ButtonIcon for the API definition column.
Add trailing periods to empty state translation messages. Fix tests
asserting on removed external link icon SVG.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* feat(catalog-react): add column sorting to EntityDataTable
Introduce EntityColumnConfig extending ColumnConfig with an optional
sortValue getter. EntityDataTable now uses useTable with a sortFn
that reads sortValue from each column, restoring the per-column
sorting that the old core-components Table provided by default. All
built-in column factories set isSortable and sortValue.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* fix(api-docs): use dynamic entity kind in empty state messages
Restore entity.kind interpolation in ConsumedApisCard, ProvidedApisCard,
and HasApisCard empty state translations instead of hardcoded strings.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* fix(catalog-react): use data length for useTable pageSize
Replace pageSize: Infinity with tableData.length to avoid potential
edge cases in pagination math.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* fix(catalog-react): avoid this binding in column factories
Use columnFactories.createEntityRelationColumn instead of
this.createEntityRelationColumn so the methods work when
destructured.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* chore: update alpha API reports
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* fix(create-app): remove variant prop from migrated entity cards in template
The create-app template EntityPage still passed variant="gridItem"
to cards that no longer accept it.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* test(catalog-react): add tests for EntityDataTable and EntityRelationCard
Cover rendering with data, empty state, error state, and column
sorting for EntityDataTable. Cover title rendering, empty state
with help link, related entity display, and error state for
EntityRelationCard.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* refactor(catalog,api-docs): add backwards compatibility for legacy props
Support both old (variant, columns, tableOptions) and new (columnConfig)
props via a discriminated union type. When legacy props are detected the
old MUI-based implementation is used; otherwise the new BUI-based
EntityRelationCard renders. This avoids immediate breaking changes and
provides a migration path. Changesets downgraded from major/minor to
minor/patch accordingly.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
* refactor(catalog-react,catalog,api-docs): address review feedback
Remove BaseProps types and use inline union in component signatures.
Move EntityDataTable, EntityRelationCard, and related types to alpha
exports. Group column presets and help links into entityColumnPresets
object. Update all consumers and API reports.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
---------
Signed-off-by: Johan Persson <johanopersson@gmail.com>
Update migrated NFS pages to use the existing HeaderPage contract instead of extending Backstage UI, and move DevTools to real subpages with the legacy DevTools content blueprint removed.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Always render the plugin header for page blueprints and move page-level actions into the Backstage UI header pattern for affected NFS pages.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
- Apply freben's suggested wording for old frontend system sections to
clarify they can be skipped on the new frontend system
- Fix scaffolder README: add missing imports (AnyApiFactory,
scmIntegrationsApiRef), closing bracket, and update link text
- Fix devtools README: correct closing tag from `</ FlatRoutes>` to
`</FlatRoutes>`
- Fix kubernetes README: reword "must be explicitly added" to avoid
conflicting with feature discovery paragraph
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
It was originally added due to missing peer dependency in `graphql-language-service`, but that also used it only for type imports
Signed-off-by: Timo Sand <timo.sand@f-secure.com>
The `defaultPath` param was a compile-time migration artifact typed to
produce an error, guiding users to use `path` instead. The migration
period is over, so this removes it from the public API surface.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
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
Add new frontend system installation as the default path with package
discovery. Move old frontend system wiring to an "Old Frontend System"
section. Update README-alpha.md to be an extension reference rather
than experimental documentation.
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Migrated entity filters from deprecated string-based format to the new
entity predicate format in the alpha exports. Also updated documentation
across multiple plugins to use the new format and Blueprint APIs.
Changes:
- Migrated all entity filters in api-docs plugin from strings like
'kind:api' to entity predicates like { kind: 'api' }
- Updated documentation examples in api-docs, org, kubernetes, and
catalog-graph plugins
- Migrated all documentation examples from createEntityCardExtension and
createEntityContentExtension to use EntityCardBlueprint and
EntityContentBlueprint
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
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>