docs/releases/v1.39.0-next.3-changelog.md
Upgrade Helper: https://backstage.github.io/upgrade-helper/?to=1.39.0-next.3
1e0230e: 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.
OAuthRequestDialog to re-render on mount.d945206: 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.
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.
integrations:
azure:
- host: dev.azure.com
credentials:
- - clientId: ${AZURE_CLIENT_ID}
+ - clientId: system-assigned
CatalogTable when pagination is enabled.1e06afd: 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.
Updated dependencies
lazyCompilation and refreshOptions for rspack{ flags: { allowUnknownExtensionConfig: true } } to createSpecializedApp.163f3da: 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).
typedoc to ^0.28.0.dangerousEntityRefFallback option for signInWithCatalogUser in AuthResolverContext.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.dangerouslyAllowSignInWithoutUserInCatalog auth resolver config.ab53e6f: 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:
export const usernameMatchingUserEntityName = createSignInResolverFactory({
optionsSchema: z
.object({
dangerouslyAllowSignInWithoutUserInCatalog: z.boolean().optional(),
})
.optional(),
create(options = {}) {
return async (
info: SignInInfo<OAuthAuthenticatorResult<PassportProfile>>,
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,
},
);
};
},
});
Updated dependencies
entity-fetch audit events are not visible by default in the logs and are only displayed when the log severity level is adjusted."f7ca0fe: Added the Catalog presentation API to the HomePageRecentlyVisited and HomePageTopVisited components
eddd96c: Added optional title prop to customHomePageGrid
16eb4bf: 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.
195323f: Export root page route from the home plugin to enable adding links/nav to it from outside the plugin
d710d74: docs: Update default for preventCollision prop
Updated dependencies
16eb4bf: 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.
Updated dependencies
f6480c7: Fix dataloader caching, and use the proper catalog service ref
e099d0a: Notifications which mention user entity refs are now replaced with Slack compatible mentions.
Example: Welcome <@user:default/billy>! -> Welcome <@U123456890>!
Updated dependencies
search.elasticsearch.queryOptions config were not picked up by the ElasticSearchSearchEngine.filterValue in SearchFilter.Autocomplete to prevent unintended resets