Skip to content

Version Packages (dcm)#3257

Open
rhdh-bot wants to merge 1 commit into
mainfrom
changesets-release/dcm/main
Open

Version Packages (dcm)#3257
rhdh-bot wants to merge 1 commit into
mainfrom
changesets-release/dcm/main

Conversation

@rhdh-bot
Copy link
Copy Markdown
Collaborator

@rhdh-bot rhdh-bot commented Jun 1, 2026

Releases

@red-hat-developer-hub/backstage-plugin-dcm-backend@2.0.0

Major Changes

  • c287a53: Developing DCM Plugin skeleton

Minor Changes

  • 4a316f7: Refactor DCM frontend plugin for reusability, maintainability, and test coverage.

    New shared utilities & hooks

    • createYupValidator – factory that wraps a Yup schema and returns stable validate / isValid helpers, eliminating per-tab validation boilerplate.
    • useCrudTab – custom React hook that centralises data loading, client-side search/pagination, and create/edit/delete dialog state for every CRUD tab. Tabs now consist only of feature-specific rendering logic.

    New shared components

    • DcmCrudTabLayout – generic layout that handles loading spinners, load-error alerts with a Retry button, empty states, and a searchable paginated table inside an InfoCard.
    • DcmFormDialogActions – reusable Save / Cancel button row with loading spinner and disabled states, used by all form dialogs.
    • DcmErrorSnackbar – transient error snackbar for surfacing delete-operation failures.
    • DcmDeleteDialog – standalone confirmation dialog component extracted from inline usage.

    Per-feature file decomposition

    Each CRUD tab now has dedicated files for form types, Yup schema, field components, and column definitions:

    • providers/providerFormTypes.ts, components/ProviderFormFields.tsx, components/ProviderStatus.tsx, components/CopyButton.tsx
    • policies/policyFormTypes.ts, components/PolicyFormFields.tsx
    • catalog-items/catalogItemFormTypes.ts, components/CatalogItemFormFields.tsx
    • catalog-item-instances/instanceFormTypes.ts, components/InstanceFormFields.tsx
    • resources/resourceFormTypes.ts, components/ResourceFormFields.tsx

    Error handling improvements

    Load errors and delete errors are now surfaced in the UI via DcmCrudTabLayout (inline alert with Retry) and DcmErrorSnackbar respectively, replacing silent .catch(() => {}) handlers.

    Dead code removal

    Removed the unused ExampleComponent directory and its tests.

    Test coverage

    Added unit tests for extractApiError, createYupValidator, useCrudTab, DcmFormDialogActions, DcmDeleteDialog, and form-type validators for providers, policies, and resources.

Patch Changes

  • ba41609: Add Docker/Podman deployment support for the DCM plugin.

    • Added Dockerfile (multi-stage build) to produce a standalone Backstage image
    • Added app-config.production.yaml for container runtime configuration
    • Added scripts/generate-image.sh (renamed from dynamic-plugins.sh) with commands to build and push both the OCI dynamic-plugin artifact and the full Backstage application image
    • Added .dockerignore to exclude sensitive and dev-only files from the build context
    • Configured guest auth (dangerouslyAllowOutsideDevelopment) for container environments
    • Skip SSO token exchange in the backend proxy when clientId/clientSecret are not set
  • c9312e8: Fix 502 error when SSO credentials are not configured.

    The backend proxy now skips the SSO token exchange when clientId or
    clientSecret are absent, forwarding requests to the API gateway without
    an Authorization header instead of failing with "Failed to obtain upstream
    access token."

  • Updated dependencies [ba41609]

  • Updated dependencies [e3985a8]

  • Updated dependencies [c287a53]

  • Updated dependencies [4a316f7]

    • @red-hat-developer-hub/backstage-plugin-dcm-common@2.0.0

@red-hat-developer-hub/backstage-plugin-dcm-common@2.0.0

Major Changes

  • c287a53: Developing DCM Plugin skeleton

Minor Changes

  • e3985a8: DCM UI and catalog client updates for the example app and published plugins.

    Example app (packages/app) — RBAC navigation

    • Removed the RBAC sidebar entry under Administration and the /rbac route.
    • Dropped the @backstage-community/plugin-rbac frontend dependency. The RBAC backend plugin may remain for permissions; only the menu and page were removed.

    @red-hat-developer-hub/backstage-plugin-dcm — Resources tab

    • Removed the Resources tab from the Data Center page and all Placement / resources proxy usage from the plugin.
    • Removed placementApiRef, resources route ref, and the PlacementClient integration from the plugin surface.

    @red-hat-developer-hub/backstage-plugin-dcm-common — placement API removed; catalog rehydrate

    • Removed the Placement API client, types, and tests tied to the internal resources API.
    • Added rehydrateCatalogItemInstance on CatalogApi / CatalogClient: POST .../catalog-item-instances/{id}:rehydrate.

    Catalog item instances UI

    • Added a Rehydrate action (outlined button with refresh icon) on each instance row, success and error snackbars, and a unit test for the new client method.
  • 4a316f7: Refactor DCM frontend plugin for reusability, maintainability, and test coverage.

    New shared utilities & hooks

    • createYupValidator – factory that wraps a Yup schema and returns stable validate / isValid helpers, eliminating per-tab validation boilerplate.
    • useCrudTab – custom React hook that centralises data loading, client-side search/pagination, and create/edit/delete dialog state for every CRUD tab. Tabs now consist only of feature-specific rendering logic.

    New shared components

    • DcmCrudTabLayout – generic layout that handles loading spinners, load-error alerts with a Retry button, empty states, and a searchable paginated table inside an InfoCard.
    • DcmFormDialogActions – reusable Save / Cancel button row with loading spinner and disabled states, used by all form dialogs.
    • DcmErrorSnackbar – transient error snackbar for surfacing delete-operation failures.
    • DcmDeleteDialog – standalone confirmation dialog component extracted from inline usage.

    Per-feature file decomposition

    Each CRUD tab now has dedicated files for form types, Yup schema, field components, and column definitions:

    • providers/providerFormTypes.ts, components/ProviderFormFields.tsx, components/ProviderStatus.tsx, components/CopyButton.tsx
    • policies/policyFormTypes.ts, components/PolicyFormFields.tsx
    • catalog-items/catalogItemFormTypes.ts, components/CatalogItemFormFields.tsx
    • catalog-item-instances/instanceFormTypes.ts, components/InstanceFormFields.tsx
    • resources/resourceFormTypes.ts, components/ResourceFormFields.tsx

    Error handling improvements

    Load errors and delete errors are now surfaced in the UI via DcmCrudTabLayout (inline alert with Retry) and DcmErrorSnackbar respectively, replacing silent .catch(() => {}) handlers.

    Dead code removal

    Removed the unused ExampleComponent directory and its tests.

    Test coverage

    Added unit tests for extractApiError, createYupValidator, useCrudTab, DcmFormDialogActions, DcmDeleteDialog, and form-type validators for providers, policies, and resources.

Patch Changes

  • ba41609: Add Docker/Podman deployment support for the DCM plugin.

    • Added Dockerfile (multi-stage build) to produce a standalone Backstage image
    • Added app-config.production.yaml for container runtime configuration
    • Added scripts/generate-image.sh (renamed from dynamic-plugins.sh) with commands to build and push both the OCI dynamic-plugin artifact and the full Backstage application image
    • Added .dockerignore to exclude sensitive and dev-only files from the build context
    • Configured guest auth (dangerouslyAllowOutsideDevelopment) for container environments
    • Skip SSO token exchange in the backend proxy when clientId/clientSecret are not set

@red-hat-developer-hub/backstage-plugin-dcm@1.1.0

Minor Changes

  • e3985a8: DCM UI and catalog client updates for the example app and published plugins.

    Example app (packages/app) — RBAC navigation

    • Removed the RBAC sidebar entry under Administration and the /rbac route.
    • Dropped the @backstage-community/plugin-rbac frontend dependency. The RBAC backend plugin may remain for permissions; only the menu and page were removed.

    @red-hat-developer-hub/backstage-plugin-dcm — Resources tab

    • Removed the Resources tab from the Data Center page and all Placement / resources proxy usage from the plugin.
    • Removed placementApiRef, resources route ref, and the PlacementClient integration from the plugin surface.

    @red-hat-developer-hub/backstage-plugin-dcm-common — placement API removed; catalog rehydrate

    • Removed the Placement API client, types, and tests tied to the internal resources API.
    • Added rehydrateCatalogItemInstance on CatalogApi / CatalogClient: POST .../catalog-item-instances/{id}:rehydrate.

    Catalog item instances UI

    • Added a Rehydrate action (outlined button with refresh icon) on each instance row, success and error snackbars, and a unit test for the new client method.
  • 4a316f7: Refactor DCM frontend plugin for reusability, maintainability, and test coverage.

    New shared utilities & hooks

    • createYupValidator – factory that wraps a Yup schema and returns stable validate / isValid helpers, eliminating per-tab validation boilerplate.
    • useCrudTab – custom React hook that centralises data loading, client-side search/pagination, and create/edit/delete dialog state for every CRUD tab. Tabs now consist only of feature-specific rendering logic.

    New shared components

    • DcmCrudTabLayout – generic layout that handles loading spinners, load-error alerts with a Retry button, empty states, and a searchable paginated table inside an InfoCard.
    • DcmFormDialogActions – reusable Save / Cancel button row with loading spinner and disabled states, used by all form dialogs.
    • DcmErrorSnackbar – transient error snackbar for surfacing delete-operation failures.
    • DcmDeleteDialog – standalone confirmation dialog component extracted from inline usage.

    Per-feature file decomposition

    Each CRUD tab now has dedicated files for form types, Yup schema, field components, and column definitions:

    • providers/providerFormTypes.ts, components/ProviderFormFields.tsx, components/ProviderStatus.tsx, components/CopyButton.tsx
    • policies/policyFormTypes.ts, components/PolicyFormFields.tsx
    • catalog-items/catalogItemFormTypes.ts, components/CatalogItemFormFields.tsx
    • catalog-item-instances/instanceFormTypes.ts, components/InstanceFormFields.tsx
    • resources/resourceFormTypes.ts, components/ResourceFormFields.tsx

    Error handling improvements

    Load errors and delete errors are now surfaced in the UI via DcmCrudTabLayout (inline alert with Retry) and DcmErrorSnackbar respectively, replacing silent .catch(() => {}) handlers.

    Dead code removal

    Removed the unused ExampleComponent directory and its tests.

    Test coverage

    Added unit tests for extractApiError, createYupValidator, useCrudTab, DcmFormDialogActions, DcmDeleteDialog, and form-type validators for providers, policies, and resources.

Patch Changes

  • 5394da1: UI code-quality improvements: replace all inline styles with makeStyles classes, use theme palette tokens (status.ok, error, text) instead of hardcoded colours, merge duplicate style files into a single useDcmStyles hook, add destructive-action styling to delete dialogs, and move RhdhLogoFull/RhdhLogoIcon into the plugin so they can be wired in RHDH without relying on the dev-only app shell.

  • 5394da1: Refresh DCM plugin API reports and align UI internals around shared route/tab constants and reusable detail components.

  • ba41609: Add Docker/Podman deployment support for the DCM plugin.

    • Added Dockerfile (multi-stage build) to produce a standalone Backstage image
    • Added app-config.production.yaml for container runtime configuration
    • Added scripts/generate-image.sh (renamed from dynamic-plugins.sh) with commands to build and push both the OCI dynamic-plugin artifact and the full Backstage application image
    • Added .dockerignore to exclude sensitive and dev-only files from the build context
    • Configured guest auth (dangerouslyAllowOutsideDevelopment) for container environments
    • Skip SSO token exchange in the backend proxy when clientId/clientSecret are not set
  • Updated dependencies [ba41609]

  • Updated dependencies [e3985a8]

  • Updated dependencies [c287a53]

  • Updated dependencies [4a316f7]

    • @red-hat-developer-hub/backstage-plugin-dcm-common@2.0.0

@github-actions github-actions Bot force-pushed the changesets-release/dcm/main branch from bb6b913 to 756b9b0 Compare June 1, 2026 12:41
@rhdh-bot rhdh-bot requested review from a team, asmasarw, jkilzi and mareklibra as code owners June 1, 2026 12:41
@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 1, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 53.29%. Comparing base (857a8ec) to head (756b9b0).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #3257   +/-   ##
=======================================
  Coverage   53.29%   53.29%           
=======================================
  Files        2407     2407           
  Lines       86421    86421           
  Branches    23956    23956           
=======================================
  Hits        46059    46059           
  Misses      38746    38746           
  Partials     1616     1616           
Flag Coverage Δ *Carryforward flag
adoption-insights 83.58% <ø> (ø) Carriedforward from 857a8ec
ai-integrations 70.03% <ø> (ø) Carriedforward from 857a8ec
app-defaults 69.60% <ø> (ø) Carriedforward from 857a8ec
augment 46.39% <ø> (ø) Carriedforward from 857a8ec
bulk-import 72.86% <ø> (ø) Carriedforward from 857a8ec
cost-management 16.49% <ø> (ø) Carriedforward from 857a8ec
dcm 32.89% <ø> (ø)
extensions 61.79% <ø> (ø) Carriedforward from 857a8ec
global-floating-action-button 74.30% <ø> (ø) Carriedforward from 857a8ec
global-header 61.63% <ø> (ø) Carriedforward from 857a8ec
homepage 51.52% <ø> (ø) Carriedforward from 857a8ec
konflux 91.01% <ø> (ø) Carriedforward from 857a8ec
lightspeed 68.33% <ø> (ø) Carriedforward from 857a8ec
mcp-integrations 85.46% <ø> (ø) Carriedforward from 857a8ec
orchestrator 36.51% <ø> (ø) Carriedforward from 857a8ec
quickstart 62.88% <ø> (ø) Carriedforward from 857a8ec
sandbox 79.56% <ø> (ø) Carriedforward from 857a8ec
scorecard 83.84% <ø> (ø) Carriedforward from 857a8ec
theme 64.54% <ø> (ø) Carriedforward from 857a8ec
translations 8.49% <ø> (ø) Carriedforward from 857a8ec
x2a 78.79% <ø> (ø) Carriedforward from 857a8ec

*This pull request uses carry forward flags. Click here to find out more.


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 857a8ec...756b9b0. Read the comment docs.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions github-actions Bot force-pushed the changesets-release/dcm/main branch from 756b9b0 to d021fb1 Compare June 1, 2026 14:23
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Jun 1, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant