Back to Backstage

Release v1.49.0-next.2

docs/releases/v1.49.0-next.2-changelog.md

1.51.0-next.262.4 KB
Original Source

Release v1.49.0-next.2

Upgrade Helper: https://backstage.github.io/upgrade-helper/?to=1.49.0-next.2

@backstage/[email protected]

Major Changes

  • 5fc35bb: Migrated EntityAboutCard, EntityLinksCard, EntityLabelsCard, GroupProfileCard, and UserProfileCard from MUI/InfoCard to use the new BUI card layout and BUI components where possible.

    BREAKING: Removed variant prop from EntityAboutCard, EntityUserProfileCard, EntityGroupProfileCard, EntityLabelsCard, EntityLinksCard. Removed gridSizes prop from AboutField.

    Migration:

    Simply delete the obsolete variant and gridSizes props, e.g:

    diff
    -      <EntityAboutCard variant="gridItem" />
    +      <EntityAboutCard />
    
    diff
    -      <AboutField label="Owner" gridSizes={{ xs: 12, sm: 6, lg: 4 }} />
    +      <AboutField label="Owner" />
    

Patch Changes

@backstage/[email protected]

Minor Changes

  • 545557a: Registration errors should be forwarded as BackendStartupResult

Patch Changes

@backstage/[email protected]

Minor Changes

  • 015668c: Added cancelTask method to the SchedulerService interface and implementation, allowing cancellation of currently running scheduled tasks. For global tasks, the database lock is released and a periodic liveness check aborts the running task function. For local tasks, the task's abort signal is triggered directly. A new POST /.backstage/scheduler/v1/tasks/:id/cancel endpoint is also available.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 5d95e8e: Add an onConflict option to location creation that can refresh an existing location instead of throwing a conflict error.

@backstage/[email protected]

Minor Changes

  • d0f4cd2: Added new auth command group for authenticating the CLI with Backstage instances using OAuth 2.0 with a pre-registered client metadata document. Commands include login, logout, list, show, print-token, and select for managing multiple authenticated instances.

Patch Changes

  • a4e5902: Internal refactor of the CLI command registration
  • ff4a45a: Migrated remaining CLI command handlers from commander to cleye for argument parsing. Several camelCase CLI flags have been deprecated in favor of their kebab-case equivalents (e.g. --successCache--success-cache). The old camelCase forms still work but will now log a deprecation warning. Please update any scripts or CI configurations to use the kebab-case versions.
  • 4a75544: Updated dependency react-refresh to ^0.18.0.
  • Updated dependencies

@backstage/[email protected]

Minor Changes

  • 92af1ae: BREAKING: Removed the allowUnknownExtensionConfig option from createSpecializedApp. This flag had no effect and was a no-op, so no behavioral changes are expected.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 92af1ae: BREAKING: Removed the allowUnknownExtensionConfig option from createApp. This flag had no effect and was a no-op, so no behavioral changes are expected.
  • 33de79d: BREAKING: Removed the deprecated createPublicSignInApp function. Use createApp from @backstage/frontend-defaults with appModulePublicSignIn from @backstage/plugin-app/alpha instead.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 6573901: BREAKING: Removed the deprecated AnyExtensionDataRef type. Use ExtensionDataRef without type parameters instead.
  • a9440f0: BREAKING: Simplified the ExtensionAttachTo type to only support a single attachment target. The array form for attaching to multiple extension points has been removed. Also removed the deprecated ExtensionAttachToSpec type alias.

Patch Changes

  • 8a3a906: Deprecated NavItemBlueprint. Nav items are now automatically inferred from PageBlueprint extensions based on their title and icon params.
  • b15a685: Deprecated withApis, use the withApis export from @backstage/core-compat-api instead.
  • 0452d02: Add optional description field to plugin-level feature flags.
  • 1bec049: Fixed inconsistent JSX.Element type reference in the DialogApiDialog.update method signature.
  • 2c383b5: Deprecated AnalyticsImplementationBlueprint and AnalyticsImplementationFactory in favor of the exports from @backstage/plugin-app-react.
  • dab6c46: Deprecated the ExtensionFactoryMiddleware type, which has been moved to @backstage/frontend-app-api.
  • d0206c4: Removed the deprecated defaultPath migration helper from PageBlueprint params.
  • edb872c: Renamed the PageTab type to PageLayoutTab. The old PageTab name is now a deprecated type alias.
  • fe848e0: Changed useApiHolder to return an empty ApiHolder instead of throwing when used outside of an API context.

@backstage/[email protected]

Minor Changes

  • 5d95e8e: Add an onConflict option to location creation that can refresh an existing location instead of throwing a conflict error.

Patch Changes

@backstage/[email protected]

Minor Changes

  • d14b6e0: BREAKING: Migrated MembersListCard, OwnershipCard, and CatalogGraphCard to use BUI card primitives via EntityInfoCard.

    • OwnershipCard: Removed variant and maxScrollHeight props. Card height and scrolling are now controlled by the parent container — the card fills its container and the body scrolls automatically when content overflows.
    • CatalogGraphCard: Removed variant prop.
    • MembersListCard: Translation keys subtitle, paginationLabel, aggregateMembersToggle.directMembers, aggregateMembersToggle.aggregatedMembers, and aggregateMembersToggle.ariaLabel have been removed. The title key now includes {{groupName}}. New keys added: cardLabel, noSearchResult, aggregateMembersToggle.label.
    • OwnershipCard: Translation keys aggregateRelationsToggle.directRelations, aggregateRelationsToggle.aggregatedRelations, and aggregateRelationsToggle.ariaLabel have been removed. New key added: aggregateRelationsToggle.label.
    • Removed MemberComponentClassKey export, and root and cardContent from MembersListCardClassKey, card from OwnershipCardClassKey, and card from CatalogGraphCardClassKey.

    Migration:

    diff
    - <EntityOwnershipCard variant="gridItem" />
    + <EntityOwnershipCard />
    
    diff
    - <EntityCatalogGraphCard variant="gridItem" height={400} />
    + <EntityCatalogGraphCard height={400} />
    

Patch Changes

@backstage/[email protected]

Minor Changes

  • d14b6e0: Exported useEntityRefLink hook that returns a function for generating entity page URLs from entity references.
  • c6080eb: Added EntityInfoCard component to @backstage/plugin-catalog-react as a BUI-based card wrapper for entity page cards.

Patch Changes

@backstage/[email protected]

Minor Changes

  • cd62d78: BREAKING: Only send direct messages to user entity recipients. Notifications sent to non-user entities no longer send Slack direct messages to resolved users.

Patch Changes

@backstage/[email protected]

Minor Changes

  • d14b6e0: BREAKING: Migrated MembersListCard, OwnershipCard, and CatalogGraphCard to use BUI card primitives via EntityInfoCard.

    • OwnershipCard: Removed variant and maxScrollHeight props. Card height and scrolling are now controlled by the parent container — the card fills its container and the body scrolls automatically when content overflows.
    • CatalogGraphCard: Removed variant prop.
    • MembersListCard: Translation keys subtitle, paginationLabel, aggregateMembersToggle.directMembers, aggregateMembersToggle.aggregatedMembers, and aggregateMembersToggle.ariaLabel have been removed. The title key now includes {{groupName}}. New keys added: cardLabel, noSearchResult, aggregateMembersToggle.label.
    • OwnershipCard: Translation keys aggregateRelationsToggle.directRelations, aggregateRelationsToggle.aggregatedRelations, and aggregateRelationsToggle.ariaLabel have been removed. New key added: aggregateRelationsToggle.label.
    • Removed MemberComponentClassKey export, and root and cardContent from MembersListCardClassKey, card from OwnershipCardClassKey, and card from CatalogGraphCardClassKey.

    Migration:

    diff
    - <EntityOwnershipCard variant="gridItem" />
    + <EntityOwnershipCard />
    
    diff
    - <EntityCatalogGraphCard variant="gridItem" height={400} />
    + <EntityCatalogGraphCard height={400} />
    
  • 5fc35bb: Migrated EntityAboutCard, EntityLinksCard, EntityLabelsCard, GroupProfileCard, and UserProfileCard from MUI/InfoCard to use the new BUI card layout and BUI components where possible.

    BREAKING: Removed variant prop from EntityAboutCard, EntityUserProfileCard, EntityGroupProfileCard, EntityLabelsCard, EntityLinksCard. Removed gridSizes prop from AboutField.

    Migration:

    Simply delete the obsolete variant and gridSizes props, e.g:

    diff
    -      <EntityAboutCard variant="gridItem" />
    +      <EntityAboutCard />
    
    diff
    -      <AboutField label="Owner" gridSizes={{ xs: 12, sm: 6, lg: 4 }} />
    +      <AboutField label="Owner" />
    

Patch Changes

@backstage/[email protected]

Minor Changes

  • e8736ea: Added secrets schema validation for task creation, retry, and dry-run endpoints. When a template defines spec.secrets.schema, the API validates provided secrets against the schema and returns a 400 error if validation fails.

Patch Changes

@backstage/[email protected]

