plugins:
  # Group: Github
  - package: ./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-github-dynamic
    # TODO RHIDP-3187 - graduate this plugin to GA so it can be enabled by default
    disabled: true
  - package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic
    disabled: true
    pluginConfig:
      catalog:
        providers:
          github:
            providerId:
              organization: "${GITHUB_ORG}"
  - package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-org-dynamic
    disabled: true
    pluginConfig:
      catalog:
        providers:
          githubOrg:
            id: production
            githubUrl: "${GITHUB_URL}"
            orgs: [ "${GITHUB_ORG}" ]
            schedule:
              frequency:
                minutes: 60
              initialDelay:
                seconds: 15
              timeout:
                minutes: 15
  - package: ./dynamic-plugins/dist/backstage-community-plugin-github-actions
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-github-actions:
            mountPoints:
              - mountPoint: entity.page.ci/cards
                importName: EntityGithubActionsContent
                config:
                  layout:
                    gridColumn: "1 / -1"
                  if:
                    allOf:
                      - isGithubActionsAvailable
  - package:  ./dynamic-plugins/dist/backstage-community-plugin-github-issues
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-github-issues:
            mountPoints:
              - mountPoint: entity.page.issues/cards
                importName: GithubIssuesCard
                config:
                  layout:
                    gridColumn: "1 / -1"
                  if:
                    allOf:
                      - hasAnnotation: github.com/project-slug
  - package: ./dynamic-plugins/dist/roadiehq-backstage-plugin-github-insights
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          roadiehq.backstage-plugin-github-insights:
            mountPoints:
              - mountPoint: entity.page.overview/cards
                importName: EntityGithubInsightsComplianceCard
                config:
                  layout:
                    gridColumnEnd:
                      lg: "span 4"
                      md: "span 6"
                      xs: "span 12"
                  if:
                    allOf:
                      - isGithubInsightsAvailable
  - package: ./dynamic-plugins/dist/roadiehq-backstage-plugin-github-pull-requests
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          roadiehq.backstage-plugin-github-pull-requests:
            mountPoints:
              - mountPoint: entity.page.overview/cards
                importName: EntityGithubPullRequestsOverviewCard
                config:
                  layout:
                    gridColumnEnd:
                      lg: "span 4"
                      md: "span 6"
                      xs: "span 12"
                  if:
                    allOf:
                      - isGithubPullRequestsAvailable
              - mountPoint: entity.page.pull-requests/cards
                importName: EntityGithubPullRequestsContent
                config:
                  layout:
                    gridColumn: "1 / -1"
                  if:
                    allOf:
                      - isGithubPullRequestsAvailable
  - package: ./dynamic-plugins/dist/roadiehq-backstage-plugin-security-insights
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          roadiehq.backstage-plugin-security-insights:
            mountPoints:
              - mountPoint: entity.page.overview/cards
                importName: EntityDependabotAlertsCard
                config:
                  layout:
                    gridColumnEnd:
                      lg: "span 4"
                      md: "span 6"
                      xs: "span 12"
                  if:
                    allOf:
                      - isSecurityInsightsAvailable

  # Group: Gitlab
  - package: ./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-gitlab-dynamic
    # TODO RHIDP-3187 - graduate this plugin to GA so it can be enabled by default
    disabled: true
  - package: ./dynamic-plugins/dist/immobiliarelabs-backstage-plugin-gitlab-backend-dynamic
    disabled: true
    pluginConfig:
      gitlab:
        host: ${GITLAB_HOST}
        token: ${GITLAB_TOKEN}
  - package: ./dynamic-plugins/dist/immobiliarelabs-backstage-plugin-gitlab
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          immobiliarelabs.backstage-plugin-gitlab:
            mountPoints:
              - mountPoint: entity.page.overview/cards
                importName: EntityGitlabMergeRequestStatsCard
                config:
                  layout:
                    gridColumnEnd:
                      lg: "span 4"
                      md: "span 6"
                      xs: "span 12"
                  if:
                    allOf:
                      - isGitlabAvailable
              - mountPoint: entity.page.ci/cards
                importName: EntityGitlabPipelinesTable
                config:
                  layout:
                    gridColumn: "1 / -1"
                  if:
                    allOf:
                      - isGitlabAvailable
              - mountPoint: entity.page.issues/cards
                importName: EntityGitlabIssuesTable
                config:
                  layout:
                    gridColumn: "1 / -1"
                  if:
                    allOf:
                      - isGitlabAvailable
              - mountPoint: entity.page.pull-requests/cards
                importName: EntityGitlabMergeRequestsTable
                config:
                  layout:
                    gridColumn: "1 / -1"
                  if:
                    allOf:
                      - isGitlabAvailable
  - package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-gitlab-dynamic
    disabled: true
    pluginConfig:
      catalog:
        providers:
          gitlab: {}
  - package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-gitlab-org-dynamic
    disabled: true
    pluginConfig:
      catalog:
        providers:
          gitlab: {}

  # Group: Kubernetes
  - package: ./dynamic-plugins/dist/backstage-plugin-kubernetes-backend-dynamic
    disabled: true
    pluginConfig:
      kubernetes:
        serviceLocatorMethod:
          type: 'multiTenant'
        clusterLocatorMethods:
          - type: 'config'
            clusters:
              - name: ${K8S_CLUSTER_NAME}
                url: ${K8S_CLUSTER_URL}
                authProvider: 'serviceAccount'
                skipTLSVerify: true
                serviceAccountToken: ${K8S_CLUSTER_TOKEN}
  - package: ./dynamic-plugins/dist/backstage-plugin-kubernetes
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage.plugin-kubernetes:
            mountPoints:
              - mountPoint: entity.page.kubernetes/cards
                importName: EntityKubernetesContent
                config:
                  layout:
                    gridColumn: "1 / -1"
                  if:
                    anyOf:
                      - hasAnnotation: backstage.io/kubernetes-id
                      - hasAnnotation: backstage.io/kubernetes-namespace
  - package: ./dynamic-plugins/dist/backstage-community-plugin-topology
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-topology:
            translationResources:
              - importName: topologyTranslations
                ref: topologyTranslationRef
                module: Alpha
            mountPoints:
              - mountPoint: entity.page.topology/cards
                importName: TopologyPage
                config:
                  layout:
                    gridColumn: "1 / -1"
                    height: 75vh
                  if:
                    anyOf:
                      - hasAnnotation: backstage.io/kubernetes-id
                      - hasAnnotation: backstage.io/kubernetes-namespace

  # Group: ArgoCD
  - package: ./dynamic-plugins/dist/roadiehq-backstage-plugin-argo-cd-backend-dynamic
    disabled: true
    pluginConfig:
      argocd:
        username: "${ARGOCD_USERNAME}"
        password: "${ARGOCD_PASSWORD}"
        appLocatorMethods:
          - type: 'config'
            instances:
              - name: argoInstance1
                url: "${ARGOCD_INSTANCE1_URL}"
                token: "${ARGOCD_AUTH_TOKEN}"
              - name: argoInstance2
                url: "${ARGOCD_INSTANCE2_URL}"
                token: "${ARGOCD_AUTH_TOKEN2}"
  - package: ./dynamic-plugins/dist/roadiehq-scaffolder-backend-argocd-dynamic
    disabled: true
    pluginConfig:
      argocd:
        username: "${ARGOCD_USERNAME}"
        password: "${ARGOCD_PASSWORD}"
        appLocatorMethods:
          - type: 'config'
            instances:
              - name: argoInstance1
                url: "${ARGOCD_INSTANCE1_URL}"
                token: "${ARGOCD_AUTH_TOKEN}"
              - name: argoInstance2
                url: "${ARGOCD_INSTANCE2_URL}"
                token: "${ARGOCD_AUTH_TOKEN2}"
  - package: ./dynamic-plugins/dist/backstage-community-plugin-redhat-argocd
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-redhat-argocd:
            translationResources:
              - importName: argocdTranslations
                module: Alpha
                ref: argocdTranslationRef
            mountPoints:
              - mountPoint: entity.page.overview/cards
                importName: ArgocdDeploymentSummary
                config:
                  layout:
                    gridColumnEnd:
                      lg: "span 8"
                      xs: "span 12"
                  if:
                    allOf:
                      - isArgocdConfigured
              - mountPoint: entity.page.cd/cards
                importName: ArgocdDeploymentLifecycle
                config:
                  layout:
                    gridColumn: '1 / -1'
                  if:
                    allOf:
                      - isArgocdConfigured

  # Group: Azure Devops
  - package: ./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-azure-dynamic
    # TODO RHIDP-3187 - graduate this plugin to GA so it can be enabled by default
    disabled: true
  - package: ./dynamic-plugins/dist/backstage-community-plugin-azure-devops-backend-dynamic
    disabled: true
    pluginConfig:
      azureDevOps:
        host: dev.azure.com
        token: ${AZURE_TOKEN}
        organization: ${AZURE_ORG}
  - package: ./dynamic-plugins/dist/backstage-community-plugin-azure-devops
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-azure-devops:
            mountPoints:
              - mountPoint: entity.page.ci/cards
                importName: EntityAzurePipelinesContent
                config:
                  layout:
                    gridColumn: "1 / -1"
                  if:
                    allOf:
                      - isAzureDevOpsAvailable
              - mountPoint: entity.page.pull-requests/cards
                importName: EntityAzurePullRequestsContent
                config:
                  layout:
                    gridColumn: "1 / -1"
                  if:
                    allOf:
                      - isAzureDevOpsAvailable
  - package: ./dynamic-plugins/dist/parfuemerie-douglas-scaffolder-backend-module-azure-repositories-dynamic
    disabled: true

  # Group: Jenkins
  - package: ./dynamic-plugins/dist/backstage-community-plugin-jenkins-backend-dynamic
    disabled: true
    pluginConfig:
      jenkins:
        instances:
          - name: default
            baseUrl: ${JENKINS_URL}
            username: ${JENKINS_USERNAME}
            apiKey: ${JENKINS_TOKEN}
  - package: ./dynamic-plugins/dist/backstage-community-plugin-jenkins
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-jenkins:
            mountPoints:
              - mountPoint: entity.page.ci/cards
                importName: EntityJenkinsContent
                config:
                  layout:
                    gridColumn: "1 / -1"
                  if:
                    allOf:
                      - isJenkinsAvailable

  # Group: Notifications
  - package: ./dynamic-plugins/dist/backstage-plugin-notifications
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage.plugin-notifications:
            dynamicRoutes:
              - importName: NotificationsPage
                menuItem:
                  config:
                    props:
                      titleCounterEnabled: true
                      webNotificationsEnabled: false
                  importName: NotificationsSidebarItem
                path: /notifications
  - package: ./dynamic-plugins/dist/backstage-plugin-notifications-backend-dynamic
    disabled: true
  - package: ./dynamic-plugins/dist/backstage-plugin-notifications-backend-module-email-dynamic
    disabled: true
    pluginConfig:
      notifications:
        processors:
          email:
            transportConfig:
              transport: smtp
              hostname: ${EMAIL_HOSTNAME}
              port: 587
              username: ${EMAIL_USERNAME}
              password: ${EMAIL_PASSWORD}
            sender: ${EMAIL_SENDER}
            broadcastConfig:
              receiver: 'users'
  - package: ./dynamic-plugins/dist/backstage-plugin-signals-backend-dynamic
    disabled: true
  - package: ./dynamic-plugins/dist/backstage-plugin-signals
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage.plugin-signals: {}

  # Group: SonarQube
  - package: ./dynamic-plugins/dist/backstage-community-plugin-sonarqube-backend-dynamic
    disabled: true
    pluginConfig:
      sonarqube:
        baseUrl: ${SONARQUBE_URL}
        apiKey: ${SONARQUBE_TOKEN}
  - package: ./dynamic-plugins/dist/backstage-community-plugin-sonarqube
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-sonarqube:
            mountPoints:
              - mountPoint: entity.page.overview/cards
                importName: EntitySonarQubeCard
                config:
                  layout:
                    gridColumnEnd:
                      lg: "span 4"
                      md: "span 6"
                      xs: "span 12"
                  if:
                    allOf:
                      - isSonarQubeAvailable

  # Group: OCM
  - package: ./dynamic-plugins/dist/backstage-community-plugin-ocm-backend-dynamic
    disabled: true
    pluginConfig:
      catalog:
        providers:
          ocm:
            default:
              name: "${OCM_HUB_NAME}"
              url: "${OCM_HUB_URL}"
              serviceAccountToken: "${OCM_SA_TOKEN}"
              owner: janus-authors
  - package: ./dynamic-plugins/dist/backstage-community-plugin-ocm
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-ocm:
            appIcons:
              - name: ocmIcon
                importName: OcmIcon
            dynamicRoutes:
              - path: /ocm
                importName: OcmPage
                menuItem:
                  icon: ocmIcon
                  text: Clusters
                  textKey: menuItem.clusters
            mountPoints:
              - mountPoint: entity.page.overview/context
                importName: ClusterContextProvider
              - mountPoint: entity.page.overview/cards
                importName: ClusterAvailableResourceCard
                config:
                  layout:
                    gridColumnEnd:
                      lg: "span 4"
                      md: "span 6"
                      xs: "span 12"
                  if:
                    allOf:
                    - isKind: resource
                    - isType: kubernetes-cluster
              - mountPoint: entity.page.overview/cards
                importName: ClusterInfoCard
                config:
                  layout:
                    gridColumnEnd:
                      lg: "span 4"
                      md: "span 6"
                      xs: "span 12"
                  if:
                    allOf:
                    - isKind: resource
                    - isType: kubernetes-cluster

  # Group: Bulk import
  - package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import-backend-dynamic
    disabled: true
  - package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          red-hat-developer-hub.backstage-plugin-bulk-import:
            translationResources:
              - importName: bulkImportTranslations
                module: Alpha
                ref: bulkImportTranslationRef
            appIcons:
              - name: bulkImportIcon
                importName: BulkImportIcon
            dynamicRoutes:
              - path: /bulk-import/repositories
                importName: BulkImportPage
                menuItem:
                  icon: bulkImportIcon
                  text: Bulk import
                  textKey: menuItem.bulkImport

  # Group: Global Header
  - package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-global-header
    disabled: false
    pluginConfig:
      app:
        sidebar:
          search: false
          settings: false
          logo: false
      dynamicPlugins:
        frontend:
          default.main-menu-items:
            menuItems:
              default.create:
                title: ''
              default.admin:
                title: Administration
                textKey: menuItem.administration
                icon: admin
          red-hat-developer-hub.backstage-plugin-global-header:
            translationResources:
              - importName: globalHeaderTranslations
                ref: globalHeaderTranslationRef
            mountPoints:
              - mountPoint: application/header
                importName: GlobalHeader
                config:
                  position: above-sidebar # above-main-content | above-sidebar
              - mountPoint: global.header/component
                importName: CompanyLogo
                config:
                  priority: 200
                  props:
                    to: '/'
              - mountPoint: global.header/component
                importName: SearchComponent
                config:
                  priority: 100
              - mountPoint: global.header/component
                importName: Spacer
                config:
                  priority: 99
                  props:
                    growFactor: 0
              - mountPoint: global.header/component
                importName: HeaderIconButton
                config:
                  priority: 90
                  props:
                    title: Self-service
                    titleKey: create.title
                    icon: add
                    to: create
              - mountPoint: global.header/component
                importName: StarredDropdown
                config:
                  priority: 85

              - mountPoint: global.header/component
                importName: ApplicationLauncherDropdown
                config:
                  priority: 82

              - mountPoint: global.header/application-launcher
                importName: MenuItemLink
                config:
                  section: Documentation
                  priority: 150
                  props:
                    title: Developer Hub
                    titleKey: applicationLauncher.developerHub
                    icon: developerHub
                    link: https://docs.redhat.com/en/documentation/red_hat_developer_hub

              - mountPoint: global.header/application-launcher
                importName: MenuItemLink
                config:
                  section: Developer Tools
                  priority: 100
                  props:
                    title: RHDH Local
                    titleKey: applicationLauncher.rhdhLocal
                    icon: developerHub
                    link: https://github.com/redhat-developer/rhdh-local

              - mountPoint: global.header/component
                importName: HelpDropdown
                config:
                  priority: 80

              - mountPoint: global.header/help
                importName: SupportButton
                config:
                  priority: 10

              - mountPoint: global.header/component
                importName: NotificationButton
                config:
                  priority: 70
              - mountPoint: global.header/component
                importName: Divider
                config:
                  priority: 50
              - mountPoint: global.header/component
                importName: ProfileDropdown
                config:
                  priority: 10
              - mountPoint: global.header/profile
                importName: MenuItemLink
                config:
                  priority: 100
                  props:
                    title: Settings
                    titleKey: profile.settings
                    link: /settings
                    icon: manageAccounts
              - mountPoint: global.header/profile
                importName: MenuItemLink
                config:
                  priority: 90
                  props:
                    title: My profile
                    titleKey: profile.myProfile
                    type: myProfile
                    icon: account
              - mountPoint: global.header/profile
                importName: LogoutButton
                config:
                  priority: 10

  # Group: Global floating action button
  - package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-global-floating-action-button
    disabled: false
    pluginConfig:
      dynamicPlugins:
        frontend:
          red-hat-developer-hub.backstage-plugin-global-floating-action-button:
            translationResources:
              - importName: globalFloatingActionButtonTranslations
                ref: globalFloatingActionButtonTranslationRef
            mountPoints:
              - mountPoint: application/listener
                importName: DynamicGlobalFloatingActionButton

  # Group: Quickstart
  - package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-quickstart
    disabled: false
    pluginConfig:
      app:
        quickstart:
          - title: Set up authentication
            titleKey: steps.setupAuthentication.title
            icon: Admin
            description: Set up secure login credentials to protect your account from unauthorized access.
            descriptionKey: steps.setupAuthentication.description
            cta:
              text: Learn more
              textKey: steps.setupAuthentication.ctaTitle
              link: https://docs.redhat.com/en/documentation/red_hat_developer_hub/latest/html/authentication_in_red_hat_developer_hub/
          - title: Configure RBAC
            titleKey: steps.configureRbac.title
            icon: Rbac
            description: Assign roles and permissions to control who can view, create, or edit resources, ensuring secure and efficient collaboration.
            descriptionKey: steps.configureRbac.description
            cta:
              text: Manage access
              textKey: steps.configureRbac.ctaTitle
              link: /rbac
          - title: Configure Git
            titleKey: steps.configureGit.title
            icon: Git
            description: Connect your Git providers, such as GitHub to manage code, automate workflows, and integrate with platform features.
            descriptionKey: steps.configureGit.description
            cta:
              text: Learn more
              textKey: steps.configureGit.ctaTitle
              link: https://docs.redhat.com/en/documentation/red_hat_developer_hub/latest/html/integrating_red_hat_developer_hub_with_github/
          - title: Manage plugins
            titleKey: steps.managePlugins.title
            icon: Plugins
            description: Browse and install extensions to add features, connect with external tools, and customize your experience.
            descriptionKey: steps.managePlugins.description
            cta:
              text: Explore plugins
              textKey: steps.managePlugins.ctaTitle
              link: /extensions
          - title: Import application
            roles:
              - developer
            icon: Import
            description: Import your existing code and services into the catalog to organize and access them through your developer portal.
            cta:
              text: Import
              link: /bulk-import/repositories
          - title: Learn about the Catalog
            roles:
              - developer
            icon: Catalog
            description: Discover all software components, services, and APIs, and view their owners and documentation.
            cta:
              text: View Catalog
              link: /catalog
          - title: Explore Self-service templates
            roles:
              - developer
            icon: SelfService
            description: Use our self-service templates to quickly set up new projects, services, or documentation.
            cta:
              text: Explore templates
              link: /create
          - title: Find all Learning Paths
            roles:
              - developer
            icon: Learning
            description: Integrate tailored e-learning into your workflows with Learning Paths to accelerate onboarding, close skill gaps, and promote best practices.
            cta:
              text: View Learning Paths
              link: /learning-paths
      dynamicPlugins:
        frontend:
          red-hat-developer-hub.backstage-plugin-quickstart:
            translationResources:
              - importName: quickstartTranslations
                module: Alpha
                ref: quickstartTranslationRef
            mountPoints:
              - mountPoint: application/provider
                importName: QuickstartDrawerProvider
              - mountPoint: global.header/help
                importName: QuickstartButton
                config:
                  priority: 100

  # Group: Homepage
  - package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-dynamic-home-page
    disabled: false
    pluginConfig:
      dynamicPlugins:
        frontend:
          red-hat-developer-hub.backstage-plugin-dynamic-home-page:
            dynamicRoutes:
              - path: /
                importName: DynamicHomePage
            mountPoints:
              - mountPoint: application/listener
                importName: VisitListener
              - mountPoint: home.page/cards
                importName: OnboardingSection
                config:
                  layouts:
                    xl: { w: 12, h: 6 }
                    lg: { w: 12, h: 6 }
                    md: { w: 12, h: 7 }
                    sm: { w: 12, h: 8 }
                    xs: { w: 12, h: 9 }
                    xxs: { w: 12, h: 14 }
              - mountPoint: home.page/cards
                importName: EntitySection
                config:
                  layouts:
                    xl: { w: 12, h: 7 }
                    lg: { w: 12, h: 7 }
                    md: { w: 12, h: 8 }
                    sm: { w: 12, h: 9 }
                    xs: { w: 12, h: 11 }
                    xxs: { w: 12, h: 15 }
              - mountPoint: home.page/cards
                importName: TemplateSection
                config:
                  layouts:
                    xl: { w: 12, h: 5 }
                    lg: { w: 12, h: 5 }
                    md: { w: 12, h: 5 }
                    sm: { w: 12, h: 5 }
                    xs: { w: 12, h: 7.5 }
                    xxs: { w: 12, h: 13.5 }
            translationResources:
              - importName: homepageTranslations
                ref: homepageTranslationRef

  # Group: Techdocs
  - package: ./dynamic-plugins/dist/backstage-plugin-techdocs-backend-dynamic
    disabled: false
    pluginConfig:
      # Reference documentation http://backstage.io/docs/features/techdocs/configuration
      # Note: After experimenting with basic setup, use CI/CD to generate docs
      # and an external cloud storage when deploying TechDocs for production use-case.
      # https://backstage.io/docs/features/techdocs/how-to-guides#how-to-migrate-from-techdocs-basic-to-recommended-deployment-approach
      techdocs:
        builder: local
        generator:
          runIn: local
        publisher:
          type: local
  - package: ./dynamic-plugins/dist/backstage-plugin-techdocs
    disabled: false
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage.plugin-techdocs:
            routeBindings:
              targets:
                - importName: techdocsPlugin
              bindings:
                - bindTarget: catalogPlugin.externalRoutes
                  bindMap:
                    viewTechDoc: techdocsPlugin.routes.docRoot
                - bindTarget: scaffolderPlugin.externalRoutes
                  bindMap:
                    viewTechDoc: techdocsPlugin.routes.docRoot
            dynamicRoutes:
              - path: /docs
                importName: TechDocsIndexPage
                menuItem:
                  icon: docs
                  text: Docs
                  textKey: menuItem.docs
              - path: /docs/:namespace/:kind/:name/*
                importName: TechDocsReaderPage
            mountPoints:
              - mountPoint: entity.page.docs/cards
                importName: EntityTechdocsContent
                config:
                  layout:
                    gridColumn: "1 / -1"
                  if:
                    allOf:
                      - isTechDocsAvailable
              - mountPoint: search.page.results
                importName: TechDocsSearchResultListItem
              - mountPoint: search.page.filters
                importName: TechdocsSearchFilter
              - mountPoint: search.page.types
                importName: techdocsSearchType
                config:
                  props:
                    name: Documentation
                    icon: docs
  - package: ./dynamic-plugins/dist/backstage-plugin-techdocs-module-addons-contrib
    disabled: false
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage.plugin-techdocs-module-addons-contrib:
            techdocsAddons:
              - importName: ReportIssue

  # Group: PagerDuty
  - package: ./dynamic-plugins/dist/pagerduty-backstage-plugin
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          pagerduty.backstage-plugin:
            mountPoints:
              - mountPoint: entity.page.overview/cards
                importName: EntityPagerDutyCard
                config:
                  layout:
                    gridColumnEnd:
                      md: "span 6"
                      xs: "span 12"
                  if:
                    allOf:
                      - isPluginApplicableToEntity
  - package: ./dynamic-plugins/dist/pagerduty-backstage-plugin-backend-dynamic
    disabled: true
    pluginConfig:
      pagerDuty:
        apiBaseUrl: ${PAGERDUTY_API_BASE}
        oauth:
          clientId: ${PAGERDUTY_CLIENT_ID}
          clientSecret: ${PAGERDUTY_CLIENT_SECRET}
          subDomain: ${PAGERDUTY_SUBDOMAIN}

  # Standalone plugins
  - package: ./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-gerrit-dynamic
    disabled: true

  - package: ./dynamic-plugins/dist/roadiehq-scaffolder-backend-module-utils-dynamic
    disabled: true

  - package: ./dynamic-plugins/dist/roadiehq-scaffolder-backend-module-http-request-dynamic
    disabled: true

  - package: ./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-kubernetes-dynamic
    disabled: true

  - package: ./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-quay-dynamic
    disabled: false

  - package: ./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-regex-dynamic
    disabled: false

  # Group: RBAC
  - package: ./dynamic-plugins/dist/backstage-community-plugin-rbac
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-rbac:
            translationResources:
              - importName: rbacTranslations
                ref: rbacTranslationRef
                module: Alpha
            appIcons:
              - name: rbacIcon
                importName: RbacIcon
            dynamicRoutes:
              - path: /rbac
                importName: RbacPage
                menuItem:
                  icon: rbacIcon
                  text: RBAC
                  textKey: menuItem.rbac
            menuItems:
              rbac:
                parent: default.admin
                icon: rbacIcon

  - package: ./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-servicenow-dynamic
    disabled: true
    pluginConfig:
      servicenow:
        # The base url of the ServiceNow instance.
        baseUrl: ${SERVICENOW_BASE_URL}
        # The username to use for authentication.
        username: ${SERVICENOW_USERNAME}
        # The password to use for authentication.
        password: ${SERVICENOW_PASSWORD}

  - package: ./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-sonarqube-dynamic
    disabled: true

  - package: ./dynamic-plugins/dist/backstage-community-plugin-3scale-backend-dynamic
    disabled: true
    pluginConfig:
      catalog:
        providers:
          threeScaleApiEntity:
            default:
              baseUrl: '${THREESCALE_BASE_URL}'
              accessToken: '${THREESCALE_ACCESS_TOKEN}'

  - package: ./dynamic-plugins/dist/backstage-community-plugin-catalog-backend-module-keycloak-dynamic
    disabled: true
    pluginConfig:
      catalog:
        providers:
          keycloakOrg:
            default:
              baseUrl: "${KEYCLOAK_BASE_URL}"
              loginRealm: "${KEYCLOAK_LOGIN_REALM}"
              realm: "${KEYCLOAK_REALM}"
              clientId: "${KEYCLOAK_CLIENT_ID}"
              clientSecret: "${KEYCLOAK_CLIENT_SECRET}"
              schedule:
                frequency:
                  minutes: 60
                initialDelay:
                  seconds: 15
                timeout:
                  minutes: 50

  # Group: BitBucket
  - package: ./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-bitbucket-cloud-dynamic
    disabled: true
  - package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-bitbucket-cloud-dynamic
    disabled: true
    pluginConfig:
      # https://backstage.io/docs/integrations/bitbucketCloud/discovery#configuration
      catalog:
        providers:
          bitbucketCloud:
            default: # identifies your ingested dataset
              workspace: ${BITBUCKET_WORKSPACE}
              schedule:
                frequency:
                  minutes: 30
                initialDelay:
                  minutes: 1
                timeout:
                  minutes: 3
  - package: ./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-bitbucket-server-dynamic
    disabled: true
  - package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-bitbucket-server-dynamic
    disabled: true
    pluginConfig:
      # https://backstage.io/docs/integrations/bitbucketServer/discovery#configuration
      catalog:
        providers:
          bitbucketServer:
            default: # identifies your ingested dataset
              host: ${BITBUCKET_HOST}
              schedule:
                frequency:
                  minutes: 30
                initialDelay:
                  minutes: 1
                timeout:
                  minutes: 3

  - package: ./dynamic-plugins/dist/backstage-community-plugin-dynatrace
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-dynatrace:
            mountPoints:
              - mountPoint: entity.page.monitoring/cards
                importName: DynatraceTab
                config:
                  layout:
                    gridColumn: "1 / -1"
                  if:
                    allOf:
                      - isDynatraceAvailable

  - package: ./dynamic-plugins/dist/roadiehq-backstage-plugin-jira
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          roadiehq.backstage-plugin-jira:
            mountPoints:
              - mountPoint: entity.page.issues/cards
                importName: EntityJiraOverviewCard
                config:
                  layout:
                    gridColumn: "1 / -1"
                  if:
                    allOf:
                      - isJiraAvailable

  - package: ./dynamic-plugins/dist/roadiehq-backstage-plugin-datadog
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          roadiehq.backstage-plugin-datadog:
            mountPoints:
              - mountPoint: entity.page.monitoring/cards
                importName: EntityDatadogContent
                config:
                  layout:
                    gridColumn: "1 / -1"
                  if:
                    allOf:
                      - isDatadogAvailable

  - package: ./dynamic-plugins/dist/backstage-community-plugin-tekton
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-tekton:
            translationResources:
              - importName: tektonTranslations
                ref: tektonTranslationRef
            mountPoints:
              - mountPoint: entity.page.ci/cards
                importName: TektonCI
                config:
                  layout:
                    gridColumn: "1 / -1"
                  if:
                    allOf:
                      - isTektonCIAvailable

  - package: ./dynamic-plugins/dist/backstage-community-plugin-quay
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-quay:
            mountPoints:
              - mountPoint: entity.page.image-registry/cards
                importName: QuayPage
                config:
                  layout:
                    gridColumn: 1 / -1
                  if:
                    anyOf:
                    - isQuayAvailable

  - package: ./dynamic-plugins/dist/backstage-community-plugin-nexus-repository-manager
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-nexus-repository-manager:
            mountPoints:
              - mountPoint: entity.page.image-registry/cards
                importName: NexusRepositoryManagerPage
                config:
                  layout:
                    gridColumn: 1 / -1
                  if:
                    anyOf:
                    - isNexusRepositoryManagerAvailable

  - package: ./dynamic-plugins/dist/backstage-community-plugin-acr
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-acr:
            mountPoints:
              - mountPoint: entity.page.image-registry/cards
                importName: AcrImagesEntityContent
                config:
                  layout:
                    gridColumn: 1 / -1
                  if:
                    anyOf:
                    - isAcrAvailable

  - package: ./dynamic-plugins/dist/backstage-community-plugin-jfrog-artifactory
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-jfrog-artifactory:
            mountPoints:
              - mountPoint: entity.page.image-registry/cards
                importName: JfrogArtifactoryPage
                config:
                  layout:
                    gridColumn: 1 / -1
                  if:
                    anyOf:
                    - isJfrogArtifactoryAvailable

  - package: ./dynamic-plugins/dist/backstage-community-plugin-lighthouse
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-lighthouse:
            appIcons:
              - name: lighthouse
                importName: LighthouseIcon
            dynamicRoutes:
              - path: /lighthouse
                importName: LighthousePage
                menuItem:
                  icon: lighthouse
                  text: menuItem.lighthouse
                  textKey: menuItem.lighthouse
            mountPoints:
              - mountPoint: entity.page.overview/cards
                importName: EntityLastLighthouseAuditCard
                config:
                  layout:
                    gridColumnEnd:
                      md: "span 6"
                      xs: "span 12"
                  if:
                    allOf:
                      - isLighthouseAvailable

  # Group: TechRadar
  - package: ./dynamic-plugins/dist/backstage-community-plugin-tech-radar
    disabled: true
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-tech-radar:
            apiFactories:
              - importName: TechRadarApi
            appIcons:
              - name: techRadar
                importName: TechRadarIcon
            dynamicRoutes:
              - path: /tech-radar
                importName: TechRadarPage
                menuItem:
                  icon: techRadar
                  text: menuItem.techRadar
                  textKey: menuItem.techRadar
                config:
                  props:
                    width: 1500
                    height: 800
  - package: ./dynamic-plugins/dist/backstage-community-plugin-tech-radar-backend-dynamic
    disabled: true
    pluginConfig:
      techRadar:
        url: ${TECH_RADAR_DATA_URL}

  - package: ./dynamic-plugins/dist/backstage-community-plugin-analytics-provider-segment
    disabled: false
    pluginConfig:
      dynamicPlugins:
        frontend:
          backstage-community.plugin-analytics-provider-segment:
            analyticsApiExtensions:
              - importName: SegmentAnalytics
      backend:
        csp:
          script-src:
            - '''self'''
            - '''unsafe-eval'''
            - 'https://cdn.segment.com'
      app:
        analytics:
          segment:
            writeKey: ${SEGMENT_WRITE_KEY}
            maskIP: true # prevents IP addresses from being sent if true
            testMode: ${SEGMENT_TEST_MODE} # prevents data from being sent if true
            appVersion: ${RHDH_VERSION} # RHDH application version
            backstageVersion: ${BACKSTAGE_VERSION} # Backstage version

  - package: ./dynamic-plugins/dist/backstage-community-plugin-catalog-backend-module-scaffolder-relation-processor-dynamic
    disabled: true

  - package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-msgraph-dynamic
    disabled: true
    pluginConfig:
      catalog:
        providers:
          microsoftGraphOrg:
            providerId:
              target: https://graph.microsoft.com/v1.0
              tenantId: ${MICROSOFT_TENANT_ID}
              clientId: ${MICROSOFT_CLIENT_ID}
              clientSecret: ${MICROSOFT_CLIENT_SECRET}
              schedule:
                frequency:
                  minutes: 60
                initialDelay:
                  seconds: 15
                timeout:
                  minutes: 15

  - package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-ldap-dynamic
    disabled: true
    pluginConfig:
      catalog:
        providers:
          ldapOrg:
            default:
              target: ${LDAP_TARGET_URL}
              bind:
                dn: ${LDAP_BIND_DN}
                secret: ${LDAP_BIND_SECRET}
              users:
                - dn: ${LDAP_USERS_DN}
                  options:
                    filter: (uid=*)
              groups:
                - dn: ${LDAP_GROUPS_DN}
                  options:
                    filter: (cn=*)
              schedule:
                frequency:
                  minutes: 60
                initialDelay:
                  seconds: 15
                timeout:
                  minutes: 15

  - package: ./dynamic-plugins/dist/backstage-community-plugin-catalog-backend-module-pingidentity-dynamic
    disabled: true
    pluginConfig:
      catalog:
        providers:
          pingIdentityOrg: {}

  # Group: Marketplace
  - package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-catalog-backend-module-marketplace-dynamic
    disabled: false
  - package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-marketplace-backend-dynamic
    disabled: false
  - package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-marketplace
    disabled: false
    pluginConfig:
      dynamicPlugins:
        frontend:
          red-hat-developer-hub.backstage-plugin-marketplace:
            translationResources:
              - importName: marketplaceTranslations
                ref: marketplaceTranslationRef
                module: Alpha
            appIcons:
              - name: pluginsIcon
                importName: PluginsIcon
            dynamicRoutes:
              - path: /extensions
                importName: DynamicMarketplacePluginRouter
                menuItem:
                  icon: pluginsIcon
                  text: Extensions
                  textKey: menuItem.extensions
            menuItems:
              extensions:
                parent: default.admin

  # Group: Orchestrator
  - package: "@redhat/backstage-plugin-orchestrator@1.8.2"
    disabled: true
    integrity: sha512-rnUA6iZ2JVAyASfwS4P9HeFmpqCgH6FQouzzg4s6lCPAsYUFvu6tifJ3df5lThXPUTJ2cDvvQgamU+4DiHP2jw==
    pluginConfig:
      dynamicPlugins:
        frontend:
          red-hat-developer-hub.backstage-plugin-orchestrator:
            appIcons:
              - importName: OrchestratorIcon
                name: orchestratorIcon
            dynamicRoutes:
              - importName: OrchestratorPage
                menuItem:
                  icon: orchestratorIcon
                  text: Orchestrator
                  textKey: menuItem.orchestrator
                path: /orchestrator
            entityTabs:
              - path: /workflows
                title: Workflows
                titleKey: catalog.entityPage.workflows.title
                mountPoint: entity.page.workflows
            mountPoints:
              - mountPoint: entity.page.workflows/cards
                importName: OrchestratorCatalogTab
                config:
                  layout:
                    gridColumn: '1 / -1'
                    if:
                      anyOf:
                        - IsOrchestratorCatalogTabAvailable
  - package: "@redhat/backstage-plugin-orchestrator-backend-dynamic@1.8.2"
    disabled: true
    integrity: sha512-6G0YguzCM5nCDpOrIGJpLTXVMr6EBdIVqSXtsLH9RvBH25RTuFpfJ7q6eEp26DqveaiqUCfBpJ51smdjcsEzFQ==
    pluginConfig:
      orchestrator:
        dataIndexService:
          url: http://sonataflow-platform-data-index-service

  - package: "@redhat/backstage-plugin-scaffolder-backend-module-orchestrator-dynamic@1.8.2"
    disabled: true
    integrity: sha512-N2hCn9RI/QVEoK56FAkGkSDbvfQCOIzVsJTwDX0kf//npO++2crRSJpB1Lr/m2UtYxfaXZX53p8sPcK3g8yWkQ==
    pluginConfig:
      orchestrator:
        dataIndexService:
          url: http://sonataflow-platform-data-index-service

  - package: "@redhat/backstage-plugin-orchestrator-form-widgets@1.8.2"
    disabled: true
    integrity: sha512-Pe0dn3g+YTK3jbl36E8nt4zdyH/3w+MWgRyFWPc2B0eV4/L/aRfRC4KxcktmHPdamRGXTIaXL6cFae8TZl8Htw==
    pluginConfig:
      dynamicPlugins:
        frontend:
          red-hat-developer-hub.backstage-plugin-orchestrator-form-widgets: { }

  # Group: Adoption Insights
  - package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-adoption-insights
    disabled: false
    pluginConfig:
      dynamicPlugins:
        frontend:
          red-hat-developer-hub.backstage-plugin-adoption-insights:
            translationResources:
              - importName: adoptionInsightsTranslations
                ref: adoptionInsightsTranslationRef
            appIcons:
              - name: adoptionInsightsIcon
                importName: AdoptionInsightsIcon
            dynamicRoutes:
              - path: /adoption-insights
                importName: AdoptionInsightsPage
                menuItem:
                  icon: adoptionInsightsIcon
                  text: Adoption Insights
                  textKey: menuItem.adoptionInsights
            menuItems:
              adoption-insights:
                parent: default.admin
                icon: adoptionInsightsIcon
  - package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-adoption-insights-backend-dynamic
    disabled: false
    pluginConfig:
      app:
        analytics:
          adoptionInsights:
            maxBufferSize: 20
            flushInterval: 5000
            debug: false
            licensedUsers: 100
  - package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-analytics-module-adoption-insights-dynamic
    disabled: false
    pluginConfig:
      dynamicPlugins:
        frontend:
          red-hat-developer-hub.backstage-plugin-analytics-module-adoption-insights:
            analyticsApiExtensions:
              - importName: AdoptionInsightsAnalyticsApi
