# Release v1.47.0-next.3

Upgrade Helper: [https://backstage.github.io/upgrade-helper/?to=1.47.0-next.3](https://backstage.github.io/upgrade-helper/?to=1.47.0-next.3)

## @backstage/backend-defaults@0.15.0-next.2

### Minor Changes

- 6fc00e6: Added action filtering support with glob patterns and attribute constraints.

  The `ActionsService` now supports filtering actions based on configuration. This allows controlling which actions are exposed to consumers like the MCP backend.

  Configuration example:

  ```yaml
  backend:
    actions:
      pluginSources:
        - catalog
        - scaffolder
      filter:
        include:
          - id: 'catalog:*'
            attributes:
              destructive: false
          - id: 'scaffolder:*'
        exclude:
          - id: '*:delete-*'
          - attributes:
              readOnly: false
  ```

  Filtering logic:

  - `include`: Rules for actions to include. Each rule can specify an `id` glob pattern and/or `attributes` constraints. An action must match at least one rule to be included. If no include rules are specified, all actions are included by default.
  - `exclude`: Rules for actions to exclude. Takes precedence over include rules.
  - Each rule combines `id` and `attributes` with AND logic (both must match if specified).

### Patch Changes

- Updated dependencies
  - @backstage/backend-app-api@1.4.0
  - @backstage/plugin-auth-node@0.6.10
  - @backstage/plugin-permission-node@0.10.7

## @backstage/ui@0.11.0-next.1

### Minor Changes

- 243e5e7: **BREAKING**: Redesigned Table component with new `useTable` hook API.

  - The `Table` component (React Aria wrapper) is renamed to `TableRoot`
  - New high-level `Table` component that handles data display, pagination, sorting, and selection
  - The `useTable` hook is completely redesigned with a new API supporting three pagination modes (complete, offset, cursor)
  - New types: `ColumnConfig`, `TableProps`, `TableItem`, `UseTableOptions`, `UseTableResult`

  New features include unified pagination modes, debounced query changes, stale data preservation during reloads, and row selection with toggle/replace behaviors.

  **Migration guide:**

  1.  Update imports and use the new `useTable` hook:

  ```diff
  -import { Table, useTable } from '@backstage/ui';
  -const { data, paginationProps } = useTable({ data: items, pagination: {...} });
  +import { Table, useTable, type ColumnConfig } from '@backstage/ui';
  +const { tableProps } = useTable({
  +  mode: 'complete',
  +  getData: () => items,
  +});
  ```

  2.  Define columns and render with the new Table API:

  ```diff
  -<Table aria-label="My table">
  -  <TableHeader>...</TableHeader>
  -  <TableBody items={data}>...</TableBody>
  -</Table>
  -<TablePagination {...paginationProps} />
  +const columns: ColumnConfig<Item>[] = [
  +  { id: 'name', label: 'Name', isRowHeader: true, cell: item => <CellText title={item.name} /> },
  +  { id: 'type', label: 'Type', cell: item => <CellText title={item.type} /> },
  +];
  +
  +<Table columnConfig={columns} {...tableProps} />
  ```

  Affected components: Table, TableRoot, TablePagination

- 95246eb: **Breaking** Updating color tokens to match the new neutral style on different surfaces.

  ## Migration notes

  There's no direct replacement for the old tint tokens but you can use the new neutral set of color tokens on surface 0 or 1 as a replacement.

  - `--bui-bg-tint` can be replaced by `--bui-bg-neutral-on-surface-0`
  - `--bui-bg-tint-hover` can be replaced by `--bui-bg-neutral-on-surface-0-hover`
  - `--bui-bg-tint-pressed` can be replaced by `--bui-bg-neutral-on-surface-0-pressed`
  - `--bui-bg-tint-disabled` can be replaced by `--bui-bg-neutral-on-surface-0-disabled`

- ea0c6d8: Introduce new `ToggleButton` & `ToggleButtonGroup` components in Backstage UI

### Patch Changes

- 21c87cc: Fixes disabled state in primary and secondary buttons in Backstage UI.
- b3253b6: Fixed `Link` component causing hard page refreshes for internal routes. The component now properly uses React Router's navigation instead of full page reloads.

## @backstage/plugin-auth-backend@0.26.0-next.0

### Minor Changes

- 7ffc873: Fix `user_created_at` migration causing `SQLiteError` regarding use of non-constants for defaults

### Patch Changes

- Updated dependencies
  - @backstage/plugin-auth-node@0.6.10

## @backstage/plugin-events-backend-module-kafka@0.3.0-next.0

### Minor Changes

- ef5bbd8: Add support for Kafka offset configuration (`fromBeginning`) and `autoCommit`

## @backstage/plugin-home@0.9.0-next.2

### Minor Changes

- e091a83: Widget configurations are now only saved to storage when the Save button is explicitly clicked. Added a Cancel button that allows users to discard unsaved changes and revert to the last saved state.

## @backstage/backend-dynamic-feature-service@0.7.8-next.2

### Patch Changes

- Updated dependencies
  - @backstage/backend-defaults@0.15.0-next.2
  - @backstage/plugin-auth-node@0.6.10
  - @backstage/plugin-catalog-backend@3.3.1-next.1
  - @backstage/plugin-events-backend@0.5.10-next.0
  - @backstage/plugin-permission-node@0.10.7
  - @backstage/plugin-search-backend-node@1.4.0

## @backstage/backend-test-utils@1.10.3-next.1

### Patch Changes

- Updated dependencies
  - @backstage/backend-defaults@0.15.0-next.2
  - @backstage/backend-app-api@1.4.0
  - @backstage/plugin-auth-node@0.6.10

## @backstage/create-app@0.7.8-next.3

### Patch Changes

- Bumped create-app version.

## @techdocs/cli@1.10.4-next.2

### Patch Changes

- Updated dependencies
  - @backstage/backend-defaults@0.15.0-next.2

## @backstage/plugin-api-docs@0.13.3-next.2

### Patch Changes

- 0216090: Updated dependency `@types/swagger-ui-react` to `^5.0.0`.
- abeba2b: Fix types with new bumped dependency
- Updated dependencies
  - @backstage/plugin-catalog@1.32.2-next.2

## @backstage/plugin-auth-backend-module-aws-alb-provider@0.4.11-next.0

### Patch Changes

- Updated dependencies
  - @backstage/plugin-auth-backend@0.26.0-next.0
  - @backstage/plugin-auth-node@0.6.10

## @backstage/plugin-auth-backend-module-oidc-provider@0.4.11-next.1

### Patch Changes

- Updated dependencies
  - @backstage/plugin-auth-backend@0.26.0-next.0
  - @backstage/plugin-auth-node@0.6.10

## @backstage/plugin-catalog@1.32.2-next.2

### Patch Changes

- 7ca91e8: Header in EntityLayout should always be shown.
  Monitoring the loading status caused flickering when the refresh() method of the Async Entity was invoked.

## @backstage/plugin-catalog-backend-module-aws@0.4.19-next.2

### Patch Changes

- Updated dependencies
  - @backstage/backend-defaults@0.15.0-next.2

## @backstage/plugin-catalog-backend-module-github@0.12.1-next.1

### Patch Changes

- cb4b907: Improved efficiency of `GithubOrgEntityProvider` membership event handling and edit team. The provider now fetches only the specific user's teams instead of all organization users when processing membership events, and uses `addEntitiesOperation` instead of `replaceEntitiesOperation` to avoid unnecessary entity deletions.

## @backstage/plugin-catalog-backend-module-gitlab@0.7.7-next.2

### Patch Changes

- Updated dependencies
  - @backstage/backend-defaults@0.15.0-next.2

## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.7.8-next.1

### Patch Changes

- Updated dependencies
  - @backstage/backend-defaults@0.15.0-next.2
  - @backstage/plugin-catalog-backend@3.3.1-next.1

## @backstage/plugin-catalog-backend-module-puppetdb@0.2.18-next.0

### Patch Changes

- a307700: Fixed crash when `latest_report_status` is undefined

## @backstage/plugin-devtools-backend@0.5.13-next.1

### Patch Changes

- Updated dependencies
  - @backstage/backend-defaults@0.15.0-next.2
  - @backstage/plugin-permission-node@0.10.7

## @backstage/plugin-mcp-actions-backend@0.1.7-next.1

### Patch Changes

- 4d82a35: build(deps): bump `@modelcontextprotocol/sdk` from 1.24.3 to 1.25.2
- Updated dependencies
  - @backstage/backend-defaults@0.15.0-next.2

## @backstage/plugin-scaffolder@1.35.1-next.2

### Patch Changes

- 9d75495: Fixed bug in RepoUrlPickerComponent component where repository names were not being autocompleted.

## @backstage/plugin-scaffolder-backend@3.1.1-next.2

### Patch Changes

- Updated dependencies
  - @backstage/backend-defaults@0.15.0-next.2
  - @backstage/plugin-scaffolder-backend-module-github@0.9.4-next.1
  - @backstage/plugin-auth-node@0.6.10
  - @backstage/plugin-permission-node@0.10.7

## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.3.19-next.2

### Patch Changes

- Updated dependencies
  - @backstage/backend-defaults@0.15.0-next.2

## @backstage/plugin-scaffolder-backend-module-github@0.9.4-next.1

### Patch Changes

- bb7088b: Added options to set [workflow access level][access-level] for repositories to `github:repo:create`

  This is useful when creating repositories for GitHub Actions to manage access
  to the workflows during creation.

  ```diff
   - action: github:repo:create
      id: create-repo
      input:
        repoUrl: github.com?owner=owner&repo=repo
        visibility: private
  +     workflowAccess: organization
  ```

  [access-level]: https://docs.github.com/en/rest/actions/permissions?apiVersion=2022-11-28#set-the-level-of-access-for-workflows-outside-of-the-repository

## @backstage/plugin-search-backend@2.0.10-next.1

### Patch Changes

- Updated dependencies
  - @backstage/backend-defaults@0.15.0-next.2
  - @backstage/plugin-permission-node@0.10.7
  - @backstage/plugin-search-backend-node@1.4.0

## @backstage/plugin-techdocs-backend@2.1.4-next.2

### Patch Changes

- Updated dependencies
  - @backstage/backend-defaults@0.15.0-next.2

## @backstage/plugin-user-settings-backend@0.3.10-next.1

### Patch Changes

- Updated dependencies
  - @backstage/backend-defaults@0.15.0-next.2
  - @backstage/plugin-auth-node@0.6.10

## example-app@0.2.117-next.3

### Patch Changes

- Updated dependencies
  - @backstage/ui@0.11.0-next.1
  - @backstage/plugin-catalog@1.32.2-next.2
  - @backstage/plugin-home@0.9.0-next.2
  - @backstage/plugin-api-docs@0.13.3-next.2
  - @backstage/plugin-scaffolder@1.35.1-next.2
  - @backstage/cli@0.35.2-next.1

## example-app-next@0.0.31-next.3

### Patch Changes

- Updated dependencies
  - @backstage/ui@0.11.0-next.1
  - @backstage/plugin-catalog@1.32.2-next.2
  - @backstage/plugin-home@0.9.0-next.2
  - @backstage/plugin-api-docs@0.13.3-next.2
  - @backstage/plugin-scaffolder@1.35.1-next.2
  - @backstage/cli@0.35.2-next.1

## example-backend@0.0.46-next.2

### Patch Changes

- Updated dependencies
  - @backstage/backend-defaults@0.15.0-next.2
  - @backstage/plugin-mcp-actions-backend@0.1.7-next.1
  - @backstage/plugin-auth-backend@0.26.0-next.0
  - @backstage/plugin-scaffolder-backend-module-github@0.9.4-next.1
  - @backstage/plugin-app-backend@0.5.9
  - @backstage/plugin-auth-backend-module-github-provider@0.4.0
  - @backstage/plugin-auth-backend-module-openshift-provider@0.1.3
  - @backstage/plugin-auth-node@0.6.10
  - @backstage/plugin-catalog-backend@3.3.1-next.1
  - @backstage/plugin-devtools-backend@0.5.13-next.1
  - @backstage/plugin-events-backend@0.5.10-next.0
  - @backstage/plugin-events-backend-module-google-pubsub@0.1.7
  - @backstage/plugin-kubernetes-backend@0.21.0
  - @backstage/plugin-notifications-backend@0.6.1
  - @backstage/plugin-permission-backend@0.7.7
  - @backstage/plugin-permission-node@0.10.7
  - @backstage/plugin-proxy-backend@0.6.9
  - @backstage/plugin-scaffolder-backend@3.1.1-next.2
  - @backstage/plugin-search-backend@2.0.10-next.1
  - @backstage/plugin-search-backend-node@1.4.0
  - @backstage/plugin-signals-backend@0.3.11
  - @backstage/plugin-techdocs-backend@2.1.4-next.2
