feature/catalog updates - #17
Open
tmclaugh wants to merge 10 commits into
Open
Conversation
I no longer need a plugin and can just make overrides to the catalog plugin
tmclaugh
force-pushed
the
feature/catalog-updates
branch
from
July 3, 2026 22:28
d2ba64a to
5d4b212
Compare
There was a problem hiding this comment.
Pull request overview
This PR migrates the existing serverlessops-catalog frontend plugin into a Backstage frontend plugin module that extends the core catalog plugin, adding ServerlessOps-specific catalog and directory tabbed pages plus configurable pagination.
Changes:
- Replaces
@internal/backstage-plugin-serverlessops-catalogwith@internal/backstage-plugin-catalog-module-serverlessopsand wires it into the app. - Introduces a new catalog module that overrides the catalog index page, adds a directory page, and threads pagination config through entity list views.
- Updates app configuration to define pagination settings for the catalog page.
Reviewed changes
Copilot reviewed 21 out of 35 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/yarn.lock | Adds the new workspace module and zod dependency; removes the old plugin workspace entry. |
| src/plugins/serverlessops-catalog/src/plugin.tsx | Removes the old standalone frontend plugin implementation. |
| src/plugins/serverlessops-catalog/src/plugin.test.ts | Removes tests tied to the old plugin surface. |
| src/plugins/serverlessops-catalog/src/index.ts | Removes old entrypoint exports. |
| src/plugins/serverlessops-catalog/dev/index.tsx | Removes old dev app wiring. |
| src/plugins/catalog-module-serverlessops/src/setupTests.ts | Adds jest-dom setup for the new module package. |
| src/plugins/catalog-module-serverlessops/src/routes.ts | Introduces a route ref (currently not wired into the module entrypoint). |
| src/plugins/catalog-module-serverlessops/src/module.tsx | Adds the new frontend module with tabbed catalog + directory pages and pagination config schema. |
| src/plugins/catalog-module-serverlessops/src/index.ts | Exposes the module as the package default export. |
| src/plugins/catalog-module-serverlessops/src/components/TabbedDirectoryIndexPage/TabbedDirectoryIndexPage.tsx | Adds the tabbed directory page (users/groups). |
| src/plugins/catalog-module-serverlessops/src/components/TabbedDirectoryIndexPage/index.ts | Exports the directory page component. |
| src/plugins/catalog-module-serverlessops/src/components/TabbedCatalogIndexPage/TabbedCatalogIndexPage.tsx | Adds pagination plumbing into the tabbed catalog page. |
| src/plugins/catalog-module-serverlessops/src/components/TabbedCatalogIndexPage/index.ts | Exports the tabbed catalog page component. |
| src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/CatalogIndexPageEntityList.tsx | Introduces a local wrapper around Backstage catalog entity list/table with pagination support. |
| src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/index.ts | Barrel exports for the entity list variants. |
| src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/ApiCatalogIndexPageEntityList.tsx | Adds API entity list (and pagination pass-through). |
| src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/ComponentCatalogIndexPageEntityList.tsx | Adds Component entity list (and pagination pass-through). |
| src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/DomainCatalogIndexPageEntityList.tsx | Adds Domain entity list (and pagination pass-through). |
| src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/LocationCatalogIndexPageEntityList.tsx | Adds Location entity list (and pagination pass-through). |
| src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/ResourceCatalogIndexPageEntityList.tsx | Adds Resource entity list (and pagination pass-through). |
| src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/SystemCatalogIndexPageEntityList.tsx | Adds System entity list (and pagination pass-through). |
| src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/GroupCatalogIndexPageEntityList.tsx | Adds Group entity list for directory tab. |
| src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/UserCatalogIndexPageEntityList.tsx | Adds User entity list for directory tab. |
| src/plugins/catalog-module-serverlessops/src/components/CatalogIndexColumns/columns.tsx | Adds shared column factory helpers used by the new lists. |
| src/plugins/catalog-module-serverlessops/src/components/CatalogEntityPage/catalogEntityPage.tsx | Adds a catalog entity page layout implementation for the module package. |
| src/plugins/catalog-module-serverlessops/README.md | Adds a README scaffold for the new module package. |
| src/plugins/catalog-module-serverlessops/package.json | Renames package + switches Backstage role to frontend-plugin-module; adds zod. |
| src/plugins/catalog-module-serverlessops/dev/index.tsx | Adds dev app wiring for the new module. |
| src/plugins/catalog-module-serverlessops/.eslintrc.js | Adds eslint config for the new module package. |
| src/packages/app/src/App.tsx | Wires the new module into the app feature list (import needs correction). |
| src/packages/app/package.json | Replaces old plugin dependency with new module dependency. |
| src/app-config.yaml | Adds catalog pagination config (and comments out path). |
Comments suppressed due to low confidence (7)
src/plugins/catalog-module-serverlessops/src/components/TabbedCatalogIndexPage/TabbedCatalogIndexPage.tsx:16
- These props re-declare a custom pagination shape and then pass it through to components that expect Backstage's pagination type. Prefer using the canonical
CatalogIndexPageEntityListProps['pagination']/EntityListPaginationtype to keep the module aligned with upstream API and avoid drifting types.
src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/ApiCatalogIndexPageEntityList.tsx:21 - Using
anyfor thepaginationprop defeats type-safety and can hide incompatibilities withCatalogIndexPageEntityList's expected pagination contract. Reuse the pagination type fromCatalogIndexPageEntityListPropsinstead ofany.
src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/ComponentCatalogIndexPageEntityList.tsx:21 - Using
anyfor thepaginationprop defeats type-safety and can hide incompatibilities withCatalogIndexPageEntityList's expected pagination contract. Reuse the pagination type fromCatalogIndexPageEntityListPropsinstead ofany.
src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/DomainCatalogIndexPageEntityList.tsx:19 - Using
anyfor thepaginationprop defeats type-safety and can hide incompatibilities withCatalogIndexPageEntityList's expected pagination contract. Reuse the pagination type fromCatalogIndexPageEntityListPropsinstead ofany.
src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/ResourceCatalogIndexPageEntityList.tsx:22 - Using
anyfor thepaginationprop defeats type-safety and can hide incompatibilities withCatalogIndexPageEntityList's expected pagination contract. Reuse the pagination type fromCatalogIndexPageEntityListPropsinstead ofany.
src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/SystemCatalogIndexPageEntityList.tsx:21 - Using
anyfor thepaginationprop defeats type-safety and can hide incompatibilities withCatalogIndexPageEntityList's expected pagination contract. Reuse the pagination type fromCatalogIndexPageEntityListPropsinstead ofany.
src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/LocationCatalogIndexPageEntityList.tsx:10 - Using
anyfor thepaginationprop defeats type-safety and can hide incompatibilities withCatalogIndexPageEntityList's expected pagination contract. Reuse the pagination type fromCatalogIndexPageEntityListPropsinstead ofany.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| import { createApp } from '@backstage/frontend-defaults'; | ||
| import catalogPlugin from '@backstage/plugin-catalog/alpha'; | ||
| import serverlessOpsCatalogPlugin from '@internal/backstage-plugin-serverlessops-catalog'; | ||
| import { serverlessOpsCatalogModule } from '@internal/backstage-plugin-catalog-module-serverlessops'; |
| routeRef: tabbedDirectoryRouteRef, | ||
| loader: async () => { | ||
| const { TabbedDirectoryIndexPage } = await import('./components/TabbedDirectoryIndexPage') | ||
| return < TabbedDirectoryIndexPage /> |
Comment on lines
9
to
+15
| # Configure the catalog index page to be the root page, this is normally mounted on /catalog | ||
| - page:catalog: | ||
| config: | ||
| path: / | ||
| pagination: | ||
| mode: offset | ||
| limit: 20 | ||
| #path: / |
tmclaugh
force-pushed
the
feature/catalog-updates
branch
from
July 3, 2026 23:20
5d4b212 to
16aef55
Compare
tmclaugh
force-pushed
the
feature/catalog-updates
branch
from
July 3, 2026 23:24
16aef55 to
25d6fc4
Compare
based off of * @backstage-community/plugin-github-actions * @backstage-community/plugin-github-deployments
It shows issues but not PRs because @roadiehq/backstage-plugin-github-pull-requests hasn't released a version that supports the new frontend system
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.