Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spike: Explore PatternFly usage with Backstage #70

Closed
9 tasks done
Tracked by #58
gorkem opened this issue Jan 11, 2023 · 8 comments
Closed
9 tasks done
Tracked by #58

Spike: Explore PatternFly usage with Backstage #70

gorkem opened this issue Jan 11, 2023 · 8 comments
Assignees

Comments

@gorkem
Copy link
Contributor

gorkem commented Jan 11, 2023

Goal
Study how PatternFly and existing PatternFly components can be used with Backstage. Find capabilities, limitations and document them.

What problem does this solve? Please describe.
Existing OpenShift console components such as the topology and pipelines views rely heavily on PatternFly. Backstage on the other hand uses Material UI. To evaluate whether we can reuse existing code, we need to determine if it's possible to use PatternFly in a plugin.

Use cases
As a plugin developer, I want to use PatternFly components in a Backstage plugin so that I can reuse existing code from OpenShift console.

Acceptance criteria
Explore answers the following questions:

  • Can I use @patternfly/react-core components in a Backstage plugin?
  • Can PatternFly CSS be contributed from a plugin, or does it have to be added to the root Backstage app?
  • Does PatternFly CSS break the display of Material UI / Backstage components or layout?
  • Does Material CSS break display of PatternFly components?
  • Do the styles clash? Can we theme either PatternFly or Backstage to mitigate the different look and feel?
  • Can I use the @patternfly/react-topology?
  • Can I use the @patternfly/react-table?
  • Can I use the @patternfly/react-charts?
  • How do we handle dark mode?

Document the findings.

Additional context

Designing for Backstage: https://backstage.io/docs/dls/design
Backstage plugins: https://backstage.io/docs/plugins/
Customizing Backstage look and feel: https://backstage.io/docs/getting-started/app-custom-theme
PatternFly React docs: https://patternfly-react-main.surge.sh/

@gorkem
Copy link
Contributor Author

gorkem commented Jan 11, 2023

@spadgett Can you possibly update this one with an Acceptance criteria and other information?

@spadgett
Copy link

@gorkem Happy to, although it looks like I don't have permission to edit issues

@spadgett spadgett changed the title Explore Patternfly usage with Backstage Spike: Explore PatternFly usage with Backstage Jan 13, 2023
@spadgett spadgett self-assigned this Jan 13, 2023
@serenamarie125
Copy link
Contributor

@spadgett note we have a separate issue for Topology

@spadgett
Copy link

How PatternFly components look when used in Backstage:

Screenshot 2023-01-24 at 9 00 55 AM

@invincibleJai
Copy link
Member

@spadgett does PF component update here based on the dark/light theme? or this is something that needs to be handled/looked into separately

@spadgett
Copy link

@invincibleJai Let me add it to the list... IIRC this requires manually adding a pf-theme-dark class to the root element for PF to update. Presumably we can key off of the Backstage setting and add the class.

@rtaniwa
Copy link

rtaniwa commented Feb 15, 2023

Moving this one as a task under the Topology epic, and closing as this work is complete.

@rtaniwa rtaniwa closed this as completed Feb 15, 2023
@serenamarie125
Copy link
Contributor

Adding link to Sam's doc here

mareklibra added a commit to mareklibra/janus-idp-backstage-plugins that referenced this issue Apr 5, 2023
fix recursive bug by refactoring transformWorkToStep to use javascript generators
batzionb pushed a commit to batzionb/backstage-plugins that referenced this issue Jan 11, 2024
jkilzi pushed a commit to jkilzi/janus-idp-backstage-plugins that referenced this issue Jan 12, 2024
jkilzi pushed a commit to jkilzi/janus-idp-backstage-plugins that referenced this issue Jan 16, 2024
openshift-merge-bot bot pushed a commit that referenced this issue Jan 17, 2024
* feat(orchestrator): add orchestrator plugins

Squashed and rebased. Credits to
- Guilherme Caponetto
- Tiago Dolphine
- Michael Anstis

who did the work before squash and rebase.

* feat(orchestrator): enable dynamic plugin

