docs/releases/v1.45.0-next.2-changelog.md
Upgrade Helper: https://backstage.github.io/upgrade-helper/?to=1.45.0-next.2
instanceMetadata service to return a list of plugins not features.instanceMetadata service to main entrypoint.539cf26: BREAKING: Migrated Avatar component from Base UI to custom implementation with size changes:
x-small size added (1.25rem / 20px)small size unchanged (1.5rem / 24px)medium size unchanged (2rem / 32px, default)large size changed from 3rem to 2.5rem (40px)x-large size added (3rem / 48px)Migration:
# Remove Base UI-specific props
- <Avatar src="..." name="..." render={...} />
+ <Avatar src="..." name="..." />
# Update large size usage to x-large for same visual size
- <Avatar src="..." name="..." size="large" />
+ <Avatar src="..." name="..." size="x-large" />
Added purpose prop for accessibility control ('informative' or 'decoration').
134151f: Fixing styles on SearchField in Backstage UI after migration to CSS modules. SearchField has now its own set of class names. We previously used class names from TextField but this approach was creating some confusion so going forward in your theme you'll be able to theme TextField and SearchField separately.
truncate prop from being spread to the underlying DOM element.SearchResultListItemBlueprint and related components980f240: Moved from ldapjs dependency to ldapts
Type Migration
Custom transformers must now accept Entry from ldapts instead of SearchEntry
from ldapjs The Entry type provides direct property access without need for
.object() or .raw() methods.
If you have custom user or group transformers, update the signature from:
(vendor: LdapVendor, config: UserConfig, entry: SearchEntry) =>
Promise<UserEntity | undefined>;
to
(vendor: LdapVendor, config: UserConfig, entry: Entry) =>
Promise<UserEntity | undefined>;
Search Options
Updated LDAP search configuration typesOnly: false → attributeValues: true
This inverts the boolean logic: ldapjs used negative form while ldapts uses
positive form. Both achieve the same result: retrieving attribute values rather
than just attribute names.
Update LDAP search options in configuration from
options:
typesOnly: false
to
options:
attributeValues: true
API Changes Removed LdapClient.searchStreaming() method. Users should
migrate to LdapClient.search() instead
If you're using searchStreaming directly:
// Before
await client.searchStreaming(dn, options, async entry => {
// process each entry
});
// After
const entries = await client.search(dn, options);
for (const entry of entries) {
// process each entry
}
NOTE:: Both methods have always loaded all entries into memory. The searchStreaming method was only needed internally to handle ldapjs's event-based API.
instanceMetadata service.SearchResultListItemBlueprint and related componentsSearchResultListItemBlueprint and related componentsSearchResultListItemBlueprint and related componentssearch did not handle multiple globsnew command for the @internal scope: it now consistently defaults to the backstage-plugin- infix whether the --scope option is not set or it's set to internal.@backstage/plugin-app-visualizer to the app in the --next template.ExtensionInput to make all type parameters optional.51ff7d8: Allow configuring dynamic client registration token expiration with config auth.experimentalDynamicClientRegistration.tokenExpiration.
Maximum expiration for the DCR token is 24 hours. Default expiration is 1 hour.
Updated dependencies
pageSizes for GitHub GraphQL API queries to prevent RESOURCE_LIMITS_EXCEEDED errors with organizations with large number of repositories. Please see the GitHub Discovery documentation for new configuration options.pageSizes for GitHub GraphQL API queries to prevent RESOURCE_LIMITS_EXCEEDED errors with organizations with large number of teams and members. Please see the GitHub Org Data documentation for new configuration options.15fb764: Show default settings for notifications even before receiving first notification.
Previously, it was not possible for the users to see or modify their notification settings until they had received at least one notification from specific origin or topic. This update ensures that default settings are displayed from the outset, allowing users to customize their preferences immediately.
Updated dependencies
SignalClient would try to subscribe to the same channel twice after an error, instead of just once.