Files
backstage/plugins/notifications-backend
Fredrik Adelöw 8165184fba tests: use describe.each for database test iteration
Refactors all test files that use TestDatabases/TestCaches with
it.each(databases.eachSupportedId()) to instead use describe.each at
the outer level. This ensures that all tests for one database engine
complete before moving to the next, rather than interleaving engines
across individual tests. This reduces the number of concurrent database
connections and should help with test timeout issues in CI.

The TestDatabases.create() call is hoisted to module scope so the
describe.each can iterate over supported IDs at the top level.

40 files changed across packages/backend-defaults,
packages/backend-test-utils, and multiple plugins.

Signed-off-by: Fredrik Adelöw <freben@gmail.com>

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Fredrik Adelöw <freben@gmail.com>
2026-05-15 20:27:43 +02:00
..
2026-04-28 15:53:09 +00:00
2026-04-16 12:14:47 +02:00
2026-04-28 15:53:09 +00:00

notifications

Welcome to the notifications backend plugin!

Getting started

To install, please refer the Getting Started Backstage Notifications and Signals documentation section.

For users to be able to see notifications in real-time, you have to install also the signals plugin (@backstage/plugin-signals-node, @backstage/plugin-signals-backend, and @backstage/plugin-signals).

Extending Notifications

When a notification is created, it's processing can be customized via processors. Please refer Backstage documentation for further details.

Sending Notifications By Backend Plugins

To be able to send notifications to users by other plugins, you have to integrate the @backstage/plugin-notifications-node to your application and plugins. For the API, please refer documentation there.

Sending Notifications By External Services

External services can create new messages by sending POST request to the REST API.

To be able to do so, external access needs to be enabled as described in the documentation, e.g. via the static tokens.

Once the API can be accessed, the request can look like:

curl -X POST [YOUR_SERVER_URL]/api/notifications/notifications -H "Content-Type: application/json" -H "Authorization: Bearer [BASE64_ENCODED_ACCESS_TOKEN]" -d '{"recipients":{"type":"entity","entityRef":"user:development/guest"},"payload": {"title": "Title of user-targeted external message","description": "The description","link": "http://foo.com/bar","severity": "high","topic": "The topic"}}'