diff --git a/.gitignore b/.gitignore
index e506e00..2164e72 100644
--- a/.gitignore
+++ b/.gitignore
@@ -53 +53,4 @@ site
e2e-test-report/
+
+# Cache
+.cache/
diff --git a/app-config.yaml b/app-config.yaml
index fc6918a..ca52ec5 100644
--- a/app-config.yaml
+++ b/app-config.yaml
@@ -105,5 +105,2 @@ catalog:
# - allow: [User, Group]
- # Experimental: Always use the search method in UrlReaderProcessor.
- # New adopters are encouraged to enable it as this behavior will be the default in a future release.
- useUrlReadersSearch: true
diff --git a/backstage.json b/backstage.json
index a612226..c0ce7c1 100644
--- a/backstage.json
+++ b/backstage.json
@@ -1,3 +1,3 @@
{
- "version": "1.39.0"
+ "version": "1.46.0"
}
diff --git a/examples/template/template.yaml b/examples/template/template.yaml
index cfba98e..efb33be 100644
--- a/examples/template/template.yaml
+++ b/examples/template/template.yaml
@@ -56,3 +56,2 @@ spec:
input:
- allowedHosts: ['github.com']
description: This is ${{ parameters.name }}
@@ -69,2 +68,14 @@ spec:
+ # Let's notify the user that the template has completed using the Notification action
+ - id: notify
+ name: Notify
+ action: notification:send
+ input:
+ recipients: entity
+ entityRefs:
+ - user:default/guest
+ title: 'Template executed'
+ info: 'Your template has been executed'
+ severity: 'normal'
+
# Outputs are displayed to the user after a successful execution of the template.
diff --git a/package.json b/package.json
index 8510724..d72efe5 100644
--- a/package.json
+++ b/package.json
@@ -5,3 +5,3 @@
"engines": {
- "node": "20 || 22"
+ "node": "22 || 24"
},
@@ -31,5 +31,9 @@
"devDependencies": {
- "@backstage/cli": "^0.32.1",
+ "@backstage/cli": "^0.35.0",
"@backstage/e2e-test-utils": "^0.1.1",
"@playwright/test": "^1.32.3",
+ "@jest/environment-jsdom-abstract": "^30.0.0",
+ "@types/jest": "^30.0.0",
+ "jest": "^30.2.0",
+ "jsdom": "^27.1.0",
"node-gyp": "^10.0.0",
diff --git a/packages/app/package.json b/packages/app/package.json
index 61c449b..a4ed1f5 100644
--- a/packages/app/package.json
+++ b/packages/app/package.json
@@ -16,27 +16,29 @@
"dependencies": {
- "@backstage/app-defaults": "^1.6.2",
- "@backstage/canon": "^0.4.0",
- "@backstage/catalog-model": "^1.7.4",
- "@backstage/cli": "^0.32.1",
- "@backstage/core-app-api": "^1.17.0",
- "@backstage/core-components": "^0.17.2",
- "@backstage/core-plugin-api": "^1.10.7",
- "@backstage/integration-react": "^1.2.7",
- "@backstage/plugin-api-docs": "^0.12.7",
- "@backstage/plugin-catalog": "^1.30.0",
- "@backstage/plugin-catalog-common": "^1.1.4",
- "@backstage/plugin-catalog-graph": "^0.4.19",
- "@backstage/plugin-catalog-import": "^0.13.0",
- "@backstage/plugin-catalog-react": "^1.18.0",
- "@backstage/plugin-kubernetes": "^0.12.7",
- "@backstage/plugin-org": "^0.6.39",
- "@backstage/plugin-permission-react": "^0.4.34",
- "@backstage/plugin-scaffolder": "^1.31.0",
- "@backstage/plugin-search": "^1.4.26",
- "@backstage/plugin-search-react": "^1.9.0",
- "@backstage/plugin-techdocs": "^1.12.6",
- "@backstage/plugin-techdocs-module-addons-contrib": "^1.1.24",
- "@backstage/plugin-techdocs-react": "^1.2.17",
- "@backstage/plugin-user-settings": "^0.8.22",
- "@backstage/theme": "^0.6.6",
+ "@backstage/app-defaults": "^1.7.3",
+ "@backstage/catalog-model": "^1.7.6",
+ "@backstage/cli": "^0.35.0",
+ "@backstage/core-app-api": "^1.19.3",
+ "@backstage/core-components": "^0.18.4",
+ "@backstage/core-plugin-api": "^1.12.1",
+ "@backstage/integration-react": "^1.2.13",
+ "@backstage/plugin-api-docs": "^0.13.2",
+ "@backstage/plugin-catalog": "^1.32.1",
+ "@backstage/plugin-catalog-common": "^1.1.7",
+ "@backstage/plugin-catalog-graph": "^0.5.4",
+ "@backstage/plugin-catalog-import": "^0.13.8",
+ "@backstage/plugin-catalog-react": "^1.21.4",
+ "@backstage/plugin-kubernetes": "^0.12.14",
+ "@backstage/plugin-notifications": "^0.5.12",
+ "@backstage/plugin-org": "^0.6.47",
+ "@backstage/plugin-permission-react": "^0.4.39",
+ "@backstage/plugin-scaffolder": "^1.35.0",
+ "@backstage/plugin-search": "^1.5.1",
+ "@backstage/plugin-search-react": "^1.10.1",
+ "@backstage/plugin-signals": "^0.0.26",
+ "@backstage/plugin-techdocs": "^1.16.1",
+ "@backstage/plugin-techdocs-module-addons-contrib": "^1.1.31",
+ "@backstage/plugin-techdocs-react": "^1.3.6",
+ "@backstage/plugin-user-settings": "^0.8.30",
+ "@backstage/theme": "^0.7.1",
+ "@backstage/ui": "^0.10.0",
"@material-ui/core": "^4.12.2",
@@ -49,3 +51,3 @@
"devDependencies": {
- "@backstage/test-utils": "^1.7.8",
+ "@backstage/test-utils": "^1.7.14",
"@playwright/test": "^1.32.3",
diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx
index 89b199c..bb9c98e 100644
--- a/packages/app/src/App.tsx
+++ b/packages/app/src/App.tsx
@@ -37,2 +37,4 @@ import { RequirePermission } from '@backstage/plugin-permission-react';
import { catalogEntityCreatePermission } from '@backstage/plugin-catalog-common/alpha';
+import { NotificationsPage } from '@backstage/plugin-notifications';
+import { SignalsDisplay } from '@backstage/plugin-signals';
@@ -96,2 +98,3 @@ const routes = (
} />
+ } />
@@ -103,2 +106,3 @@ export default app.createRoot(
+
diff --git a/packages/app/src/components/Root/Root.tsx b/packages/app/src/components/Root/Root.tsx
index 31fc08d..4163f34 100644
--- a/packages/app/src/components/Root/Root.tsx
+++ b/packages/app/src/components/Root/Root.tsx
@@ -29,2 +29,3 @@ import { MyGroupsSidebarItem } from '@backstage/plugin-org';
import GroupIcon from '@material-ui/icons/People';
+import { NotificationsSidebarItem } from '@backstage/plugin-notifications';
@@ -85,2 +86,4 @@ export const Root = ({ children }: PropsWithChildren<{}>) => (
+
+