IS-11630 DevOps Dashboard plugin: page structure and a static Database Clients section (M2a) - #296
Open
aleixsuau wants to merge 5 commits into
Conversation
aleixsuau
force-pushed
the
feature/dev/IS-11630-devops-dashboard-backstage
branch
from
August 13, 2026 06:25
f1fc55f to
ea796bf
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new Backstage devops-dashboard frontend plugin to the DevOps Dashboard Backstage app, including initial page/tab structure, a static “Database Clients” mock section, and Playwright e2e coverage for the Curity sign-in + page rendering flow.
Changes:
- Introduces the
@internal/backstage-plugin-devops-dashboardplugin with a DevOps Dashboard page and a “Database Clients” sub-page/tab. - Implements a static mock Database Clients table using
@backstage/uiTable+useTable, including client-side search and i18n messages. - Adds Playwright e2e tests and shared Curity sign-in helper; updates Playwright config to support port overrides and self-signed TLS in the sign-in popup.
Reviewed changes
Copilot reviewed 18 out of 19 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/devops-dashboard-backstage-app/yarn.lock | Adds workspace plugin and related dev/test dependencies to the lockfile. |
| src/devops-dashboard-backstage-app/plugins/devops-dashboard/src/utils/matchesIdOrName.ts | Adds a reusable client-side search helper for table search. |
| src/devops-dashboard-backstage-app/plugins/devops-dashboard/src/setupTests.ts | Sets up Testing Library jest-dom matchers for plugin tests. |
| src/devops-dashboard-backstage-app/plugins/devops-dashboard/src/routes.ts | Declares route refs for the plugin’s root page and DB clients sub-page. |
| src/devops-dashboard-backstage-app/plugins/devops-dashboard/src/plugin.tsx | Defines the plugin, page blueprint, and sub-page blueprint wiring. |
| src/devops-dashboard-backstage-app/plugins/devops-dashboard/src/plugin.test.ts | Adds a minimal unit test to ensure the plugin exports successfully. |
| src/devops-dashboard-backstage-app/plugins/devops-dashboard/src/index.ts | Exports the plugin as the package default export for discovery. |
| src/devops-dashboard-backstage-app/plugins/devops-dashboard/src/i18n/index.ts | Introduces the translation ref and message dictionary for user-facing text. |
| src/devops-dashboard-backstage-app/plugins/devops-dashboard/src/components/DbClientsSection/index.ts | Exports the Database Clients section component. |
| src/devops-dashboard-backstage-app/plugins/devops-dashboard/src/components/DbClientsSection/DbClientsSection.tsx | Implements the static Database Clients mock UI (table + search + description). |
| src/devops-dashboard-backstage-app/plugins/devops-dashboard/README.md | Documents plugin purpose, requirements, and installation steps. |
| src/devops-dashboard-backstage-app/plugins/devops-dashboard/package.json | Adds the plugin package manifest and Backstage plugin metadata. |
| src/devops-dashboard-backstage-app/plugins/devops-dashboard/e2e-tests/plugin.test.ts | Adds e2e coverage for the plugin page, tab, searchbox, and table row header. |
| src/devops-dashboard-backstage-app/plugins/devops-dashboard/dev/index.tsx | Adds a dev app entry to run the plugin in isolation via frontend dev utils. |
| src/devops-dashboard-backstage-app/plugins/devops-dashboard/.eslintrc.js | Adds standard Backstage CLI ESLint config for the plugin package. |
| src/devops-dashboard-backstage-app/playwright.config.ts | Updates Playwright config to honor PLAYWRIGHT_URL and ignore self-signed TLS errors. |
| src/devops-dashboard-backstage-app/packages/app/package.json | Adds the plugin dependency to the host Backstage app package. |
| src/devops-dashboard-backstage-app/packages/app/e2e-tests/app.test.ts | Updates app e2e test to authenticate through Curity before assertions. |
| src/devops-dashboard-backstage-app/e2e-test-utils.ts | Adds a shared signInToCurity helper for Playwright tests. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+46
to
+49
| ```yaml | ||
| app: | ||
| packages: all | ||
| ``` |
Comment on lines
+1
to
+4
| import { createTranslationRef } from '@backstage/frontend-plugin-api'; | ||
|
|
||
| import { PLUGIN_ID } from '../plugin'; | ||
|
|
Comment on lines
+5
to
+11
| export const matchesIdOrName = <T extends { id: string; name: string }>( | ||
| items: T[], | ||
| term: string, | ||
| ): T[] => | ||
| items.filter(item => | ||
| `${item.id} ${item.name}`.toLowerCase().includes(term.toLowerCase()), | ||
| ); |
Comment on lines
+9
to
+12
| export async function signInToCurity(page: Page): Promise<void> { | ||
| const popup = await page.waitForEvent('popup'); | ||
| try { | ||
| await popup.waitForEvent('close', { timeout: 15_000 }); |
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.
Part of IS-11630 (DevOps Dashboard 2). Stacked on #277 — review only this PR's four commits.
Start here: Backstage in five minutes — a short intro to the framework built from this plugin's own code (Angular analogies included). It ships in this PR and makes the rest of the diff read itself.
What this adds
The
devops-dashboardfrontend plugin, with:Review by commit
signInToCurityhelper;ignoreHTTPSErrorsis needed because the dev Curity TLS certs are self-signed.matchesIdOrNamesearch util.How to test
Prerequisites are the same as #277 (dev server running with the
devops_dashboard_backstageclient registered, LWA vite server on 8443).Open
http://localhost:3000/devops-dashboard— sign-in starts automatically; the Database Clients tab shows the mock (three rows, working search).Run the e2e tests against the running app:
(If you moved the app to another port in
app-config.local.yaml, pass it:PLAYWRIGHT_URL=http://localhost:<port> yarn test:e2e.)