-
Notifications
You must be signed in to change notification settings - Fork 320
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
New plugin: Manage #2569
New plugin: Manage #2569
Conversation
Missing ChangesetsThe following package(s) are changed by this PR but do not have a changeset:
See CONTRIBUTING.md for more information about how to add changesets. Changed Packages
|
ee9ba55
to
3983e5b
Compare
Is there anything preventing contributing the tech-insights related pieces back to the core workspace? |
Not at all @kurtaking, perhaps that would make more sense to do, right in this PR? Moving it to the EDIT: |
a891b8c
to
6e833d5
Compare
Fixed missing api-reports. Now, I'm not sure what the failure of |
I mention this because #2464 is about to be merged. What I've noticed is there are a lot of people trying to tackle the concept of scorecards, aggregated insights, rollups, etc, including myself. I was already exploring opportunities to contribute what we have internally upstream, so I'm pushing for the reusable, tech-insights pieces to get integrated directly into the core plugins. For example, There would still be the |
Try |
6e833d5
to
385cdf6
Compare
Thanks @kurtaking, that solved it! I agree that reusable components from something like Let's first try to get this in though, the vast majority of this PR is not tech-insights related - it's just the first module for the manage plugin. Preferably we'd have columns (and possibly aggregated statistics/metrics) provided by other plugins, e.g. kubernetes. |
Nice, glad to hear 🎉 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thank you! 🙏
workspaces/manage/plugins/manage-module-tech-insights/src/columns/hooks.ts
Outdated
Show resolved
Hide resolved
...ins/manage-module-tech-insights/src/components/ManageProvider/ManageProviderTechInsights.tsx
Outdated
Show resolved
Hide resolved
...s/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/OwnedEntitiesProvider.tsx
Outdated
Show resolved
Hide resolved
...s/manage/plugins/manage-react/src/components/OwnedEntitiesProvider/OwnedEntitiesProvider.tsx
Outdated
Show resolved
Hide resolved
Thanks for the review! I just applied the changes. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apologies for review the delay 🙏🏻 , just a couple of non-blocking queries
workspaces/manage/plugins/manage-module-tech-insights/package.json
Outdated
Show resolved
Hide resolved
e5408a6
to
146be85
Compare
Signed-off-by: Gustaf Räntilä <g.rantila@gmail.com>
146be85
to
66bf067
Compare
@vinzscam @BethGriggs I now fixed the code/packing to the great comments you had, squashed the commits and rebased on main. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good for the initial merge
let's go |
Signed-off-by: Gustaf Räntilä <g.rantila@gmail.com> Signed-off-by: Guitton Nicolas <nguitton@cegid.com>
Signed-off-by: Gustaf Räntilä <g.rantila@gmail.com>
Manage page plugin
This PR adds a workspace for a plugin that shows a page with relevant information to developers - the components (and other entities) they and their teams own, and possibly other functionality, analytics, statistics etc.
Having worked at Spotify, I often used the Manage page shown in the Introduction to Backstage video (beginning at 10:30, or jump straight to 15:00). It's a really useful plugin that quickly becomes the go to page to see things relevant for you.
This is an attempt to mimic the functionality of that page, and make it customizable and extendable to implementors.
Introduction
The plugin provides a default set of tabs showing entities owned by the user and their teams. It also comes with an Organization view that can be added as a tab, showing the group hierarchy for the user, and their starred entities (both optional).
An implementor can add custom tabs before and after these default tabs, and the Settings tab (unless disabled) allows the user to customize the order of those tabs to what suits them (stored in user settings).
An implementor can add custom components above and below the entity tables, and those components can use hooks to know what kind and what entities are being displayed, to fetch information about those entities from the backend and maybe aggregate data about them.
Extending
Most of this page is customizable, and there are plenty of hooks to use to build custom components and functionality. There are hooks for getting the users groups, the owned entities, the starred entities, etc. These hooks can be used anywhere in the page.
There are other hooks that can only be used in the tabs showing entities, for that particular kind.
The tables showing entities can be extended with custom columns. This PR contains a plugin module for tech-insights, which shows tech-insights checks in individual columns or aggregated into one column (which is more visually friendly if there are very many checks for certain kinds).
An extension to the manage page can register itself (as an API ref) to the Manage page API and provide a React Provider that will be injected into the tab for a certain kind. This allows an implementor to build custom columns that can use a Provider (rendered outside the table) for fetching the data, instead of fetching data in each and every row/column component. This is used in the tech-insights module for reference, and improves performance drastically.
Examples
Components (showing multiple tech-insights in one column)
Components (expanded tech-insights and hovering a column)
Systems (showing tech-insight checks one per column)
Combining all entities into one view
Settings
Usage
Please look at the README's for the individual plugins in this PR to understand more about them.
✔️ Checklist
Signed-off-by
line in the message. (more info)