19202 Commits

Author SHA1 Message Date
Patrik Oldsberg 4247ab84e1 Merge pull request #33961 from backstage/remove-unused-task-settings-v1
backend-defaults: 🧹
2026-04-17 13:07:16 +02:00
Patrik Oldsberg 49401e530a Merge pull request #33960 from backstage/rugvip/remove-unused-signin-type-aliases
core-components: remove unused onSignInFailure and onSignInStarted type aliases
2026-04-17 13:07:07 +02:00
Patrik Oldsberg b645fc7c41 Merge pull request #33959 from backstage/rugvip/remove-orphan-mock-auth-connector
core-app-api: 🧹
2026-04-17 13:06:57 +02:00
Johan Persson e2d9831352 fix: clamp React Aria dependency ranges to patch-only updates
Changed version ranges for react-aria, react-aria-components, and
react-stately from `^` (minor) to `~` (patch) across all consuming
packages to prevent unintended minor version upgrades.

Also aligned app-visualizer's react-aria-components from 1.14 to 1.17.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-04-17 11:49:34 +02:00
MT Lewis 7ea79b2ad4 ui: add style to CardOwnProps
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-17 10:07:00 +01:00
MT Lewis 76759067a2 ui: use type import for CSSProperties in shared types
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-17 10:06:23 +01:00
MT Lewis 7f9b3b7aee ui: allow all valid flex-basis values for basis prop
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-17 09:46:17 +01:00
Patrik Oldsberg 45da25f948 Merge pull request #33957 from backstage/rugvip/delegate-attach-mock-api-factory
frontend-test-utils: remove internal mockWithApiFactory in favor of attachMockApiFactory
2026-04-17 10:43:41 +02:00
Patrik Oldsberg b16ae3cea7 Merge pull request #33955 from backstage/rugvip/deduplicate-joinpaths-in-frontend-app-api-routing
frontend-app-api: deduplicate joinPaths utility in routing
2026-04-17 10:43:26 +02:00
Patrik Oldsberg d9264ed271 Merge pull request #33952 from backstage/rugvip/zod-v3-config-schema-docs
frontend-plugin-api: clarify that zod v3 does not support configSchema
2026-04-17 10:34:20 +02:00
MT Lewis 61f1276e90 ui: style overrides take higher precedence than utility styles in Card
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-17 09:25:15 +01:00
Patrik Oldsberg 0c298f7cf1 Remove internal mockWithApiFactory in favor of attachMockApiFactory
Rather than having the public attachMockApiFactory delegate to an internal
mockWithApiFactory helper, move the implementation directly into
attachMockApiFactory and use it everywhere.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-17 10:23:14 +02:00
Patrik Oldsberg 5f849c6a37 Remove unused taskSettingsV1Schema and TaskSettingsV1
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-17 00:14:15 +02:00
Patrik Oldsberg 8a645d2db5 core-components: remove unused onSignInFailure and onSignInStarted type aliases
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-17 00:13:09 +02:00
Patrik Oldsberg 21b63b0475 core-app-api: remove orphan MockAuthConnector files
Remove MockAuthConnector.ts and MockAuthConnector.test.ts which are
not exported from the barrel file and have no consumers outside of
each other.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-17 00:12:44 +02:00
Patrik Oldsberg e8bc1d99d9 frontend-app-api: deduplicate joinPaths utility in routing
Extract the identical joinPaths function from both
extractRouteInfoFromAppNode.ts and RouteResolver.ts into a shared
joinPaths.ts module, then import it from both consumers.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-16 22:17:34 +02:00
Patrik Oldsberg 4db1b03cb9 Merge pull request #33891 from backstage/rugvip/move-registermswtesthooks-to-test-utils
integration: use registerMswTestHooks from backend-test-utils
2026-04-16 22:02:20 +02:00
Patrik Oldsberg a6bbb0ae2d Merge pull request #33930 from backstage/remove-portable-schema-deprecated-prop
frontend-plugin-api: remove deprecated PortableSchema .schema property
2026-04-16 21:51:39 +02:00
Patrik Oldsberg 8738203119 frontend-plugin-api: remove deprecated PortableSchema .schema property
Remove the deprecated property form of PortableSchema.schema, keeping
only the method form. The schema member is now a plain method that must
be called as schema() rather than accessed as a property.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-16 20:56:02 +02:00
Patrik Oldsberg df1e14e369 Merge pull request #33949 from secustor/chore/migrate-module-federation-v2
chore: migrate module-federation to v2
2026-04-16 19:07:18 +02:00
Patrik Oldsberg 085133fde0 Bump zod dependency to v4 for packages using configSchema
These packages use `configSchema` with `zod/v4` imports and require the
full Zod v4 package for JSON Schema support. The dependency range is
narrowed from `^3.25.76 || ^4.0.0` to `^4.0.0`.

