Skip to content

feature/catalog updates - #17

Open
tmclaugh wants to merge 10 commits into
mainfrom
feature/catalog-updates
Open

feature/catalog updates#17
tmclaugh wants to merge 10 commits into
mainfrom
feature/catalog-updates

Conversation

@tmclaugh

@tmclaugh tmclaugh commented Jul 3, 2026

Copy link
Copy Markdown
Member

No description provided.

Copilot AI review requested due to automatic review settings July 3, 2026 22:25
@datadog-serverlessopsio

datadog-serverlessopsio Bot commented Jul 3, 2026

Copy link
Copy Markdown

Pipelines

⚠️ Warnings

🚦 1 Pipeline job failed

Branch | build_container   View in Datadog   GitHub Actions

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: fbd76e4 | Docs | Give us feedback!

@tmclaugh
tmclaugh force-pushed the feature/catalog-updates branch from d2ba64a to 5d4b212 Compare July 3, 2026 22:28

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-catalog with @internal/backstage-plugin-catalog-module-serverlessops and 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'] / EntityListPagination type to keep the module aligned with upstream API and avoid drifting types.
    src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/ApiCatalogIndexPageEntityList.tsx:21
  • Using any for the pagination prop defeats type-safety and can hide incompatibilities with CatalogIndexPageEntityList's expected pagination contract. Reuse the pagination type from CatalogIndexPageEntityListProps instead of any.
    src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/ComponentCatalogIndexPageEntityList.tsx:21
  • Using any for the pagination prop defeats type-safety and can hide incompatibilities with CatalogIndexPageEntityList's expected pagination contract. Reuse the pagination type from CatalogIndexPageEntityListProps instead of any.
    src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/DomainCatalogIndexPageEntityList.tsx:19
  • Using any for the pagination prop defeats type-safety and can hide incompatibilities with CatalogIndexPageEntityList's expected pagination contract. Reuse the pagination type from CatalogIndexPageEntityListProps instead of any.
    src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/ResourceCatalogIndexPageEntityList.tsx:22
  • Using any for the pagination prop defeats type-safety and can hide incompatibilities with CatalogIndexPageEntityList's expected pagination contract. Reuse the pagination type from CatalogIndexPageEntityListProps instead of any.
    src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/SystemCatalogIndexPageEntityList.tsx:21
  • Using any for the pagination prop defeats type-safety and can hide incompatibilities with CatalogIndexPageEntityList's expected pagination contract. Reuse the pagination type from CatalogIndexPageEntityListProps instead of any.
    src/plugins/catalog-module-serverlessops/src/components/CatalogIndexPageEntityList/LocationCatalogIndexPageEntityList.tsx:10
  • Using any for the pagination prop defeats type-safety and can hide incompatibilities with CatalogIndexPageEntityList's expected pagination contract. Reuse the pagination type from CatalogIndexPageEntityListProps instead of any.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/packages/app/src/App.tsx Outdated
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 thread src/app-config.yaml
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
tmclaugh force-pushed the feature/catalog-updates branch from 5d4b212 to 16aef55 Compare July 3, 2026 23:20
@tmclaugh
tmclaugh force-pushed the feature/catalog-updates branch from 16aef55 to 25d6fc4 Compare July 3, 2026 23:24
tmclaugh added 3 commits July 4, 2026 15:10
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants