21074 Commits

Author SHA1 Message Date
Patrik Oldsberg 9b8d43069d Merge pull request #33138 from backstage/rugvip/fix-dialog-api-jsx-type-inconsistency
Fix JSX type reference inconsistency in DialogApiDialog
2026-03-05 13:50:34 +01:00
Patrik Oldsberg 369079ef50 Merge pull request #33137 from backstage/rugvip/remove-page-blueprint-defaultpath
Remove deprecated `defaultPath` migration helper from `PageBlueprint`
2026-03-05 13:50:25 +01:00
Patrik Oldsberg d7311c8bac Address review feedback from PR #33140
- Keep explicit error when API context provider exists but v1 is not
  available, only return empty holder when there is no provider at all
- Update tests in core-app-api to expect the new error message when
  rendering outside a provider
- Add @backstage/core-plugin-api to changeset since it re-exports
  useApiHolder

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-03-05 13:32:15 +01:00
Patrik Oldsberg b56f573815 frontend-test-utils: deprecate standalone mock API exports
Deprecate all standalone mock API exports in favor of the `mockApis`
namespace. This includes the mock classes, their option types, and
the `ErrorWithContext` type. Inline option types into the `mockApis`
function signatures to avoid dependence on the deprecated types.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-05 13:14:55 +01:00
Johan Persson 7960d54215 feat(ui): support native HTML attributes on Grid components
Extend GridProps and GridItemProps to accept standard HTML div
attributes by inheriting from React.HTMLAttributes<HTMLDivElement>.
The rest props are spread onto the underlying div elements.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-05 12:43:03 +01:00
Johan Persson a733fd1a68 feat(ui): support native HTML attributes on Flex component
Extend FlexProps to accept standard HTML div attributes (e.g. onClick,
id, aria-*) by inheriting from React.HTMLAttributes<HTMLDivElement>.
The rest props are spread onto the underlying div element.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-05 12:43:03 +01:00
Patrik Oldsberg 4bff1b5220 Update changesets to note the flag was a no-op
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-05 11:51:06 +01:00
Patrik Oldsberg dab6c46168 Move ExtensionFactoryMiddleware from frontend-plugin-api to frontend-app-api
The `ExtensionFactoryMiddleware` type is only used by the app-level wiring
and has been moved to `@backstage/frontend-app-api` as its canonical location.

The type is preserved in `@backstage/frontend-plugin-api` with a `@deprecated`
tag pointing to the new location. All internal usages have been updated to
import from the new location.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-05 10:37:51 +01:00
Patrik Oldsberg a9440f0622 Simplify the ExtensionAttachTo type
Simplified the `ExtensionAttachTo` type to only support a single
attachment target, removing the array form for attaching to multiple
extension points. Also removed the deprecated `ExtensionAttachToSpec`
type alias.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-05 10:37:05 +01:00
Patrik Oldsberg 33de79d5dd Remove deprecated createPublicSignInApp from @backstage/frontend-defaults
The function was deprecated in favor of using `createApp` with the
`appModulePublicSignIn` module from `@backstage/plugin-app/alpha`.
This removes the function, its tests, and updates the documentation
to use the recommended approach.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-03-05 10:33:45 +01:00
Patrik Oldsberg 6573901551 Remove deprecated AnyExtensionDataRef type
The `AnyExtensionDataRef` type alias was deprecated in favor of using
`ExtensionDataRef` without type parameters, which is equivalent since
all type parameters have defaults. This removes the deprecated type,
its export, and updates `ExtensionDataRefToValue` to use
`ExtensionDataRef` directly.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-05 10:33:38 +01:00
Patrik Oldsberg 92af1ae9c0 Remove allowUnknownExtensionConfig option from frontend app APIs
The `allowUnknownExtensionConfig` option was unused in practice — unknown
extension config was always reported via the error collector regardless of
the flag. For `createSpecializedApp`, unknown extension config is now always
included in the returned errors. For `createApp`, it is handled as a
console warning via `maybeCreateErrorPage`.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-05 10:32:08 +01:00
Patrik Oldsberg 8a3a906fb7 Deprecate NavItemBlueprint in @backstage/frontend-plugin-api
Nav items are now automatically inferred from PageBlueprint extensions
based on their title and icon params, making NavItemBlueprint redundant.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-05 10:30:38 +01:00
Patrik Oldsberg b15a685e52 Deprecate withApis in @backstage/frontend-plugin-api
Moved withApis to @backstage/core-compat-api and deprecated the export
in @backstage/frontend-plugin-api, pointing users to the new location.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-05 10:19:10 +01:00
Patrik Oldsberg fe848e09e6 Change useApiHolder to not throw when outside API context
Instead of throwing a NotImplementedError, useApiHolder now returns an
empty ApiHolder when no API context is available in the React tree.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-05 10:18:26 +01:00
Patrik Oldsberg 2c383b535b Move AnalyticsImplementationBlueprint to @backstage/plugin-app-react
Migrated the AnalyticsImplementationBlueprint and
AnalyticsImplementationFactory from @backstage/frontend-plugin-api to
@backstage/plugin-app-react. The original exports are deprecated with
pointers to the new location.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-05 10:01:46 +01:00
Patrik Oldsberg 1bec049493 Fix JSX type reference inconsistency in DialogApiDialog
The `update` method used `React.JSX.Element` for the first union member
and plain `JSX.Element` for the second. These resolve to the same type
but the inconsistency within a single method signature is confusing.
Aligned both to use `JSX.Element` to match the rest of the file.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-05 09:55:33 +01:00
Patrik Oldsberg d0206c499a Remove deprecated defaultPath migration helper from PageBlueprint
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
2026-03-05 09:53:22 +01:00
root f1043f5514 Merge branch 'master' into range-slider-component 2026-03-05 14:09:58 +05:30
abdellahhanane a761a48331 add changelot
Signed-off-by: abdellahhanane <abdellahhanane44@gmail.com>
2026-03-04 22:46:49 -05:00
AmateurMind 8df079681e fix(catalog-backend-module-gitlab): use correct GitLab API parameter 'topic' instead of 'topics'
The GitLab Projects API expects the query parameter 'topic' (singular),
but the GitlabDiscoveryEntityProvider was passing 'topics' (plural),
causing project filtering by topics to silently fail.

- Updated ListProjectOptions interface to use 'topic' instead of 'topics'
- Updated GitlabDiscoveryEntityProvider to send 'topic' parameter
- Added regression test verifying topic parameter is passed correctly
- Fixed template literal formatting in client.ts

Fixes #33110

Signed-off-by: AmateurMind <suhail17mohammad@gmail.com>
2026-03-05 08:30:20 +05:30
John Collier 77bee9f013 feat(scaffolder): Allow sorting by status in scaffolderService.listTasks.
Added optional `status` filter to `ScaffolderService.listTasks`, by exposing the `status` query parameter,  allowing callers to retrieve tasks of a specific status. Also updated the `list-scaffolder-tasks` action to support this parameter.

Signed-off-by: John Collier <jcollier@redhat.com>
2026-03-04 16:25:29 -05:00
Vivek Hipparkar 58b9f3f88c chore: add changeset for scaffolder markdown list behavior fix
Signed-off-by: Vivek Hipparkar <vivekhipparkar@gmail.com>
2026-03-05 02:50:38 +05:30
Charles de Dreuille c7fb3299ee Merge pull request #33116 from backstage/interactive-cards
feat(ui): add interactive overlay to Card component
2026-03-04 20:40:07 +00:00
Fredrik Adelöw 9361965db9 Fix runCheck to ignore stdio of spawned process
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
2026-03-04 17:33:29 +01:00
Charles de Dreuille db927510dc Add new Interactive card
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-04 15:24:23 +00:00
Patrik Oldsberg 538c985672 Add changesets for plugin README updates
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-04 13:43:47 +01:00
AmbrishRamachandiran 5f5dcf9fea Fix review comments
Signed-off-by: AmbrishRamachandiran <ambrish.r@infosys.com>
2026-03-04 16:58:56 +05:30
AmbrishRamachandiran 8d79835cc0 BUI - Add new range slider component
Signed-off-by: AmbrishRamachandiran <ambrish.r@infosys.com>
2026-03-04 16:21:26 +05:30
Patrik Oldsberg d757071651 Merge pull request #33082 from backstage/bui-migrate-catalog-entity-cards
feat(catalog,org): migrate entity cards from MUI/InfoCard to BUI
2026-03-04 11:50:41 +01:00
Patrik Oldsberg a0310d57ec Apply suggestion from @Rugvip
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-03-04 10:49:09 +01:00
Charles de Dreuille a5ff77fcbe Merge pull request #33102 from backstage/bui-select
bui(ui): improve Select trigger bg and focus ring
2026-03-04 08:15:21 +00:00
Ben Lambert e96f6d9ce9 Merge commit from fork
Signed-off-by: Bond Yan <bondy@spotify.com>
Co-authored-by: Bond Yan <bondy@spotify.com>
2026-03-04 07:33:06 +01:00
Ben Lambert 1513a0b132 Merge commit from fork
* Reject path traversal in SCM URL filepath parsing

* Harden parseGitUrlSafe against encoding bypass variants
2026-03-04 07:28:36 +01:00
Ben Lambert 30ff9810f5 Merge commit from fork
* Fix secret redaction bypass via Nunjucks filters

* Address PR feedback on secret redaction helpers
2026-03-04 07:24:40 +01:00
Carl-Erik Bergström 545557a928 feat(backend-app-api): attribute registration errors to plugins/modules (#33029)
* feat(backend-app-api): attribute registration errors to plugins/modules

Signed-off-by: Carl-Erik Bergström <cbergstrom@spotify.com>
2026-03-03 19:12:44 +01:00
Charles de Dreuille bb66b8617b Improve Select style
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-03 17:57:26 +00:00
Charles de Dreuille 95fecdf617 Merge pull request #33081 from backstage/ui/searchfield-textfield-bg-focus
feat(ui): bg-context support and focus ring for SearchField and TextField
2026-03-03 15:56:01 +00:00
Charles de Dreuille 62d674c3de Merge branch 'master' into ui/searchfield-textfield-bg-focus
# Conflicts:
#	packages/ui/src/components/PluginHeader/PluginHeader.module.css
#	packages/ui/src/components/PluginHeader/PluginHeader.tsx
#	packages/ui/src/components/PluginHeader/PluginHeaderToolbar.tsx
2026-03-03 14:16:54 +00:00
github-actions[bot] db0d171511 Version Packages (next) 2026-03-03 14:16:49 +00:00
Johan Persson 36987dbdfd chore(ui): add changesets and update API report
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 15:11:28 +01:00
Charles de Dreuille e8c8e0fe30 Merge pull request #33085 from backstage/cdedreuille/merge-plugin-header-toolbar
Style improvements on PluginHeader
2026-03-03 14:01:27 +00:00
Andre Wanlin 21d8beec83 Merge pull request #33083 from backstage/visibility
Update Azure integration config visibility
2026-03-03 06:49:36 -06:00
Johan Persson 2aaacb5095 refactor(catalog): remove obsolete gridSizes prop from AboutField
Remove the unused `gridSizes` prop from AboutField. Grid layout is
now owned by the parent Grid.Root in AboutContent, making this prop
unnecessary.

Update changeset with breaking change and migration guide.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:34 +01:00
Johan Persson c6080eb0b0 chore: update changeset.
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:34 +01:00
Johan Persson 99ef00b4e4 chore: update changeset and API reports
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:34 +01:00
Johan Persson 5fc35bbe9b chore: add changeset and update API reports for BUI card migration
Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-03 12:17:32 +01:00
Patrik Oldsberg 629e9f5558 Add deprecation warnings for old camelCase flag names
Instead of a hard breaking change, the old camelCase flag names
(--baseVersion, --successCache, --successCacheDir, --alwaysPack) still
work via type-flag's built-in camelCase/kebab-case mapping, but now
print a deprecation warning pointing to the new kebab-case spelling.

Downgrades the changeset from minor (breaking) to patch.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-03 11:11:26 +01:00
Patrik Oldsberg 3fc996fd27 Mark cleye migration as a breaking change (minor bump)
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-03-03 11:11:26 +01:00
Patrik Oldsberg 18d09fe581 Address Copilot review feedback
- Handle --inspect/--inspect-brk optional host value by extracting
  them from raw args before passing to cleye (supports both bare
  --inspect and --inspect=host:port forms)
- Change require flag from [String] to String in package start since
  downstream only accepts a single value
- Preserve legacy --alwaysYarnPack alias in build-workspace command
- Update changeset to mention camelCase → kebab-case flag changes

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-03-03 11:11:26 +01:00