docs/releases/v1.30.0-next.1-changelog.md
Upgrade Helper: https://backstage.github.io/upgrade-helper/?to=1.30.0-next.1
fetch rather than FetchApi. This fixes a bug where the app would immediately try to sign-in again when removing the cookie during logout.ConfigSources that enables configuration of parsing logic. Previously limited to yaml, these ConfigSources now allow for a multitude of parsing options (e.g. JSON).env option of ConfigSources.default now correctly allows undefined members.def53a7: BREAKING Following NotificationTemplateRenderer methods now return a Promise and must be awaited: getSubject, getText and getHtml.
Required changes and example usage:
import { notificationsEmailTemplateExtensionPoint } from '@backstage/plugin-notifications-backend-module-email';
import { Notification } from '@backstage/plugin-notifications-common';
+import { getNotificationSubject, getNotificationTextContent, getNotificationHtmlContent } from 'my-notification-processing-library`
export const notificationsModuleEmailDecorator = createBackendModule({
pluginId: 'notifications',
moduleId: 'email.templates',
register(reg) {
reg.registerInit({
deps: {
emailTemplates: notificationsEmailTemplateExtensionPoint,
},
async init({ emailTemplates }) {
emailTemplates.setTemplateRenderer({
- getSubject(notification) {
+ async getSubject(notification) {
- return `New notification from ${notification.source}`;
+ const subject = await getNotificationSubject(notification);
+ return `New notification from ${subject}`;
},
- getText(notification) {
+ async getText(notification) {
- return notification.content;
+ const text = await getNotificationTextContent(notification);
+ return text;
},
- getHtml(notification) {
+ async getHtml(notification) {
- return `<p>${notification.content}</p>`;
+ const html = await getNotificationHtmlContent(notification);
+ return html;
},
});
},
});
},
});
getPluginRequestToken comments'ES2022' to 'es2022' for better compatibility with older versions of swc.app-config.production.yaml to make it easier to get started with example data3be9aeb: Extensions have been changed to be declared with an array of inputs and outputs, rather than a map of named data refs. This change was made to reduce confusion around the role of the input and output names, as well as enable more powerful APIs for overriding extensions.
An extension that was previously declared like this:
const exampleExtension = createExtension({
name: 'example',
inputs: {
items: createExtensionInput({
element: coreExtensionData.reactElement,
}),
},
output: {
element: coreExtensionData.reactElement,
},
factory({ inputs }) {
return {
element: (
<div>
Example
{inputs.items.map(item => {
return <div>{item.output.element}</div>;
})}
</div>
),
};
},
});
Should be migrated to the following:
const exampleExtension = createExtension({
name: 'example',
inputs: {
items: createExtensionInput([coreExtensionData.reactElement]),
},
output: [coreExtensionData.reactElement],
factory({ inputs }) {
return [
coreExtensionData.reactElement(
<div>
Example
{inputs.items.map(item => {
return <div>{item.get(coreExtensionData.reactElement)}</div>;
})}
</div>,
),
];
},
});
3fb421d: Added support to be able to define zod config schema in Blueprints, with built in schema merging from the Blueprint and the extension instances.
6349099: Added config input type to the extensions
Updated dependencies
signIn to authentication provider configuration schemasignIn to authentication provider configuration schemasignIn to authentication provider configuration schemasignIn to authentication provider configuration schemasignIn to authentication provider configuration schemasignIn to authentication provider configuration schemasignIn to authentication provider configuration schemasignIn to authentication provider configuration schemasignIn to authentication provider configuration schemasignIn to authentication provider configuration schemasignIn to authentication provider configuration schemasignIn to authentication provider configuration schemasignIn to authentication provider configuration schemasignIn to authentication provider configuration schemaallowedLocationTypes when setAllowedLocationTypes() of CatalogLocationsExtensionPoint is not called.excludeRepos configuration option to the Gitlab catalog provider.EntityDisplayName's icon alignment with the text./alpha sub-path export.catalog:write to write to directories that don't already exist@backstage-community/plugin-explore-common to ^0.0.4.patchMkdocsYmlPrebuild to modify repo_url and edit_uri independently.