Also adds a `.patches` entry for the patch release.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-16 18:44:51 +02:00
Patrik Oldsberg 72a552f0db frontend-plugin-api: clarify that zod v3 /v4 subpath does not support configSchema
Update error messages, deprecation warnings, migration docs, release
notes, and changelogs to reflect that the zod/v4 subpath export from
the Zod v3 package does not support JSON Schema conversion via the
Standard Schema interface. Users must fully migrate to the zod v4
package (zod@^4.0.0) to use configSchema.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-16 17:23:54 +02:00
Patrik Oldsberg ebfa023123 Merge pull request #33916 from backstage/rugvip/remove-dead-actions-service-definitions
backend-plugin-api: 🧹
2026-04-16 17:02:44 +02:00
MT Lewis 36aff3305c ui: clean up prop spreading in Flex story DecorativeBox component
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-16 15:36:33 +01:00
MT Lewis c97b9e1f73 ui: add style prop to CardBaseProps
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-16 15:20:58 +01:00
MT Lewis a344f12bc7 ui: avoid passing component prop to rendered component in Flex story
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-16 15:14:43 +01:00
secustor 41070b89c5 chore: migrate module-federation to v2
Signed-off-by: secustor <sebastian@poxhofer.at>
2026-04-16 15:15:04 +02:00
MT Lewis 68cf3f113c ui: update api-report with new flex item props
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-16 14:09:43 +01:00
MT Lewis 60224fb0fd ui: add story for testing flex-item props to Flex storybook
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-16 14:09:43 +01:00
MT Lewis 058012eae8 ui: add support for flex item props to Box, Card, Flex, and Grid
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-16 14:09:42 +01:00
MT Lewis 753471e381 ui: add flex item related types and helper classes
Also includes a solution for transforming input
values for specific classes, to allow transforming
e.g. "flex: true" to "flex: 1".

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: MT Lewis <mtlewis@users.noreply.github.com>
2026-04-16 14:02:56 +01:00
Fredrik Adelöw db03264327 Revert "chore: unpin @rjsf/utils version ranges"
This reverts commit ad6c40e86a.

Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-16 14:18:25 +02:00
Fredrik Adelöw ac69d4cc00 chore: use caret range for @rjsf/utils in app-legacy
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-16 14:15:05 +02:00
Fredrik Adelöw 3846774beb chore: add missing transitive dependencies
Add dependencies that were only available transitively through other
packages but were being imported directly:

- csstype and copy-to-clipboard in @backstage/core-components
- @storybook/react-vite in @backstage/ui
- react-aria-components in @backstage/plugin-notifications
- @octokit/core in @backstage/plugin-scaffolder-backend-module-github
- @rjsf/utils in example-app-legacy

Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-16 13:28:21 +02:00
Fredrik Adelöw 8e7f7249e7 chore: regenerate knip reports
Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-16 12:14:47 +02:00
Fredrik Adelöw 0c5e41f984 chore: remove unused dependencies
Remove 30 dependencies across 18 packages that have no imports in
source code and are not peer dependencies of any other dependency.

Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-16 11:52:59 +02:00
Fredrik Adelöw 744fa1fb8b chore: remove duplicate dependencies/devDependencies entries
Remove duplicated entries that appeared in both dependencies and
devDependencies across 10 packages. Also remove zod entirely from
core-compat-api as it is unused.

Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-16 10:43:07 +02:00
Fredrik Adelöw f0c27227cf chore: remove duplicate dependencies/devDependencies entries
Several packages had the same dependency listed in both `dependencies`
and `devDependencies`. This removes the duplicate from whichever section
is incorrect based on actual usage in the source code.

Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-16 10:22:01 +02:00
Johan Persson 552e4b2d43 docs-ui: add missing component slugs and fix changelog sync
Add `badge`, `slider`, and `use-table` to the Component type so
the changelog sync script recognizes them. Add `useTable` special
case mapping in the sync script, and include `use-table` in the
Table docs page changelog.

