Uploaded image for project: 'FlightPath'
  1. FlightPath
  2. FLPATH-1983

[m4 rc2] Notification plugin fails to load with 404 error

XMLWordPrintable

    • False
    • Hide

      None

      Show
      None
    • False

      Description of the problem:

      Deployment of the notifications plugin in the 1.4 -rc2 build fails with 404 error when clicking on Notifications tab:

      The following error appears in the backstage pod:

      {"code":"MODULE_NOT_FOUND","level":"\u001b[31merror\u001b[39m","message":"an error occurred while loading dynamic backend plugin 'backstage-plugin-notifications-backend-dynamic' from 'file:///opt/app-root/src/dynamic-plugins-root/backstage-plugin-notifications-backend-dynamic-0.4.2' Cannot find module '@backstage/plugin-signals-node'\nRequire stack:\n- /opt/app-root/src/dynamic-plugins-root/backstage-plugin-notifications-backend-dynamic-0.4.2/node_modules/@backstage/plugin-notifications-backend/dist/plugin.cjs.js\n- /opt/app-root/src/dynamic-plugins-root/backstage-plugin-notifications-backend-dynamic-0.4.2/node_modules/@backstage/plugin-notifications-backend/dist/index.cjs.js\n- /opt/app-root/src/dynamic-plugins-root/backstage-plugin-notifications-backend-dynamic-0.4.2/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/loader/CommonJSModuleLoader.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js","requireStack":["/opt/app-root/src/dynamic-plugins-root/backstage-plugin-notifications-backend-dynamic-0.4.2/node_modules/@backstage/plugin-notifications-backend/dist/plugin.cjs.js","/opt/app-root/src/dynamic-plugins-root/backstage-plugin-notifications-backend-dynamic-0.4.2/node_modules/@backstage/plugin-notifications-backend/dist/index.cjs.js","/opt/app-root/src/dynamic-plugins-root/backstage-plugin-notifications-backend-dynamic-0.4.2/dist/index.cjs.js","/opt/app-root/src/packages/backend/dist/loader/CommonJSModuleLoader.cjs.js","/opt/app-root/src/packages/backend/dist/index.cjs.js"],"service":"backstage","stack":"Error: Cannot find module '@backstage/plugin-signals-node'\nRequire stack:\n- /opt/app-root/src/dynamic-plugins-root/backstage-plugin-notifications-backend-dynamic-0.4.2/node_modules/@backstage/plugin-notifications-backend/dist/plugin.cjs.js\n- /opt/app-root/src/dynamic-plugins-root/backstage-plugin-notifications-backend-dynamic-0.4.2/node_modules/@backstage/plugin-notifications-backend/dist/index.cjs.js\n- /opt/app-root/src/dynamic-plugins-root/backstage-plugin-notifications-backend-dynamic-0.4.2/dist/index.cjs.js\n- /opt/app-root/src/packages/backend/dist/loader/CommonJSModuleLoader.cjs.js\n- /opt/app-root/src/packages/backend/dist/index.cjs.js\n    at Module._resolveFilename (node:internal/modules/cjs/loader:1225:15)\n    at ModuleObject._resolveFilename (/opt/app-root/src/packages/backend/dist/loader/CommonJSModuleLoader.cjs.js:59:16)\n    at Module._load (node:internal/modules/cjs/loader:1051:27)\n    at Module.require (node:internal/modules/cjs/loader:1311:19)\n    at Module.patchedRequire (/opt/app-root/src/node_modules/require-in-the-middle/index.js:194:34)\n    at Hook._require.Module.require (/opt/app-root/src/node_modules/require-in-the-middle/index.js:142:27)\n    at Module.patchedRequire (/opt/app-root/src/node_modules/require-in-the-middle/index.js:194:34)\n    at Hook._require.Module.require (/opt/app-root/src/node_modules/require-in-the-middle/index.js:142:27)\n    at require (node:internal/modules/helpers:179:18)\n    at Object.<anonymous> (/opt/app-root/src/dynamic-plugins-root/backstage-plugin-notifications-backend-dynamic-0.4.2/node_modules/@backstage/plugin-notifications-backend/dist/plugin.cjs.js:5:25)\n    at Module._compile (node:internal/modules/cjs/loader:1469:14)\n    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)\n    at Module.load (node:internal/modules/cjs/loader:1288:32)\n    at Module._load (node:internal/modules/cjs/loader:1104:12)\n    at Module.require (node:internal/modules/cjs/loader:1311:19)\n    at Module.patchedRequire (/opt/app-root/src/node_modules/require-in-the-middle/index.js:217:27)","timestamp":"2025-01-02 14:55:12"}
       

      I have the following in dynamic plugins CR:

      apiVersion: v1
      data:
        dynamic-plugins.yaml: |+
          includes:
          - dynamic-plugins.default.yaml
          plugins:
          - disabled: false
            integrity: sha512-tS5cJGwjzP9esdTZvUFjw0O7+w9gGBI/+VvJrtqYJBDGXcEAq9iYixGk67ddQVW5eeUM7Tk1WqJlNj282aAWww==
            package: '@redhat/backstage-plugin-orchestrator-backend-dynamic@1.4.0-rc.3'
            pluginConfig:
              orchestrator:
                dataIndexService:
                  url: http://sonataflow-platform-data-index-service.sonataflow-infra
          - disabled: false
            integrity: sha512-vGGd9hUmDriEMmP2TfzLVa3JSnfot2Blg+aftDnu/lEphsY1s2gdA4Z5lCxUk7aobcKE6JO/f0sIl2jyxZ7ktw==
            package: '@redhat/backstage-plugin-orchestrator@1.4.0-rc.3'
            pluginConfig:
              dynamicPlugins:
                frontend:
                  red-hat-developer-hub.backstage-plugin-orchestrator:
                    appIcons:
                    - importName: OrchestratorIcon
                      module: OrchestratorPlugin
                      name: orchestratorIcon
                    dynamicRoutes:
                    - importName: OrchestratorPage
                      menuItem:
                        icon: orchestratorIcon
                        text: Orchestrator
                      module: OrchestratorPlugin
                      path: /orchestrator
          - disabled: false
            package: ./dynamic-plugins/dist/backstage-plugin-notifications
            pluginConfig:
              dynamicPlugins:
                frontend:
                  backstage.plugin-notifications:
                    dynamicRoutes:
                    - importName: NotificationsPage
                      menuItem:
                        config:
                          props:
                            titleCounterEnabled: true
                            webNotificationsEnabled: false
                        importName: NotificationsSidebarItem
                      path: /notifications
          - disabled: false
            package: ./dynamic-plugins/dist/backstage-plugin-signals
            pluginConfig:
              dynamicPlugins:
                frontend:
                  baackstage.plugin-signals: {}
          - disabled: false
            package: ./dynamic-plugins/dist/backstage-plugin-signals-backend-dynamic
          - disabled: false
            package: ./dynamic-plugins/dist/backstage-plugin-notifications-backend-dynamic
          - disabled: false
            package: ./dynamic-plugins/dist/backstage-plugin-notifications-backend-module-email-dynamic
            pluginConfig:
              notifications:
                processors:
                  email:
                    transportConfig:
                      transport: smtp
                      hostname: ${NOTIFICATIONS_EMAIL_HOSTNAME}
                      port: 25
                      secure: false
                    sender: ${NOTIFICATIONS_EMAIL_USERNAME}
                    replyTo: ${NOTIFICATIONS_EMAIL_USERNAME}
                    broadcastConfig:
                      receiver: "none"
                    concurrencyLimit: 10
                    cache:
                      ttl:
                        days: 1
       

      How reproducible: 100%

      Steps to reproduce:

      1. Deploy RHDH 1.4

      2. Deploy orchestrator with rhdh operator disabled

      3. Configure dynamic plugins configmap with orchestrator, notifications and signals plugins as appears here

      4. In backstage instance, navigate to notifications tab 

      Actual results: See above

      Expected results: Notifications plugin should deploy normally

              mlibra@redhat.com Marek Libra
              yfirst Yona First
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: