diff --git a/.changeset/angry-sites-fold.md b/.changeset/angry-sites-fold.md
deleted file mode 100644
index 8124ddaf47..0000000000
--- a/.changeset/angry-sites-fold.md
+++ /dev/null
@@ -1,30 +0,0 @@
----
-'@backstage/plugin-auth-backend': patch
----
-
-Added the configuration flag `auth.omitIdentityTokenOwnershipClaim` that causes issued user tokens to no longer contain the `ent` claim that represents the ownership references of the user.
-
-The benefit of this new flag is that issued user tokens will be much smaller in
-size, but they will no longer be self-contained. This means that any consumers
-of the token that require access to the ownership claims now need to call the
-`/api/auth/v1/userinfo` endpoint instead. Within the Backstage ecosystem this is
-done automatically, as clients will still receive the full set of claims during
-authentication, while plugin backends will need to use the `UserInfoService`
-which already calls the user info endpoint if necessary.
-
-When enabling this flag, it is important that any custom sign-in resolvers directly return the result of the sign-in method. For example, the following would not work:
-
-```ts
-const { token } = await ctx.issueToken({
- claims: { sub: entityRef, ent: [entityRef] },
-});
-return { token }; // WARNING: This will not work with the flag enabled
-```
-
-Instead, the sign-in resolver should directly return the result:
-
-```ts
-return ctx.issueToken({
- claims: { sub: entityRef, ent: [entityRef] },
-});
-```
diff --git a/.changeset/beige-kiwis-flow.md b/.changeset/beige-kiwis-flow.md
deleted file mode 100644
index 500095b44b..0000000000
--- a/.changeset/beige-kiwis-flow.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-kubernetes-node': minor
----
-
-**BREAKING**: The `PinnipedHelper` class now expects a regular `LoggerService` instance from the new backend system, instead of a Winston logger.
diff --git a/.changeset/bitter-pants-watch.md b/.changeset/bitter-pants-watch.md
new file mode 100644
index 0000000000..3accf45826
--- /dev/null
+++ b/.changeset/bitter-pants-watch.md
@@ -0,0 +1,5 @@
+---
+'@backstage/canon': minor
+---
+
+We are updating the default size of the Button component in Canon to be small instead of medium.
diff --git a/.changeset/brave-donuts-sink.md b/.changeset/brave-donuts-sink.md
deleted file mode 100644
index 47827345a5..0000000000
--- a/.changeset/brave-donuts-sink.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/test-utils': patch
----
-
-Added support for interpolating JSX elements with the `MockTranslationApi`.
diff --git a/.changeset/brave-eggs-mate.md b/.changeset/brave-eggs-mate.md
deleted file mode 100644
index 73eb8e363a..0000000000
--- a/.changeset/brave-eggs-mate.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/theme': patch
----
-
-Show arrow when MuiTableSortLabel receives focus
diff --git a/.changeset/brave-facts-pay.md b/.changeset/brave-facts-pay.md
new file mode 100644
index 0000000000..1f8e9663bf
--- /dev/null
+++ b/.changeset/brave-facts-pay.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': patch
+---
+
+Migrate actions to new format
diff --git a/.changeset/brave-pandas-beam.md b/.changeset/brave-pandas-beam.md
deleted file mode 100644
index 8dd525d749..0000000000
--- a/.changeset/brave-pandas-beam.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-'@backstage/core-app-api': minor
----
-
-Support custom `AuthConnector` for `OAuth2`.
-
-A user can pass their own `AuthConnector` implementation in `OAuth2` constructor.
-In which case the session manager will use that instead of the `DefaultAuthConnector` to interact with the
-authentication provider.
-
-A custom `AuthConnector` may call the authentication provider from the front-end, store and retrieve tokens
-in the session storage, for example, and otherwise send custom requests to the authentication provider and
-handle its responses.
-
-Note, that if the custom `AuthConnector` transforms scopes returned from the authentication provider,
-the transformation must be the same as `OAuth2CreateOptions#scopeTransform` passed to `OAuth2` constructor.
-See creating `DefaultAuthConnector` in `OAuth2#create(...)` for an example.
diff --git a/.changeset/brave-toes-switch.md b/.changeset/brave-toes-switch.md
deleted file mode 100644
index 27b39cccd3..0000000000
--- a/.changeset/brave-toes-switch.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-msgraph': minor
----
-
-Add new `userGroupMember.path`, `user.path` and, `group.path` option to each query type to allow more complex msgraph queries
diff --git a/.changeset/breezy-hotels-deny.md b/.changeset/breezy-hotels-deny.md
deleted file mode 100644
index 13c8b47a7f..0000000000
--- a/.changeset/breezy-hotels-deny.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/integration': patch
----
-
-Added missing `organizations` property to `azure` section in `config.d.ts` file
diff --git a/.changeset/bright-moles-sort.md b/.changeset/bright-moles-sort.md
deleted file mode 100644
index 9796729d1a..0000000000
--- a/.changeset/bright-moles-sort.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/backend-dynamic-feature-service': minor
----
-
-**BREAKING** Removed support for the legacy backend, please migrate to the new backend system
diff --git a/.changeset/bumpy-showers-design.md b/.changeset/bumpy-showers-design.md
deleted file mode 100644
index 2db5006944..0000000000
--- a/.changeset/bumpy-showers-design.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend-module-gitlab': patch
----
-
-If the commit action is not `create` log a more appropriate error message to the end user advising that the files they're trying to modify might not exist
diff --git a/.changeset/busy-badgers-hang.md b/.changeset/busy-badgers-hang.md
deleted file mode 100644
index fc4b0e907e..0000000000
--- a/.changeset/busy-badgers-hang.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/create-app': patch
----
-
-Removed `lerna-debug.log*` pattern from `.gitignore` as Lerna was removed from the package in version `@backstage/create-app@0.5.19`.
diff --git a/.changeset/calm-toys-occur.md b/.changeset/calm-toys-occur.md
deleted file mode 100644
index ea03aaf4f8..0000000000
--- a/.changeset/calm-toys-occur.md
+++ /dev/null
@@ -1,17 +0,0 @@
----
-'@backstage/plugin-bitbucket-cloud-common': minor
----
-
-Update Bitbucket Cloud schema and models.
-
-The latest schema was fetched from Bitbucket Cloud and stored locally.
-Based on the updated schema, the models got regenerated.
-
-**BREAKING:**
-
-Due to the schema changes, the model update includes one breaking change:
-
-- `Account.username` was removed.
-
-Additionally, there were a couple of compatible changes including the addition of
-`BaseCommit.committer` and others.
diff --git a/.changeset/chatty-clowns-dream.md b/.changeset/chatty-clowns-dream.md
new file mode 100644
index 0000000000..d601f7a40d
--- /dev/null
+++ b/.changeset/chatty-clowns-dream.md
@@ -0,0 +1,5 @@
+---
+'@backstage/core-components': patch
+---
+
+table actions header support i18n
diff --git a/.changeset/chatty-months-grow.md b/.changeset/chatty-months-grow.md
deleted file mode 100644
index 1495e7732e..0000000000
--- a/.changeset/chatty-months-grow.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/canon': patch
----
-
-Use correct colour token for TextField clear button icon, prevent layout shift whenever it is hidden or shown and properly size focus area around it. Also stop leading icon shrinking when used together with clear button.
diff --git a/.changeset/chatty-showers-cheat.md b/.changeset/chatty-showers-cheat.md
deleted file mode 100644
index 24c2720fb6..0000000000
--- a/.changeset/chatty-showers-cheat.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend': minor
----
-
-**BREAKING ALPHA**: You can no longer import the catalog plugin from the `/alpha` export; please use the regular root default export instead.
diff --git a/.changeset/chilly-trams-cheer.md b/.changeset/chilly-trams-cheer.md
deleted file mode 100644
index 0e14423ef8..0000000000
--- a/.changeset/chilly-trams-cheer.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-kubernetes-react': patch
----
-
-Add headlamp formatter
diff --git a/.changeset/chubby-cougars-run.md b/.changeset/chubby-cougars-run.md
deleted file mode 100644
index deb954ef6b..0000000000
--- a/.changeset/chubby-cougars-run.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/plugin-catalog-backend': patch
----
-
-This patch addresses an issue identified in Backstage when configured with a MySQL database. If an entity of type location
-(e..all.yaml) has more than 70 referenced entities, clicking "Refresh" does not update the referenced entities as expected. This occurs because the TEXT type in MySQL has a limit of 65,535 bytes, which is insufficient to store all the referenced entities, causing the refresh operation to fail.
diff --git a/.changeset/clean-otters-allow.md b/.changeset/clean-otters-allow.md
deleted file mode 100644
index 5e0aeb598f..0000000000
--- a/.changeset/clean-otters-allow.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-fix: enable `lazyCompilation` and `refreshOptions` for rspack
diff --git a/.changeset/cold-humans-check.md b/.changeset/cold-humans-check.md
deleted file mode 100644
index 5bcb6caa4b..0000000000
--- a/.changeset/cold-humans-check.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-user-settings': patch
----
-
-plugin-user-settingsgs support i18n
diff --git a/.changeset/cold-meals-like.md b/.changeset/cold-meals-like.md
new file mode 100644
index 0000000000..7feb978337
--- /dev/null
+++ b/.changeset/cold-meals-like.md
@@ -0,0 +1,5 @@
+---
+'@backstage/catalog-client': patch
+---
+
+Fixed `CatalogClient` error responses for `refreshEntity` and `addLocation`.
diff --git a/.changeset/common-goats-exist.md b/.changeset/common-goats-exist.md
new file mode 100644
index 0000000000..1992b69223
--- /dev/null
+++ b/.changeset/common-goats-exist.md
@@ -0,0 +1,15 @@
+---
+'@backstage/plugin-notifications-backend': patch
+---
+
+Notifications are now automatically deleted after 1 year by default.
+
+There is a new scheduled task that runs every 24 hours to delete notifications older than 1 year.
+This can be configured by setting the `notifications.retention` in the `app-config.yaml` file.
+
+```yaml
+notifications:
+ retention: 1y
+```
+
+If the retention is set to false, notifications will not be automatically deleted.
diff --git a/.changeset/cool-bikes-push.md b/.changeset/cool-bikes-push.md
deleted file mode 100644
index 00825c1ad0..0000000000
--- a/.changeset/cool-bikes-push.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-app-api': patch
----
-
-Updated `I18nextTranslationApi` to support interpolation of JSX elements.
diff --git a/.changeset/cool-cities-grab.md b/.changeset/cool-cities-grab.md
deleted file mode 100644
index 372ca9887f..0000000000
--- a/.changeset/cool-cities-grab.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-components': patch
----
-
-`LogViewer` now supports a `textWrap` prop that wraps log lines to the next line for overflowing content instead of using horizontal scroll
diff --git a/.changeset/cool-colts-float.md b/.changeset/cool-colts-float.md
deleted file mode 100644
index c001f81ade..0000000000
--- a/.changeset/cool-colts-float.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/repo-tools': patch
----
-
-Support passing additional properties to OpenAPI server generator
diff --git a/.changeset/cool-groups-fail.md b/.changeset/cool-groups-fail.md
deleted file mode 100644
index 459358676b..0000000000
--- a/.changeset/cool-groups-fail.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-'@backstage/backend-defaults': patch
----
-
-`GithubUrlReader`'s search detects glob-patterns supported by `minimatch`, instead of just detecting
-`*` and `?` characters.
-
-For example, this allows to search for patterns like `{C,c}atalog-info.yaml`.
diff --git a/.changeset/cool-knives-design.md b/.changeset/cool-knives-design.md
deleted file mode 100644
index 63197edd16..0000000000
--- a/.changeset/cool-knives-design.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/frontend-plugin-api': patch
----
-
-The `id` option of `createFrontendPlugin` has been renamed to `pluginId` in order to better align with similar APIs in the frontend and backend systems.
-
-The old `id` option is deprecated and will be removed in a future release.
diff --git a/.changeset/crazy-chefs-sin.md b/.changeset/crazy-chefs-sin.md
deleted file mode 100644
index 8d33add929..0000000000
--- a/.changeset/crazy-chefs-sin.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-notifications-backend-module-slack': patch
----
-
-Fix slack notification processor to handle a notification with an empty description
diff --git a/.changeset/create-app-1745325336.md b/.changeset/create-app-1748956288.md
similarity index 100%
rename from .changeset/create-app-1745325336.md
rename to .changeset/create-app-1748956288.md
diff --git a/.changeset/create-app-1745936753.md b/.changeset/create-app-1749565617.md
similarity index 100%
rename from .changeset/create-app-1745936753.md
rename to .changeset/create-app-1749565617.md
diff --git a/.changeset/create-app-1747144256.md b/.changeset/create-app-1749636320.md
similarity index 100%
rename from .changeset/create-app-1747144256.md
rename to .changeset/create-app-1749636320.md
diff --git a/.changeset/cruel-lights-sip.md b/.changeset/cruel-lights-sip.md
deleted file mode 100644
index b38ab052a9..0000000000
--- a/.changeset/cruel-lights-sip.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-auth-backend-module-github-provider': patch
----
-
-Added missing types package
diff --git a/.changeset/cuddly-camels-lose.md b/.changeset/cuddly-camels-lose.md
new file mode 100644
index 0000000000..23162bfdc5
--- /dev/null
+++ b/.changeset/cuddly-camels-lose.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend-module-gitlab': patch
+---
+
+Migrate to new action format
diff --git a/.changeset/curvy-peaches-relate.md b/.changeset/curvy-peaches-relate.md
new file mode 100644
index 0000000000..9fafc77abb
--- /dev/null
+++ b/.changeset/curvy-peaches-relate.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend-module-azure': patch
+---
+
+Migrating `azure` actions to using the new `zod` schema format
diff --git a/.changeset/curvy-words-create.md b/.changeset/curvy-words-create.md
new file mode 100644
index 0000000000..b180705ebe
--- /dev/null
+++ b/.changeset/curvy-words-create.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': minor
+---
+
+Internal update to promote the modular CLI entrypoint to stable.
diff --git a/.changeset/cyan-pots-appear.md b/.changeset/cyan-pots-appear.md
deleted file mode 100644
index f82f4548c3..0000000000
--- a/.changeset/cyan-pots-appear.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-unprocessed': minor
----
-
-**BREAKING** Removed support for the legacy backend and removed references to `@backstage/backend-common`, please [migrate to the new backend system](https://backstage.io/docs/backend-system/building-plugins-and-modules/migrating)
diff --git a/.changeset/deep-aliens-camp.md b/.changeset/deep-aliens-camp.md
new file mode 100644
index 0000000000..ca5c3d8ed4
--- /dev/null
+++ b/.changeset/deep-aliens-camp.md
@@ -0,0 +1,7 @@
+---
+'@backstage/plugin-events-backend-module-kafka': minor
+---
+
+Adds a new module `kafka` for plugin-events-backend
+
+The module introduces the `KafkaConsumerClient` which creates a Kafka client used to establish consumer connections. It also provides the `KafkaConsumingEventPublisher`, a consumer that subscribes to configured Kafka topics and publishes received messages to the Event Service.
diff --git a/.changeset/deep-moments-love.md b/.changeset/deep-moments-love.md
new file mode 100644
index 0000000000..89b3174275
--- /dev/null
+++ b/.changeset/deep-moments-love.md
@@ -0,0 +1,5 @@
+---
+'@backstage/canon': patch
+---
+
+Add min-width: 0; by default on every Flex components in Canon to help support truncated texts inside flex elements.
diff --git a/.changeset/deep-ties-move.md b/.changeset/deep-ties-move.md
deleted file mode 100644
index 57f6c7772c..0000000000
--- a/.changeset/deep-ties-move.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-ldap': patch
----
-
-Improves error reporting for missing metadata.name in LDAP catalog provider.
diff --git a/.changeset/dirty-grapes-vanish.md b/.changeset/dirty-grapes-vanish.md
deleted file mode 100644
index b78660d21e..0000000000
--- a/.changeset/dirty-grapes-vanish.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/backend-defaults': minor
----
-
-**BREAKING**: The `DefaultSchedulerService` constructor options now requires `RootLifecycleService`, `HttpRouterService`, and `PluginMetadataService` fields.
-
-The scheduler will register a REST API for listing and triggering tasks. Please see [the scheduler documentation](https://backstage.io/docs/backend-system/core-services/scheduler) for more details about this API.
diff --git a/.changeset/dry-carpets-hope.md b/.changeset/dry-carpets-hope.md
deleted file mode 100644
index 569e089a66..0000000000
--- a/.changeset/dry-carpets-hope.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-backstage-openapi': patch
----
-
-Do not swallow errors; instead allow them to bubble up to the task scheduler for better tracking and logging.
diff --git a/.changeset/dry-shirts-film.md b/.changeset/dry-shirts-film.md
deleted file mode 100644
index 35ada3969a..0000000000
--- a/.changeset/dry-shirts-film.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-home': patch
----
-
-Added the Catalog presentation API to the HomePageRecentlyVisited and HomePageTopVisited components
diff --git a/.changeset/dull-buttons-press.md b/.changeset/dull-buttons-press.md
new file mode 100644
index 0000000000..1c8f8fc13c
--- /dev/null
+++ b/.changeset/dull-buttons-press.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend-module-bitbucket-cloud': patch
+---
+
+Migrate `bitbucket-cloud` to new actions format
diff --git a/.changeset/common-goats-raise.md b/.changeset/dull-cars-shout.md
similarity index 61%
rename from .changeset/common-goats-raise.md
rename to .changeset/dull-cars-shout.md
index c2d797b719..be213a167c 100644
--- a/.changeset/common-goats-raise.md
+++ b/.changeset/dull-cars-shout.md
@@ -2,4 +2,4 @@
'@backstage/plugin-scaffolder-backend-module-github': patch
---
-Use action context logger in Octokit client
+Migrate to using new actions
diff --git a/.changeset/dull-cloths-act.md b/.changeset/dull-cloths-act.md
new file mode 100644
index 0000000000..e49ee5a289
--- /dev/null
+++ b/.changeset/dull-cloths-act.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-scaffolder-react': minor
+'@backstage/plugin-scaffolder': minor
+---
+
+Added information about the `entityRef` and `taskId` to the analytics events whenever is possible.
diff --git a/.changeset/dull-doodles-trade.md b/.changeset/dull-doodles-trade.md
deleted file mode 100644
index eb9399fcc7..0000000000
--- a/.changeset/dull-doodles-trade.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-kubernetes-backend': patch
----
-
-Changed logging of cluster details to debug to minimise log clutter.
diff --git a/.changeset/early-colts-accept.md b/.changeset/early-colts-accept.md
deleted file mode 100644
index ff583144f0..0000000000
--- a/.changeset/early-colts-accept.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/backend-dynamic-feature-service': patch
----
-
-Fixed various typos.
-`FrontendRemoteResolver`'s misspelled `getAdditionaRemoteInfo` has been deprecated. Use the correct spelling `getAdditionalRemoteInfo` instead.
diff --git a/.changeset/early-dryers-teach.md b/.changeset/early-dryers-teach.md
deleted file mode 100644
index d747fbc730..0000000000
--- a/.changeset/early-dryers-teach.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-node': minor
----
-
-Added `parseEntityYaml` from `@backstage/plugin-catalog-backend`, to make it more easily usable by custom plugins and modules
diff --git a/.changeset/eight-pigs-post.md b/.changeset/eight-pigs-post.md
new file mode 100644
index 0000000000..8e50cc7707
--- /dev/null
+++ b/.changeset/eight-pigs-post.md
@@ -0,0 +1,5 @@
+---
+'@backstage/canon': minor
+---
+
+We set the default size for IconButton in Canon to be small instead of medium.
diff --git a/.changeset/eight-planets-see.md b/.changeset/eight-planets-see.md
new file mode 100644
index 0000000000..20adcac7ef
--- /dev/null
+++ b/.changeset/eight-planets-see.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder': patch
+---
+
+render details for composite property schemas
diff --git a/.changeset/eight-toys-feel.md b/.changeset/eight-toys-feel.md
deleted file mode 100644
index c0f5a12c40..0000000000
--- a/.changeset/eight-toys-feel.md
+++ /dev/null
@@ -1,35 +0,0 @@
----
-'@backstage/backend-app-api': patch
----
-
-Added a configuration to permit backend plugin module failures on startup:
-
-```yaml
-backend:
- ...
- startup:
- plugins:
- plugin-x:
- modules:
- module-y:
- onPluginModuleBootFailure: continue
-```
-
-This configuration permits `plugin-x` with `module-y` to fail on startup. Omitting the
-`onPluginModuleBootFailure` configuration matches the previous behavior, wherein any
-individual plugin module failure is forwarded to the plugin and aborts backend startup.
-
-The default can also be changed, so that continuing on failure is the default
-unless otherwise specified:
-
-```yaml
-backend:
- startup:
- default:
- onPluginModuleBootFailure: continue
- plugins:
- catalog:
- modules:
- github:
- onPluginModuleBootFailure: abort
-```
diff --git a/.changeset/eighty-showers-hide.md b/.changeset/eighty-showers-hide.md
new file mode 100644
index 0000000000..0871fea4bb
--- /dev/null
+++ b/.changeset/eighty-showers-hide.md
@@ -0,0 +1,9 @@
+---
+'@backstage/plugin-scaffolder-node-test-utils': minor
+---
+
+**BREAKING CHANGES**
+
+Because of the removal of the `logStream` property to the `ActionsContext` this has been removed from the `createMockActionContext` method.
+
+You can remove this as it's no longer supported in the scaffolder actions.
diff --git a/.changeset/eleven-beans-relax.md b/.changeset/eleven-beans-relax.md
deleted file mode 100644
index fd01394d2d..0000000000
--- a/.changeset/eleven-beans-relax.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-'@backstage/release-manifests': patch
----
-
-This expands the configurability of `release-manifests` to pave the road for more configuration options in the `cli`.
-
-Specifically it allows the specification of mirrored, proxied, or air-gapped hosts when upgrading across releases when
-working in restricted or heavily governed development environments (common in large enterprises and government
-entities).
diff --git a/.changeset/eleven-foxes-mix.md b/.changeset/eleven-foxes-mix.md
new file mode 100644
index 0000000000..965be5435e
--- /dev/null
+++ b/.changeset/eleven-foxes-mix.md
@@ -0,0 +1,5 @@
+---
+'@backstage/backend-defaults': minor
+---
+
+Enhanced error handling in the auditor service factory to pass errors as objects. Aligned WinstonRootAuditorService with the default service factory's error handling.
diff --git a/.changeset/eleven-ghosts-strive.md b/.changeset/eleven-ghosts-strive.md
deleted file mode 100644
index ac48c19524..0000000000
--- a/.changeset/eleven-ghosts-strive.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder': patch
----
-
-Full support in EntityPicker (and derivatives) for default EntityPresentationApi
diff --git a/.changeset/every-bottles-grow.md b/.changeset/every-bottles-grow.md
deleted file mode 100644
index a61a7b42b9..0000000000
--- a/.changeset/every-bottles-grow.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend': patch
----
-
-"Added a note clarifying that `entity-fetch` audit events are not visible by default in the logs and are only displayed when the log severity level is adjusted."
diff --git a/.changeset/fruity-bags-flow.md b/.changeset/evil-cooks-watch.md
similarity index 81%
rename from .changeset/fruity-bags-flow.md
rename to .changeset/evil-cooks-watch.md
index bc6034a489..0982f24634 100644
--- a/.changeset/fruity-bags-flow.md
+++ b/.changeset/evil-cooks-watch.md
@@ -1,7 +1,5 @@
---
'@backstage/plugin-catalog-unprocessed-entities': patch
-'@backstage/frontend-test-utils': patch
-'@backstage/core-compat-api': patch
'@backstage/plugin-app-visualizer': patch
'@backstage/plugin-catalog-import': patch
'@backstage/plugin-catalog-graph': patch
@@ -20,4 +18,4 @@
'@backstage/plugin-org': patch
---
-Internal update to use the new `pluginId` option of `createFrontendPlugin`.
+Added the `info.packageJson` option to the plugin instance for the new frontend system.
diff --git a/.changeset/fair-doors-bathe.md b/.changeset/fair-doors-bathe.md
new file mode 100644
index 0000000000..bbb5f238ee
--- /dev/null
+++ b/.changeset/fair-doors-bathe.md
@@ -0,0 +1,5 @@
+---
+'@backstage/repo-tools': patch
+---
+
+Fixed a bug where linting would fail with the generated clients when defining top-level `enum` schema values.
diff --git a/.changeset/famous-cities-stand.md b/.changeset/famous-cities-stand.md
deleted file mode 100644
index 86ba727997..0000000000
--- a/.changeset/famous-cities-stand.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-auth-node': patch
----
-
-Added the `identity` property to `BackstageSignInResult`.
-
-The `prepareBackstageIdentityResponse` function will now also forward the `identity` to the response if present in the provided sign-in result.
diff --git a/.changeset/famous-streets-stay.md b/.changeset/famous-streets-stay.md
new file mode 100644
index 0000000000..d517b889c5
--- /dev/null
+++ b/.changeset/famous-streets-stay.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-node': patch
+---
+
+Use `LoggerService` instead of `Logger`. This is a non-breaking change, as the `LoggerService` is a subset of the `Logger` interface.
diff --git a/.changeset/fancy-frogs-like.md b/.changeset/fancy-frogs-like.md
deleted file mode 100644
index ed3a9fbf81..0000000000
--- a/.changeset/fancy-frogs-like.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Internal code cleanup
diff --git a/.changeset/few-streets-accept.md b/.changeset/few-streets-accept.md
new file mode 100644
index 0000000000..4b82cc03e4
--- /dev/null
+++ b/.changeset/few-streets-accept.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend-module-bitbucket-server': patch
+---
+
+Migrate the actions to the new format
diff --git a/.changeset/fifty-sides-begin.md b/.changeset/fifty-sides-begin.md
new file mode 100644
index 0000000000..5cd174e4ff
--- /dev/null
+++ b/.changeset/fifty-sides-begin.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-bitbucket-server': minor
+---
+
+Add validateLocationsExist option to avoid generating locations for catalog-info.yaml files that do not exist in the source repository.
diff --git a/.changeset/fine-spoons-laugh.md b/.changeset/fine-spoons-laugh.md
new file mode 100644
index 0000000000..a27ef7e7d5
--- /dev/null
+++ b/.changeset/fine-spoons-laugh.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-kubernetes-react': patch
+'@backstage/plugin-kubernetes': patch
+---
+
+chore(deps): Update deprecated xterm to new package under @xterm
diff --git a/.changeset/fix-cli-config-docs-feedback.md b/.changeset/fix-cli-config-docs-feedback.md
new file mode 100644
index 0000000000..1e7298bafa
--- /dev/null
+++ b/.changeset/fix-cli-config-docs-feedback.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+Added user feedback when opening config docs in browser. The command now clearly indicates what it's doing and provides fallback instructions if the browser fails to open.
diff --git a/.changeset/floppy-days-tell.md b/.changeset/floppy-days-tell.md
deleted file mode 100644
index 2eb184f6fe..0000000000
--- a/.changeset/floppy-days-tell.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/canon': patch
----
-
-For improved a11y, clicking a Select component label now focuses the Select trigger element, and the TextField component's label is now styled to indicate it's interactive.
diff --git a/.changeset/fluffy-bobcats-tell.md b/.changeset/fluffy-bobcats-tell.md
new file mode 100644
index 0000000000..41ed20a7ae
--- /dev/null
+++ b/.changeset/fluffy-bobcats-tell.md
@@ -0,0 +1,5 @@
+---
+'@backstage/eslint-plugin': patch
+---
+
+Fix custom rules package scanning performance.
diff --git a/.changeset/forty-seas-worry.md b/.changeset/forty-seas-worry.md
new file mode 100644
index 0000000000..a88c15df53
--- /dev/null
+++ b/.changeset/forty-seas-worry.md
@@ -0,0 +1,5 @@
+---
+'@backstage/canon': patch
+---
+
+Fix styling for the title4 prop on the Heading component in Canon.
diff --git a/.changeset/four-peaches-talk.md b/.changeset/four-peaches-talk.md
deleted file mode 100644
index 4b0d2e8a47..0000000000
--- a/.changeset/four-peaches-talk.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Internal refactor of opaque type handling.
diff --git a/.changeset/four-snails-argue.md b/.changeset/four-snails-argue.md
deleted file mode 100644
index 905e52a559..0000000000
--- a/.changeset/four-snails-argue.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-'@backstage/integration': minor
----
-
-Added support for federated credentials using managed identities in the Azure DevOps integration. Federated credentials are only available for Azure DevOps organizations that have been configured to use Entra ID for authentication.
-
-```diff
-integrations:
- azure:
- - host: dev.azure.com
- credentials:
-+ - clientId: ${APP_REGISTRATION_CLIENT_ID}
-+ managedIdentityClientId: system-assigned
-+ tenantId: ${AZURE_TENANT_ID}
-```
-
-This also adds support for automatically using the system-assigned managed identity of an Azure resource by specifying `system-assigned` as the client ID of the managed identity.
-
-```diff
-integrations:
- azure:
- - host: dev.azure.com
- credentials:
-- - clientId: ${AZURE_CLIENT_ID}
-+ - clientId: system-assigned
-```
diff --git a/.changeset/fresh-brooms-follow.md b/.changeset/fresh-brooms-follow.md
new file mode 100644
index 0000000000..f2858779bf
--- /dev/null
+++ b/.changeset/fresh-brooms-follow.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+The `BACKSTAGE_CLI_EXPERIMENTAL_BUILD_CACHE` flag has been removed. Existing users are encouraged to switch to `EXPERIMENTAL_RSPACK` instead.
diff --git a/.changeset/fresh-otters-say.md b/.changeset/fresh-otters-say.md
new file mode 100644
index 0000000000..ed91c9fb8d
--- /dev/null
+++ b/.changeset/fresh-otters-say.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend': patch
+---
+
+Migrating to latest action format
diff --git a/.changeset/funny-papayas-tell.md b/.changeset/funny-papayas-tell.md
deleted file mode 100644
index 98beaf89e0..0000000000
--- a/.changeset/funny-papayas-tell.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog': minor
----
-
-Show the pagination text for the offset-paginated catalog table, and remove the pagination bar from the top of the `CatalogTable` when pagination is enabled.
diff --git a/.changeset/good-islands-drive.md b/.changeset/good-islands-drive.md
deleted file mode 100644
index 5b909dc84f..0000000000
--- a/.changeset/good-islands-drive.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Added `info` object to the context of the alpha CLI.
diff --git a/.changeset/good-paths-act.md b/.changeset/good-paths-act.md
new file mode 100644
index 0000000000..dc33b43766
--- /dev/null
+++ b/.changeset/good-paths-act.md
@@ -0,0 +1,5 @@
+---
+'@backstage/repo-tools': patch
+---
+
+Fix an issue where errors were not printed to console when running `backstage-repo-tools schema openapi generate` without the `--watch` flag.
diff --git a/.changeset/green-schools-live.md b/.changeset/green-schools-live.md
new file mode 100644
index 0000000000..9863021a28
--- /dev/null
+++ b/.changeset/green-schools-live.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend-module-yeoman': patch
+---
+
+Migrate to new actions format
diff --git a/.changeset/green-trainers-float.md b/.changeset/green-trainers-float.md
deleted file mode 100644
index 537fe01736..0000000000
--- a/.changeset/green-trainers-float.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder': patch
----
-
-Fix EntityPicker field to render description as markdown, matching other form components in the system.
diff --git a/.changeset/grumpy-dryers-act.md b/.changeset/grumpy-dryers-act.md
new file mode 100644
index 0000000000..caaeac5fa8
--- /dev/null
+++ b/.changeset/grumpy-dryers-act.md
@@ -0,0 +1,5 @@
+---
+'@backstage/repo-tools': patch
+---
+
+Add missing highlight language for the `package-docs` command.
diff --git a/.changeset/grumpy-phones-kiss.md b/.changeset/grumpy-phones-kiss.md
deleted file mode 100644
index 96b6ff05d9..0000000000
--- a/.changeset/grumpy-phones-kiss.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-search-backend-module-elasticsearch': patch
----
-
-Fixed an issue where the `search.elasticsearch.queryOptions` config were not picked up by the `ElasticSearchSearchEngine`.
diff --git a/.changeset/heavy-baths-rule.md b/.changeset/heavy-baths-rule.md
deleted file mode 100644
index 09f26e8b57..0000000000
--- a/.changeset/heavy-baths-rule.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-github': minor
----
-
-**BREAKING** The `GithubLocationAnalyzer` now requires the `AuthService` and the `CatalogService` when being constructed and the `TokenManger` has been removed.
diff --git a/.changeset/heavy-onions-swim.md b/.changeset/heavy-onions-swim.md
deleted file mode 100644
index 42ba056c1e..0000000000
--- a/.changeset/heavy-onions-swim.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend': minor
----
-
-Added `workspace:template` and `workspace:template:file` actions to complement respective `fetch:*` actions
diff --git a/.changeset/honest-moles-bet.md b/.changeset/honest-moles-bet.md
new file mode 100644
index 0000000000..22e0cb4533
--- /dev/null
+++ b/.changeset/honest-moles-bet.md
@@ -0,0 +1,7 @@
+---
+'@backstage/plugin-scaffolder-backend-module-bitbucket-server': patch
+'@backstage/plugin-scaffolder-backend-module-bitbucket-cloud': patch
+'@backstage/plugin-scaffolder-node': patch
+---
+
+Update pull request creation filter to include .gitignore files in the created pull request
diff --git a/.changeset/honest-states-repeat.md b/.changeset/honest-states-repeat.md
deleted file mode 100644
index 06b459b673..0000000000
--- a/.changeset/honest-states-repeat.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-home': patch
----
-
-Added optional title prop to `customHomePageGrid`
diff --git a/.changeset/honest-teams-shave.md b/.changeset/honest-teams-shave.md
deleted file mode 100644
index 6afbf37039..0000000000
--- a/.changeset/honest-teams-shave.md
+++ /dev/null
@@ -1,10 +0,0 @@
----
-'@backstage/plugin-home-react': patch
-'@backstage/plugin-home': patch
----
-
-Export ContentModal from `@backstage/plugin-home-react` so people can use this in other scenarios.
-Renamed `CatalogReactComponentsNameToClassKey` to `PluginHomeComponentsNameToClassKey` in `overridableComponents.ts`
-
-Made QuickStartCard `docsLinkTitle` prop more flexible to allow for any React.JSX.Element instead of just a string.
-Added QuickStartCard prop `additionalContent` which can eventually replace the prop `video`.
diff --git a/.changeset/huge-olives-do.md b/.changeset/huge-olives-do.md
deleted file mode 100644
index 61eb37559f..0000000000
--- a/.changeset/huge-olives-do.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-events-backend-module-gitlab': patch
----
-
-Adds support for `object_kind` field with priority over `event_name` on Gitlab webhook event types
diff --git a/.changeset/icy-mugs-glow.md b/.changeset/icy-mugs-glow.md
deleted file mode 100644
index 553daff24a..0000000000
--- a/.changeset/icy-mugs-glow.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-bitbucket-cloud-common': patch
----
-
-Add support for `repo:updated` events as `Events.RepoUpdatedEvent`.
diff --git a/.changeset/itchy-mirrors-juggle.md b/.changeset/itchy-mirrors-juggle.md
new file mode 100644
index 0000000000..6fd7c7543a
--- /dev/null
+++ b/.changeset/itchy-mirrors-juggle.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-notifications': patch
+'@backstage/plugin-scaffolder': patch
+---
+
+Remove React import form notification and scaffolder plugin
diff --git a/.changeset/khaki-grapes-sink.md b/.changeset/khaki-grapes-sink.md
deleted file mode 100644
index d96521e029..0000000000
--- a/.changeset/khaki-grapes-sink.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/canon': patch
----
-
-Added new icon and onClear props to the TextField to make it easier to accessorize inputs.
diff --git a/.changeset/khaki-horses-chew.md b/.changeset/khaki-horses-chew.md
new file mode 100644
index 0000000000..b9f5dfda5e
--- /dev/null
+++ b/.changeset/khaki-horses-chew.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-techdocs-module-addons-contrib': patch
+'@backstage/plugin-techdocs': patch
+---
+
+Improved Keyboard accessibility in techdocs.
diff --git a/.changeset/khaki-swans-invite.md b/.changeset/khaki-swans-invite.md
new file mode 100644
index 0000000000..4e768a1978
--- /dev/null
+++ b/.changeset/khaki-swans-invite.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-notifications-backend-module-email': patch
+'@backstage/plugin-notifications-backend': patch
+---
+
+Internal changes to switch to the non-alpha `catalogServiceRef`
diff --git a/.changeset/kind-houses-feel.md b/.changeset/kind-houses-feel.md
new file mode 100644
index 0000000000..a4b3ac0d14
--- /dev/null
+++ b/.changeset/kind-houses-feel.md
@@ -0,0 +1,5 @@
+---
+'@backstage/canon': patch
+---
+
+Added a render prop to the Button component in Canon to use it as a link.
diff --git a/.changeset/large-baboons-prove.md b/.changeset/large-baboons-prove.md
new file mode 100644
index 0000000000..072d57de4c
--- /dev/null
+++ b/.changeset/large-baboons-prove.md
@@ -0,0 +1,9 @@
+---
+'@backstage/plugin-catalog': minor
+---
+
+Add support to customize the about card icon links via `EntityIconLinkBlueprint` and provide a default catalog view catalog source, launch scaffolder template and read techdocs docs icon links extensions.
+
+**BREAKING ALPHA**
+
+The `Scaffolder` launch template and `TechDocs` read documentation icons have been extracted from the default `Catalog` about card links and are now provided respectively by the `Scaffolder` and `TechDocs` plugins in the new frontend system. It means that they will not be available unless you install the `TechDocs` and `Scaffolder` plugins. Also If you are using translation for these icon link titles other than the default, you should now translate them using the scaffolder translation reference or the TechDocs translation reference (the translation keys are still the same, `aboutCard.viewTechdocs` and `aboutCard.launchTemplate`).
diff --git a/.changeset/large-experts-sort.md b/.changeset/large-experts-sort.md
deleted file mode 100644
index 6d58836db7..0000000000
--- a/.changeset/large-experts-sort.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-events-backend-module-github': minor
----
-
-**BREAKING**: Removed the `createGithubSignatureValidator` export.
-
-Added support webhook validation based on `integrations.github.[].apps.[].webhookSecret`.
diff --git a/.changeset/large-lemons-clap.md b/.changeset/large-lemons-clap.md
deleted file mode 100644
index cf1a3eed5d..0000000000
--- a/.changeset/large-lemons-clap.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/backend-plugin-api': patch
-'@backstage/backend-defaults': patch
-'@backstage/integration': patch
----
-
-update documentation
diff --git a/.changeset/late-buttons-strive.md b/.changeset/late-buttons-strive.md
new file mode 100644
index 0000000000..23e1045ba0
--- /dev/null
+++ b/.changeset/late-buttons-strive.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-org': patch
+---
+
+Org plugin support i18n
diff --git a/.changeset/lazy-rice-dream.md b/.changeset/lazy-rice-dream.md
new file mode 100644
index 0000000000..fe91f85b2e
--- /dev/null
+++ b/.changeset/lazy-rice-dream.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend-module-gerrit': patch
+---
+
+Migrating to use new format for actions
diff --git a/.changeset/lazy-tires-show.md b/.changeset/lazy-tires-show.md
deleted file mode 100644
index 3ccf5f155e..0000000000
--- a/.changeset/lazy-tires-show.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-permission-backend': minor
-'@backstage/plugin-permission-common': minor
-'@backstage/plugin-permission-node': minor
----
-
-Fixed an issue causing the `PermissionClient` to exhaust the request body size limit too quickly when making many requests.
diff --git a/.changeset/long-candies-greet.md b/.changeset/long-candies-greet.md
new file mode 100644
index 0000000000..a59377d784
--- /dev/null
+++ b/.changeset/long-candies-greet.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-devtools-backend': patch
+---
+
+Removed the usage of `permissionIntegrationRouter` in favor of using the new `coreServices.permissionsRegistry`
diff --git a/.changeset/stale-symbols-joke.md b/.changeset/long-suits-obey.md
similarity index 53%
rename from .changeset/stale-symbols-joke.md
rename to .changeset/long-suits-obey.md
index ea4f172c1c..996bba6026 100644
--- a/.changeset/stale-symbols-joke.md
+++ b/.changeset/long-suits-obey.md
@@ -2,4 +2,4 @@
'@backstage/plugin-user-settings': patch
---
-Uppercase language name in language select
+Add some translation to user-setting plugin
diff --git a/.changeset/loose-ants-learn.md b/.changeset/loose-ants-learn.md
new file mode 100644
index 0000000000..29f357966c
--- /dev/null
+++ b/.changeset/loose-ants-learn.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-techdocs': minor
+---
+
+**New Frontend System Only:**
+The `TechDocs` plugin is now responsible for providing an entity icon link extension to read documentation from the catalog entity page.
diff --git a/.changeset/lovely-cats-take.md b/.changeset/lovely-cats-take.md
deleted file mode 100644
index ab1ee1c249..0000000000
--- a/.changeset/lovely-cats-take.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch
----
-
-Support Bitbucket Cloud's `repo:updated` events at `BitbucketCloudEntityProvider`.
-
-To make use of the new event type, you have to configure your webhook or add a new ones
-that delivers this event type to Backstage similar to `repo:push` before.
-
-Only `repo:updated` events that modify a repository's URL (e.g., due to a name change)
-will cause changes (removing the "old", adding the "new" repository).
diff --git a/.changeset/major-heads-scream.md b/.changeset/major-heads-scream.md
new file mode 100644
index 0000000000..24caa6e4bb
--- /dev/null
+++ b/.changeset/major-heads-scream.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-gitlab': minor
+---
+
+**BREAKING CHANGE**: User and Group discovery will default to ingesting all users in sub groups that belong to the specified root group in config. Disable by setting `restrictUsersToGroup: true` in app-config under your module settings.
diff --git a/.changeset/mean-parents-build.md b/.changeset/mean-parents-build.md
deleted file mode 100644
index d3bba29019..0000000000
--- a/.changeset/mean-parents-build.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/canon': patch
----
-
-Pin version of @base-ui-components/react.
diff --git a/.changeset/mean-tigers-rush.md b/.changeset/mean-tigers-rush.md
new file mode 100644
index 0000000000..e15b01cedc
--- /dev/null
+++ b/.changeset/mean-tigers-rush.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+Switched to using the `ModuleFederationPlugin` from `@module-federation/enhanced/rspack` for Rspack, rather than the built-in one.
diff --git a/.changeset/mighty-carrots-decide.md b/.changeset/mighty-carrots-decide.md
deleted file mode 100644
index 68f210da48..0000000000
--- a/.changeset/mighty-carrots-decide.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-search-react': minor
----
-
-Allow search filters to provide labels and values separately, and not only values
diff --git a/.changeset/mighty-windows-boil.md b/.changeset/mighty-windows-boil.md
new file mode 100644
index 0000000000..52eb024db1
--- /dev/null
+++ b/.changeset/mighty-windows-boil.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend-module-sentry': patch
+---
+
+Migrate to new actions format
diff --git a/.changeset/mira-flygande-spoons.md b/.changeset/mira-flygande-spoons.md
new file mode 100644
index 0000000000..c4c50f117a
--- /dev/null
+++ b/.changeset/mira-flygande-spoons.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend': patch
+---
+
+You can now specify an optional value when applying the `HAS_LABEL` permission rule, similar to the `HAS_ANNOTATION` permission rule.
diff --git a/.changeset/modern-buses-change.md b/.changeset/modern-buses-change.md
new file mode 100644
index 0000000000..b89efab093
--- /dev/null
+++ b/.changeset/modern-buses-change.md
@@ -0,0 +1,13 @@
+---
+'@backstage/plugin-auth-backend-module-aws-alb-provider': patch
+'@backstage/backend-dynamic-feature-service': patch
+'@backstage/core-plugin-api': patch
+'@backstage/plugin-catalog-backend': patch
+'@backstage/plugin-events-backend': patch
+'@backstage/plugin-search-backend': patch
+'@backstage/plugin-user-settings': patch
+'@backstage/repo-tools': patch
+'@backstage/plugin-home-react': patch
+---
+
+Fixed some circular or otherwise unclear imports
diff --git a/.changeset/moody-women-itch.md b/.changeset/moody-women-itch.md
deleted file mode 100644
index f68fddb848..0000000000
--- a/.changeset/moody-women-itch.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-notifications-backend-module-email': patch
----
-
-Enable the ability to configure the endpoint for the SES connection used in the notifications email module. This enables the configuration of alternate endpoints as required, for example for local testing or alternative stacks.
diff --git a/.changeset/neat-glasses-occured.md b/.changeset/neat-glasses-occured.md
deleted file mode 100644
index 289e03e243..0000000000
--- a/.changeset/neat-glasses-occured.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-import': minor
----
-
-**BREAKING**: `generateStepper` and `defaultGenerateStepper` now require a translation argument to be passed through for supporting translations.
diff --git a/.changeset/new-beers-sell.md b/.changeset/new-beers-sell.md
new file mode 100644
index 0000000000..fd7407007d
--- /dev/null
+++ b/.changeset/new-beers-sell.md
@@ -0,0 +1,8 @@
+---
+'@backstage/plugin-scaffolder-backend-module-notifications': patch
+'@backstage/plugin-notifications-backend': patch
+'@backstage/plugin-notifications-common': patch
+'@backstage/plugin-notifications': patch
+---
+
+Adds ability for user to turn on/off notifications for specific topics within an origin.
diff --git a/.changeset/new-hands-scream.md b/.changeset/new-hands-scream.md
deleted file mode 100644
index 03291648db..0000000000
--- a/.changeset/new-hands-scream.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-auth-backend': minor
----
-
-**BREAKING**: Removed support for the old backend system, and removed all deprecated exports.
-
-If you were using one of the deprecated imports from this package, you will have to follow the instructions in their respective deprecation notices before upgrading. Most of the general utilities are available from `@backstage/plugin-auth-node`, and the specific auth providers are available from dedicated packages such as for example `@backstage/plugin-auth-backend-module-github-provider`. See [the auth docs](https://backstage.io/docs/auth/) for specific instructions.
diff --git a/.changeset/nice-ties-film.md b/.changeset/nice-ties-film.md
new file mode 100644
index 0000000000..2d7be04222
--- /dev/null
+++ b/.changeset/nice-ties-film.md
@@ -0,0 +1,9 @@
+---
+'@backstage/frontend-plugin-api': patch
+'@backstage/frontend-app-api': patch
+'@backstage/core-plugin-api': patch
+'@backstage/plugin-catalog-node': patch
+'@backstage/plugin-auth-node': patch
+---
+
+Internal tweak to avoid circular dependencies
diff --git a/.changeset/nice-vans-vanish.md b/.changeset/nice-vans-vanish.md
deleted file mode 100644
index c52fc42488..0000000000
--- a/.changeset/nice-vans-vanish.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/canon': minor
----
-
-**Breaking Change** Icons on Button and IconButton now need to be imported and placed like this: } />
diff --git a/.changeset/ninety-donkeys-shop.md b/.changeset/ninety-donkeys-shop.md
deleted file mode 100644
index 53e78afc6a..0000000000
--- a/.changeset/ninety-donkeys-shop.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-app-api': patch
----
-
-Fixed an issue causing `OAuthRequestDialog` to re-render on mount.
diff --git a/.changeset/old-crews-serve.md b/.changeset/old-crews-serve.md
deleted file mode 100644
index db6bb4cf23..0000000000
--- a/.changeset/old-crews-serve.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-incremental-ingestion': minor
----
-
-**BREAKING** Removed support for the legacy backend, please [migrate to the new backend system](https://github.com/backstage/backstage/tree/v1.38.0/plugins/catalog-backend-module-incremental-ingestion#installation). Also, if you were importing from the `/alpha` export of this package, you should remove the `/alpha` part.
diff --git a/.changeset/old-parents-cut.md b/.changeset/old-parents-cut.md
deleted file mode 100644
index d2fdaac564..0000000000
--- a/.changeset/old-parents-cut.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-github': patch
----
-
-Added filter to include archived repositories
diff --git a/.changeset/olive-buses-serve.md b/.changeset/olive-buses-serve.md
new file mode 100644
index 0000000000..d4e1798360
--- /dev/null
+++ b/.changeset/olive-buses-serve.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-search-backend-module-techdocs': patch
+---
+
+Exports the default document collator for use in document transformation during search indexing.
diff --git a/.changeset/tame-areas-behave.md b/.changeset/open-bottles-attack.md
similarity index 52%
rename from .changeset/tame-areas-behave.md
rename to .changeset/open-bottles-attack.md
index 6d5c776d8b..e57607b55c 100644
--- a/.changeset/tame-areas-behave.md
+++ b/.changeset/open-bottles-attack.md
@@ -2,4 +2,4 @@
'@backstage/plugin-scaffolder-backend-module-notifications': patch
---
-Change notification send scaffolder action to use native zod schemas
+Removed `octokit` dependency as it was not being used
diff --git a/.changeset/open-eyes-learn.md b/.changeset/open-eyes-learn.md
new file mode 100644
index 0000000000..3a0299aafb
--- /dev/null
+++ b/.changeset/open-eyes-learn.md
@@ -0,0 +1,49 @@
+---
+'@backstage/plugin-catalog-react': minor
+---
+
+Introduces a new `EntityIconLinkBlueprint` that customizes the `About` card icon links on the `Catalog` entity page.
+
+The blueprint currently accepts a `useProps` hook as `param` and this function returns the following props that will be passed to the icon link component:
+
+| Name | Description | Type | Default Value |
+| ---------- | --------------------------------------------------- | ------------- | ------------- |
+| `icon` | The icon to display. | `JSX.Element` | N/A |
+| `label` | The label for the element. | `string` | N/A |
+| `title` | The title for the element. | `string` | N/A |
+| `disabled` | Whether the element is disabled. | `boolean` | `false` |
+| `href` | The URL to navigate to when the element is clicked. | `string` | N/A |
+| `onClick` | A function to call when the element is clicked. | `() => void` | N/A |
+
+Here is an usage example:
+
+```tsx
+import { EntityIconLinkBlueprint } from '@backstage/plugin-catalog-react/alpha';
+//...
+
+EntityIconLinkBlueprint.make({
+ name: 'my-icon-link',
+ params: {
+ useProps() {
+ const { t } = useTranslationRef(myIconLinkTranslationRef);
+ return {
+ label: t('myIconLink.label'),
+ icon: ,
+ href: '/my-plugin',
+ };
+ },
+ },
+});
+```
+
+Additionally, the `app-config.yaml` file allows you to override some of the default icon link parameters, including `label` and `title` values. Here's how to set them:
+
+```yaml
+app:
+ extensions:
+ - entity-icon-link:my-plugin/my-icon-link:
+ config:
+ label: 'My Custom Icon Link label'
+```
+
+Finally, you can disable all links if you want to hide the About card header completely (useful, for example, when links are displayed on separate cards). The header is hidden when no icon links extensions are enabled.
diff --git a/.changeset/open-ghosts-fix.md b/.changeset/open-ghosts-fix.md
deleted file mode 100644
index 144f24dea0..0000000000
--- a/.changeset/open-ghosts-fix.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/canon': patch
----
-
-Fixed an issue with Canon's DataTable.Pagination component showing the wrong number for the "to" count.
diff --git a/.changeset/open-lands-shop.md b/.changeset/open-lands-shop.md
deleted file mode 100644
index 5205e83cbe..0000000000
--- a/.changeset/open-lands-shop.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-techdocs': patch
----
-
-Update keyboard focus on when clicking hash links. This fixes the issue where the "skip to content" link rendered by Material MkDocs isn't focused when used.
diff --git a/.changeset/orange-banks-deny.md b/.changeset/orange-banks-deny.md
deleted file mode 100644
index 3719206865..0000000000
--- a/.changeset/orange-banks-deny.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend-module-gitea': minor
----
-
-add new gitea provider module
diff --git a/.changeset/orange-masks-decide.md b/.changeset/orange-masks-decide.md
new file mode 100644
index 0000000000..0ddb7a7e48
--- /dev/null
+++ b/.changeset/orange-masks-decide.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend-module-rails': patch
+---
+
+Migrate to new actions format
diff --git a/.changeset/petite-candies-tan.md b/.changeset/petite-candies-tan.md
new file mode 100644
index 0000000000..6ec5c9c813
--- /dev/null
+++ b/.changeset/petite-candies-tan.md
@@ -0,0 +1,29 @@
+---
+'@backstage/frontend-plugin-api': patch
+---
+
+Added a new optional `info` option to `createFrontendPlugin` that lets you provide a loaders for different sources of metadata information about the plugin.
+
+There are two available loaders. The first one is `info.packageJson`, which can be used to point to a `package.json` file for the plugin. This is recommended for any plugin that is defined within its own package, especially all plugins that are published to a package registry. Typical usage looks like this:
+
+```ts
+export default createFrontendPlugin({
+ pluginId: '...',
+ info: {
+ packageJson: () => import('../package.json'),
+ },
+});
+```
+
+The second loader is `info.manifest`, which can be used to point to an opaque plugin manifest. This **MUST ONLY** be used by plugins that are intended for use within a single organization. Plugins that are published to an open package registry should **NOT** use this loader. The loader is useful for adding additional internal metadata associated with the plugin, and it is up to the Backstage app to decide how these manifests are parsed and used. The default manifest parser in an app created with `createApp` from `@backstage/frontend-defaults` is able to parse the default `catalog-info.yaml` format and built-in fields such as `spec.owner`.
+
+Typical usage looks like this:
+
+```ts
+export default createFrontendPlugin({
+ pluginId: '...',
+ info: {
+ manifest: () => import('../catalog-info.yaml'),
+ },
+});
+```
diff --git a/.changeset/polite-shoes-allow.md b/.changeset/polite-shoes-allow.md
deleted file mode 100644
index b7e06bce6f..0000000000
--- a/.changeset/polite-shoes-allow.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/frontend-app-api': patch
----
-
-Added the ability to ignore unknown extension config by passing `{ flags: { allowUnknownExtensionConfig: true } }` to `createSpecializedApp`.
diff --git a/.changeset/pre.json b/.changeset/pre.json
index fe254886cd..abbf045bec 100644
--- a/.changeset/pre.json
+++ b/.changeset/pre.json
@@ -1,333 +1,299 @@
{
- "mode": "pre",
+ "mode": "exit",
"tag": "next",
"initialVersions": {
- "example-app": "0.2.108",
- "@backstage/app-defaults": "1.6.1",
- "example-app-next": "0.0.22",
- "app-next-example-plugin": "0.0.22",
- "example-backend": "0.0.37",
- "@backstage/backend-app-api": "1.2.2",
- "@backstage/backend-defaults": "0.9.0",
+ "example-app": "0.2.109",
+ "@backstage/app-defaults": "1.6.2",
+ "example-app-next": "0.0.23",
+ "app-next-example-plugin": "0.0.23",
+ "example-backend": "0.0.38",
+ "@backstage/backend-app-api": "1.2.3",
+ "@backstage/backend-defaults": "0.10.0",
"@backstage/backend-dev-utils": "0.1.5",
- "@backstage/backend-dynamic-feature-service": "0.6.2",
- "@backstage/backend-openapi-utils": "0.5.2",
- "@backstage/backend-plugin-api": "1.3.0",
- "@backstage/backend-test-utils": "1.4.0",
- "@backstage/canon": "0.3.0",
- "@backstage/catalog-client": "1.9.1",
- "@backstage/catalog-model": "1.7.3",
- "@backstage/cli": "0.32.0",
+ "@backstage/backend-dynamic-feature-service": "0.7.0",
+ "@backstage/backend-openapi-utils": "0.5.3",
+ "@backstage/backend-plugin-api": "1.3.1",
+ "@backstage/backend-test-utils": "1.5.0",
+ "@backstage/canon": "0.4.0",
+ "@backstage/catalog-client": "1.10.0",
+ "@backstage/catalog-model": "1.7.4",
+ "@backstage/cli": "0.32.1",
"@backstage/cli-common": "0.1.15",
"@backstage/cli-node": "0.2.13",
"@backstage/codemods": "0.1.52",
"@backstage/config": "1.3.2",
- "@backstage/config-loader": "1.10.0",
- "@backstage/core-app-api": "1.16.1",
- "@backstage/core-compat-api": "0.4.1",
- "@backstage/core-components": "0.17.1",
- "@backstage/core-plugin-api": "1.10.6",
- "@backstage/create-app": "0.6.1",
- "@backstage/dev-utils": "1.1.9",
- "e2e-test": "0.2.27",
+ "@backstage/config-loader": "1.10.1",
+ "@backstage/core-app-api": "1.17.0",
+ "@backstage/core-compat-api": "0.4.2",
+ "@backstage/core-components": "0.17.2",
+ "@backstage/core-plugin-api": "1.10.7",
+ "@backstage/create-app": "0.6.2",
+ "@backstage/dev-utils": "1.1.10",
+ "e2e-test": "0.2.28",
"@backstage/e2e-test-utils": "0.1.1",
"@backstage/errors": "1.2.7",
"@backstage/eslint-plugin": "0.1.10",
- "@backstage/frontend-app-api": "0.11.1",
- "@backstage/frontend-defaults": "0.2.1",
- "@backstage/frontend-dynamic-feature-loader": "0.1.0",
- "@internal/frontend": "0.0.8",
- "@backstage/frontend-plugin-api": "0.10.1",
- "@backstage/frontend-test-utils": "0.3.1",
- "@backstage/integration": "1.16.3",
- "@backstage/integration-aws-node": "0.1.15",
- "@backstage/integration-react": "1.2.6",
+ "@backstage/frontend-app-api": "0.11.2",
+ "@backstage/frontend-defaults": "0.2.2",
+ "@backstage/frontend-dynamic-feature-loader": "0.1.1",
+ "@internal/frontend": "0.0.9",
+ "@backstage/frontend-plugin-api": "0.10.2",
+ "@backstage/frontend-test-utils": "0.3.2",
+ "@backstage/integration": "1.17.0",
+ "@backstage/integration-aws-node": "0.1.16",
+ "@backstage/integration-react": "1.2.7",
"@internal/opaque": "0.0.1",
- "@backstage/release-manifests": "0.0.12",
- "@backstage/repo-tools": "0.13.2",
- "@internal/scaffolder": "0.0.8",
- "@techdocs/cli": "1.9.2",
- "techdocs-cli-embedded-app": "0.2.107",
- "@backstage/test-utils": "1.7.7",
- "@backstage/theme": "0.6.5",
+ "@backstage/release-manifests": "0.0.13",
+ "@backstage/repo-tools": "0.13.3",
+ "@internal/scaffolder": "0.0.9",
+ "@techdocs/cli": "1.9.3",
+ "techdocs-cli-embedded-app": "0.2.108",
+ "@backstage/test-utils": "1.7.8",
+ "@backstage/theme": "0.6.6",
"@backstage/types": "1.2.1",
"@backstage/version-bridge": "1.0.11",
- "yarn-plugin-backstage": "0.0.4",
- "@backstage/plugin-api-docs": "0.12.6",
+ "yarn-plugin-backstage": "0.0.5",
+ "@backstage/plugin-api-docs": "0.12.7",
"@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.10",
- "@backstage/plugin-app": "0.1.8",
- "@backstage/plugin-app-backend": "0.5.1",
- "@backstage/plugin-app-node": "0.1.32",
- "@backstage/plugin-app-visualizer": "0.1.18",
- "@backstage/plugin-auth-backend": "0.24.5",
- "@backstage/plugin-auth-backend-module-atlassian-provider": "0.4.2",
- "@backstage/plugin-auth-backend-module-auth0-provider": "0.2.2",
- "@backstage/plugin-auth-backend-module-aws-alb-provider": "0.4.2",
- "@backstage/plugin-auth-backend-module-azure-easyauth-provider": "0.2.7",
- "@backstage/plugin-auth-backend-module-bitbucket-provider": "0.3.2",
- "@backstage/plugin-auth-backend-module-bitbucket-server-provider": "0.2.2",
- "@backstage/plugin-auth-backend-module-cloudflare-access-provider": "0.4.2",
- "@backstage/plugin-auth-backend-module-gcp-iap-provider": "0.4.2",
- "@backstage/plugin-auth-backend-module-github-provider": "0.3.2",
- "@backstage/plugin-auth-backend-module-gitlab-provider": "0.3.2",
- "@backstage/plugin-auth-backend-module-google-provider": "0.3.2",
- "@backstage/plugin-auth-backend-module-guest-provider": "0.2.7",
- "@backstage/plugin-auth-backend-module-microsoft-provider": "0.3.2",
- "@backstage/plugin-auth-backend-module-oauth2-provider": "0.4.2",
- "@backstage/plugin-auth-backend-module-oauth2-proxy-provider": "0.2.7",
- "@backstage/plugin-auth-backend-module-oidc-provider": "0.4.2",
- "@backstage/plugin-auth-backend-module-okta-provider": "0.2.2",
- "@backstage/plugin-auth-backend-module-onelogin-provider": "0.3.2",
- "@backstage/plugin-auth-backend-module-pinniped-provider": "0.3.2",
- "@backstage/plugin-auth-backend-module-vmware-cloud-provider": "0.5.2",
- "@backstage/plugin-auth-node": "0.6.2",
- "@backstage/plugin-auth-react": "0.1.14",
- "@backstage/plugin-bitbucket-cloud-common": "0.2.29",
- "@backstage/plugin-catalog": "1.29.0",
- "@backstage/plugin-catalog-backend": "1.32.1",
- "@backstage/plugin-catalog-backend-module-aws": "0.4.10",
- "@backstage/plugin-catalog-backend-module-azure": "0.3.4",
- "@backstage/plugin-catalog-backend-module-backstage-openapi": "0.5.1",
- "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.4.7",
- "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.4.0",
- "@backstage/plugin-catalog-backend-module-gcp": "0.3.7",
- "@backstage/plugin-catalog-backend-module-gerrit": "0.3.1",
- "@backstage/plugin-catalog-backend-module-github": "0.8.0",
- "@backstage/plugin-catalog-backend-module-github-org": "0.3.9",
- "@backstage/plugin-catalog-backend-module-gitlab": "0.6.5",
- "@backstage/plugin-catalog-backend-module-gitlab-org": "0.2.8",
- "@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.6.5",
- "@backstage/plugin-catalog-backend-module-ldap": "0.11.4",
- "@backstage/plugin-catalog-backend-module-logs": "0.1.9",
- "@backstage/plugin-catalog-backend-module-msgraph": "0.6.9",
- "@backstage/plugin-catalog-backend-module-openapi": "0.2.9",
- "@backstage/plugin-catalog-backend-module-puppetdb": "0.2.9",
- "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "0.2.7",
- "@backstage/plugin-catalog-backend-module-unprocessed": "0.5.7",
- "@backstage/plugin-catalog-common": "1.1.3",
- "@backstage/plugin-catalog-graph": "0.4.18",
- "@backstage/plugin-catalog-import": "0.12.13",
- "@backstage/plugin-catalog-node": "1.16.3",
- "@backstage/plugin-catalog-react": "1.17.0",
- "@backstage/plugin-catalog-unprocessed-entities": "0.2.16",
- "@backstage/plugin-catalog-unprocessed-entities-common": "0.0.7",
- "@backstage/plugin-config-schema": "0.1.67",
- "@backstage/plugin-devtools": "0.1.26",
- "@backstage/plugin-devtools-backend": "0.5.4",
- "@backstage/plugin-devtools-common": "0.1.15",
- "@backstage/plugin-events-backend": "0.5.1",
- "@backstage/plugin-events-backend-module-aws-sqs": "0.4.10",
- "@backstage/plugin-events-backend-module-azure": "0.2.19",
- "@backstage/plugin-events-backend-module-bitbucket-cloud": "0.2.19",
- "@backstage/plugin-events-backend-module-bitbucket-server": "0.1.0",
- "@backstage/plugin-events-backend-module-gerrit": "0.2.19",
- "@backstage/plugin-events-backend-module-github": "0.3.0",
- "@backstage/plugin-events-backend-module-gitlab": "0.3.0",
- "@backstage/plugin-events-backend-test-utils": "0.1.43",
- "@backstage/plugin-events-node": "0.4.10",
- "@internal/plugin-todo-list": "1.0.38",
- "@internal/plugin-todo-list-backend": "1.0.38",
- "@internal/plugin-todo-list-common": "1.0.24",
- "@backstage/plugin-gateway-backend": "1.0.0",
- "@backstage/plugin-home": "0.8.7",
- "@backstage/plugin-home-react": "0.1.25",
- "@backstage/plugin-kubernetes": "0.12.6",
- "@backstage/plugin-kubernetes-backend": "0.19.5",
- "@backstage/plugin-kubernetes-cluster": "0.0.24",
- "@backstage/plugin-kubernetes-common": "0.9.4",
- "@backstage/plugin-kubernetes-node": "0.2.5",
- "@backstage/plugin-kubernetes-react": "0.5.6",
- "@backstage/plugin-notifications": "0.5.4",
- "@backstage/plugin-notifications-backend": "0.5.5",
- "@backstage/plugin-notifications-backend-module-email": "0.3.8",
- "@backstage/plugin-notifications-backend-module-slack": "0.1.0",
+ "@backstage/plugin-app": "0.1.9",
+ "@backstage/plugin-app-backend": "0.5.2",
+ "@backstage/plugin-app-node": "0.1.33",
+ "@backstage/plugin-app-visualizer": "0.1.19",
+ "@backstage/plugin-auth-backend": "0.25.0",
+ "@backstage/plugin-auth-backend-module-atlassian-provider": "0.4.3",
+ "@backstage/plugin-auth-backend-module-auth0-provider": "0.2.3",
+ "@backstage/plugin-auth-backend-module-aws-alb-provider": "0.4.3",
+ "@backstage/plugin-auth-backend-module-azure-easyauth-provider": "0.2.8",
+ "@backstage/plugin-auth-backend-module-bitbucket-provider": "0.3.3",
+ "@backstage/plugin-auth-backend-module-bitbucket-server-provider": "0.2.3",
+ "@backstage/plugin-auth-backend-module-cloudflare-access-provider": "0.4.3",
+ "@backstage/plugin-auth-backend-module-gcp-iap-provider": "0.4.3",
+ "@backstage/plugin-auth-backend-module-github-provider": "0.3.3",
+ "@backstage/plugin-auth-backend-module-gitlab-provider": "0.3.3",
+ "@backstage/plugin-auth-backend-module-google-provider": "0.3.3",
+ "@backstage/plugin-auth-backend-module-guest-provider": "0.2.8",
+ "@backstage/plugin-auth-backend-module-microsoft-provider": "0.3.3",
+ "@backstage/plugin-auth-backend-module-oauth2-provider": "0.4.3",
+ "@backstage/plugin-auth-backend-module-oauth2-proxy-provider": "0.2.8",
+ "@backstage/plugin-auth-backend-module-oidc-provider": "0.4.3",
+ "@backstage/plugin-auth-backend-module-okta-provider": "0.2.3",
+ "@backstage/plugin-auth-backend-module-onelogin-provider": "0.3.3",
+ "@backstage/plugin-auth-backend-module-pinniped-provider": "0.3.3",
+ "@backstage/plugin-auth-backend-module-vmware-cloud-provider": "0.5.3",
+ "@backstage/plugin-auth-node": "0.6.3",
+ "@backstage/plugin-auth-react": "0.1.15",
+ "@backstage/plugin-bitbucket-cloud-common": "0.3.0",
+ "@backstage/plugin-catalog": "1.30.0",
+ "@backstage/plugin-catalog-backend": "2.0.0",
+ "@backstage/plugin-catalog-backend-module-aws": "0.4.11",
+ "@backstage/plugin-catalog-backend-module-azure": "0.3.5",
+ "@backstage/plugin-catalog-backend-module-backstage-openapi": "0.5.2",
+ "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.4.8",
+ "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.4.1",
+ "@backstage/plugin-catalog-backend-module-gcp": "0.3.8",
+ "@backstage/plugin-catalog-backend-module-gerrit": "0.3.2",
+ "@backstage/plugin-catalog-backend-module-gitea": "0.1.0",
+ "@backstage/plugin-catalog-backend-module-github": "0.9.0",
+ "@backstage/plugin-catalog-backend-module-github-org": "0.3.10",
+ "@backstage/plugin-catalog-backend-module-gitlab": "0.6.6",
+ "@backstage/plugin-catalog-backend-module-gitlab-org": "0.2.9",
+ "@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.7.0",
+ "@backstage/plugin-catalog-backend-module-ldap": "0.11.5",
+ "@backstage/plugin-catalog-backend-module-logs": "0.1.10",
+ "@backstage/plugin-catalog-backend-module-msgraph": "0.7.0",
+ "@backstage/plugin-catalog-backend-module-openapi": "0.2.10",
+ "@backstage/plugin-catalog-backend-module-puppetdb": "0.2.10",
+ "@backstage/plugin-catalog-backend-module-scaffolder-entity-model": "0.2.8",
+ "@backstage/plugin-catalog-backend-module-unprocessed": "0.6.0",
+ "@backstage/plugin-catalog-common": "1.1.4",
+ "@backstage/plugin-catalog-graph": "0.4.19",
+ "@backstage/plugin-catalog-import": "0.13.0",
+ "@backstage/plugin-catalog-node": "1.17.0",
+ "@backstage/plugin-catalog-react": "1.18.0",
+ "@backstage/plugin-catalog-unprocessed-entities": "0.2.17",
+ "@backstage/plugin-catalog-unprocessed-entities-common": "0.0.8",
+ "@backstage/plugin-config-schema": "0.1.68",
+ "@backstage/plugin-devtools": "0.1.27",
+ "@backstage/plugin-devtools-backend": "0.5.5",
+ "@backstage/plugin-devtools-common": "0.1.16",
+ "@backstage/plugin-events-backend": "0.5.2",
+ "@backstage/plugin-events-backend-module-aws-sqs": "0.4.11",
+ "@backstage/plugin-events-backend-module-azure": "0.2.20",
+ "@backstage/plugin-events-backend-module-bitbucket-cloud": "0.2.20",
+ "@backstage/plugin-events-backend-module-bitbucket-server": "0.1.1",
+ "@backstage/plugin-events-backend-module-gerrit": "0.2.20",
+ "@backstage/plugin-events-backend-module-github": "0.4.0",
+ "@backstage/plugin-events-backend-module-gitlab": "0.3.1",
+ "@backstage/plugin-events-backend-module-google-pubsub": "0.1.0",
+ "@backstage/plugin-events-backend-test-utils": "0.1.44",
+ "@backstage/plugin-events-node": "0.4.11",
+ "@internal/plugin-todo-list": "1.0.39",
+ "@internal/plugin-todo-list-backend": "1.0.39",
+ "@internal/plugin-todo-list-common": "1.0.25",
+ "@backstage/plugin-gateway-backend": "1.0.1",
+ "@backstage/plugin-home": "0.8.8",
+ "@backstage/plugin-home-react": "0.1.26",
+ "@backstage/plugin-kubernetes": "0.12.7",
+ "@backstage/plugin-kubernetes-backend": "0.19.6",
+ "@backstage/plugin-kubernetes-cluster": "0.0.25",
+ "@backstage/plugin-kubernetes-common": "0.9.5",
+ "@backstage/plugin-kubernetes-node": "0.3.0",
+ "@backstage/plugin-kubernetes-react": "0.5.7",
+ "@backstage/plugin-notifications": "0.5.5",
+ "@backstage/plugin-notifications-backend": "0.5.6",
+ "@backstage/plugin-notifications-backend-module-email": "0.3.9",
+ "@backstage/plugin-notifications-backend-module-slack": "0.1.1",
"@backstage/plugin-notifications-common": "0.0.8",
- "@backstage/plugin-notifications-node": "0.2.14",
- "@backstage/plugin-org": "0.6.38",
- "@backstage/plugin-org-react": "0.1.37",
- "@backstage/plugin-permission-backend": "0.6.0",
- "@backstage/plugin-permission-backend-module-allow-all-policy": "0.2.7",
- "@backstage/plugin-permission-common": "0.8.4",
- "@backstage/plugin-permission-node": "0.9.1",
- "@backstage/plugin-permission-react": "0.4.33",
- "@backstage/plugin-proxy-backend": "0.6.1",
- "@backstage/plugin-proxy-node": "0.1.3",
- "@backstage/plugin-scaffolder": "1.30.0",
- "@backstage/plugin-scaffolder-backend": "1.32.0",
- "@backstage/plugin-scaffolder-backend-module-azure": "0.2.8",
- "@backstage/plugin-scaffolder-backend-module-bitbucket": "0.3.9",
- "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud": "0.2.8",
- "@backstage/plugin-scaffolder-backend-module-bitbucket-server": "0.2.8",
- "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "0.3.8",
- "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.3.9",
- "@backstage/plugin-scaffolder-backend-module-gcp": "0.2.8",
- "@backstage/plugin-scaffolder-backend-module-gerrit": "0.2.8",
- "@backstage/plugin-scaffolder-backend-module-gitea": "0.2.8",
- "@backstage/plugin-scaffolder-backend-module-github": "0.7.0",
- "@backstage/plugin-scaffolder-backend-module-gitlab": "0.9.0",
- "@backstage/plugin-scaffolder-backend-module-notifications": "0.1.9",
- "@backstage/plugin-scaffolder-backend-module-rails": "0.5.8",
- "@backstage/plugin-scaffolder-backend-module-sentry": "0.2.8",
- "@backstage/plugin-scaffolder-backend-module-yeoman": "0.4.9",
- "@backstage/plugin-scaffolder-common": "1.5.10",
- "@backstage/plugin-scaffolder-node": "0.8.1",
- "@backstage/plugin-scaffolder-node-test-utils": "0.2.1",
- "@backstage/plugin-scaffolder-react": "1.15.0",
- "@backstage/plugin-search": "1.4.25",
- "@backstage/plugin-search-backend": "2.0.1",
- "@backstage/plugin-search-backend-module-catalog": "0.3.3",
- "@backstage/plugin-search-backend-module-elasticsearch": "1.7.1",
- "@backstage/plugin-search-backend-module-explore": "0.3.1",
- "@backstage/plugin-search-backend-module-pg": "0.5.43",
- "@backstage/plugin-search-backend-module-stack-overflow-collator": "0.3.8",
- "@backstage/plugin-search-backend-module-techdocs": "0.4.1",
- "@backstage/plugin-search-backend-node": "1.3.10",
- "@backstage/plugin-search-common": "1.2.17",
- "@backstage/plugin-search-react": "1.8.8",
- "@backstage/plugin-signals": "0.0.18",
- "@backstage/plugin-signals-backend": "0.3.3",
- "@backstage/plugin-signals-node": "0.1.19",
- "@backstage/plugin-signals-react": "0.0.12",
- "@backstage/plugin-techdocs": "1.12.5",
- "@backstage/plugin-techdocs-addons-test-utils": "1.0.47",
- "@backstage/plugin-techdocs-backend": "2.0.1",
+ "@backstage/plugin-notifications-node": "0.2.15",
+ "@backstage/plugin-org": "0.6.39",
+ "@backstage/plugin-org-react": "0.1.38",
+ "@backstage/plugin-permission-backend": "0.7.0",
+ "@backstage/plugin-permission-backend-module-allow-all-policy": "0.2.8",
+ "@backstage/plugin-permission-common": "0.9.0",
+ "@backstage/plugin-permission-node": "0.10.0",
+ "@backstage/plugin-permission-react": "0.4.34",
+ "@backstage/plugin-proxy-backend": "0.6.2",
+ "@backstage/plugin-proxy-node": "0.1.4",
+ "@backstage/plugin-scaffolder": "1.31.0",
+ "@backstage/plugin-scaffolder-backend": "1.33.0",
+ "@backstage/plugin-scaffolder-backend-module-azure": "0.2.9",
+ "@backstage/plugin-scaffolder-backend-module-bitbucket": "0.3.10",
+ "@backstage/plugin-scaffolder-backend-module-bitbucket-cloud": "0.2.9",
+ "@backstage/plugin-scaffolder-backend-module-bitbucket-server": "0.2.9",
+ "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "0.3.9",
+ "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.3.10",
+ "@backstage/plugin-scaffolder-backend-module-gcp": "0.2.9",
+ "@backstage/plugin-scaffolder-backend-module-gerrit": "0.2.9",
+ "@backstage/plugin-scaffolder-backend-module-gitea": "0.2.9",
+ "@backstage/plugin-scaffolder-backend-module-github": "0.7.1",
+ "@backstage/plugin-scaffolder-backend-module-gitlab": "0.9.1",
+ "@backstage/plugin-scaffolder-backend-module-notifications": "0.1.10",
+ "@backstage/plugin-scaffolder-backend-module-rails": "0.5.9",
+ "@backstage/plugin-scaffolder-backend-module-sentry": "0.2.9",
+ "@backstage/plugin-scaffolder-backend-module-yeoman": "0.4.10",
+ "@backstage/plugin-scaffolder-common": "1.5.11",
+ "@backstage/plugin-scaffolder-node": "0.8.2",
+ "@backstage/plugin-scaffolder-node-test-utils": "0.2.2",
+ "@backstage/plugin-scaffolder-react": "1.16.0",
+ "@backstage/plugin-search": "1.4.26",
+ "@backstage/plugin-search-backend": "2.0.2",
+ "@backstage/plugin-search-backend-module-catalog": "0.3.4",
+ "@backstage/plugin-search-backend-module-elasticsearch": "1.7.2",
+ "@backstage/plugin-search-backend-module-explore": "0.3.2",
+ "@backstage/plugin-search-backend-module-pg": "0.5.44",
+ "@backstage/plugin-search-backend-module-stack-overflow-collator": "0.3.9",
+ "@backstage/plugin-search-backend-module-techdocs": "0.4.2",
+ "@backstage/plugin-search-backend-node": "1.3.11",
+ "@backstage/plugin-search-common": "1.2.18",
+ "@backstage/plugin-search-react": "1.9.0",
+ "@backstage/plugin-signals": "0.0.19",
+ "@backstage/plugin-signals-backend": "0.3.4",
+ "@backstage/plugin-signals-node": "0.1.20",
+ "@backstage/plugin-signals-react": "0.0.13",
+ "@backstage/plugin-techdocs": "1.12.6",
+ "@backstage/plugin-techdocs-addons-test-utils": "1.0.48",
+ "@backstage/plugin-techdocs-backend": "2.0.2",
"@backstage/plugin-techdocs-common": "0.1.0",
- "@backstage/plugin-techdocs-module-addons-contrib": "1.1.23",
- "@backstage/plugin-techdocs-node": "1.13.2",
- "@backstage/plugin-techdocs-react": "1.2.16",
- "@backstage/plugin-user-settings": "0.8.21",
- "@backstage/plugin-user-settings-backend": "0.3.1",
+ "@backstage/plugin-techdocs-module-addons-contrib": "1.1.24",
+ "@backstage/plugin-techdocs-node": "1.13.3",
+ "@backstage/plugin-techdocs-react": "1.2.17",
+ "@backstage/plugin-user-settings": "0.8.22",
+ "@backstage/plugin-user-settings-backend": "0.3.2",
"@backstage/plugin-user-settings-common": "0.0.1",
- "@backstage/plugin-events-backend-module-google-pubsub": "0.0.0",
- "@backstage/plugin-catalog-backend-module-gitea": "0.0.0"
+ "@backstage/plugin-events-backend-module-kafka": "0.0.0"
},
"changesets": [
- "angry-sites-fold",
- "beige-kiwis-flow",
- "brave-donuts-sink",
- "brave-eggs-mate",
- "brave-pandas-beam",
- "brave-toes-switch",
- "breezy-hotels-deny",
- "bright-moles-sort",
- "bumpy-showers-design",
- "busy-badgers-hang",
- "calm-toys-occur",
- "chatty-months-grow",
- "chatty-showers-cheat",
- "chilly-trams-cheer",
- "chubby-cougars-run",
- "chubby-needles-vanish",
- "clean-otters-allow",
- "cold-humans-check",
- "common-goats-raise",
- "cool-bikes-push",
- "cool-cities-grab",
- "cool-colts-float",
- "cool-groups-fail",
- "cool-knives-design",
- "crazy-chefs-sin",
- "create-app-1745325336",
- "create-app-1745936753",
- "create-app-1747144256",
- "cruel-lights-sip",
- "cyan-pots-appear",
- "deep-ties-move",
- "dirty-grapes-vanish",
- "dry-carpets-hope",
- "dry-shirts-film",
- "dull-doodles-trade",
- "early-colts-accept",
- "early-dryers-teach",
- "eight-toys-feel",
- "eleven-beans-relax",
- "eleven-ghosts-strive",
- "every-bottles-grow",
- "famous-cities-stand",
- "fancy-frogs-like",
- "floppy-days-tell",
- "four-peaches-talk",
- "four-snails-argue",
- "fruity-bags-flow",
- "funny-papayas-tell",
- "good-islands-drive",
- "green-trainers-float",
- "grumpy-phones-kiss",
- "heavy-baths-rule",
- "heavy-onions-swim",
- "honest-states-repeat",
- "honest-teams-shave",
- "huge-olives-do",
- "icy-mugs-glow",
- "khaki-grapes-sink",
- "large-experts-sort",
- "large-lemons-clap",
- "lazy-tires-show",
- "lovely-cats-take",
- "mean-parents-build",
- "mighty-carrots-decide",
- "moody-women-itch",
- "neat-glasses-occur",
- "neat-glasses-occured",
- "new-hands-scream",
- "nice-vans-vanish",
- "ninety-donkeys-shop",
- "old-crews-serve",
- "old-parents-cut",
- "open-ghosts-fix",
- "open-lands-shop",
- "orange-banks-deny",
- "polite-shoes-allow",
- "pretty-corners-speak",
- "pretty-seas-hug",
- "proud-women-hammer",
- "public-socks-agree",
- "puny-rice-sneeze",
- "real-rings-smoke",
- "real-sheep-chew",
- "renovate-29506de",
- "renovate-4fc113d",
- "renovate-68baea0",
- "renovate-e32145b",
- "renovate-ee17247",
- "sad-showers-begin",
- "sad-taxes-bake",
- "shaggy-stingrays-check",
- "sharp-ligers-beg",
- "sharp-numbers-doubt",
- "shiny-symbols-grow",
- "short-teeth-juggle",
- "silent-clubs-roll",
- "slick-brooms-start",
- "slimy-peas-post",
- "slow-drinks-enjoy",
- "small-eggs-develop",
- "soft-ravens-build",
- "spicy-camels-bet",
- "spicy-steaks-swim",
- "spotty-doors-design",
- "stale-symbols-joke",
- "sweet-papayas-slide",
- "tall-suits-share-auth-backend",
- "tall-suits-share-auth-node",
- "tall-suits-share",
- "tame-areas-behave",
- "ten-spies-explode",
- "ten-tables-build",
- "thick-hotels-rhyme",
- "tidy-paths-count",
- "true-breads-rhyme",
- "true-trains-tie",
- "twenty-kiwis-punch",
- "violet-breads-obey",
- "warm-cases-bathe",
- "warm-llamas-return",
- "wicked-clubs-dream",
- "wicked-dingos-stand",
- "wise-cobras-sink",
- "wise-pillows-smile",
- "yellow-beans-eat",
- "yellow-cows-tickle",
- "young-dancers-shave"
+ "bitter-pants-watch",
+ "brave-facts-pay",
+ "chatty-clowns-dream",
+ "cold-meals-like",
+ "create-app-1748956288",
+ "create-app-1749565617",
+ "create-app-1749636320",
+ "cuddly-camels-lose",
+ "curvy-peaches-relate",
+ "curvy-words-create",
+ "deep-aliens-camp",
+ "deep-moments-love",
+ "dull-buttons-press",
+ "dull-cars-shout",
+ "eight-pigs-post",
+ "eight-planets-see",
+ "eighty-showers-hide",
+ "eleven-foxes-mix",
+ "evil-cooks-watch",
+ "fair-doors-bathe",
+ "famous-streets-stay",
+ "few-streets-accept",
+ "fix-cli-config-docs-feedback",
+ "fluffy-bobcats-tell",
+ "forty-seas-worry",
+ "fresh-brooms-follow",
+ "fresh-otters-say",
+ "good-paths-act",
+ "green-schools-live",
+ "grumpy-dryers-act",
+ "honest-moles-bet",
+ "itchy-mirrors-juggle",
+ "khaki-horses-chew",
+ "khaki-swans-invite",
+ "kind-houses-feel",
+ "large-baboons-prove",
+ "late-buttons-strive",
+ "lazy-rice-dream",
+ "long-suits-obey",
+ "loose-ants-learn",
+ "major-heads-scream",
+ "mean-tigers-rush",
+ "mighty-windows-boil",
+ "mira-flygande-spoons",
+ "new-beers-sell",
+ "olive-buses-serve",
+ "open-bottles-attack",
+ "open-eyes-learn",
+ "orange-masks-decide",
+ "petite-candies-tan",
+ "puny-pillows-wave",
+ "purple-times-deny",
+ "rare-rules-move",
+ "red-vans-march",
+ "ripe-squids-sink",
+ "rotten-dragons-guess",
+ "salty-worlds-float",
+ "scaffolder-breakages-1",
+ "scaffolder-breakages-2",
+ "scaffolder-breakages-3",
+ "scaffolder-breakages-4",
+ "scaffolder-breakages-5",
+ "scaffolder-breakages-6",
+ "scaffolder-deprecations-1",
+ "seven-beans-appear",
+ "shiny-bags-bet",
+ "six-mangos-yell",
+ "slimy-cups-shake",
+ "slow-impalas-wear",
+ "small-dots-march",
+ "smooth-eels-think",
+ "some-llamas-go",
+ "spicy-rivers-notice",
+ "spotty-cases-show",
+ "strong-trams-joke",
+ "stupid-flies-speak",
+ "stupid-goats-teach",
+ "stupid-pens-serve",
+ "sweet-ducks-wait",
+ "sweet-squids-dig",
+ "swift-brooms-bet",
+ "tender-trees-open",
+ "tender-wolves-lie",
+ "three-boats-sort",
+ "tough-heads-knock",
+ "true-tools-play",
+ "twelve-zoos-learn",
+ "warm-hornets-unite",
+ "warm-taxes-show",
+ "wet-bars-report",
+ "wet-bars-reporting",
+ "yummy-donuts-peel"
]
}
diff --git a/.changeset/pretty-corners-speak.md b/.changeset/pretty-corners-speak.md
deleted file mode 100644
index 8e24d212fe..0000000000
--- a/.changeset/pretty-corners-speak.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/backend-test-utils': minor
----
-
-Add a functional `mockServices.events()`
diff --git a/.changeset/pretty-seas-hug.md b/.changeset/pretty-seas-hug.md
deleted file mode 100644
index 216f9af18f..0000000000
--- a/.changeset/pretty-seas-hug.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-react': patch
----
-
-Fixed an issue causing entities of kind user and group to be empty when an owner was selected
diff --git a/.changeset/proud-women-hammer.md b/.changeset/proud-women-hammer.md
deleted file mode 100644
index 030fc5bf7b..0000000000
--- a/.changeset/proud-women-hammer.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-node': patch
----
-
-trim leading and trailing slashes from parseRepoUrl query parameters
diff --git a/.changeset/public-socks-agree.md b/.changeset/public-socks-agree.md
deleted file mode 100644
index 7febb17cc0..0000000000
--- a/.changeset/public-socks-agree.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-node-test-utils': patch
----
-
-Include optional `user` in `createMockActionContext`
diff --git a/.changeset/puny-pillows-wave.md b/.changeset/puny-pillows-wave.md
new file mode 100644
index 0000000000..813e603007
--- /dev/null
+++ b/.changeset/puny-pillows-wave.md
@@ -0,0 +1,5 @@
+---
+'@backstage/frontend-plugin-api': patch
+---
+
+Added a new `useAppNode` hook, which can be used to get a reference to the `AppNode` from by the closest `ExtensionBoundary`.
diff --git a/.changeset/puny-rice-sneeze.md b/.changeset/puny-rice-sneeze.md
deleted file mode 100644
index 1967b68dab..0000000000
--- a/.changeset/puny-rice-sneeze.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-home': patch
----
-
-Export root page route from the home plugin to enable adding links/nav to it from outside the plugin
diff --git a/.changeset/purple-times-deny.md b/.changeset/purple-times-deny.md
new file mode 100644
index 0000000000..7cf4d2c3c3
--- /dev/null
+++ b/.changeset/purple-times-deny.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder': patch
+---
+
+Added appropriate message when global templating function metadata is absent.
diff --git a/.changeset/rare-rules-move.md b/.changeset/rare-rules-move.md
new file mode 100644
index 0000000000..6abc778941
--- /dev/null
+++ b/.changeset/rare-rules-move.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-scaffolder': minor
+---
+
+**New Frontend System Only:**
+The `Scaffolder` plugin is now responsible for providing an entity icon link extension to launch templates from the catalog entity page.
diff --git a/.changeset/real-rings-smoke.md b/.changeset/real-rings-smoke.md
deleted file mode 100644
index 832d7e3c6e..0000000000
--- a/.changeset/real-rings-smoke.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-org': patch
----
-
-display entity-ref in GroupProfileCard so groups can easily determine their Group ID
diff --git a/.changeset/real-sheep-chew.md b/.changeset/real-sheep-chew.md
deleted file mode 100644
index 9ae5b5ae9e..0000000000
--- a/.changeset/real-sheep-chew.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-components': patch
----
-
-Fix the hidden sidebar's sub-menu when the sidebar is scrollable
diff --git a/.changeset/red-vans-march.md b/.changeset/red-vans-march.md
new file mode 100644
index 0000000000..a168e89884
--- /dev/null
+++ b/.changeset/red-vans-march.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend-module-gitea': patch
+---
+
+Migrate to new actions format
diff --git a/.changeset/renovate-29506de.md b/.changeset/renovate-29506de.md
deleted file mode 100644
index 1260f3b453..0000000000
--- a/.changeset/renovate-29506de.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/repo-tools': patch
----
-
-Updated dependency `typedoc` to `^0.28.0`.
diff --git a/.changeset/renovate-4fc113d.md b/.changeset/renovate-4fc113d.md
deleted file mode 100644
index abec879c27..0000000000
--- a/.changeset/renovate-4fc113d.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Updated dependency `@octokit/request` to `^8.0.0`.
diff --git a/.changeset/renovate-68baea0.md b/.changeset/renovate-68baea0.md
deleted file mode 100644
index 6370fc8834..0000000000
--- a/.changeset/renovate-68baea0.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Updated dependency `react-refresh` to `^0.17.0`.
diff --git a/.changeset/renovate-9d662c8.md b/.changeset/renovate-9d662c8.md
new file mode 100644
index 0000000000..9178efeafa
--- /dev/null
+++ b/.changeset/renovate-9d662c8.md
@@ -0,0 +1,5 @@
+---
+'@backstage/repo-tools': patch
+---
+
+Updated dependency `@electric-sql/pglite` to `^0.3.0`.
diff --git a/.changeset/renovate-a499ca4.md b/.changeset/renovate-a499ca4.md
new file mode 100644
index 0000000000..fc54dcfbf2
--- /dev/null
+++ b/.changeset/renovate-a499ca4.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-auth-backend-module-okta-provider': patch
+---
+
+Updated dependency `@davidzemon/passport-okta-oauth` to `^0.0.6`.
diff --git a/.changeset/renovate-e32145b.md b/.changeset/renovate-e32145b.md
deleted file mode 100644
index e1fdbcf02d..0000000000
--- a/.changeset/renovate-e32145b.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-compat-api': patch
----
-
-Updated dependency `@backstage-community/plugin-puppetdb` to `^0.6.0`.
diff --git a/.changeset/renovate-ee17247.md b/.changeset/renovate-ee17247.md
deleted file mode 100644
index a97a63d138..0000000000
--- a/.changeset/renovate-ee17247.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-'@backstage/plugin-kubernetes-backend': patch
-'@backstage/plugin-kubernetes-common': patch
-'@backstage/plugin-kubernetes-node': patch
-'@backstage/plugin-kubernetes-react': patch
-'@backstage/plugin-kubernetes': patch
----
-
-Updated dependency `@kubernetes/client-node` to `1.1.2`.
diff --git a/.changeset/rich-tires-battle.md b/.changeset/rich-tires-battle.md
new file mode 100644
index 0000000000..0d1355f123
--- /dev/null
+++ b/.changeset/rich-tires-battle.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-github': minor
+---
+
+GitHub organization now matches in a case-insensitive manner when processing events.
diff --git a/.changeset/ripe-squids-sink.md b/.changeset/ripe-squids-sink.md
new file mode 100644
index 0000000000..27d5d043b6
--- /dev/null
+++ b/.changeset/ripe-squids-sink.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+The experimental `FORCE_REACT_DEVELOPMENT` flag has been removed.
diff --git a/.changeset/rotten-dragons-guess.md b/.changeset/rotten-dragons-guess.md
new file mode 100644
index 0000000000..c35de83f6e
--- /dev/null
+++ b/.changeset/rotten-dragons-guess.md
@@ -0,0 +1,5 @@
+---
+'@backstage/backend-app-api': patch
+---
+
+Fixed a bug where occasionally the initialization order of multiple modules consuming a single extension point could happen in the wrong order.
diff --git a/.changeset/sad-fans-sort.md b/.changeset/sad-fans-sort.md
new file mode 100644
index 0000000000..dcd1e7815c
--- /dev/null
+++ b/.changeset/sad-fans-sort.md
@@ -0,0 +1,5 @@
+---
+'@backstage/canon': minor
+---
+
+TextField in Canon now has multiple label sizes as well as the capacity to hide label and description but still make them available for screen readers.
diff --git a/.changeset/sad-showers-begin.md b/.changeset/sad-showers-begin.md
deleted file mode 100644
index 7fce23a2ab..0000000000
--- a/.changeset/sad-showers-begin.md
+++ /dev/null
@@ -1,66 +0,0 @@
----
-'@backstage/plugin-catalog-backend': major
----
-
-**BREAKING**: Removed all deprecated exports, and removed support for the old backend system.
-
-It also removes the `CodeOwnersProcessor` from the default set of processors, because it is expensive to run and has vague semantics. You need to update your backend to add it to the `catalogProcessingExtensionPoint` if you wish to continue using it.
-
-The following removed exports are available from `@backstage/plugin-catalog-node`:
-
-- `locationSpecToMetadataName`
-- `locationSpecToLocationEntity`
-- `processingResult`
-- `EntitiesSearchFilter`
-- `EntityFilter`
-- `DeferredEntity`
-- `EntityRelationSpec`
-- `CatalogProcessor`
-- `CatalogProcessorParser`
-- `CatalogProcessorCache`
-- `CatalogProcessorEmit`
-- `CatalogProcessorLocationResult`
-- `CatalogProcessorEntityResult`
-- `CatalogProcessorRelationResult`
-- `CatalogProcessorErrorResult`
-- `CatalogProcessorRefreshKeysResult`
-- `CatalogProcessorResult`
-- `EntityProvider`
-- `EntityProviderConnection`
-- `EntityProviderMutation`
-- `AnalyzeOptions`
-- `LocationAnalyzer`
-- `ScmLocationAnalyzer`
-- `PlaceholderResolver`
-- `PlaceholderResolverParams`
-- `PlaceholderResolverRead`
-- `PlaceholderResolverResolveUrl`
-- `parseEntityYaml`
-
-The following removed exports are available from `@backstage/plugin-catalog-common`:
-
-- `LocationSpec`
-- `AnalyzeLocationRequest`
-- `AnalyzeLocationResponse`
-- `AnalyzeLocationExistingEntity`
-- `AnalyzeLocationGenerateEntity`
-- `AnalyzeLocationEntityField`
-
-The following removed exports are instead implemented in the new backend system by `@backstage/plugin-search-backend-module-catalog`:
-
-- `defaultCatalogCollatorEntityTransformer`
-- `CatalogCollatorEntityTransformer`
-- `DefaultCatalogCollator`
-
-The following exports are removed without a direct replacement:
-
-- `DefaultCatalogCollatorFactory`
-- `DefaultCatalogCollatorFactoryOptions`
-- `LocationEntityProcessor`
-- `LocationEntityProcessorOptions`
-- `CatalogBuilder`
-- `CatalogEnvironment`
-- `CatalogPermissionRuleInput`
-- `CatalogProcessingEngine`
-- `createRandomProcessingInterval`
-- `ProcessingIntervalFunction`
diff --git a/.changeset/sad-taxes-bake.md b/.changeset/sad-taxes-bake.md
deleted file mode 100644
index 61a843a265..0000000000
--- a/.changeset/sad-taxes-bake.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend': patch
----
-
-Fixed bug in fs:delete that prevented wildcard patterns from matching paths starting with "."
diff --git a/.changeset/salty-worlds-float.md b/.changeset/salty-worlds-float.md
new file mode 100644
index 0000000000..a21d0b2e7c
--- /dev/null
+++ b/.changeset/salty-worlds-float.md
@@ -0,0 +1,5 @@
+---
+'@backstage/create-app': minor
+---
+
+Add .cache directory to shipped gitignore.
diff --git a/.changeset/scaffolder-breakages-1.md b/.changeset/scaffolder-breakages-1.md
new file mode 100644
index 0000000000..53a7ba9d6a
--- /dev/null
+++ b/.changeset/scaffolder-breakages-1.md
@@ -0,0 +1,27 @@
+---
+'@backstage/plugin-scaffolder-backend': major
+---
+
+**BREAKING CHANGES**
+
+Removal of deprecated re-exports from module packages.
+
+The following functions have been re-exported from the `scaffolder-backend` plugin for quite some time, and now it's time to clean them up. They've been moved as follows:
+
+- `createPublishAzureAction` should be imported from `@backstage/plugin-scaffolder-backend-module-azure` instead.
+
+- `createPublishBitbucketCloudAction` should be imported from `@backstage/plugin-scaffolder-backend-module-bitbucket-cloud` instead.
+
+- `createPublishBitbucketServerAction` and `createPublishBitbucketServerPullRequestAction` can be imported from `@backstage/plugin-scaffolder-backend-module-bitbucket-server` instead.
+
+- `createPublishBitbucketAction` should be imported from `@backstage/plugin-scaffolder-backend-module-bitbucket` instead.
+
+- `createPublishGerritAction` and `createPublishGerritReviewAction` can be imported from `@backstage/plugin-scaffolder-backend-module-gerrit` instead.
+
+- `createGithubActionsDispatchAction`, `createGithubDeployKeyAction`, `createGithubEnvironmentAction`, `createGithubIssuesLabelAction`, `CreateGithubPullRequestActionOptions`, `createGithubRepoCreateAction`, `createGithubRepoPushAction`, `createGithubWebhookAction`, and `createPublishGithubAction` can be imported from `@backstage/plugin-scaffolder-backend-module-github` instead.
+
+- `createPublishGitlabAction` should be imported from `@backstage/plugin-scaffolder-backend-module-gitlab` instead.
+
+- `ActionContext`. `createTemplateAction`, `executeShellCommand`, `ExecuteShellCommandOptions`, `fetchContents`, `TaskSecrets`, and `TemplateAction` should be imported from `@backstage/plugin-scaffolder-node` instead.
+
+- `ScaffolderEntitiesProcessor` should be imported from `@backstage/plugin-catalog-backend-module-scaffolder-entity-model` instead.
diff --git a/.changeset/scaffolder-breakages-2.md b/.changeset/scaffolder-breakages-2.md
new file mode 100644
index 0000000000..77ffe5fc42
--- /dev/null
+++ b/.changeset/scaffolder-breakages-2.md
@@ -0,0 +1,7 @@
+---
+'@backstage/plugin-scaffolder-backend': major
+---
+
+**BREAKING ALPHA**: The `/alpha` export no longer exports the plugin. Please use `import('@backstage/plugin-scaffolder-backend')` instead as this has been removed.
+
+**BREAKING CHANGES**: The old `createRouter` function which was used in the old backend system has been removed along with the `RouterOptions` type.
diff --git a/.changeset/scaffolder-breakages-3.md b/.changeset/scaffolder-breakages-3.md
new file mode 100644
index 0000000000..f6dca6416f
--- /dev/null
+++ b/.changeset/scaffolder-breakages-3.md
@@ -0,0 +1,11 @@
+---
+'@backstage/plugin-scaffolder-backend': major
+---
+
+**BREAKING CHANGES**
+
+The following functions have been re-exported from the `scaffolder-backend` plugin for quite some time, and now it's time to clean them up. They've been moved as follows:
+
+- `SerializedTask`, `SerializedTaskEvent`, `TaskBroker`, `TaskBrokerDispatchOptions`, `TaskBrokerDispatchResult`, `TaskCompletionState`, `TaskContext`, `TaskEventType`, `TaskStatus`, `TemplateFilter`, and `TemplateGlobal` should be imported from `@backstage/plugin-scaffolder-node` instead.
+
+- The deprecated `copyWithoutRender` option has been removed from `fetch:template` action. You should rename the option to `copyWithoutTemplating` instead.
diff --git a/.changeset/scaffolder-breakages-4.md b/.changeset/scaffolder-breakages-4.md
new file mode 100644
index 0000000000..e9f0c81256
--- /dev/null
+++ b/.changeset/scaffolder-breakages-4.md
@@ -0,0 +1,60 @@
+---
+'@backstage/plugin-scaffolder-node': minor
+---
+
+**BREAKING CHANGES**
+
+The legacy methods to define `createTemplateActions` have been replaced with the new native `zod` approaches for defining input and output schemas.
+
+You can migrate actions that look like the following with the below examples:
+
+```ts
+// really old legacy json schema
+createTemplateAction<{ repoUrl: string }, { repoOutput: string }>({
+ id: 'test',
+ schema: {
+ input: {
+ type: 'object'
+ required: ['repoUrl']
+ properties: {
+ repoUrl: {
+ type: 'string',
+ description: 'repository url description'
+ }
+ }
+ }
+ }
+});
+
+// old zod method
+createTemplateAction({
+ id: 'test'
+ schema: {
+ input: {
+ repoUrl: z.string({ description: 'repository url description' })
+ }
+ }
+})
+
+// new method:
+createTemplateAction({
+ id: 'test',
+ schema: {
+ input: {
+ repoUrl: z => z.string({ description: 'repository url description' })
+ }
+ }
+})
+
+// or for more complex zod types like unions
+createTemplateAction({
+ id: 'test',
+ schema: {
+ input: z => z.object({
+ repoUrl: z.string({ description: 'repository url description' })
+ })
+ }
+})
+```
+
+This breaking change also means that `logStream` has been removed entirely from `ActionsContext`, and that the `logger` is now just a `LoggerService` implementation instead. There is no replacement for the `logStream`, if you wish to still keep using a `logStream` we recommend that you create your own stream that writes to `ctx.logger` instead.
diff --git a/.changeset/scaffolder-breakages-5.md b/.changeset/scaffolder-breakages-5.md
new file mode 100644
index 0000000000..8047ec3dc3
--- /dev/null
+++ b/.changeset/scaffolder-breakages-5.md
@@ -0,0 +1,36 @@
+---
+'@backstage/plugin-scaffolder-backend-module-github': minor
+---
+
+**BREAKING CHANGES**
+
+The `createGithubEnvironmentAction` action no longer requires an `AuthService`, and now accepts a `CatalogService` instead of `CatalogClient`.
+
+Unless you're providing your own override action to the default, this should be a non-breaking change.
+
+You can migrate using the following if you're getting typescript errors:
+
+```ts
+import { catalogServiceRef } from '@backstage/plugin-catalog-node';
+import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha';
+
+export const myModule = createBackendModule({
+ pluginId: 'scaffolder',
+ moduleId: 'test',
+ register({ registerInit }) {
+ registerInit({
+ deps: {
+ scaffolder: scaffolderActionsExtensionPoint,
+ catalog: catalogServiceRef,
+ },
+ async init({ scaffolder, catalog }) {
+ scaffolder.addActions(
+ createGithubEnvironmentAction({
+ catalog,
+ }),
+ );
+ },
+ });
+ },
+});
+```
diff --git a/.changeset/scaffolder-breakages-6.md b/.changeset/scaffolder-breakages-6.md
new file mode 100644
index 0000000000..74ff76c27d
--- /dev/null
+++ b/.changeset/scaffolder-breakages-6.md
@@ -0,0 +1,42 @@
+---
+'@backstage/plugin-scaffolder-backend': major
+---
+
+**BREAKING CHANGES**
+
+- The `createBuiltinActions` method has been removed, as this should no longer be needed with the new backend system route, and was only useful when passing the default list of actions again in the old backend system. You should be able to rely on the default behaviour of the new backend system which is to merge the actions.
+
+- The `createCatalogRegisterAction` and `createFetchCatalogEntityAction` actions no longer require an `AuthService`, and now accepts a `CatalogService` instead of `CatalogClient`.
+
+Unless you're providing your own override action to the default, this should be a non-breaking change.
+
+You can migrate using the following if you're getting typescript errors:
+
+```ts
+import { catalogServiceRef } from '@backstage/plugin-catalog-node';
+import { scaffolderActionsExtensionPoint } from '@backstage/plugin-scaffolder-node/alpha';
+
+export const myModule = createBackendModule({
+ pluginId: 'scaffolder',
+ moduleId: 'test',
+ register({ registerInit }) {
+ registerInit({
+ deps: {
+ scaffolder: scaffolderActionsExtensionPoint,
+ catalog: catalogServiceRef,
+ },
+ async init({ scaffolder, catalog }) {
+ scaffolder.addActions(
+ createCatalogRegisterAction({
+ catalog,
+ }),
+ createFetchCatalogEntityAction({
+ catalog,
+ integrations,
+ }),
+ );
+ },
+ });
+ },
+});
+```
diff --git a/.changeset/scaffolder-deprecations-1.md b/.changeset/scaffolder-deprecations-1.md
new file mode 100644
index 0000000000..7d87013536
--- /dev/null
+++ b/.changeset/scaffolder-deprecations-1.md
@@ -0,0 +1,20 @@
+---
+'@backstage/plugin-scaffolder-backend': minor
+---
+
+**DEPRECATIONS**
+
+The following types and implementations have been deprecated, either because they're no longer relevant, or because upcoming changes to the `scaffolder-backend` after `2.0.0` will influence the changes to these API surfaces.
+
+- `CreateWorkerOptions`
+- `DatabaseTaskStore`
+- `DatabaseTaskStoreOptions`
+- `TaskManager`
+- `TaskStoreCreateTaskOptions`
+- `TaskStoreCreateTaskResult`
+- `TaskStoreEmitOptions`
+- `TaskStoreListEventsOptions`
+- `TaskStoreRecoverTaskOptions`
+- `TaskStoreShutDownTaskOptions`
+
+There is no current path off deprecation, these types are going to be removed and rethought with a better way to define workers in the new backend system.
diff --git a/.changeset/seven-beans-appear.md b/.changeset/seven-beans-appear.md
new file mode 100644
index 0000000000..82fe9f9889
--- /dev/null
+++ b/.changeset/seven-beans-appear.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-gitlab': patch
+---
+
+Implement retry for GitLab API calls to handle rate limiting
diff --git a/.changeset/shaggy-stingrays-check.md b/.changeset/shaggy-stingrays-check.md
deleted file mode 100644
index 74e0013224..0000000000
--- a/.changeset/shaggy-stingrays-check.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-org': patch
----
-
-Fixed missing spec.profile field on MyGroupsSidebarItem.tsx so the group spec.profile.displayName is shown on the sidebar"
diff --git a/.changeset/sharp-ligers-beg.md b/.changeset/sharp-ligers-beg.md
deleted file mode 100644
index 0582ed72d2..0000000000
--- a/.changeset/sharp-ligers-beg.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog-backend': minor
----
-
-Adds the ability to disable the default entity processors using a new boolean app config item `catalog.disableDefaultProcessors`.
diff --git a/.changeset/sharp-numbers-doubt.md b/.changeset/sharp-numbers-doubt.md
deleted file mode 100644
index 81e1313780..0000000000
--- a/.changeset/sharp-numbers-doubt.md
+++ /dev/null
@@ -1,26 +0,0 @@
----
-'@backstage/plugin-catalog-react': minor
----
-
-Added EntityOrderFilter to sort entities by different fields/columns. This new filter allows users to specify the order in which entities are displayed in the catalog.
-
-Example usage:
-
-```ts
-import {
- EntityOrderFilter,
- useEntityList,
-} from '@backstage/plugin-catalog-react';
-// ...
-const { updateFilters } = useEntityList();
-
-// ...
-updateFilters({
- order: new EntityOrderFilter([
- {
- field: 'metadata.name',
- order: 'desc',
- },
- ]),
-});
-```
diff --git a/.changeset/sharp-papayas-press.md b/.changeset/sharp-papayas-press.md
new file mode 100644
index 0000000000..a43e3ad580
--- /dev/null
+++ b/.changeset/sharp-papayas-press.md
@@ -0,0 +1,5 @@
+---
+'@backstage/backend-test-utils': minor
+---
+
+Added `mockServices.permissions()` that can return actual results.
diff --git a/.changeset/shiny-bags-bet.md b/.changeset/shiny-bags-bet.md
new file mode 100644
index 0000000000..0d9f2c0f30
--- /dev/null
+++ b/.changeset/shiny-bags-bet.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend-module-bitbucket': patch
+---
+
+Migrating `bitbucket` actions to use the new `zod` format
diff --git a/.changeset/shiny-symbols-grow.md b/.changeset/shiny-symbols-grow.md
deleted file mode 100644
index 18dd3b8b1f..0000000000
--- a/.changeset/shiny-symbols-grow.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend': patch
-'@backstage/plugin-scaffolder-react': patch
-'@backstage/plugin-scaffolder': patch
----
-
-Fixing a bug where the name for `templatingExtensions` was incorrectly set to `templateExtensions`
diff --git a/.changeset/short-teeth-juggle.md b/.changeset/short-teeth-juggle.md
deleted file mode 100644
index e0f1073db3..0000000000
--- a/.changeset/short-teeth-juggle.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend-module-bitbucket-server': patch
-'@backstage/plugin-scaffolder-backend-module-bitbucket-cloud': patch
-'@backstage/plugin-catalog-backend-module-backstage-openapi': patch
-'@backstage/plugin-scaffolder-backend-module-bitbucket': patch
-'@backstage/plugin-search-backend-module-elasticsearch': patch
-'@backstage/plugin-catalog-backend-module-github-org': patch
-'@backstage/plugin-scaffolder-backend-module-gerrit': patch
-'@backstage/plugin-scaffolder-backend-module-github': patch
-'@backstage/plugin-scaffolder-backend-module-gitlab': patch
-'@backstage/plugin-catalog-backend-module-msgraph': patch
-'@backstage/plugin-catalog-backend-module-gitlab': patch
-'@backstage/plugin-catalog-backend-module-logs': patch
-'@backstage/plugin-catalog-backend-module-aws': patch
-'@backstage/frontend-plugin-api': patch
-'@backstage/backend-plugin-api': patch
-'@backstage/plugin-kubernetes-backend': patch
-'@backstage/plugin-kubernetes-cluster': patch
-'@backstage/plugin-scaffolder-backend': patch
-'@backstage/backend-defaults': patch
-'@backstage/frontend-app-api': patch
-'@backstage/plugin-kubernetes-common': patch
-'@backstage/plugin-permission-common': patch
-'@backstage/backend-app-api': patch
-'@backstage/core-compat-api': patch
-'@backstage/core-components': patch
-'@backstage/plugin-kubernetes-react': patch
-'@backstage/plugin-scaffolder-react': patch
-'@backstage/plugin-techdocs-backend': patch
-'@backstage/plugin-kubernetes-node': patch
-'@backstage/plugin-scaffolder-node': patch
-'@backstage/config-loader': patch
-'@backstage/plugin-techdocs-react': patch
-'@backstage/plugin-catalog-graph': patch
-'@backstage/plugin-techdocs-node': patch
-'@backstage/plugin-auth-backend': patch
-'@backstage/repo-tools': patch
-'@backstage/plugin-auth-react': patch
-'@backstage/plugin-kubernetes': patch
-'@backstage/plugin-scaffolder': patch
-'@backstage/plugin-api-docs': patch
-'@backstage/plugin-techdocs': patch
-'@backstage/canon': patch
-'@backstage/cli': patch
-'@backstage/plugin-home': patch
-'@backstage/plugin-org': patch
----
-
-Removed various typos
diff --git a/.changeset/silent-clubs-roll.md b/.changeset/silent-clubs-roll.md
deleted file mode 100644
index c80f884331..0000000000
--- a/.changeset/silent-clubs-roll.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-permission-backend': minor
----
-
-**BREAKING** Removed support for the legacy backend system, please [migrate to the new backend system](https://backstage.io/docs/backend-system/building-backends/migrating)
diff --git a/.changeset/six-mangos-yell.md b/.changeset/six-mangos-yell.md
new file mode 100644
index 0000000000..65ddae86f8
--- /dev/null
+++ b/.changeset/six-mangos-yell.md
@@ -0,0 +1,5 @@
+---
+'@backstage/repo-tools': minor
+---
+
+Add support for caching the per-package output from the `package-docs` command.
diff --git a/.changeset/slick-brooms-start.md b/.changeset/slick-brooms-start.md
deleted file mode 100644
index dec874a867..0000000000
--- a/.changeset/slick-brooms-start.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-events-backend-module-github': patch
----
-
-Correct README installation instructions.
diff --git a/.changeset/neat-glasses-occur.md b/.changeset/slimy-cups-shake.md
similarity index 52%
rename from .changeset/neat-glasses-occur.md
rename to .changeset/slimy-cups-shake.md
index 5fea5b1886..164b741499 100644
--- a/.changeset/neat-glasses-occur.md
+++ b/.changeset/slimy-cups-shake.md
@@ -2,4 +2,4 @@
'@backstage/plugin-catalog-import': patch
---
-Add i18n support for `catalog-import` plugin.
+Catalog import plugin full support i18n
diff --git a/.changeset/slimy-peas-post.md b/.changeset/slimy-peas-post.md
deleted file mode 100644
index 6a0a80e323..0000000000
--- a/.changeset/slimy-peas-post.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/backend-plugin-api': patch
----
-
-Minor doc comment update
diff --git a/.changeset/slow-drinks-enjoy.md b/.changeset/slow-drinks-enjoy.md
deleted file mode 100644
index 5a171b8fd1..0000000000
--- a/.changeset/slow-drinks-enjoy.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/integration-aws-node': patch
----
-
-Fixed bug in DefaultAwsCredentialsManager where aws.mainAccount.region has no effect on the STS region used for account ID lookup during credential provider lookup when falling back to the main account, and it does not default to us-east-1
diff --git a/.changeset/slow-impalas-wear.md b/.changeset/slow-impalas-wear.md
new file mode 100644
index 0000000000..b5151a6ed4
--- /dev/null
+++ b/.changeset/slow-impalas-wear.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+Only use the caching Jest module loader for frontend packages in order to avoid breaking real ESM module imports.
diff --git a/.changeset/small-dots-march.md b/.changeset/small-dots-march.md
new file mode 100644
index 0000000000..0796ef68bb
--- /dev/null
+++ b/.changeset/small-dots-march.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend-module-gitlab': patch
+---
+
+Support merge request labels in publish:gitlab:merge-request
diff --git a/.changeset/small-eggs-develop.md b/.changeset/small-eggs-develop.md
deleted file mode 100644
index 618b877fa7..0000000000
--- a/.changeset/small-eggs-develop.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/plugin-scaffolder-react': minor
-'@backstage/plugin-scaffolder': minor
----
-
-add templating extensions page
diff --git a/.changeset/smooth-eels-think.md b/.changeset/smooth-eels-think.md
new file mode 100644
index 0000000000..c5e2fe0c85
--- /dev/null
+++ b/.changeset/smooth-eels-think.md
@@ -0,0 +1,8 @@
+---
+'@backstage/plugin-techdocs': minor
+'@backstage/plugin-techdocs-react': minor
+'@backstage/plugin-catalog': minor
+'@backstage/plugin-techdocs-common': patch
+---
+
+Introduced `backstage.io/techdocs-entity-path` annotation which allows deep linking into another entities TechDocs in conjunction with `backstage.io/techdocs-entity`.
diff --git a/.changeset/soft-ravens-build.md b/.changeset/soft-ravens-build.md
deleted file mode 100644
index dfa14f9b0c..0000000000
--- a/.changeset/soft-ravens-build.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-notifications-backend-module-slack': patch
----
-
-Fix dataloader caching, and use the proper catalog service ref
diff --git a/.changeset/some-llamas-go.md b/.changeset/some-llamas-go.md
new file mode 100644
index 0000000000..d07b6a6c75
--- /dev/null
+++ b/.changeset/some-llamas-go.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend-module-bitbucket-cloud': minor
+---
+
+**BREAKING**: `BitbucketCloudEntityProvider` now accepts a `CatalogService` instead of a `CatalogApi`.
diff --git a/.changeset/spicy-camels-bet.md b/.changeset/spicy-camels-bet.md
deleted file mode 100644
index 0289980ff9..0000000000
--- a/.changeset/spicy-camels-bet.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/cli': patch
----
-
-Internal refactor to move things closer to home
diff --git a/.changeset/spicy-rivers-notice.md b/.changeset/spicy-rivers-notice.md
new file mode 100644
index 0000000000..941f2d257d
--- /dev/null
+++ b/.changeset/spicy-rivers-notice.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-home': patch
+---
+
+Fixed the `WelcomeTitle` to properly default to the previous value of `inherit`
diff --git a/.changeset/spicy-steaks-swim.md b/.changeset/spicy-steaks-swim.md
deleted file mode 100644
index b2323c9b34..0000000000
--- a/.changeset/spicy-steaks-swim.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend-module-github': patch
----
-
-Added optional assignees parameter to `publish:github:pull-request` action
diff --git a/.changeset/spotty-cases-show.md b/.changeset/spotty-cases-show.md
new file mode 100644
index 0000000000..3e9a607733
--- /dev/null
+++ b/.changeset/spotty-cases-show.md
@@ -0,0 +1,5 @@
+---
+'@backstage/frontend-defaults': patch
+---
+
+Forwarded the new `pluginInfoResolver` option for `createApp`.
diff --git a/.changeset/spotty-doors-design.md b/.changeset/spotty-doors-design.md
deleted file mode 100644
index 22ee61c9b0..0000000000
--- a/.changeset/spotty-doors-design.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-notifications-backend-module-slack': patch
----
-
-Added email-based Slack User ID lookup if `metadata.annotations.slack.com/bot-notify` is missing from user entity
diff --git a/.changeset/strong-trams-joke.md b/.changeset/strong-trams-joke.md
new file mode 100644
index 0000000000..8b6a831d7d
--- /dev/null
+++ b/.changeset/strong-trams-joke.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+Updating the scaffolder action boilerplate to use new `zod` schema
diff --git a/.changeset/chubby-needles-vanish.md b/.changeset/stupid-candles-hug.md
similarity index 50%
rename from .changeset/chubby-needles-vanish.md
rename to .changeset/stupid-candles-hug.md
index 2cd664dcdd..040eb62947 100644
--- a/.changeset/chubby-needles-vanish.md
+++ b/.changeset/stupid-candles-hug.md
@@ -2,4 +2,4 @@
'@backstage/canon': patch
---
-Fix Canon missing dependencies
+Add new Switch component in Canon.
diff --git a/.changeset/stupid-flies-speak.md b/.changeset/stupid-flies-speak.md
new file mode 100644
index 0000000000..5156a5b8b6
--- /dev/null
+++ b/.changeset/stupid-flies-speak.md
@@ -0,0 +1,5 @@
+---
+'@backstage/frontend-app-api': patch
+---
+
+Implemented support for the `plugin.info()` method in specialized apps with a default resolved for `package.json` and `catalog-info.yaml`. The default resolution logic can be overridden via the `pluginInfoResolver` option to `createSpecializedApp`, and plugin-specific overrides can be applied via the new `app.pluginOverrides` key in static configuration.
diff --git a/.changeset/stupid-goats-teach.md b/.changeset/stupid-goats-teach.md
new file mode 100644
index 0000000000..f90d9373e7
--- /dev/null
+++ b/.changeset/stupid-goats-teach.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+Added `backstage.pluginId` field in `package.json` to all default plugin package templates for the `new` command.
diff --git a/.changeset/stupid-pens-serve.md b/.changeset/stupid-pens-serve.md
new file mode 100644
index 0000000000..f7fe733254
--- /dev/null
+++ b/.changeset/stupid-pens-serve.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+Internal refactor to combine alpha `build` and `start` modules.
diff --git a/.changeset/sweet-ducks-wait.md b/.changeset/sweet-ducks-wait.md
new file mode 100644
index 0000000000..4792fafe84
--- /dev/null
+++ b/.changeset/sweet-ducks-wait.md
@@ -0,0 +1,5 @@
+---
+'@backstage/backend-test-utils': minor
+---
+
+Added mock implementations for `ActionsService` and `ActionsRegistryService`
diff --git a/.changeset/sweet-papayas-slide.md b/.changeset/sweet-papayas-slide.md
deleted file mode 100644
index 9fbc067ca7..0000000000
--- a/.changeset/sweet-papayas-slide.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-search-react': patch
----
-
-Fix memoization of `filterValue` in `SearchFilter.Autocomplete` to prevent unintended resets
diff --git a/.changeset/sweet-squids-dig.md b/.changeset/sweet-squids-dig.md
new file mode 100644
index 0000000000..78a388ec52
--- /dev/null
+++ b/.changeset/sweet-squids-dig.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch
+---
+
+Migrate using new actions format
diff --git a/.changeset/swift-brooms-bet.md b/.changeset/swift-brooms-bet.md
new file mode 100644
index 0000000000..818284fda9
--- /dev/null
+++ b/.changeset/swift-brooms-bet.md
@@ -0,0 +1,13 @@
+---
+'@backstage/plugin-scaffolder-backend': patch
+---
+
+Enable usage of secrets within 'each' step of software templates. For example, you can now structure your `each` step like this:
+
+```
+each:
+ [
+ { name: "Service1", token: "${{ secrets.token1 }}" },
+ { name: "Service2", token: "${{ secrets.token2 }}" },
+ ]
+```
diff --git a/.changeset/tall-cloths-invite.md b/.changeset/tall-cloths-invite.md
new file mode 100644
index 0000000000..4a7b8812b0
--- /dev/null
+++ b/.changeset/tall-cloths-invite.md
@@ -0,0 +1,6 @@
+---
+'@backstage/plugin-home-react': patch
+'@backstage/plugin-home': patch
+---
+
+Home plugin support i18n
diff --git a/.changeset/tall-suits-share-auth-backend.md b/.changeset/tall-suits-share-auth-backend.md
deleted file mode 100644
index 3f5230c4e3..0000000000
--- a/.changeset/tall-suits-share-auth-backend.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-auth-backend': patch
----
-
-Added support for the new `dangerousEntityRefFallback` option for `signInWithCatalogUser` in `AuthResolverContext`.
diff --git a/.changeset/tall-suits-share-auth-node.md b/.changeset/tall-suits-share-auth-node.md
deleted file mode 100644
index cccd3537f7..0000000000
--- a/.changeset/tall-suits-share-auth-node.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-'@backstage/plugin-auth-node': patch
----
-
-Added a new `dangerousEntityRefFallback` option to the `signInWithCatalogUser` method in `AuthResolverContext`. The option will cause the provided entity reference to be used as a fallback in case the user is not found in the catalog. It is up to the caller to provide the fallback entity reference.
-
-Auth providers that include pre-defined sign-in resolvers are encouraged to define a flag named `dangerouslyAllowSignInWithoutUserInCatalog` in their config, which in turn enables use of the `dangerousEntityRefFallback` option. For example:
-
-```ts
-export const usernameMatchingUserEntityName = createSignInResolverFactory({
- optionsSchema: z
- .object({
- dangerouslyAllowSignInWithoutUserInCatalog: z.boolean().optional(),
- })
- .optional(),
- create(options = {}) {
- return async (
- info: SignInInfo>,
- ctx,
- ) => {
- const { username } = info.result.fullProfile;
- if (!username) {
- throw new Error('User profile does not contain a username');
- }
-
- return ctx.signInWithCatalogUser(
- { entityRef: { name: username } },
- {
- dangerousEntityRefFallback:
- options?.dangerouslyAllowSignInWithoutUserInCatalog
- ? { entityRef: { name: username } }
- : undefined,
- },
- );
- };
- },
-});
-```
diff --git a/.changeset/tall-suits-share.md b/.changeset/tall-suits-share.md
deleted file mode 100644
index 05b74bc277..0000000000
--- a/.changeset/tall-suits-share.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-'@backstage/plugin-auth-backend-module-cloudflare-access-provider': patch
-'@backstage/plugin-auth-backend-module-bitbucket-server-provider': patch
-'@backstage/plugin-auth-backend-module-azure-easyauth-provider': patch
-'@backstage/plugin-auth-backend-module-oauth2-proxy-provider': patch
-'@backstage/plugin-auth-backend-module-vmware-cloud-provider': patch
-'@backstage/plugin-auth-backend-module-atlassian-provider': patch
-'@backstage/plugin-auth-backend-module-bitbucket-provider': patch
-'@backstage/plugin-auth-backend-module-microsoft-provider': patch
-'@backstage/plugin-auth-backend-module-onelogin-provider': patch
-'@backstage/plugin-auth-backend-module-aws-alb-provider': patch
-'@backstage/plugin-auth-backend-module-gcp-iap-provider': patch
-'@backstage/plugin-auth-backend-module-github-provider': patch
-'@backstage/plugin-auth-backend-module-gitlab-provider': patch
-'@backstage/plugin-auth-backend-module-google-provider': patch
-'@backstage/plugin-auth-backend-module-oauth2-provider': patch
-'@backstage/plugin-auth-backend-module-oidc-provider': patch
-'@backstage/plugin-auth-backend-module-okta-provider': patch
----
-
-Introduce `dangerouslyAllowSignInWithoutUserInCatalog` auth resolver config.
diff --git a/.changeset/ten-spies-explode.md b/.changeset/ten-spies-explode.md
deleted file mode 100644
index 53a37fbd74..0000000000
--- a/.changeset/ten-spies-explode.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/integration': minor
----
-
-Implement Edit URL feature for Gerrit 3.9+.
-
-It's possible to disable the edit url by adding the `disableEditUrl: true` config in the Gerrit integration.
diff --git a/.changeset/ten-tables-build.md b/.changeset/ten-tables-build.md
deleted file mode 100644
index 9ddae808fa..0000000000
--- a/.changeset/ten-tables-build.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-auth-backend': patch
----
-
-The `static` key store now issues tokens with the same structure as other key stores. Tokens now include the `typ` field in the header and the `uip` (user identity proof) in the payload.
diff --git a/.changeset/tender-trees-open.md b/.changeset/tender-trees-open.md
new file mode 100644
index 0000000000..c54fd6574f
--- /dev/null
+++ b/.changeset/tender-trees-open.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend': patch
+---
+
+Add tests for Scaffolder
diff --git a/.changeset/tender-wolves-lie.md b/.changeset/tender-wolves-lie.md
new file mode 100644
index 0000000000..d5c77b44a9
--- /dev/null
+++ b/.changeset/tender-wolves-lie.md
@@ -0,0 +1,5 @@
+---
+'@backstage/backend-test-utils': patch
+---
+
+Make the `user` credentials mock behave more like production
diff --git a/.changeset/thick-hotels-rhyme.md b/.changeset/thick-hotels-rhyme.md
deleted file mode 100644
index b7047dcd71..0000000000
--- a/.changeset/thick-hotels-rhyme.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-techdocs': patch
----
-
-Add hover and focus styling to the "copy to clipboard" button within codeblocks in techdocs. Also added an aria-label to the button for accessibility.
diff --git a/.changeset/three-boats-sort.md b/.changeset/three-boats-sort.md
new file mode 100644
index 0000000000..180a4e236c
--- /dev/null
+++ b/.changeset/three-boats-sort.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+fix: merge eslint reports when using json format
diff --git a/.changeset/tidy-paths-count.md b/.changeset/tidy-paths-count.md
deleted file mode 100644
index 190df58043..0000000000
--- a/.changeset/tidy-paths-count.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-home': patch
----
-
-docs: Update default for `preventCollision` prop
diff --git a/.changeset/tired-readers-share.md b/.changeset/tired-readers-share.md
new file mode 100644
index 0000000000..148ebd635d
--- /dev/null
+++ b/.changeset/tired-readers-share.md
@@ -0,0 +1,5 @@
+---
+'@backstage/canon': patch
+---
+
+The filter input in menu comboboxes should now always use the full width of the menu it's in.
diff --git a/.changeset/tough-heads-knock.md b/.changeset/tough-heads-knock.md
new file mode 100644
index 0000000000..da2e2c1163
--- /dev/null
+++ b/.changeset/tough-heads-knock.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-catalog-backend': patch
+---
+
+Update `refresh_state_references.id` to be a big int
diff --git a/.changeset/true-breads-rhyme.md b/.changeset/true-breads-rhyme.md
deleted file mode 100644
index d54f6c18d2..0000000000
--- a/.changeset/true-breads-rhyme.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/backend-test-utils': minor
-'@backstage/backend-defaults': patch
----
-
-Added Valkey support alongside Redis in backend-defaults cache clients, using the new Keyv Valkey package. Also extended backend-test-utils to support Valkey in tests.
diff --git a/.changeset/true-tools-play.md b/.changeset/true-tools-play.md
new file mode 100644
index 0000000000..4d1ae4d4e8
--- /dev/null
+++ b/.changeset/true-tools-play.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-scaffolder-backend-module-bitbucket-cloud': patch
+---
+
+Fix `bitbucketCloudBranchRestrictions` API calls to accept null to prevent 400 errors for some branch restriction kinds defined.
diff --git a/.changeset/true-trains-tie.md b/.changeset/true-trains-tie.md
deleted file mode 100644
index 678e6a85e9..0000000000
--- a/.changeset/true-trains-tie.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-notifications-backend-module-slack': patch
----
-
-Notifications which mention user entity refs are now replaced with Slack compatible mentions.
-
-Example: `Welcome <@user:default/billy>!` -> `Welcome <@U123456890>!`
diff --git a/.changeset/twelve-zoos-learn.md b/.changeset/twelve-zoos-learn.md
new file mode 100644
index 0000000000..c1c553cb70
--- /dev/null
+++ b/.changeset/twelve-zoos-learn.md
@@ -0,0 +1,5 @@
+---
+'@backstage/cli': patch
+---
+
+Fix an issue where some commands were not usable because of missing dist files
diff --git a/.changeset/twenty-kiwis-punch.md b/.changeset/twenty-kiwis-punch.md
deleted file mode 100644
index 6c54760247..0000000000
--- a/.changeset/twenty-kiwis-punch.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/backend-defaults': patch
----
-
-Bug fix: Pass user provided token through to gitlab url resolvers
diff --git a/.changeset/two-waves-worry.md b/.changeset/two-waves-worry.md
new file mode 100644
index 0000000000..519a3a426b
--- /dev/null
+++ b/.changeset/two-waves-worry.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-notifications-backend': patch
+---
+
+Notifications API will now return user as null always for broadcast notifications
diff --git a/.changeset/violet-breads-obey.md b/.changeset/violet-breads-obey.md
deleted file mode 100644
index f892e91ee2..0000000000
--- a/.changeset/violet-breads-obey.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/plugin-scaffolder': patch
----
-
-Migrate custom fields to new schema factory function;
-standardize field descriptions to prefer ui:description and present consistently,
-utilizing ScaffolderField component where possible.
diff --git a/.changeset/warm-cases-bathe.md b/.changeset/warm-cases-bathe.md
deleted file mode 100644
index 21e9ceb098..0000000000
--- a/.changeset/warm-cases-bathe.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/backend-defaults': patch
----
-
-The `GithubUrlReader` will now use the token from `options` when fetching repo details
diff --git a/.changeset/warm-hornets-unite.md b/.changeset/warm-hornets-unite.md
new file mode 100644
index 0000000000..65a56233cb
--- /dev/null
+++ b/.changeset/warm-hornets-unite.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-search-react': patch
+---
+
+SearchBar clear button support i18n
diff --git a/.changeset/warm-llamas-return.md b/.changeset/warm-llamas-return.md
deleted file mode 100644
index 743ad0a5bb..0000000000
--- a/.changeset/warm-llamas-return.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-events-backend-module-google-pubsub': minor
----
-
-Added a module that is able to transfer messages from Google Pub/Sub subscriptions into the Backstage events system.
diff --git a/.changeset/warm-taxes-show.md b/.changeset/warm-taxes-show.md
new file mode 100644
index 0000000000..edebd0048e
--- /dev/null
+++ b/.changeset/warm-taxes-show.md
@@ -0,0 +1,5 @@
+---
+'@backstage/canon': minor
+---
+
+Fixes spacing props on layout components and aligned on naming for the Grid component. You should now call the Grid root component using instead of just .
diff --git a/.changeset/wet-bars-report.md b/.changeset/wet-bars-report.md
new file mode 100644
index 0000000000..d556f6cc61
--- /dev/null
+++ b/.changeset/wet-bars-report.md
@@ -0,0 +1,5 @@
+---
+'@backstage/backend-plugin-api': minor
+---
+
+Added `coreServices.actionsRegistry` and `coreServices.actions` to allow registration of distributed actions from plugins, and the ability to invoke these actions
diff --git a/.changeset/wet-bars-reporting.md b/.changeset/wet-bars-reporting.md
new file mode 100644
index 0000000000..7dc66cb280
--- /dev/null
+++ b/.changeset/wet-bars-reporting.md
@@ -0,0 +1,5 @@
+---
+'@backstage/backend-defaults': patch
+---
+
+Added some default implementations for the `ActionsService` and `ActionsRegistryService` that allow registration of actions for a particular plugin.
diff --git a/.changeset/wicked-clubs-dream.md b/.changeset/wicked-clubs-dream.md
deleted file mode 100644
index c866ac6312..0000000000
--- a/.changeset/wicked-clubs-dream.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/plugin-search-react': patch
-'@backstage/plugin-search': patch
----
-
-search plugin support i18n
diff --git a/.changeset/wicked-dingos-stand.md b/.changeset/wicked-dingos-stand.md
deleted file mode 100644
index 92d84825d1..0000000000
--- a/.changeset/wicked-dingos-stand.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/core-plugin-api': patch
----
-
-The `TranslationApi` now supports interpolation of JSX elements by passing them directly as values to the translation function. If any of the provided interpolation values are JSX elements, the translation function will return a JSX element instead of a string.
diff --git a/.changeset/wise-cobras-sink.md b/.changeset/wise-cobras-sink.md
deleted file mode 100644
index 7a6a73c726..0000000000
--- a/.changeset/wise-cobras-sink.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/canon': patch
----
-
-Use the Field component from Base UI within the TextField.
diff --git a/.changeset/wise-pillows-smile.md b/.changeset/wise-pillows-smile.md
deleted file mode 100644
index febdeab2c4..0000000000
--- a/.changeset/wise-pillows-smile.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'yarn-plugin-backstage': patch
----
-
-Add both `npm:` and `backstage:` ranges to the lockfile to ensure compatibility with tools that parse the lockfile and ensure dependencies stay locked when building dist workspaces.
diff --git a/.changeset/yellow-beans-eat.md b/.changeset/yellow-beans-eat.md
deleted file mode 100644
index 2380b19a6f..0000000000
--- a/.changeset/yellow-beans-eat.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-'@backstage/plugin-catalog': patch
----
-
-Fix for missing `routeRef` when using `core-plugin-api` in a dialog context
diff --git a/.changeset/yellow-cows-tickle.md b/.changeset/yellow-cows-tickle.md
deleted file mode 100644
index 026c7444f0..0000000000
--- a/.changeset/yellow-cows-tickle.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-'@backstage/catalog-client': minor
-'@backstage/plugin-catalog-react': minor
-'@backstage/plugin-catalog-node': minor
----
-
-Add `getLocations` method to `CatalogApi` and `CatalogClient`. This method calls the [`GET /locations`](https://backstage.io/docs/features/software-catalog/software-catalog-api/#get-locations) endpoint from the catalog backend.
diff --git a/.changeset/yellow-rats-argue.md b/.changeset/yellow-rats-argue.md
new file mode 100644
index 0000000000..321498fd37
--- /dev/null
+++ b/.changeset/yellow-rats-argue.md
@@ -0,0 +1,38 @@
+---
+'@backstage/plugin-catalog-backend-module-ldap': patch
+---
+
+Added the ability to configure disabling one side of the relations tree with LDAP.
+
+Groups have a `member` attribute and users have a `memberOf` attribute, however these can drift out of sync in some LDAP installations, leaving weird states in the Catalog as we collate these results together and deduplicate them.
+
+You can chose to optionally disable one side of these relationships, or even both by setting the respective mapping to `null` in your `app-config.yaml` for your groups and/or users:
+
+```yaml
+catalog:
+ providers:
+ ldapOrg:
+ default:
+ target: ldaps://ds.example.net
+ bind:
+ dn: uid=ldap-reader-user,ou=people,ou=example,dc=example,dc=net
+ secret: ${LDAP_SECRET}
+ users:
+ - dn: ou=people,ou=example,dc=example,dc=net
+ options:
+ filter: (uid=*)
+ map:
+ # this ensures that outgoing memberships from users is ignored
+ memberOf: null
+ groups:
+ - dn: ou=access,ou=groups,ou=example,dc=example,dc=net
+ options:
+ filter: (&(objectClass=some-group-class)(!(groupType=email)))
+ map:
+ description: l
+ set:
+ metadata.customField: 'hello'
+ map:
+ # this ensures that outgoing memberships from groups is ignored
+ members: null
+```
diff --git a/.changeset/young-dancers-shave.md b/.changeset/young-dancers-shave.md
deleted file mode 100644
index f7cdc3f3c2..0000000000
--- a/.changeset/young-dancers-shave.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-'@backstage/plugin-scaffolder-backend': patch
-'@backstage/plugin-scaffolder-node': patch
----
-
-Generating new tokens on each Scaffolder Task Retry
diff --git a/.changeset/yummy-donuts-peel.md b/.changeset/yummy-donuts-peel.md
new file mode 100644
index 0000000000..6c66573025
--- /dev/null
+++ b/.changeset/yummy-donuts-peel.md
@@ -0,0 +1,5 @@
+---
+'@backstage/canon': patch
+---
+
+Remove leftover console.log from Container component.
diff --git a/.github/renovate.json5 b/.github/renovate.json5
index 77faa9354f..4716f1363f 100644
--- a/.github/renovate.json5
+++ b/.github/renovate.json5
@@ -35,6 +35,11 @@
rangeStrategy: 'replace',
matchSourceUrls: ['https://github.com/gregberge/svgr{/,}**'],
},
+ {
+ groupName: 'Module-federation monorepo packages',
+ rangeStrategy: 'replace',
+ matchSourceUrls: ['https://github.com/module-federation/core{/,}**'],
+ },
// We update yarn packages manually as it's gzip'd and we don't want to pollute the repository too much.
{
matchSourceUrls: ['https://github.com/yarnpkg/berry'],
diff --git a/.github/workflows/deploy_docker-image.yml b/.github/workflows/deploy_docker-image.yml
index e1547801ef..21913eb428 100644
--- a/.github/workflows/deploy_docker-image.yml
+++ b/.github/workflows/deploy_docker-image.yml
@@ -62,7 +62,7 @@ jobs:
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
- name: Build and push
- uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
+ uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
with:
context: './example-app'
file: ./example-app/packages/backend/Dockerfile
diff --git a/.github/workflows/deploy_microsite.yml b/.github/workflows/deploy_microsite.yml
index 5045e0c96f..a5e89d6103 100644
--- a/.github/workflows/deploy_microsite.yml
+++ b/.github/workflows/deploy_microsite.yml
@@ -80,6 +80,34 @@ jobs:
if-no-files-found: error
retention-days: 1
+ # Use the lower-level cache actions for the success cache, so that we can store the cache even on failed builds
+ - name: restore package-docs cache
+ uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4
+ with:
+ path: .cache/package-docs
+ key: ${{ runner.os }}-v${{ matrix.node-version }}-package-docs-stable-${{ github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-v${{ matrix.node-version }}-package-docs-stable-
+
+ - name: build API reference (beta)
+ run: yarn backstage-repo-tools package-docs
+
+ - name: upload API reference (beta)
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
+ with:
+ name: stable-reference-beta
+ path: type-docs/
+ if-no-files-found: error
+ retention-days: 1
+
+ # Always save success cache even if there were failures, that way it can be used in re-triggered builds
+ - name: save package-docs cache
+ uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4
+ if: always()
+ with:
+ path: .cache/package-docs
+ key: ${{ runner.os }}-v${{ matrix.node-version }}-package-docs-stable-${{ github.run_id }}
+
- name: microsite yarn install
run: yarn install --immutable
working-directory: microsite
@@ -136,6 +164,34 @@ jobs:
if-no-files-found: error
retention-days: 1
+ # Use the lower-level cache actions for the success cache, so that we can store the cache even on failed builds
+ - name: restore package-docs cache
+ uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4
+ with:
+ path: .cache/package-docs
+ key: ${{ runner.os }}-v${{ matrix.node-version }}-package-docs-${{ github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-v${{ matrix.node-version }}-package-docs-
+
+ - name: build API reference (beta)
+ run: yarn backstage-repo-tools package-docs
+
+ - name: upload API reference (beta)
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
+ with:
+ name: next-reference-beta
+ path: type-docs/
+ if-no-files-found: error
+ retention-days: 1
+
+ # Always save success cache even if there were failures, that way it can be used in re-triggered builds
+ - name: save package-docs cache
+ uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4
+ if: always()
+ with:
+ path: .cache/package-docs
+ key: ${{ runner.os }}-v${{ matrix.node-version }}-package-docs-${{ github.run_id }}
+
# Also build and upload storybook
- name: storybook yarn install
run: yarn install --immutable
@@ -265,8 +321,18 @@ jobs:
name: storybook
path: microsite/build/storybook
+ - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
+ with:
+ name: stable-reference-beta
+ path: microsite/build/api/stable/
+
+ - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
+ with:
+ name: next-reference-beta
+ path: microsite/build/api/next/
+
- name: Check the build output
- run: ls microsite/build && ls microsite/build/storybook
+ run: ls microsite/build && ls microsite/build/storybook && ls microsite/build/api/stable && ls microsite/build/api/next
- name: Deploy both microsite and storybook to gh-pages
uses: JamesIves/github-pages-deploy-action@6c2d9db40f9296374acc17b90404b6e8864128c8 # v4.7.3
diff --git a/.github/workflows/sync_code-formatting.yml b/.github/workflows/sync_code-formatting.yml
index ee97f3fef3..18ec62c7bf 100644
--- a/.github/workflows/sync_code-formatting.yml
+++ b/.github/workflows/sync_code-formatting.yml
@@ -30,7 +30,7 @@ jobs:
cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }}
- name: Run Prettier on ADOPTERS.md
- uses: creyD/prettier_action@31355f8eef017f8aeba2e0bc09d8502b13dbbad1 # v4.3
+ uses: creyD/prettier_action@8c18391fdc98ed0d884c6345f03975edac71b8f0 # v4.6
with:
# Modifies commit only if prettier autofixed the ADOPTERS.md
prettier_options: --config docs/prettier.config.js --write ADOPTERS.md
diff --git a/.github/workflows/verify_microsite.yml b/.github/workflows/verify_microsite.yml
index c22648bb8c..38900074d6 100644
--- a/.github/workflows/verify_microsite.yml
+++ b/.github/workflows/verify_microsite.yml
@@ -85,6 +85,32 @@ jobs:
if-no-files-found: error
retention-days: 1
+ # Use the lower-level cache actions for the success cache, so that we can store the cache even on failed builds
+ - name: restore package-docs cache
+ uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4
+ with:
+ path: .cache/package-docs
+ key: ${{ runner.os }}-v${{ matrix.node-version }}-package-docs-stable-${{ github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-v${{ matrix.node-version }}-package-docs-stable-
+
+ - name: build API reference (beta)
+ run: yarn backstage-repo-tools package-docs
+
+ - name: upload API reference (beta)
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
+ with:
+ name: stable-reference-beta
+ path: type-docs/
+
+ # Always save success cache even if there were failures, that way it can be used in re-triggered builds
+ - name: save package-docs cache
+ uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4
+ if: always()
+ with:
+ path: .cache/package-docs
+ key: ${{ runner.os }}-v${{ matrix.node-version }}-package-docs-stable-${{ github.run_id }}
+
- name: microsite yarn install
run: yarn install --immutable
working-directory: microsite
@@ -140,6 +166,32 @@ jobs:
if-no-files-found: error
retention-days: 1
+ # Use the lower-level cache actions for the success cache, so that we can store the cache even on failed builds
+ - name: restore package-docs cache
+ uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4
+ with:
+ path: .cache/package-docs
+ key: ${{ runner.os }}-v${{ matrix.node-version }}-package-docs-next-${{ github.run_id }}
+ restore-keys: |
+ ${{ runner.os }}-v${{ matrix.node-version }}-package-docs-next-
+
+ - name: build API reference (beta)
+ run: yarn backstage-repo-tools package-docs
+
+ - name: upload API reference (beta)
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
+ with:
+ name: next-reference-beta
+ path: type-docs/
+
+ # Always save success cache even if there were failures, that way it can be used in re-triggered builds
+ - name: save package-docs cache
+ uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4
+ if: always()
+ with:
+ path: .cache/package-docs
+ key: ${{ runner.os }}-v${{ matrix.node-version }}-package-docs-next-${{ github.run_id }}
+
# Also build and upload storybook
- name: storybook yarn install
run: yarn install --immutable
@@ -271,3 +323,15 @@ jobs:
- name: build microsite
run: yarn build
working-directory: microsite
+
+ - name: download stable reference (beta)
+ uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
+ with:
+ name: stable-reference-beta
+ path: api/stable/
+
+ - name: download next reference (beta)
+ uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
+ with:
+ name: next-reference-beta
+ path: api/next/
diff --git a/.github/workflows/verify_storybook.yml b/.github/workflows/verify_storybook.yml
index 3cc846a706..6c1ceb4c52 100644
--- a/.github/workflows/verify_storybook.yml
+++ b/.github/workflows/verify_storybook.yml
@@ -54,7 +54,7 @@ jobs:
- run: yarn --cwd packages/canon build-storybook
- - uses: chromaui/action@e8cc4c31775280b175a3c440076c00d19a9014d7 # v11
+ - uses: chromaui/action@1cfa065cbdab28f6ca3afaeb3d761383076a35aa # v11
with:
token: ${{ secrets.GITHUB_TOKEN }}
# projectToken intentionally shared to allow collaborators to run Chromatic on forks
diff --git a/ADOPTERS.md b/ADOPTERS.md
index e97c213adf..d20fd4a8b2 100644
--- a/ADOPTERS.md
+++ b/ADOPTERS.md
@@ -284,3 +284,4 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/
| [Scalepoint](https://scalepoint.com) | [Yuriy Ostapenko](https://github.com/yuriyostapenko), [Dmytro Pasko](https://github.com/dimapasko), [Yuri Sedykh ](https://github.com/yuiri-sedykh), [Bartosz Wisniewski](https://github.com/Epgor) | Internal Developer Portal: Software Catalog with infrastructure resources and dependencies, Software Templates, TechDocs, Tech Radar, Kubernetes and Observability, as well as custom CI/CD components |
| [VR](https://www.vr.com.br) | [Felipe Gomes](https://www.linkedin.com/in/felipe-gomes-da-silva), [Tiago Garcia](https://www.linkedin.com/in/tiago-garcia-6301a925) | Internal portal for development squads, service catalog, documentation hub, and application mapping for the entire company ecosystem, simplifying cloud infrastructure construction through templates. |
| [Plata](https://platacard.mx/en) | [Shamil Ganiev](https://github.com/ganievs) | Internal Developer Portal for the whole engineering team |
+| [Syngenta Digital](https://www.syngentadigital.com) | [Bitan Mallick](https://www.linkedin.com/in/bitanmallick) | Internal developer portal, designed to empower developers and streamline workflows. We use software catalog, tech-radar, software templates, tech-docs and various custom plugins to ensure an efficient and collaborative development experience. |
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6a91fc4196..9413206197 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -388,7 +388,7 @@ Once you've submitted a Pull Request (PR) the various bots will come out and do
- adding labels to help make reviewing PRs easier
- checking for missing changesets or confirming them
- checking for commits for their DCO (Developer Certificate of Origin)
-- kick of the various CI builds
+- kick off the various CI builds
Once these steps are completed, it's just a matter of being patient. As the reviewers have time, they will begin reviewing your PR. When the review process begins, there may be a few layers to this, but the general rule is that you need approval from one of the core maintainers and one from the specific area impacted by your PR. You may also have someone from the community review your changes. This can really help speed things up as they may catch some early items making the review for the maintainers simpler. Once you have the two (2) approvals, it's ready to be merged, a task that is also performed by the maintainers.
diff --git a/LABELS.md b/LABELS.md
index 7f8804f75a..32d5c7f095 100644
--- a/LABELS.md
+++ b/LABELS.md
@@ -26,6 +26,7 @@ These labels indicate what is needed to move an issue forward before it can be a
- `needs:bep` - The issue is an advanced addition that needs a [Backstage Enhancement Proposal](./beps/README.md).
- `needs:direction` - The issue needs direction from the owners of the area.
+- `needs:discussion` - The way forward for this issue is unclear and it needs further discussion with the author and other participants.
- `needs:more-info` - The issue needs more information from the author.
- `needs:motivation` - It is not clear why this change is needed. The author should provide motivation for the change, for instance by giving examples of concrete use cases or scenarios.
- `needs:repro` - The issue cannot be reproduced by the owners of the area. The author should provide more information to help them reproduce the issue, if possible with a minimal reproduction repository.
@@ -81,11 +82,17 @@ These labels indicate that an issue is related to specific domains of expertise.
- `domain:tooling` - Tooling and automation in Node.js and GitHub Actions.
- `domain:web` - Frontend development using TypeScript and React.
+## Workflow Labels
+
+These labels indicate a workflow status for the owners.
+
+- `workflow:do-not-merge` - The Pull Request should not be merged.
+- `workflow:before-release` - Should be handled before the next main-line release.
+- `workflow:after-release` - Should be handled after the next main-line release.
+- `workflow:after-vacations` - To be handled once the owners return from vacation.
+
## General Labels
-- `after vacations` - To be handled once the owners return from vacation.
-- `do not merge` - The pull request should not be merged.
-- `fix before release` - Should be handled before the next release.
- `good first issue` - Good for new contributors.
- `stale` - The issue or pull request has not seen any activity for a while and will be closed if no further activity is seen.
- `no stale` - The issue or pull request should not be closed due to inactivity.
diff --git a/OWNERS.md b/OWNERS.md
index 85ffadae42..d4ee3c6400 100644
--- a/OWNERS.md
+++ b/OWNERS.md
@@ -56,6 +56,18 @@ Scope: The Backstage design system, component library, as well as surrounding to
| Charles de Dreuille | Spotify | | [cdedreuille](https://github.com/cdedreuille) | `cdedreuille` |
| Patrik Oldsberg | Spotify | Cubic Belugas | [Rugvip](https://github.com/Rugvip) | `Rugvip` |
+### Documentation
+
+Team: @backstage/documentation-maintainers
+
+Scope: The Backstage Documentation and Microsite, excluding the plugins listing
+
+| Name | Organization | GitHub | Discord |
+| --------------- | ------------- | ----------------------------------------------------- | ------------- |
+| Andre Wanlin | Spotify | [awanlin](https://github.com/awanlin) | `ahhhndre` |
+| Aramis Sennyey | DoorDash | [aramissennyeydd](https://github.com/aramissennyeydd) | `Aramis#7984` |
+| Peter Macdonald | VodafoneZiggo | [Parsifal-M](https://github.com/Parsifal-M) | `parsifal` |
+
### Framework
Team: @backstage/framework-maintainers
@@ -77,11 +89,11 @@ Team: @backstage/helm-chart-maintainers
Scope: The Backstage [Helm Chart(s)](https://github.com/backstage/charts).
-| Name | Organization | Team | GitHub | Discord |
-| -------------------- | ------------ | ---- | ---------------------------------------- | -------------- |
-| Andrew Block | Red Hat | | [sabre1041](http://github.com/sabre1041) | sabre1041#2622 |
-| Tom Coufal | Red Hat | | [tumido](http://github.com/tumido) | Tumi#4346 |
-| Vincenzo Scamporlino | Spotify | | [vinzscam](http://github.com/vinzscam) | vinzscam#6944 |
+| Name | Organization | Team | GitHub | Discord |
+| -------------------- | ------------ | ---- | ---------------------------------------- | ---------------- |
+| Andrew Block | Red Hat | | [sabre1041](http://github.com/sabre1041) | `sabre1041#2622` |
+| Tom Coufal | Red Hat | | [tumido](http://github.com/tumido) | `Tumi#4346` |
+| Vincenzo Scamporlino | Spotify | | [vinzscam](http://github.com/vinzscam) | `vinzscam#6944` |
### Home
@@ -89,12 +101,14 @@ Team: @backstage/home-maintainers
Scope: The Backstage home page and information architecture
-| Name | Organization | Team | GitHub | Discord |
-| ------------------------ | ------------ | -------------- | ---------------------------------------- | ----------------- |
-| Avantika Iyer | Spotify | Infinite Buck$ | [tikabom](http://github.com/tikabom) | - |
-| Emma Indal | Spotify | Infinite Buck$ | [emmaindal](http://github.com/emmaindal) | emmaindal#7503 |
-| Djamaile Rahamat | Spotify | Infinite Buck$ | [djamaile](http://github.com/djamaile) | dyoqi |
-| Raghunandan Balachandran | Spotify | Infinite Buck$ | [soapraj](http://github.com/soapraj) | raghunandanb#1114 |
+| Name | Organization | Team | GitHub | Discord |
+| ------------------ | ------------ | --------------- | ----------------------------------------- | ------- |
+| Ainhoa Larumbe | Spotify | Imaginary Goats | [ainhoaL](http://github.com/ainhoaL) | - |
+| Avantika Iyer | Spotify | Imaginary Goats | [tikabom](http://github.com/tikabom) | - |
+| Daniel Jelčić | Spotify | Imaginary Goats | [djelcic](http://github.com/danieljelcic) | - |
+| Eric Peterson | Spotify | Imaginary Goats | [iamEAP](http://github.com/iamEAP) | - |
+| Musaab Elfaqih | Spotify | Imaginary Goats | [TheSabby](http://github.com/TheSabby) | - |
+| Landry Zinda-Snead | Spotify | Imaginary Goats | [landryzs](http://github.com/landryzs) | - |
### Kubernetes
@@ -206,18 +220,6 @@ Scope: Tooling and Community Repo Maintainers for the Backstage [Community Plugi
| Vincenzo Scamporlino | Spotify | [vinzscam](https://github.com/vinzscam) | `vinzscam` |
| Peter Macdonald | VodafoneZiggo | [Parsifal-M](https://github.com/Parsifal-M) | `parsifal` |
-### Documentation
-
-Team: @backstage/documentation-maintainers
-
-Scope: The Backstage Documentation and Microsite, excluding the plugins listing
-
-| Name | Organization | GitHub | Discord |
-| --------------- | ------------- | ----------------------------------------------------- | ------------- |
-| Andre Wanlin | Spotify | [awanlin](https://github.com/awanlin) | `ahhhndre` |
-| Aramis Sennyey | DoorDash | [aramissennyeydd](https://github.com/aramissennyeydd) | `Aramis#7984` |
-| Peter Macdonald | VodafoneZiggo | [Parsifal-M](https://github.com/Parsifal-M) | `parsifal` |
-
### Events
Team: @backstage/events-maintainers
diff --git a/app-config.yaml b/app-config.yaml
index 89e417fad3..eaee401d09 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -64,83 +64,11 @@ backend:
# See README.md in the proxy-backend plugin for information on the configuration format
proxy:
endpoints:
- '/circleci/api':
- target: https://circleci.com/api/v1.1
- headers:
- Circle-Token: ${CIRCLECI_AUTH_TOKEN}
-
- '/jenkins/api':
- target: http://localhost:8080
- headers:
- Authorization: ${JENKINS_BASIC_AUTH_HEADER}
-
- '/travisci/api':
- target: https://api.travis-ci.com
- changeOrigin: true
- headers:
- Authorization: ${TRAVISCI_AUTH_TOKEN}
- travis-api-version: '3'
-
- '/newrelic/apm/api':
- target: https://api.newrelic.com/v2
- headers:
- X-Api-Key: ${NEW_RELIC_REST_API_KEY}
- allowedHeaders:
- - link
-
- '/newrelic/api':
- target: https://api.newrelic.com
- headers:
- X-Api-Key: ${NEW_RELIC_USER_KEY}
-
'/pagerduty':
target: https://api.pagerduty.com
headers:
Authorization: Token token=${PAGERDUTY_TOKEN}
- '/buildkite/api':
- target: https://api.buildkite.com/v2/
- headers:
- Authorization: ${BUILDKITE_TOKEN}
-
- '/sentry/api':
- target: https://sentry.io/api/
- allowedMethods: ['GET']
- headers:
- Authorization: ${SENTRY_TOKEN}
-
- '/ilert':
- target: https://api.ilert.com
- allowedMethods: ['GET', 'POST', 'PUT']
- allowedHeaders: ['Authorization']
- headers:
- Authorization: ${ILERT_AUTH_HEADER}
-
- '/airflow':
- target: https://your.airflow.instance.com/api/v1
- headers:
- Authorization: ${AIRFLOW_BASIC_AUTH_HEADER}
-
- '/gocd':
- target: https://your.gocd.instance.com/go/api
- allowedMethods: ['GET']
- allowedHeaders: ['Authorization']
- headers:
- Authorization: Basic ${GOCD_AUTH_CREDENTIALS}
-
- '/dynatrace':
- target: https://your.dynatrace.instance.com/api/v2
- headers:
- Authorization: 'Api-Token ${DYNATRACE_ACCESS_TOKEN}'
-
- '/stackstorm':
- target: https://your.stackstorm.instance.com/api
- headers:
- St2-Api-Key: ${ST2_API_KEY}
-
- '/puppetdb':
- target: https://your.puppetdb.instance.com
-
organization:
name: My Company
@@ -157,46 +85,6 @@ techdocs:
publisher:
type: 'local' # Alternatives - 'googleGcs' or 'awsS3' or 'azureBlobStorage' or 'openStackSwift'. Read documentation for using alternatives.
-dynatrace:
- baseUrl: https://your.dynatrace.instance.com
-
-nomad:
- addr: 0.0.0.0
-
-# Score-cards sample configuration.
-scorecards:
- jsonDataUrl: https://raw.githubusercontent.com/Oriflame/backstage-plugins/main/plugins/score-card/sample-data/
- wikiLinkTemplate: https://link-to-wiki/{id}
-
-sentry:
- organization: my-company
-
-rollbar:
- organization: my-company
- # NOTE: The rollbar-backend & accountToken key may be deprecated in the future (replaced by a proxy config)
- accountToken: my-rollbar-account-token
-
-lighthouse:
- baseUrl: http://localhost:3003
-
-kubernetes:
- serviceLocatorMethod:
- type: 'multiTenant'
- clusterLocatorMethods:
- - type: 'config'
- clusters: []
-
-kafka:
- clientId: backstage
- clusters:
- - name: cluster
- dashboardUrl: https://akhq.io/
- brokers:
- - localhost:9092
-
-allure:
- baseUrl: http://localhost:5050/allure-docker-service
-
integrations:
github:
- host: github.com
@@ -269,26 +157,6 @@ catalog:
plugins:
- catalog
- search
-
- processors:
- ldapOrg:
- ### Example for how to add your enterprise LDAP server
- # providers:
- # - target: ldaps://ds.example.net
- # bind:
- # dn: uid=ldap-reader-user,ou=people,ou=example,dc=example,dc=net
- # secret: ${LDAP_SECRET}
- # users:
- # dn: ou=people,ou=example,dc=example,dc=net
- # options:
- # filter: (uid=*)
- # map:
- # description: l
- # groups:
- # dn: ou=access,ou=groups,ou=example,dc=example,dc=net
- # options:
- # filter: (&(objectClass=some-group-class)(!(groupType=email)))
-
locations:
# Add a location here to ingest it, for example from a URL:
#
@@ -325,13 +193,14 @@ catalog:
target: ../../plugins/scaffolder-backend/sample-templates/all-templates.yaml
rules:
- allow: [Template]
+
scaffolder:
# Use to customize default commit author info used when new components are created
- # defaultAuthor:
- # name: Scaffolder
- # email: scaffolder@backstage.io
+ defaultAuthor:
+ name: Scaffolder
+ email: scaffolder@backstage.io
# Use to customize the default commit message when new components are created
- # defaultCommitMessage: 'Initial commit'
+ defaultCommitMessage: 'Initial commit'
auth:
### Add auth.keyStore.provider to more granularly control how to store JWK data when running
@@ -422,80 +291,5 @@ auth:
myproxy: {}
guest: {}
-costInsights:
- engineerCost: 200000
- engineerThreshold: 0.5
- products:
- computeEngine:
- name: Compute Engine
- icon: compute
- cloudDataflow:
- name: Cloud Dataflow
- icon: data
- cloudStorage:
- name: Cloud Storage
- icon: storage
- bigQuery:
- name: BigQuery
- icon: search
- events:
- name: Events
- icon: data
- metrics:
- DAU:
- name: Daily Active Users
- default: true
- MSC:
- name: Monthly Subscribers
- currencies:
- engineers:
- label: 'Engineers 🛠'
- unit: 'engineer'
- usd:
- label: 'US Dollars 💵'
- kind: 'USD'
- unit: 'dollar'
- prefix: '$'
- rate: 1
- carbonOffsetTons:
- label: 'Carbon Offset Tons ♻️⚖️s'
- kind: 'CARBON_OFFSET_TONS'
- unit: 'carbon offset ton'
- rate: 3.5
- beers:
- label: 'Beers 🍺'
- kind: 'BEERS'
- unit: 'beer'
- rate: 4.5
- pintsIceCream:
- label: 'Pints of Ice Cream 🍦'
- kind: 'PINTS_OF_ICE_CREAM'
- unit: 'ice cream pint'
- rate: 5.5
-
-pagerDuty:
- eventsBaseUrl: 'https://events.pagerduty.com/v2'
-
-jenkins:
- instances:
- - name: default
- baseUrl: https://jenkins.example.com
- username: backstage-bot
- apiKey: 123456789abcdef0123456789abcedf012
-
-azureDevOps:
- host: dev.azure.com
- token: my-token
- organization: my-company
-
-apacheAirflow:
- baseUrl: https://your.airflow.instance.com
-
-gocd:
- baseUrl: https://your.gocd.instance.com
-
-stackstorm:
- webUrl: https://your.stackstorm.webui.instance.com
-
permission:
enabled: true
diff --git a/canon-docs/next.config.mjs b/canon-docs/next.config.mjs
index ca221d9a8c..8e6ed8fdc0 100644
--- a/canon-docs/next.config.mjs
+++ b/canon-docs/next.config.mjs
@@ -8,6 +8,11 @@ const nextConfig = {
images: {
unoptimized: true,
},
+ typescript: {
+ // Ignore TypeScript errors during build - safe for React 18/19 compatibility issues
+ // These are type-level conflicts that don't affect runtime behavior
+ ignoreBuildErrors: true,
+ },
};
const withMDX = createMDX({});
diff --git a/canon-docs/package.json b/canon-docs/package.json
index 5a4affc45b..c9bc1ae96b 100644
--- a/canon-docs/package.json
+++ b/canon-docs/package.json
@@ -8,19 +8,25 @@
"lint": "next lint",
"start": "npm run build:css && next dev"
},
+ "resolutions": {
+ "@types/react": "19.1.8",
+ "@types/react-dom": "19.1.6"
+ },
"dependencies": {
"@codemirror/lang-sass": "^6.0.2",
"@lezer/highlight": "^1.2.1",
"@mdx-js/loader": "^3.1.0",
"@mdx-js/react": "^3.1.0",
- "@next/mdx": "^15.1.4",
+ "@next/mdx": "15.3.3",
"@storybook/react": "^8.6.8",
"@uiw/codemirror-themes": "^4.23.7",
"@uiw/react-codemirror": "^4.23.7",
+ "html-react-parser": "^5.2.5",
"motion": "^12.4.1",
- "next": "14.2.26",
- "react": "^18.0.2",
- "react-dom": "^18.0.2",
+ "next": "15.3.3",
+ "next-mdx-remote-client": "^2.1.2",
+ "react": "19.1.0",
+ "react-dom": "19.1.0",
"react-frame-component": "^5.2.7",
"shiki": "^1.26.1",
"storybook": "^8.6.8"
@@ -28,10 +34,10 @@
"devDependencies": {
"@types/mdx": "^2.0.13",
"@types/node": "^20",
- "@types/react": "^18.0.0",
- "@types/react-dom": "^18.0.0",
+ "@types/react": "19.1.8",
+ "@types/react-dom": "19.1.6",
"eslint": "^8",
- "eslint-config-next": "14.2.23",
+ "eslint-config-next": "15.3.3",
"lightningcss": "^1.28.2",
"typescript": "^5"
}
diff --git a/canon-docs/public/header.png b/canon-docs/public/header.png
index 507bd05ca7..8d11151a3e 100644
Binary files a/canon-docs/public/header.png and b/canon-docs/public/header.png differ
diff --git a/canon-docs/src/app/(docs)/changelog/page.mdx b/canon-docs/src/app/(docs)/changelog/page.mdx
new file mode 100644
index 0000000000..7cc0b2bf3e
--- /dev/null
+++ b/canon-docs/src/app/(docs)/changelog/page.mdx
@@ -0,0 +1,13 @@
+import { Changelog } from '@/components/Changelog';
+
+# Changelog
+
+
+
+## Version 0.1.0
+
+We're excited to share the initial release of Canon 💚 In this first alpha version,
+you'll find the foundation of our design system: a set of versatile layout components
+and a handful of essential atomic elements to help you get started. While Canon is
+still in its early stages, it's ready for exploration and we'd love for you to give
+it a try and share your feedback.
diff --git a/canon-docs/src/app/(docs)/components/[slug]/page.tsx b/canon-docs/src/app/(docs)/components/[slug]/page.tsx
new file mode 100644
index 0000000000..d6f98c8f93
--- /dev/null
+++ b/canon-docs/src/app/(docs)/components/[slug]/page.tsx
@@ -0,0 +1,25 @@
+import { components, layoutComponents } from '@/utils/data';
+
+export default async function Page({
+ params,
+}: {
+ params: Promise<{ slug: string }>;
+}) {
+ const { slug } = await params;
+
+ const { default: Component } = await import(
+ `@/content/components/${slug}.mdx`
+ );
+
+ return ;
+}
+
+export function generateStaticParams() {
+ const list = [...components, ...layoutComponents];
+
+ return list.map(component => ({
+ slug: component.slug,
+ }));
+}
+
+export const dynamicParams = false;
diff --git a/canon-docs/src/app/(docs)/components/avatar/page.mdx b/canon-docs/src/app/(docs)/components/avatar/page.mdx
deleted file mode 100644
index b46caf8d62..0000000000
--- a/canon-docs/src/app/(docs)/components/avatar/page.mdx
+++ /dev/null
@@ -1,75 +0,0 @@
-import { PropsTable } from '@/components/PropsTable';
-import { Snippet } from '@/components/Snippet';
-import { Tabs } from '@/components/Tabs';
-import { CodeBlock } from '@/components/CodeBlock';
-import { AvatarSnippet } from '@/snippets/stories-snippets';
-import { avatarPropDefs } from './props';
-
-# Avatar
-
-An avatar component with a fallback for initials.
-
-}
- code={``}
-/>
-
-
-
- Usage
- Theming
-
-
- `}
- />
-
-
- We recommend starting with our [global tokens](/theme/theming) to customize the library and align it with
- your brand. For additional flexibility, you can use the provided class names for each element listed below.
- - `canon-AvatarRoot`
- - `canon-AvatarRoot[data-size='small']`
- - `canon-AvatarRoot[data-size='medium']`
- - `canon-AvatarRoot[data-size='large']`
- - `canon-AvatarImage`
- - `canon-AvatarFallback`
-
-
-
-## API reference
-
-
-
-## Examples
-
-### Sizes
-
-Avatar sizes can be set using the `size` prop.
-
-}
- code={`
-
-
-
- `}
-/>
-
-### Fallback
-
-If the image is not available, the avatar will show the initials of the name.
-
-}
- code={``}
-/>
diff --git a/canon-docs/src/app/(docs)/components/avatar/props.ts b/canon-docs/src/app/(docs)/components/avatar/props.ts
deleted file mode 100644
index e86c67a41e..0000000000
--- a/canon-docs/src/app/(docs)/components/avatar/props.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { classNamePropDefs, stylePropDefs } from '@/utils/propDefs';
-import type { PropDef } from '@/utils/propDefs';
-
-export const avatarPropDefs: Record = {
- src: {
- type: 'string',
- },
- name: {
- type: 'string',
- },
- size: {
- type: 'enum',
- values: ['small', 'medium', 'large'],
- default: 'medium',
- responsive: true,
- },
- ...classNamePropDefs,
- ...stylePropDefs,
-};
diff --git a/canon-docs/src/app/(docs)/components/box/props.ts b/canon-docs/src/app/(docs)/components/box/props.ts
deleted file mode 100644
index f3e38984dd..0000000000
--- a/canon-docs/src/app/(docs)/components/box/props.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import {
- classNamePropDefs,
- displayPropDefs,
- heightPropDefs,
- positionPropDefs,
- stylePropDefs,
- widthPropDefs,
-} from '../../../../utils/propDefs';
-import type { PropDef } from '../../../../utils/propDefs';
-
-export const boxPropDefs: Record = {
- as: {
- type: 'enum',
- values: ['div', 'span'],
- default: 'div',
- responsive: true,
- },
- ...widthPropDefs,
- ...heightPropDefs,
- ...positionPropDefs,
- ...displayPropDefs,
- ...classNamePropDefs,
- ...stylePropDefs,
-};
diff --git a/canon-docs/src/app/(docs)/components/button/page.mdx b/canon-docs/src/app/(docs)/components/button/page.mdx
deleted file mode 100644
index e1ecee8920..0000000000
--- a/canon-docs/src/app/(docs)/components/button/page.mdx
+++ /dev/null
@@ -1,136 +0,0 @@
-import { PropsTable } from '@/components/PropsTable';
-import { Snippet } from '@/components/Snippet';
-import { Tabs } from '@/components/Tabs';
-import { CodeBlock } from '@/components/CodeBlock';
-import { ButtonSnippet } from '@/snippets/stories-snippets';
-import { buttonVariants } from '@/snippets/code-snippets';
-import { buttonPropDefs } from './props';
-
-# Button
-
-A button component that can be used to trigger actions.
-
-}
- code={`
-
-
-
-`}
-/>
-
-
-
- Usage
- Theming
-
-
-
-`}
- />
-
-
- We recommend starting with our [global tokens](/theme/theming) to customize the library and align it with
- your brand. For additional flexibility, you can use the provided class names for each element listed below.
- `}
- />
-
-
-
-
-## API reference
-
-
-
-## Examples
-
-### Variants
-
-Here's a view when buttons have different variants.
-
-}
- code={buttonVariants}
-/>
-
-### Sizes
-
-Here's a view when buttons have different sizes.
-
-}
- code={`
-
-
-`}
-/>
-
-### With Icons
-
-Here's a view when buttons have icons.
-
-}
- code={`
-
-
-
-`}
-/>
-
-### Full width
-
-Here's a view when buttons are full width.
-
-}
- code={`
-
-`}
-/>
-
-### Disabled
-
-Here's a view when buttons are disabled.
-
-}
- code={``}
-/>
-
-### Responsive
-
-Here's a view when buttons are responsive.
-
-
- Responsive Button
- `}
-/>
diff --git a/canon-docs/src/app/(docs)/components/button/props.ts b/canon-docs/src/app/(docs)/components/button/props.ts
deleted file mode 100644
index 813dcaa6f0..0000000000
--- a/canon-docs/src/app/(docs)/components/button/props.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { classNamePropDefs, stylePropDefs } from '../../../../utils/propDefs';
-import type { PropDef } from '../../../../utils/propDefs';
-
-export const buttonPropDefs: Record = {
- variant: {
- type: 'enum',
- values: ['primary', 'secondary'],
- default: 'primary',
- responsive: true,
- },
- size: {
- type: 'enum',
- values: ['small', 'medium'],
- default: 'medium',
- responsive: true,
- },
- ...classNamePropDefs,
- ...stylePropDefs,
-};
diff --git a/canon-docs/src/app/(docs)/components/checkbox/page.mdx b/canon-docs/src/app/(docs)/components/checkbox/page.mdx
deleted file mode 100644
index 413636dc9a..0000000000
--- a/canon-docs/src/app/(docs)/components/checkbox/page.mdx
+++ /dev/null
@@ -1,66 +0,0 @@
-import { PropsTable } from '@/components/PropsTable';
-import { CheckboxSnippet } from '@/snippets/stories-snippets';
-import { Snippet } from '@/components/Snippet';
-import { Tabs } from '@/components/Tabs';
-import { CodeBlock } from '@/components/CodeBlock';
-import { BaseUI } from '@/components/HeadlessBanners/BaseUI';
-import { checkboxPropDefs } from './props';
-
-# Checkbox
-
-A checkbox component that can be used to trigger actions.
-
-}
- code={``}
-/>
-
-
-
- Usage
- Theming
-
-
-
-`}
- />
-
-
- We recommend starting with our [global tokens](/theme/theming) to customize the library and align it with
- your brand. For additional flexibility, you can use the provided class names for each element listed below.
- `}
- />
-
-
-
-
-## API reference
-
-
-
-
-
-## Examples
-
-### All variants
-
-Here's a view when checkboxes have different variants.
-
-}
- code={`
-
-
-
-
- `}
-/>
diff --git a/canon-docs/src/app/(docs)/components/collapsible/page.mdx b/canon-docs/src/app/(docs)/components/collapsible/page.mdx
deleted file mode 100644
index e013dff89c..0000000000
--- a/canon-docs/src/app/(docs)/components/collapsible/page.mdx
+++ /dev/null
@@ -1,113 +0,0 @@
-import { PropsTable } from '@/components/PropsTable';
-import { Snippet } from '@/components/Snippet';
-import { Tabs } from '@/components/Tabs';
-import { CodeBlock } from '@/components/CodeBlock';
-import { CollapsibleSnippet } from '@/snippets/stories-snippets';
-import {
- collapsibleRootPropDefs,
- collapsibleTriggerPropDefs,
- collapsiblePanelPropDefs,
-} from './props';
-
-# Collapsible
-
-An avatar component with a fallback for initials.
-
-}
- code={`
- (
-
- )} />
-
-
- It's the edge of the world and all of Western civilization
- The sun may rise in the East, at least it settled in a final location
- It's understood that Hollywood sells Californication
-
-
-`}
-/>
-
-
-
- Usage
- Theming
-
-
-
- (
-
- )} />
- Your content
-`}
- />
-
-
- We recommend starting with our [global tokens](/theme/theming) to customize the library and align it with
- your brand. For additional flexibility, you can use the provided class names for each element listed below.
- - `canon-CollapsibleRoot`
- - `canon-CollapsibleTrigger`
- - `canon-CollapsiblePanel`
-
-
-
-## API reference
-
-### Collapsible.Root
-
-Groups all parts of the collapsible. Renders a `
` element.
-
-
-
-### Collapsible.Trigger
-
-The trigger by default render a simple unstyled button. Because menus can be rendered in different ways, we recommend
-using the `render` prop to render a custom trigger.
-
- } />`}
-/>
-
-
-
-### Collapsible.Panel
-
-A panel with the collapsible contents. Renders a `
` element.
-
-
-
-## Examples
-
-Open the panel by default by setting the `defaultOpen` prop to `true`.
-
-}
- code={`
- (
-
- )} />
-
-
- It's the edge of the world and all of Western civilization
- The sun may rise in the East, at least it settled in a final location
- It's understood that Hollywood sells Californication
-
-
-`}
-/>
diff --git a/canon-docs/src/app/(docs)/components/collapsible/props.ts b/canon-docs/src/app/(docs)/components/collapsible/props.ts
deleted file mode 100644
index 02c62dc89e..0000000000
--- a/canon-docs/src/app/(docs)/components/collapsible/props.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import {
- classNamePropDefs,
- stylePropDefs,
- renderPropDefs,
-} from '@/utils/propDefs';
-import type { PropDef } from '@/utils/propDefs';
-
-export const collapsibleRootPropDefs: Record = {
- defaultOpen: {
- type: 'boolean',
- default: 'false',
- },
- open: {
- type: 'boolean',
- },
- onOpenChange: {
- type: 'enum',
- values: ['(open) => void'],
- },
- ...renderPropDefs,
- ...classNamePropDefs,
- ...stylePropDefs,
-};
-
-export const collapsibleTriggerPropDefs: Record = {
- ...renderPropDefs,
- ...classNamePropDefs,
- ...stylePropDefs,
-};
-
-export const collapsiblePanelPropDefs: Record = {
- hiddenUntilFound: {
- type: 'boolean',
- default: 'false',
- },
- keepMounted: {
- type: 'boolean',
- default: 'false',
- },
- ...renderPropDefs,
- ...classNamePropDefs,
- ...stylePropDefs,
-};
diff --git a/canon-docs/src/app/(docs)/components/container/props.ts b/canon-docs/src/app/(docs)/components/container/props.ts
deleted file mode 100644
index 4a3410ec12..0000000000
--- a/canon-docs/src/app/(docs)/components/container/props.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import {
- classNamePropDefs,
- stylePropDefs,
- gapPropDefs,
-} from '../../../../utils/propDefs';
-import type { PropDef } from '../../../../utils/propDefs';
-
-export const containerPropDefs: Record = {
- ...gapPropDefs,
- ...classNamePropDefs,
- ...stylePropDefs,
-};
diff --git a/canon-docs/src/app/(docs)/components/flex/page.mdx b/canon-docs/src/app/(docs)/components/flex/page.mdx
deleted file mode 100644
index 8150f3e3c5..0000000000
--- a/canon-docs/src/app/(docs)/components/flex/page.mdx
+++ /dev/null
@@ -1,83 +0,0 @@
-import { PropsTable } from '@/components/PropsTable';
-import { Tabs } from '@/components/Tabs';
-import { CodeBlock } from '@/components/CodeBlock';
-import {
- flexFAQ1,
- flexSimple,
- flexResponsive,
- flexAlign,
-} from '@/snippets/code-snippets';
-import { Snippet } from '@/components/Snippet';
-import { FlexSnippet } from '@/snippets/stories-snippets';
-import { flexPropDefs } from './props';
-import { spacingPropDefs } from '../../../../utils/propDefs';
-
-# Flex
-
-This is the flex container component. It will help to define the number of
-columns that will be used in the grid. You can also define the gap between the
-columns. All values are responsive.
-
-}
- code={`
-
-
-
-`}
-/>
-
-
-
- Usage
-
-
-
-`}
- />
-
-
-
-## API reference
-
-
-
-The grid component also accepts all the spacing props from the Box component.
-
-
-
-## Common questions
-
-### Can I stack horizontally?
-
-The Flex component only allows for stacking elements vertically. If you want
-to create a column layout, please use the Grid component.
-
-
-
-## Examples
-
-### Simple
-
-A simple example of how to use the Flex component.
-
-
-
-### Responsive
-
-The Flex component also supports responsive values, making it easy to create
-responsive designs.
-
-
-
-### Align
-
-The Flex component also supports responsive alignment, making it easy to
-create responsive designs.
-
-
diff --git a/canon-docs/src/app/(docs)/components/flex/props.ts b/canon-docs/src/app/(docs)/components/flex/props.ts
deleted file mode 100644
index 2268a6909d..0000000000
--- a/canon-docs/src/app/(docs)/components/flex/props.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import {
- PropDef,
- childrenPropDefs,
- classNamePropDefs,
- stylePropDefs,
-} from '../../../../utils/propDefs';
-
-export const flexPropDefs: Record = {
- align: {
- type: 'enum',
- values: ['start', 'center', 'end', 'baseline', 'stretch'],
- responsive: true,
- },
- direction: {
- type: 'enum',
- values: ['row', 'column', 'row-reverse', 'column-reverse'],
- responsive: true,
- },
- justify: {
- type: 'enum',
- values: ['start', 'center', 'end', 'between'],
- responsive: true,
- },
- ...childrenPropDefs,
- ...classNamePropDefs,
- ...stylePropDefs,
-};
diff --git a/canon-docs/src/app/(docs)/components/grid/props.ts b/canon-docs/src/app/(docs)/components/grid/props.ts
deleted file mode 100644
index a9e8717fa1..0000000000
--- a/canon-docs/src/app/(docs)/components/grid/props.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-import {
- PropDef,
- childrenPropDefs,
- classNamePropDefs,
- stylePropDefs,
-} from '../../../../utils/propDefs';
-
-const columnsValues = [
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8',
- '9',
- '10',
- '11',
- '12',
-];
-
-export const gridPropDefs: Record = {
- columns: {
- type: 'enum | string',
- values: [...columnsValues, 'auto'],
- responsive: true,
- default: 'auto',
- },
- ...childrenPropDefs,
- ...classNamePropDefs,
- ...stylePropDefs,
-};
-
-export const gridItemPropDefs: Record = {
- colSpan: {
- type: 'enum | string',
- values: [...columnsValues, 'full'],
- responsive: true,
- },
- rowSpan: {
- type: 'enum | string',
- values: [...columnsValues, 'full'],
- responsive: true,
- },
- start: {
- type: 'enum | string',
- values: [...columnsValues, 'auto'],
- responsive: true,
- },
- end: {
- type: 'enum | string',
- values: [...columnsValues, 'auto'],
- responsive: true,
- },
- ...childrenPropDefs,
- ...classNamePropDefs,
- ...stylePropDefs,
-};
diff --git a/canon-docs/src/app/(docs)/components/heading/page.mdx b/canon-docs/src/app/(docs)/components/heading/page.mdx
deleted file mode 100644
index 10fd60bef1..0000000000
--- a/canon-docs/src/app/(docs)/components/heading/page.mdx
+++ /dev/null
@@ -1,74 +0,0 @@
-import { PropsTable } from '@/components/PropsTable';
-import { HeadingSnippet } from '@/snippets/stories-snippets';
-import { Snippet } from '@/components/Snippet';
-import { Tabs } from '@/components/Tabs';
-import { CodeBlock } from '@/components/CodeBlock';
-import { headingPropDefs } from './props';
-
-# Heading
-
-Headings are used to structure the content of your page.
-
-}
- code={`Hello World!`}
-/>
-
-
-
- Usage
- Theming
-
-
-
-`}
- />
-
-
- We recommend starting with our [global tokens](/theme/theming) to customize the library and align it with
- your brand. For additional flexibility, you can use the provided class names for each element listed below.
- `}
- />
-
-
-
-
-## API reference
-
-
-
-## Examples
-
-### All variants
-
-The `Heading` component has a `variant` prop that can be used to change the
-appearance of the heading.
-
-}
- code={`
- Display
- Title 1
- Title 2
- Title 3
- Title 4
-`}
-/>
-
-### Responsive
-
-You can also use the `variant` prop to change the appearance of the text based
-on the screen size.
-
-
- Responsive heading
- `}
-/>
diff --git a/canon-docs/src/app/(docs)/components/heading/props.ts b/canon-docs/src/app/(docs)/components/heading/props.ts
deleted file mode 100644
index a3dd3288ff..0000000000
--- a/canon-docs/src/app/(docs)/components/heading/props.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { classNamePropDefs, stylePropDefs } from '../../../../utils/propDefs';
-import type { PropDef } from '../../../../utils/propDefs';
-
-export const headingPropDefs: Record = {
- variant: {
- type: 'enum',
- values: ['display', 'title1', 'title2', 'title3', 'title4', 'title5'],
- responsive: true,
- },
- children: {
- type: 'enum',
- values: ['ReactNode'],
- responsive: false,
- },
- ...classNamePropDefs,
- ...stylePropDefs,
-};
diff --git a/canon-docs/src/app/(docs)/components/icon-button/page.mdx b/canon-docs/src/app/(docs)/components/icon-button/page.mdx
deleted file mode 100644
index 60530ec9ea..0000000000
--- a/canon-docs/src/app/(docs)/components/icon-button/page.mdx
+++ /dev/null
@@ -1,97 +0,0 @@
-import { PropsTable } from '@/components/PropsTable';
-import { Snippet } from '@/components/Snippet';
-import { Tabs } from '@/components/Tabs';
-import { CodeBlock } from '@/components/CodeBlock';
-import { IconButtonSnippet } from '@/snippets/stories-snippets';
-import { iconButtonVariants } from '@/snippets/code-snippets';
-import { iconButtonPropDefs } from './props';
-
-# Icon Button
-
-A button component with a single icon that can be used to trigger actions.
-
-}
- code={`
-
-
- `}
-/>
-
-
-
- Usage
- Theming
-
-
-
-`}
- />
-
-
- We recommend starting with our [global tokens](/theme/theming) to customize the library and align it with
- your brand. For additional flexibility, you can use the provided class names for each element listed below.
- `}
- />
-
-
-
-
-## API reference
-
-
-
-## Examples
-
-### Variants
-
-Here's a view when buttons have different variants.
-
-}
- code={iconButtonVariants}
-/>
-
-### Sizes
-
-Here's a view when buttons have different sizes.
-
-}
- code={`
-
-
-`}
-/>
-
-### Disabled
-
-Here's a view when buttons are disabled.
-
-}
- code={``}
-/>
-
-### Responsive
-
-Here's a view when buttons are responsive.
-
-`}
-/>
diff --git a/canon-docs/src/app/(docs)/components/icon-button/props.ts b/canon-docs/src/app/(docs)/components/icon-button/props.ts
deleted file mode 100644
index bcb1580247..0000000000
--- a/canon-docs/src/app/(docs)/components/icon-button/props.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { classNamePropDefs, stylePropDefs } from '../../../../utils/propDefs';
-import type { PropDef } from '../../../../utils/propDefs';
-
-export const iconButtonPropDefs: Record = {
- variant: {
- type: 'enum',
- values: ['primary', 'secondary'],
- default: 'primary',
- responsive: true,
- },
- size: {
- type: 'enum',
- values: ['small', 'medium'],
- default: 'medium',
- responsive: true,
- },
- icon: { type: 'enum', values: 'icon', responsive: false },
- ...classNamePropDefs,
- ...stylePropDefs,
-};
diff --git a/canon-docs/src/app/(docs)/components/icon/page.mdx b/canon-docs/src/app/(docs)/components/icon/page.mdx
deleted file mode 100644
index 66be460d13..0000000000
--- a/canon-docs/src/app/(docs)/components/icon/page.mdx
+++ /dev/null
@@ -1,44 +0,0 @@
-import { PropsTable } from '@/components/PropsTable';
-import { IconSnippet } from '@/snippets/stories-snippets';
-import { Snippet } from '@/components/Snippet';
-import { Tabs } from '@/components/Tabs';
-import { CodeBlock } from '@/components/CodeBlock';
-import { iconPropDefs } from './props';
-
-# Icon
-
-Icons are used to represent an action or a state.
-
-}
- code={``}
-/>
-
-
-
- Usage
- Theming
-
-
-
-`}
- />
-
-
- We recommend starting with our [global tokens](/theme/theming) to customize the library and align it with
- your brand. For additional flexibility, you can use the provided class names for each element listed below.
- `}
- />
-
-
-
-
-## API reference
-
-
diff --git a/canon-docs/src/app/(docs)/components/link/page.mdx b/canon-docs/src/app/(docs)/components/link/page.mdx
deleted file mode 100644
index 64a3261590..0000000000
--- a/canon-docs/src/app/(docs)/components/link/page.mdx
+++ /dev/null
@@ -1,84 +0,0 @@
-import { PropsTable } from '@/components/PropsTable';
-import { Snippet } from '@/components/Snippet';
-import { Tabs } from '@/components/Tabs';
-import { CodeBlock } from '@/components/CodeBlock';
-import {
- MenuSnippet,
- ButtonSnippet,
- LinkSnippet,
-} from '@/snippets/stories-snippets';
-import { linkPropDefs } from './props';
-
-# Link
-
-A link component that renders a `` element.
-
-}
- code={`Sign up for Backstage`}
-/>
-
-
-
- Usage
- Theming
-
-
- Sign up for Backstage`}
- />
-
-
- We recommend starting with our [global tokens](/theme/theming) to customize the library and align it with
- your brand. For additional flexibility, you can use the provided class names for each element listed below.
- - `canon-Link`
- - `canon-Link[data-variant='body']`
- - `canon-Link[data-variant='subtitle']`
- - `canon-Link[data-variant='caption']`
- - `canon-Link[data-variant='label']`
- - `canon-Link[data-weight='regular']`
- - `canon-Link[data-weight='bold']`
-
-
-
-## API reference
-
-
-
-## Examples
-
-### Variants
-
-Here's a view when links have different variants.
-
-}
- code={`
-
-
-
-
- `}
-/>
-
-### Weights
-
-Here's a view when links have different weights.
-
-}
- code={`
-
-
- `}
-/>
diff --git a/canon-docs/src/app/(docs)/components/link/props.ts b/canon-docs/src/app/(docs)/components/link/props.ts
deleted file mode 100644
index 83507c5594..0000000000
--- a/canon-docs/src/app/(docs)/components/link/props.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { classNamePropDefs, stylePropDefs } from '@/utils/propDefs';
-import type { PropDef } from '@/utils/propDefs';
-
-export const linkPropDefs: Record = {
- to: {
- type: 'string',
- },
- variant: {
- type: 'enum',
- values: ['subtitle', 'body', 'caption', 'label'],
- default: 'body',
- responsive: true,
- },
- weight: {
- type: 'enum',
- values: ['regular', 'bold'],
- default: 'regular',
- responsive: true,
- },
- ...classNamePropDefs,
- ...stylePropDefs,
-};
diff --git a/canon-docs/src/app/(docs)/components/menu/page.mdx b/canon-docs/src/app/(docs)/components/menu/page.mdx
deleted file mode 100644
index 98c4949438..0000000000
--- a/canon-docs/src/app/(docs)/components/menu/page.mdx
+++ /dev/null
@@ -1,157 +0,0 @@
-import { PropsTable } from '@/components/PropsTable';
-import { Snippet } from '@/components/Snippet';
-import { Tabs } from '@/components/Tabs';
-import { CodeBlock } from '@/components/CodeBlock';
-import { MenuSnippet } from '@/snippets/stories-snippets';
-import { BaseUI } from '@/components/HeadlessBanners/BaseUI';
-import {
- menuRootPropDefs,
- menuTriggerPropDefs,
- menuPositionerPropDefs,
- menuItemPropDefs,
-} from './props';
-
-# Menu
-
-A list of actions in a dropdown, enhanced with keyboard navigation.
-
-}
- code={`
- (
-
- )}
- />
-
-
-
- Settings
- Invite new members
- Download app
- Log out
-
-
-
- `}
-/>
-
-
-
- Usage
- Theming
-
-
-
-
-
-
-
-
-
-
-
- `}
- />
-
-
- We recommend starting with our [global tokens](/theme/theming) to customize the library and align it with
- your brand. For additional flexibility, you can use the provided class names for each element listed below.
- - `canon-MenuTrigger`
- - `canon-MenuBackdrop`
- - `canon-MenuPositioner`
- - `canon-MenuPopup`
- - `canon-MenuArrow`
- - `canon-MenuItem`
- - `canon-MenuGroup`
- - `canon-MenuGroupLabel`
- - `canon-MenuRadioGroup`
- - `canon-MenuRadioItem`
- - `canon-MenuRadioItemIndicator`
- - `canon-MenuCheckboxItem`
- - `canon-MenuCheckboxItemIndicator`
- - `canon-MenuSubmenuTrigger`
- - `canon-MenuSeparator`
-
-
-
-## API reference
-
-
-
-### Menu.Root
-
-Groups all parts of the menu. Doesn't render its own HTML element.
-
-
-
-### Menu.Trigger
-
-The trigger by default render a simple unstyled button. Because menus can be rendered in different ways, we recommend
-using the `render` prop to render a custom trigger.
-
- } />`} />
-
-
-
-### Menu.Positioner
-
-Positions the menu popup against the trigger. Renders a `
diff --git a/canon-docs/src/components/LayoutComponents/index.ts b/canon-docs/src/components/LayoutComponents/index.ts
index 55cc9f25ef..8efb793bbd 100644
--- a/canon-docs/src/components/LayoutComponents/index.ts
+++ b/canon-docs/src/components/LayoutComponents/index.ts
@@ -1,16 +1 @@
-/*
- * Copyright 2024 The Backstage Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
export { LayoutComponents } from './LayoutComponents';
diff --git a/canon-docs/src/components/LayoutComponents/svgs/box.tsx b/canon-docs/src/components/LayoutComponents/svgs/box.tsx
index b7f6a097e5..ce1a746f32 100644
--- a/canon-docs/src/components/LayoutComponents/svgs/box.tsx
+++ b/canon-docs/src/components/LayoutComponents/svgs/box.tsx
@@ -1,18 +1,3 @@
-/*
- * Copyright 2024 The Backstage Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
export const BoxSvg = () => {
return (