Also fix CHANGELOG.md to use `Slider` instead of `RangeSlider`
as the affected component name.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-04-16 09:26:39 +02:00
Fredrik Adelöw 9279ea8366 frontend-test-utils: fix implicit any types for TypeScript 6 compatibility
Add explicit type annotations to `.map()` callback parameters in
`renderInTestApp` to prevent TS7006 errors with TypeScript 6, and
update `@mswjs/interceptors` to 0.39.8 within the existing version
range.

Signed-off-by: Fredrik Adelöw <freben@spotify.com>
Made-with: Cursor
2026-04-15 22:02:18 +02:00
Patrik Oldsberg 927c0039d7 repo-tools, create-app: replace duplicate error utilities with cli-common imports (#33893)
* Replace duplicate error utilities with @backstage/cli-common imports

Remove dead CustomError and ExitCodeError classes from repo-tools and
create-app, replacing them with the ExitCodeError import from
@backstage/cli-common. This fixes the instanceof check in exitWithError
so it actually catches errors thrown by cli-common's run().

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor

* Add changeset for repo-tools and create-app

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor

---------

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-04-15 12:39:42 +00:00
Patrik Oldsberg 5f80e77714 Remove orphaned ActionsService and ActionsRegistryService definitions
Delete the unused `ActionsService.ts` and `ActionsRegistryService.ts`
files under `services/definitions/`. These were never exported from the
definitions index and had zero imports across the repo. The canonical
copies live in the `alpha/` directory and have already diverged. Removing
these eliminates a confusing dual source of truth.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-15 14:22:22 +02:00
Patrik Oldsberg ba9717cf70 Merge pull request #33913 from drodil/config_schemas
fix: replace old config schemas for extensions and blueprints
2026-04-15 14:21:47 +02:00
Patrik Oldsberg d130fbc6ec Merge pull request #33918 from backstage/fix/ui-missing-react-types-table-dep
fix(ui,app): update React Aria to v1.17.0 and migrate to monopackage imports
2026-04-15 14:20:37 +02:00
Johan Persson d1be10cb89 fix(ui,app): update React Aria to v1.17.0 and migrate to monopackage imports
React Aria Components v1.17.0 consolidated individual packages
into monopackages, dropping `@react-types/table` as a transitive
dependency. This caused `TS2307` errors in new app installations
where `react-aria-components@1.17.0` was resolved.

Migrate all imports from individual `@react-aria/*` and
`@react-stately/*` packages to the `react-aria` and
`react-stately` monopackages in both `@backstage/ui` and
`@backstage/plugin-app`, and update minimum dependency versions
accordingly.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-04-15 12:21:23 +02:00
Patrik Oldsberg 8741e5a800 errors: add explicit name property to ServiceUnavailableError
Every CustomErrorBase subclass explicitly sets `name = 'ClassName' as const`
except ServiceUnavailableError, which relied on the constructor fallback that
reads `this.constructor.name`. This is fragile under minification. Added the
explicit name property for consistency and added a serialization round-trip test.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-15 12:20:33 +02:00
Hellgren Heikki cad156e797 fix: replace old config schemas for extensions and blueprints
to overcome a lot of warnings given during for example testing where
these extensions are used.

Signed-off-by: Hellgren Heikki <heikki.hellgren@op.fi>
2026-04-15 12:55:27 +03:00
Patrik Oldsberg a321fc0c47 Merge pull request #33914 from backstage/cursor/fix-embedded-postgres-config-path-resolution
cli: fix config path resolution for embedded-postgres detection
2026-04-15 11:32:08 +02:00
Patrik Oldsberg ed4ee6fdfb cli: fix config path resolution for embedded-postgres detection
Resolve config paths relative to the target package directory instead
of the workspace root in readDatabaseClient, matching the behavior of
the rest of the config loading system.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Made-with: Cursor
2026-04-15 09:58:31 +02:00
David Josefson a42766e2f7 fix(ui): use correct dark theme selector in Dialog (#33898)
* fix(ui): use correct dark theme selector in Dialog

The Dialog component used [data-theme='dark'] while every other BUI
component and the global token system uses [data-theme-mode='dark'].
This mismatch meant the dark mode background rule never matched.

Signed-off-by: David Josefson <david.josefson@neo4j.com>

* Update .changeset/fix-dialog-dark-theme-selector.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: David Josefson <david.josefson@neo4j.com>

---------

Signed-off-by: David Josefson <david.josefson@neo4j.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-04-15 09:39:02 +02:00