Minor Changes

  • e8736ea: Added an optional secrets field to TemplateEntityV1beta3 for configuring secrets validation. The schema for validating secrets is defined under secrets.schema as a JSON Schema object.

Patch Changes

@backstage/[email protected]

Minor Changes

  • 470f72d: The LogViewer component from @backstage/core-components now supports downloading logs if a callback is passed to onDownloadLogs

Patch Changes

@backstage/[email protected]

Patch Changes

  • 015668c: Added cancelTask method to the SchedulerService interface and implementation, allowing cancellation of currently running scheduled tasks. For global tasks, the database lock is released and a periodic liveness check aborts the running task function. For local tasks, the task's abort signal is triggered directly. A new POST /.backstage/scheduler/v1/tasks/:id/cancel endpoint is also available.
  • 5fcbef2: Updated dependency express-rate-limit to ^8.0.0.
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • 9361965: Fixed runCheck to ignore stdio of the spawned process, preventing unwanted output from leaking to the terminal.

@backstage/[email protected]

Patch Changes

  • 12d8afe: Added BUIProvider from @backstage/ui to the app shell provider tree, enabling BUI components to fire analytics events through the Backstage analytics system.
  • 0452d02: Add optional description field to plugin-level feature flags.
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • 8b1a847: Fixed Table component layout when both filters and title props are used together. The filter controls now use a dedicated CSS class (filterControls) instead of incorrectly reusing the root container class.
  • 470f72d: The LogViewer component from @backstage/core-components now supports downloading logs if a callback is passed to onDownloadLogs
  • Updated dependencies

@backstage/[email protected]

Patch Changes

  • 0452d02: Add optional description field to plugin-level feature flags.
  • fe848e0: Changed useApiHolder to return an empty ApiHolder instead of throwing when used outside of an API context.
  • Updated dependencies

@backstage/[email protected]

Patch Changes

  • d14b6e0: BREAKING: Migrated MembersListCard, OwnershipCard, and CatalogGraphCard to use BUI card primitives via EntityInfoCard.

    • OwnershipCard: Removed variant and maxScrollHeight props. Card height and scrolling are now controlled by the parent container — the card fills its container and the body scrolls automatically when content overflows.
    • CatalogGraphCard: Removed variant prop.
    • MembersListCard: Translation keys subtitle, paginationLabel, aggregateMembersToggle.directMembers, aggregateMembersToggle.aggregatedMembers, and aggregateMembersToggle.ariaLabel have been removed. The title key now includes {{groupName}}. New keys added: cardLabel, noSearchResult, aggregateMembersToggle.label.
    • OwnershipCard: Translation keys aggregateRelationsToggle.directRelations, aggregateRelationsToggle.aggregatedRelations, and aggregateRelationsToggle.ariaLabel have been removed. New key added: aggregateRelationsToggle.label.
    • Removed MemberComponentClassKey export, and root and cardContent from MembersListCardClassKey, card from OwnershipCardClassKey, and card from CatalogGraphCardClassKey.

    Migration:

    diff
    - <EntityOwnershipCard variant="gridItem" />
    + <EntityOwnershipCard />
    
    diff
    - <EntityCatalogGraphCard variant="gridItem" height={400} />
    + <EntityCatalogGraphCard height={400} />
    
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • b56f573: Deprecated standalone mock API exports in favor of the mockApis namespace. This includes the mock classes (MockAlertApi, MockAnalyticsApi, MockConfigApi, MockErrorApi, MockFetchApi, MockFeatureFlagsApi, MockPermissionApi, MockStorageApi, MockTranslationApi), their option types (MockErrorApiOptions, MockFeatureFlagsApiOptions), and the ErrorWithContext type. MockFetchApiOptions is kept as a non-deprecated export. Use the mockApis namespace instead, for example mockApis.alert() or mockApis.alert.mock().
  • Updated dependencies

@backstage/[email protected]

Patch Changes

  • 1513a0b: Fixed a security vulnerability where path traversal sequences in SCM URLs could be used to access unintended API endpoints using server-side integration credentials.

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • db92751: Added interactive support to the Card component. Pass onPress to make the entire card surface pressable, or href to make it navigate to a URL. A transparent overlay handles the interaction while nested buttons and links remain independently clickable.

  • 12d8afe: Added analytics capabilities to the component library. Components with navigation behavior (Link, ButtonLink, Tab, MenuItem, Tag, Row) now fire analytics events on click when a BUIProvider is present.

    New exports: BUIProvider, useAnalytics, getNodeText, and associated types (AnalyticsTracker, UseAnalyticsFn, BUIProviderProps, AnalyticsEventAttributes).

    Components with analytics support now accept a noTrack prop to suppress event firing.

    Affected components: Link, ButtonLink, Tab, MenuItem, Tag, Row

  • 430d5ed: Fixed interactive cards so that CardBody can scroll when the card has a constrained height. Previously, the overlay element blocked scroll events.

    Affected components: Card

  • ad7c883: Deprecated the HeaderPage component name in favor of Header. The old HeaderPage, HeaderPageProps, HeaderPageOwnProps, HeaderPageBreadcrumb, and HeaderPageDefinition exports are still available as deprecated aliases.

  • f42f4cc: Fixed Table column headers overflowing and wrapping when there is not enough space. Headers now truncate with ellipsis instead.

    Affected components: Table

  • fbd5c5a: Fixed Table rows showing a pointer cursor when not interactive. Rows now only show cursor: pointer when they have an href, are selectable, or are pressable.

    Affected components: Table

  • 7960d54: Added support for native HTML div attributes on the Flex, Grid, and Grid.Item components.

    Affected components: Flex, Grid, Grid.Item

  • 12d8afe: Fixed MenuItem onAction prop ordering so user-provided onAction handlers are chained rather than silently overwritten.

  • bb66b86: The Select trigger now automatically adapts its background colour based on the parent background context.

    Affected components: Select

  • 934ac03: SearchField and TextField now automatically adapt their background color based on the parent bg context, stepping up one neutral level (e.g. neutral-1 → neutral-2) when placed on a neutral background. TextField also gains a focus ring using the --bui-ring token.

    Affected components: SearchField, TextField

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • 2c383b5: Added AnalyticsImplementationBlueprint and AnalyticsImplementationFactory, migrated from @backstage/frontend-plugin-api.
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • d0f4cd2: Added optional client metadata document endpoint at /.well-known/oauth-client/cli.json relative to the auth backend base URL for CLI authentication. Enabled when auth.experimentalClientIdMetadataDocuments.enabled is set to true.
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/plugin-auth-backend-module-bitbucket-server-provider@0.2.13-next.1

Patch Changes

@backstage/plugin-auth-backend-module-cloudflare-access-provider@0.4.13-next.1

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • 106d1b2: Added a defaultUserTransformer.useVerifiedEmails config option for the githubOrg provider. When set to true, the default user transformer prefers organization verified domain emails over the user's public GitHub email. Defaults to false, which uses only the public GitHub email.

    This option has no effect when a custom user transformer is set via the githubOrgEntityProviderTransformsExtensionPoint.

    yaml
    catalog:
      providers:
        githubOrg:
          production:
            githubUrl: https://github.com
            orgs:
              - my-org
            defaultUserTransformer:
              useVerifiedEmails: true
    
  • Updated dependencies

@backstage/[email protected]

Patch Changes

  • 106d1b2: Added a defaultUserTransformer.useVerifiedEmails config option for the githubOrg provider. When set to true, the default user transformer prefers organization verified domain emails over the user's public GitHub email. Defaults to false, which uses only the public GitHub email.

    This option has no effect when a custom user transformer is set via the githubOrgEntityProviderTransformsExtensionPoint.

    yaml
    catalog:
      providers:
        githubOrg:
          production:
            githubUrl: https://github.com
            orgs:
              - my-org
            defaultUserTransformer:
              useVerifiedEmails: true
    
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/plugin-catalog-backend-module-incremental-ingestion@0.7.10-next.2

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • 97eaecf: Fixed scheduler task remaining stuck in running state after pod termination by propagating AbortSignal into MicrosoftGraphOrgEntityProvider.read()
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/plugin-catalog-backend-module-scaffolder-entity-model@0.2.18-next.2

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • c74b697: Added support for splitting MCP actions into multiple servers via mcpActions.servers configuration. Each server gets its own endpoint at /api/mcp-actions/v1/{key} with actions scoped using include/exclude filter rules. Tool names are now namespaced with the plugin ID by default, configurable via mcpActions.namespacedToolNames. When mcpActions.servers is not configured, the plugin continues to serve a single server at /api/mcp-actions/v1.
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.3.19-next.2

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/plugin-search-backend-module-stack-overflow-collator@0.3.18-next.1

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

  • e96f6d9: Removed INHERIT from the ALLOWED_MKDOCS_KEYS set to address a security concern with MkDocs configuration inheritance.
  • Updated dependencies

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

@backstage/[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes

[email protected]

Patch Changes

@internal/[email protected]

Patch Changes

@internal/[email protected]

Patch Changes

[email protected]

Patch Changes

@internal/[email protected]

Patch Changes