Uploaded image for project: 'Red Hat Developer Hub Bugs'
  1. Red Hat Developer Hub Bugs
  2. RHDHBUGS-1585

Dynamic Plugins Fail to Load in showcase Post-Upstream Backstage Update to 1.25

XMLWordPrintable

    • 3
    • False
    • Hide

      None

      Show
      None
    • False
    • Hide
      Moving to Backstage 1.25 caused dynamic plugin UI elements to be unavailable. Due to an upstream security fix, all backend endpoints require an authentication token to be present, which included static assets used by dynamic plugins. This change removed the security requirement for dynamic plugin static assets, which restores the ability to see dynamic plugin UI elements.
      Show
      Moving to Backstage 1.25 caused dynamic plugin UI elements to be unavailable. Due to an upstream security fix, all backend endpoints require an authentication token to be present, which included static assets used by dynamic plugins. This change removed the security requirement for dynamic plugin static assets, which restores the ability to see dynamic plugin UI elements.
    • RHDH Core Team 3256

      Description of problem:

      Dynamic Plugins Fail to Load in showcase Post-Upstream Backstage Update from 1.23.4 to 1.25

      Prerequisites (if any, like setup, operators/versions):

      Steps to Reproduce

      1. Deploy image: 
        quay.io/janus-idp/backstage-showcase:next or next-bc6ae71
      1.  

      app-config : 

      app:
        title: Red Hat Developer Hub
      backend:
        auth:
          keys:
            - secret: temp
      integrations:
        # Plugin: GitHub
        github:
          - host: github.com
            apps:
              - appId: ${GITHUB_APP_APP_ID}
                clientId: ${GITHUB_APP_CLIENT_ID}
                clientSecret: ${GITHUB_APP_CLIENT_SECRET}
                webhookUrl: ${GITHUB_APP_WEBHOOK_URL}
                webhookSecret: ${GITHUB_APP_WEBHOOK_SECRET}
                privateKey: |
                  ${GITHUB_APP_PRIVATE_KEY}
        bitbucketServer:
          - host: bitbucket.com
            apiBaseUrl: temp
            username: temp
            password: temp
        gitlab:
          - host: gitlab.com
            token: temp
      auth:
        # see https://backstage.io/docs/auth/ to learn about auth providers
        environment: development
        providers:
          # Plugin: GitHub
          github:
            development:
              clientId: ${GITHUB_APP_CLIENT_ID}
              clientSecret: ${GITHUB_APP_CLIENT_SECRET}
          google:
            development:
              clientId: ${GOOGLE_CLIENT_ID}
              clientSecret: ${GOOGLE_CLIENT_SECRET}
      
      proxy:
        skipInvalidProxies: true
        # endpoints: {}
        endpoints:
          # Other Proxies
          # customize developer hub instance
          '/developer-hub':
            target: ${DH_TARGET_URL}
            changeOrigin: true
            # Change to "false" in case of using self hosted cluster with a self-signed certificate
            secure: false
          '/acr/api':
            target: 'https://rhdhqetest.azurecr.io/acr/v1/'
            changeOrigin: true
            headers:
              # If you use Bearer Token for authorization, please replace the 'Basic' with 'Bearer' in the following line.
              Authorization: '${ACR_SECRET}'
            # Change to "false" in case of using self hosted artifactory instance with a self-signed certificate
            secure: false
      
      catalog:
        import:
          entityFilename: catalog-info.yaml
          # pullRequestBranchName: rhdh-integration
          pullRequestBranchName: backstage-integration
        rules:
          - allow: [API, Component, Group, Location, Resource, System, Template]
        locations:
          - type: url
            target: https://github.com/janus-idp/backstage-showcase/blob/main/catalog-entities/all.yaml
          - type: url
            target: https://github.com/redhat-developer/red-hat-developer-hub-software-templates/blob/main/templates.yaml
          - type: url
            target: https://github.com/janus-qe/acr-catalog/blob/main/catalog-info.yaml
          - type: url
            target: https://github.com/janus-qe/rhdh-test/blob/main/user.yml
            rules:
              - allow: [User]
          - type: url
            target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme-corp.yaml
            rules:
              - allow: [User, Group]
      
      
      dynatrace:
        baseUrl: temp
      argocd:
        appLocatorMethods:
          - type: 'config'
            instances:
              - name: argoInstance1
                url: temp
                token: temp
              - name: argoInstance2
                url: temp
                token: temp
      permission:
        enabled: false # Disabling the permission until we can use RBAC to test the pages using login as Guest.
        rbac:
          policies-csv-file: './rbac/rbac-policy.csv'
          admin:
            users:
              - name: user:default/rhdh-qe 
      1. dynamic plugins config:
        includes:
        - dynamic-plugins.default.yaml
        plugins:
        - disabled: false
          package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic
          pluginConfig:
            catalog:
              providers:
                github:
                  my-test-org:
                    catalogPath: /catalog-info.yaml
                    organization: janus-qe
                    schedule:
                      frequency:
                        minutes: 1
                      initialDelay:
                        seconds: 15
                      timeout:
                        minutes: 1
        - disabled: false
          package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-org-dynamic
        - disabled: false
          package: ./dynamic-plugins/dist/backstage-plugin-github-issues
        - disabled: false
          package: ./dynamic-plugins/dist/roadiehq-backstage-plugin-github-pull-requests
        - disabled: false
          package: ./dynamic-plugins/dist/backstage-plugin-github-actions
        - disabled: false
          package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-quay
        - disabled: false
          package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-keycloak-backend-dynamic
        - disabled: false
          package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-tekton
        - disabled: false
          package: ./dynamic-plugins/dist/backstage-plugin-kubernetes
        - disabled: false
          package: ./dynamic-plugins/dist/backstage-plugin-kubernetes-backend-dynamic
          pluginConfig:
            kubernetes:
              clusterLocatorMethods:
              - clusters:
                - authProvider: serviceAccount
                  name: my-cluster
                  serviceAccountToken: ${K8S_SERVICE_ACCOUNT_TOKEN}
                  url: ${K8S_CLUSTER_API_SERVER_URL}
                type: config
              customResources:
              - apiVersion: v1beta1
                group: tekton.dev
                plural: pipelines
              - apiVersion: v1beta1
                group: tekton.dev
                plural: pipelineruns
              - apiVersion: v1beta1
                group: tekton.dev
                plural: taskruns
              - apiVersion: v1
                group: route.openshift.io
                plural: routes
              - apiVersion: v2
                group: org.eclipse.che
                plural: checlusters
              serviceLocatorMethod:
                type: multiTenant
        - disabled: false
          package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-ocm-backend-dynamic
          pluginConfig:
            catalog:
              providers:
                ocm:
                  default:
                    name: testCluster
                    owner: janus-authors
                    serviceAccountToken: ${OCM_CLUSTER_TOKEN}
                    skipTLSVerify: true
                    url: ${OCM_CLUSTER_URL}
        - disabled: false
          package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-ocm
        - disabled: false
          package: ./dynamic-plugins/dist/backstage-plugin-tech-radar
        - disabled: false
          package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-acr
        - disabled: true
          package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-rbac 

      Actual results:

      Plugins like Tech-radar, docs, OCM failed to load.{}

      Expected results:

      Screenshots of Previously Working Plugins, Including Tech-radar, Docs, and OCM, With Configurations as Mentioned Above

      Reproducibility (Always/Intermittent/Only Once):

      Build Details:

      Additional info (Such as Logs, Screenshots, etc):

      Logs : rhdh-backstage-5c447779c6-kgxz5-backstage-backend.log

              stlewis_2 Stan Lewis
              skhileri Subhash Khileri
              RHIDP - Dynamic Plugins
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: