Version Packages (dcm)#3257
Open
rhdh-bot wants to merge 1 commit into
Open
Conversation
bb6b913 to
756b9b0
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. 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
*This pull request uses carry forward flags. Click here to find out more. Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
756b9b0 to
d021fb1
Compare
|
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.



Releases
@red-hat-developer-hub/backstage-plugin-dcm-backend@2.0.0
Major Changes
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 stablevalidate/isValidhelpers, 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 anInfoCard.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.tsxpolicies/→policyFormTypes.ts,components/PolicyFormFields.tsxcatalog-items/→catalogItemFormTypes.ts,components/CatalogItemFormFields.tsxcatalog-item-instances/→instanceFormTypes.ts,components/InstanceFormFields.tsxresources/→resourceFormTypes.ts,components/ResourceFormFields.tsxError handling improvements
Load errors and delete errors are now surfaced in the UI via
DcmCrudTabLayout(inline alert with Retry) andDcmErrorSnackbarrespectively, replacing silent.catch(() => {})handlers.Dead code removal
Removed the unused
ExampleComponentdirectory 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.
Dockerfile(multi-stage build) to produce a standalone Backstage imageapp-config.production.yamlfor container runtime configurationscripts/generate-image.sh(renamed fromdynamic-plugins.sh) with commands to build and push both the OCI dynamic-plugin artifact and the full Backstage application image.dockerignoreto exclude sensitive and dev-only files from the build contextdangerouslyAllowOutsideDevelopment) for container environmentsclientId/clientSecretare not setc9312e8: Fix 502 error when SSO credentials are not configured.
The backend proxy now skips the SSO token exchange when
clientIdorclientSecretare absent, forwarding requests to the API gateway withoutan 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
Major Changes
Minor Changes
e3985a8: DCM UI and catalog client updates for the example app and published plugins.
Example app (
packages/app) — RBAC navigation/rbacroute.@backstage-community/plugin-rbacfrontend dependency. The RBAC backend plugin may remain for permissions; only the menu and page were removed.@red-hat-developer-hub/backstage-plugin-dcm— Resources tabresourcesproxy usage from the plugin.placementApiRef,resourcesroute ref, and thePlacementClientintegration from the plugin surface.@red-hat-developer-hub/backstage-plugin-dcm-common— placement API removed; catalog rehydrateresourcesAPI.rehydrateCatalogItemInstanceonCatalogApi/CatalogClient:POST .../catalog-item-instances/{id}:rehydrate.Catalog item instances UI
4a316f7: Refactor DCM frontend plugin for reusability, maintainability, and test coverage.
New shared utilities & hooks
createYupValidator– factory that wraps a Yup schema and returns stablevalidate/isValidhelpers, 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 anInfoCard.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.tsxpolicies/→policyFormTypes.ts,components/PolicyFormFields.tsxcatalog-items/→catalogItemFormTypes.ts,components/CatalogItemFormFields.tsxcatalog-item-instances/→instanceFormTypes.ts,components/InstanceFormFields.tsxresources/→resourceFormTypes.ts,components/ResourceFormFields.tsxError handling improvements
Load errors and delete errors are now surfaced in the UI via
DcmCrudTabLayout(inline alert with Retry) andDcmErrorSnackbarrespectively, replacing silent.catch(() => {})handlers.Dead code removal
Removed the unused
ExampleComponentdirectory 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.
Dockerfile(multi-stage build) to produce a standalone Backstage imageapp-config.production.yamlfor container runtime configurationscripts/generate-image.sh(renamed fromdynamic-plugins.sh) with commands to build and push both the OCI dynamic-plugin artifact and the full Backstage application image.dockerignoreto exclude sensitive and dev-only files from the build contextdangerouslyAllowOutsideDevelopment) for container environmentsclientId/clientSecretare 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/rbacroute.@backstage-community/plugin-rbacfrontend dependency. The RBAC backend plugin may remain for permissions; only the menu and page were removed.@red-hat-developer-hub/backstage-plugin-dcm— Resources tabresourcesproxy usage from the plugin.placementApiRef,resourcesroute ref, and thePlacementClientintegration from the plugin surface.@red-hat-developer-hub/backstage-plugin-dcm-common— placement API removed; catalog rehydrateresourcesAPI.rehydrateCatalogItemInstanceonCatalogApi/CatalogClient:POST .../catalog-item-instances/{id}:rehydrate.Catalog item instances UI
4a316f7: Refactor DCM frontend plugin for reusability, maintainability, and test coverage.
New shared utilities & hooks
createYupValidator– factory that wraps a Yup schema and returns stablevalidate/isValidhelpers, 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 anInfoCard.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.tsxpolicies/→policyFormTypes.ts,components/PolicyFormFields.tsxcatalog-items/→catalogItemFormTypes.ts,components/CatalogItemFormFields.tsxcatalog-item-instances/→instanceFormTypes.ts,components/InstanceFormFields.tsxresources/→resourceFormTypes.ts,components/ResourceFormFields.tsxError handling improvements
Load errors and delete errors are now surfaced in the UI via
DcmCrudTabLayout(inline alert with Retry) andDcmErrorSnackbarrespectively, replacing silent.catch(() => {})handlers.Dead code removal
Removed the unused
ExampleComponentdirectory 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.
Dockerfile(multi-stage build) to produce a standalone Backstage imageapp-config.production.yamlfor container runtime configurationscripts/generate-image.sh(renamed fromdynamic-plugins.sh) with commands to build and push both the OCI dynamic-plugin artifact and the full Backstage application image.dockerignoreto exclude sensitive and dev-only files from the build contextdangerouslyAllowOutsideDevelopment) for container environmentsclientId/clientSecretare not setUpdated dependencies [ba41609]
Updated dependencies [e3985a8]
Updated dependencies [c287a53]
Updated dependencies [4a316f7]