* fix(orchestrator): load HostDirectory from backend-app-api (#28)

Signed-off-by: Moti Asayag <[email protected]>
(cherry picked from commit 3ba02c6)

* fix(orchestrator): make the port config optional (#38)

* feat(orchestrator): handle assessment workflow and make optional the workflowsSource config (#35)

* feat: issue FLPATH-591 - Add assessment workflow type and display outputs (#21)

* Configure for assessment swf

* filter assessment on workflow definition page

* workflow columns

* workflow columns

* workflow columns

* workflow filter

* feat: Render assessment results supporting dynamic categories

* issue FLPATH-657: workflow label

* Revert "Configure for assessment swf"

This reverts commit b4048e1.

* Revert sonata service port

* Add key for workflow options category

* Fix workflow execution from choose btn

* Fix review comments

* address comments

* Fix review comment to switch to useRouteRef

* fix review comments

* fix review comments

---------

Co-authored-by: richardwang98 <[email protected]>

* feat: make optional the workflowsSource config (#25)

---------

Co-authored-by: anludke <[email protected]>

* feat(orchestrator): add backend endpoint for getting workflows from data index service (#39)

* feat: add backend for getting work flows from data index service

* feat: cherrypick - add backend for getting work flows from data index service

* feat: cherrypick - add backend for getting work flows from data index service

* feat: cherrypick - add backend for getting work flows from data index service

* chore(orchestrator): update dependencies

* feat(orchestrator): orchestrator plugin entry page & workflows table (#31)

https://issues.redhat.com/browse/FLPATH-686
https://issues.redhat.com/browse/FLPATH-682

* feat: introduced the workflows/overview endpoint (#36)

* FLPATH-702 : New endpoint to fetch workflow overview

* FLPATH-702 : iterate through all elements instead of picking the first element

* modified the map method

* calculate avg execution time change

* Add log message when http calls failing

* Fix lint issues

* rename variable

* paginated graphql object fetch

* Include workflowId in the result object

* Renamed to description

* to epoc timestamp

* suppress eslint warning

* epoc number to string

* make all string fields optional

* use a simple for loop

* extracted to a new method

* rename to lastTriggeredMs

* include uri in the WorkflowOverview type

* mark avgDurationMs as optional

* feat(orchestrator): introduced `workflows/:workflowId/overview` endpoint (#40)

* FLPATH-702 : New endpoint to fetch workflow overview

* FLPATH-702 : iterate through all elements instead of picking the first element

* modified the map method

* calculate avg execution time change

* Add log message when http calls failing

* Fix lint issues

* rename variable

* paginated graphql object fetch

* Include workflowId in the result object

* Renamed to description

* to epoc timestamp

* suppress eslint warning

* epoc number to string

* make all string fields optional

* use a simple for loop

* extracted to a new method

* rename to lastTriggeredMs

* include uri in the WorkflowOverview type

* mark avgDurationMs as optional

* fetch only one overview obj

* fix(orchestrator): make the port config optional (#37)

* feat(orchestrator): orchestrator plugin entry page & workflows table (#31)

https://issues.redhat.com/browse/FLPATH-686
https://issues.redhat.com/browse/FLPATH-682

* removed unnecessary method

---------

Co-authored-by: Guilherme Caponetto <[email protected]>
Co-authored-by: Jonathan Kilzi <[email protected]>

* feat(orchestrator): add Workflow Run List  (#30)

* feat(orchestrator): add Workflow Run List

FLPATH-693

A component listing running workflows is added.

* chore: move loading logic out of the OrchestratorPage

* chore(orchestrator): implement the WorkflowViewerFormatter (#41)

* chore: implement the WorkflowViewerFormatter: utility for converting WorkflowOverview backend data to data UI can display

* removed redundant export and removed redundant 'Interface' suffix from DataFormatter interface name

* Update plugins/orchestrator/src/dataFormatters/DataFormatter.ts

Co-authored-by: Guilherme Caponetto <[email protected]>

---------

Co-authored-by: Guilherme Caponetto <[email protected]>

* feat(orchestrator): fetch data input schema from `/management/processes` (#45)

* Fetch data input schema from /management/processes

* Fix some code smells

* Rename WorkflowProcess -> WorkflowInfo

* feat(orchestrator): implement the workflow viewer new UX (#32)

* feat(orechestrator): implement the workflow viewer new UX

* code review fixes

* visual fixes including skeleton for loading state

* chore(orchestrator): Renames the components displaying the tabs content

* chore(orchestrator): updates the OrchestratorClient

Lazy loads the baseUrl
Adds a method for calling GET /workflows/overview

* feat(orchestrator): orchestrator workflow execution page (#46)

Co-authored-by: Jonathan Kilzi <[email protected]>

* chore(orchestrator): updates the stories grouping (#50)

* chore(orchestrator): aligns the workflows table with the design (#51)

* chore(orchestrator): add Category to the procesInstance result (#52)

* fix(orchestrator): add links to workflows in the workflow list (#53)

* feat: added color icon to workflow details page last run status field (#55)

* feat(orchestrator): enable usage of local envelope for the workflow editor (#56)

* feat(orchestrator): add business key to assessment and pass on to workflow options (#42)

* feat(orchestrator): add page listing details of a workflow run (#49)

* feat(orchestrator): add feature flag for developer mode and config to enable/disable the integration with catalog (#58)

* feat(orchestrator): workflow editor modal (#59)

* feat(orchestrator): fix missing workflow type in overview (#60)

Signed-off-by: Gloria Ciavarrini <[email protected]>

* fix(orchestrator): fix some code smells (#63)

* fix(orchestrator): addresses sonarcloud issues (#65)

* fix(orchestrator): addressed a couple of issues (#64)

* fix(orchestrator): minor fixes (#67)

* feat(orchestrator): refactoring to use data-index to fetch workflow definitions (#57)

Co-authored-by: Guilherme Caponetto <[email protected]>

* fix(orchestrator): fix sonar issue (#69)

* feat(orchestrator): use assessment process id as bk for next workflows (#70)

* feat(orchestrator): execute workflow page new UX (#68)

* fix(orchestrator): theme for `monaco-editor` in `JsonTextAreaForm` component and mandatory `dataIndexService.url` (#71)

* fix(orchestrator): remove dependency on devmode in the entity provider (#72)

* fix(orchestrator): skip it if hardcoded specs do not exist (#74)

* feat(orchestrator): execute workflow page polishing (#75)

* feat(orchestrator): workflow instance result page (#73)

* chore(orchestrator): add codeowners to orchestrator

* fix(FLPATH-852): show WF description on the execution result page (#77)

* chore(orchestrator): add OWNERS file to each orchestrator package

* feat(orchestrator): migrates to the new UI (#78)

---------

Signed-off-by: Gloria Ciavarrini <[email protected]>
Co-authored-by: Moti Asayag <[email protected]>
Co-authored-by: richard wang <[email protected]>
Co-authored-by: anludke <[email protected]>
Co-authored-by: rhkp <[email protected]>
Co-authored-by: Jonathan Kilzi <[email protected]>
Co-authored-by: Jude Niroshan <[email protected]>
Co-authored-by: Marek Libra <[email protected]>
Co-authored-by: Bat-Zion Rotman <[email protected]>
Co-authored-by: yu zhao <[email protected]>
Co-authored-by: Gloria Ciavarrini <[email protected]>
Co-authored-by: Tiago Dolphine <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants