Commit Graph

73126 Commits

Author SHA1 Message Date
Patrik Oldsberg 8ea3899944 Add BUI CSS to createDevApp
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-16 16:10:28 +01:00
Patrik Oldsberg db612a84ab Allow frontend-dev-utils in dependency verification exceptions
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
2026-03-16 16:10:28 +01:00
Patrik Oldsberg 63248c824e Bypass sign-in page in createDevApp
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
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 c25532a7a1 Add @backstage/frontend-dev-utils package
Adds a new `@backstage/frontend-dev-utils` package for the new frontend
system. It provides a minimal `createDevApp` helper for wiring up a
development app from a `dev/` entry point.

The app-visualizer plugin is updated to use this new package as the
initial testing ground.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-16 16:10:27 +01:00
Patrik Oldsberg 3775ef5b51 Merge pull request #33364 from backstage/rugvip/auth-provider-icon-element
frontend-plugin-api: accept IconElement in AuthProviderInfo
2026-03-16 16:10:13 +01:00
Patrik Oldsberg 99d80927bd Merge pull request #33367 from backstage/rugvip/reduce-frontend-plugin-api-surface
frontend-plugin-api: reduce top-level API surface clutter
2026-03-16 16:06:54 +01:00
Patrik Oldsberg d7ff199a69 Merge pull request #33366 from backstage/promote-plugin-wrapper-api
frontend-plugin-api: promote PluginWrapper API to stable with useWrapperValue hook
2026-03-16 16:06:35 +01:00
Charles de Dreuille 2f581de6ba Fixed keyboard navigation
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-16 14:51:49 +00:00
Johan Persson d9d2dd6827 feat(ui): add SearchAutocomplete component
Add SearchAutocomplete and SearchAutocompleteItem components for
building accessible search-with-results patterns. Built on React
Aria's Autocomplete with virtual focus for keyboard navigation
and a non-modal popover for results.

Features:
- Controlled input via inputValue/onInputChange
- Configurable popover width and placement
- Rich content support per result item
- Item selection via onAction
- defaultOpen prop for visual testing
- Close on interact outside and input clear

Includes Storybook stories, docs-ui documentation, changeset,
and API report.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-03-16 15:41:58 +01:00
Andre Wanlin 5e80c4343f Merge pull request #32262 from Believe-SA/blv/techdocs-lightbox-links
fix(techdocs): Disable LightBox addon for images wrapped in links
2026-03-16 09:23:14 -05:00
dependabot[bot] 3a76037381 Bump undici from 5.29.0 to 7.24.4
Bumps [undici](https://github.com/nodejs/undici) from 5.29.0 to 7.24.4.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.29.0...v7.24.4)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 7.24.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-16 14:05:42 +00:00
Patrik Oldsberg 96e8b060f0 Merge pull request #33355 from backstage/rugvip/cli-plugin-api
cli: add CLI module plugin API and auto-discovery
2026-03-16 14:50:27 +01:00
Charles de Dreuille b0a6ee2a8a Update page.mdx
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-16 13:31:11 +00:00
Patrik Oldsberg 98b6b9701b Address review feedback on plugin README updates
- 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
2026-03-16 13:20:01 +01:00
Patrik Oldsberg 08dbd83cd3 chore: remove redundant cli.ts files from CLI modules
The bin scripts already had the full runCliModule logic for the production
path. Inline the same pattern for local dev and drop the intermediate
src/cli.ts files that just duplicated it.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-16 13:12:00 +01:00
Charles de Dreuille 5fd81db713 Update types.ts
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-16 12:10:32 +00:00
Patrik Oldsberg ede7195275 chore: update yarn.lock for cli-node peer dependency changes
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-16 13:08:09 +01:00
Charles de Dreuille 985788ff6d Move to GridList
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-16 12:05:48 +00:00
Patrik Oldsberg 92b0f79d9c Make @swc/core an optional peer dependency of cli-node
The node transform config is only loaded at runtime when running
backend processes, so @swc/core should not be a hard dependency
for all cli-node consumers.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-16 13:03:17 +01:00
Patrik Oldsberg 4d081452b1 Address review feedback from freben
- Use cli-defaults instead of listing individual CLI modules in
  create-app template and root package.json
- Move nodeTransform config files from cli-module-build to cli-node
  to avoid cross-module direct imports
- Rename cli-module-create-github-app to cli-module-github
- Start createCliModule init chain with Promise.resolve()
- Deduplicate exitWithError in runCliModule.ts
- Extract shared isCommandNodeHidden to @internal/cli
- Add explanatory comment for fromArray deduplication field
- Restore error for cli role packages missing bin in runCliExtraction

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-16 12:55:22 +01:00
Patrik Oldsberg 26eab3bf83 Rename CLI module bin entries to use backstage prefix
Rename all bin entries from `cli-module-*` to `backstage-cli-module-*`
to establish a clear namespace for Backstage CLI tooling.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-16 12:27:08 +01:00
Charles de Dreuille fd1854e3bc Merge pull request #33322 from backstage/jonathanroebuck/bucks-2919-fe-reusable-skeletonloading-state-for-bui-table-components
feat(ui): replace Table loading text with skeleton rows
2026-03-16 11:12:29 +00:00
Charles de Dreuille fdcec89a1a Merge pull request #33354 from backstage/charlesdedreuille/bacui-249-fix-container-bottom-margin-clash-in-bui-oss
fix(ui): fix Container bottom margin clash in Header
2026-03-16 10:28:57 +00:00
renovate[bot] 0dd6794ff7 chore(deps): update github/codeql-action action to v4
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-16 10:22:34 +00:00
Patrik Oldsberg 72991a5211 frontend-plugin-api: remove helper types from top-level API surface
Remove `ResolvedExtensionInput` and `ExtensionDataRefToValue` from
the public API to reduce top-level API clutter. These types were
internal plumbing not needed by plugin authors.

`ResolvedExtensionInput` is now a file-local type only used by
`ResolvedExtensionInputs`. `ExtensionDataRefToValue` is no longer
re-exported from the barrel.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-16 11:21:13 +01:00
Patrik Oldsberg 9508514116 frontend-plugin-api: promote PluginWrapper API to stable with useWrapperValue hook
Promote PluginWrapperApi, pluginWrapperApiRef, PluginWrapperBlueprint, and
the new PluginWrapperDefinition type from @alpha to @public. Add getRootWrapper()
method to PluginWrapperApi and integrate the useWrapperValue hook pattern from
the rugvip/plugin-wrapper branch, allowing plugin wrappers to share stateful
values via a hook that runs once in the root wrapper and is distributed to all
wrapper instances via useSyncExternalStore.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-16 11:19:57 +01:00
Charles de Dreuille d32708ef71 Merge pull request #33353 from backstage/charlesdedreuille/bacui-272-fix-table-row-external-href
fix(ui): open external Table row hrefs in a new tab
2026-03-16 10:16:18 +00:00
Charles de Dreuille b119b54e6d Update fix-header-container-padding.md
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-16 10:14:14 +00:00
Patrik Oldsberg e26e3de81e frontend-plugin-api: accept IconElement in AuthProviderInfo
Update the `icon` field on `AuthProviderInfo` to accept `IconElement`
in addition to `IconComponent`, and update consumers in core-components
and user-settings to handle both types at runtime.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-16 11:07:36 +01:00
Charles de Dreuille af4610d138 Fix types
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-16 09:52:45 +00:00
Charles de Dreuille 0b0e642d88 Update types.ts
Signed-off-by: Charles de Dreuille <charles.dedreuille@gmail.com>
2026-03-16 09:44:25 +00:00
Charles de Dreuille 722ce6f54c Merge pull request #33352 from backstage/charlesdedreuille/bacui-269-dialog-if-theres-no-height-on-the-dialog-then-the-content-is
fix(ui): fix Dialog content overflowing when no height prop is set
2026-03-16 09:04:01 +00:00
shivamtiwari3 bc42b608b1 Fix: replace removed --bui-bg-tint tokens in Table component (fixes #33292)
Root cause: The --bui-bg-tint-* CSS tokens were removed from the design system
in favour of --bui-bg-neutral-* tokens, but Table.module.css was not updated
during the migration, leaving row hover, selected, pressed, and disabled states
with no visual effect.

Fix: Replace --bui-bg-tint-hover/pressed/disabled with the equivalent
--bui-bg-neutral-1-hover/pressed/disabled tokens, matching the migration
mapping documented in the CHANGELOG.

Signed-off-by: shivamtiwari3 <33183708+shivamtiwari3@users.noreply.github.com>
2026-03-16 10:41:06 +05:30
Lokesh Kaki 9831635929 fix(catalog-backend-module-gitlab): fix bridge race condition, remove unused logger and dead PathState variant
Signed-off-by: Lokesh Kaki <lokeshkaki1@gmail.com>
2026-03-15 21:19:59 -05:00
Lokesh Kaki 308b36ffad fix(catalog-backend-module-azure): fix URL encoding alignment and move analyzer to alpha export
Signed-off-by: Lokesh Kaki <lokeshkaki1@gmail.com>
2026-03-15 21:15:13 -05:00
Lokesh Kaki 0b0d8fa7f1 chore: update yarn.lock for gitlab scm events deps
Signed-off-by: Lokesh Kaki <lokeshkaki1@gmail.com>
2026-03-15 20:34:36 -05:00
Lokesh Kaki 121690f95c chore: update yarn.lock for azure scm events deps
Signed-off-by: Lokesh Kaki <lokeshkaki1@gmail.com>
2026-03-15 20:34:18 -05:00
Lokesh Kaki 17b97abca6 fix(catalog-backend-module-gitlab): move analyzer to alpha export, make logger optional, fix type cast
Signed-off-by: Lokesh Kaki <lokeshkaki1@gmail.com>
2026-03-15 20:28:07 -05:00
Lokesh Kaki bf7aeb5e31 fix(catalog-backend-module-azure): fix ReDoS regex, URL encoding, error message, and missing deps
Signed-off-by: Lokesh Kaki <lokeshkaki1@gmail.com>
2026-03-15 20:12:12 -05:00
Lokesh Kaki 54a8300181 chore(changeset): add patch changeset for GitLab SCM event translation layer
Signed-off-by: Lokesh Kaki <lokeshkaki1@gmail.com>
2026-03-15 19:50:33 -05:00
Lokesh Kaki 093b09d5ec test(catalog-backend-module-gitlab): add analyzer coverage and update module wiring assertions
Signed-off-by: Lokesh Kaki <lokeshkaki1@gmail.com>
2026-03-15 19:50:29 -05:00
Lokesh Kaki 5ee1f50a52 feat(catalog-backend-module-gitlab): add GitLab SCM event translation and bridge wiring
Signed-off-by: Lokesh Kaki <lokeshkaki1@gmail.com>
2026-03-15 19:50:24 -05:00
Lokesh Kaki 31ce5da2ea feat(catalog-backend-module-azure): export Azure webhook analyzer and add changeset
Signed-off-by: Lokesh Kaki <lokeshkaki1@gmail.com>
2026-03-15 19:08:36 -05:00
Lokesh Kaki 0cd53934b0 feat(catalog-backend-module-azure): add Azure DevOps SCM events bridge wiring
Signed-off-by: Lokesh Kaki <lokeshkaki1@gmail.com>
2026-03-15 19:08:33 -05:00
Lokesh Kaki baa269f33f feat(catalog-backend-module-azure): add Azure DevOps webhook SCM event analyzer
Signed-off-by: Lokesh Kaki <lokeshkaki1@gmail.com>
2026-03-15 19:08:28 -05:00
Patrik Oldsberg b76bbfb461 Exclude cli-report files from stale API report detection
The runApiExtraction function was detecting cli-report.md files as
stale API reports because they matched the report filename pattern.
These files are managed by runCliExtraction instead and should be
excluded from the stale report check.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-15 23:54:51 +01:00
Patrik Oldsberg ac96393a12 Fix jest peer dependency in cli-module-test-jest
Change peer dependency from jest-cli to jest to match the actual
runtime usage of require('jest') and the original @backstage/cli
peer dependency declaration.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-15 23:30:19 +01:00
Patrik Oldsberg 6395e35c6a Generate CLI reports for cli-module packages
Include cli-module role in CLI report generation alongside the
existing cli role. Packages without a bin field are silently skipped.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-15 23:12:59 +01:00
Patrik Oldsberg 55f6eb8c64 Move config files to CLI modules with lazy proxies
Move jest config files to cli-module-test-jest/config and node
transform + webpack-public-path to cli-module-build/config. Replace
originals in @backstage/cli/config with lazy proxies that forward
to the appropriate module or throw if it is not installed.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-03-15 22:11:43 +01:00