Uploaded image for project: 'Red Hat Internal Developer Platform'
  1. Red Hat Internal Developer Platform
  2. RHIDP-4981

Software template to guide and kickoff new plugins (incl. BE/FE API calls and workspace support)

Create Doc EPIC for Fe...Prepare for Y ReleasePrepare for Z ReleaseXMLWordPrintable

    • M
    • False
    • Hide

      None

      Show
      None
    • False

      Feature Overview (aka. Goal Summary)

      A software template to create a complete, battery-included, opinionated (following our best practices/recommendation) plugin workspace with demo code to add a new page and demo code to add a catalog entity tab or card.

      Existing software templates / History

      This is a follow-up on RHIDP-830 (Documentation to create plugins with best practices), where we created 'simple' software templates for

      1. RHIDP-1166 Create a software template for a Backend plugin / https://github.com/redhat-developer/red-hat-developer-hub-software-templates/tree/main/templates/create-backend-plugin
      2. RHIDP-1167 Create a software template for a Frontend plugin / https://github.com/redhat-developer/red-hat-developer-hub-software-templates/tree/main/templates/create-frontend-plugin

      The issue with these templates is that they expect an existing backstage application. So they replacing a yarn new command in that workspace. They also replicate just the standard template from Backstage.

      Goals (aka. expected user outcomes)

      Primary goal should be users that want setup a complete new plugin.

      The software template should guide them for different scenarios:

      Backend (radio options)

      • Create a backend plugin
      • ( ) Add proxy example (add a proxy example to the app-config.yaml)
      • ( ) Add Kubernetes dependencies (stretch goal?)
      • ( ) None

      Additional options when "Create backend plugin" is selected:

      • [x] Incl. permission dependencies and example code
      • [ ] Use database
      • [ ] tbd!
      • Plugin name

      Frontend (radio options)

      • Create a frontend plugin
      • ( ) No frontend plugin

      Additional options when "Create a frontend plugin" is selected:

      • [ ] Use react-query
      • [ ] tbd!

      Note: A common plugin should be automatically created if a frontend and backend plugin is selected or the permission option is enabled.

      Repository information

      The template should allow the user to

      • ( ) create a new repository that contains just this plugin.
      • ( ) add the repository as a workspace to an existing repository (like bcp or rhdh-plugins)

      Requirements (aka. Acceptance Criteria):

      A list of specific needs or objectives that a feature must deliver in order
      to be considered complete. If the feature spans across releases then good
      to have scope for each release with acceptance criteria. Be sure to
      include nonfunctional requirements such as security, reliability,
      performance, maintainability, scalability, usability, etc.

      1. Software template that give the user the option to create a frontend and backend plugin, incl. a backstage app, in a new git repository or as a new workspace.
      2. The template should allow the user to push these for a new repository to a GitHub or GitLab repository.
      3. The template should allow the user to open a PR on GitHub or MR on GitLab to add a new workspace to an existing git repository.
      4. The template should contain an example for a dedicated new page.
      5. The template should contain an example to extend the catalog entity detail page by adding a new tab (incl. annotation example)
      6. The template should contain an example to extend the catalog entity detail page by adding a card to an existing tab (incl. annotation example)
      7. The template should contain an example that fetches information from the backend, via react-query, and show this in the frontend.
      8. The template should include permission checks in the backend and frontend code.
      9. The created repository should contain information or build scripts to build and deploy it into a RHDH installation.

      Out of Scope (Optional)

      High-level list of items that are out of scope.

      <your text here>

      Customer Considerations (Optional)

      Provide any additional customer-specific considerations that must be made
      when designing and delivering the Feature. Initial completion during
      Refinement status.

      The template should allow Red Hat (especially other teams besides RHDH) and our customers to create new plugins.

      Documentation Considerations

      Provide information that needs to be considered and planned so that
      documentation will meet customer needs. If the feature extends existing
      functionality, provide a link to its current documentation.

      <your text here>

              cjerolim Christoph Jerolimov
              cjerolim Christoph Jerolimov
              RHIDP - Frontend Plugins & UI
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: