Skip to content

feat(service-catalog): list of blueprints#2743

Draft
rmnbrd wants to merge 1 commit into
stagingfrom
feat/services/replace-templates-with-catalog-QOV-1993
Draft

feat(service-catalog): list of blueprints#2743
rmnbrd wants to merge 1 commit into
stagingfrom
feat/services/replace-templates-with-catalog-QOV-1993

Conversation

@rmnbrd

@rmnbrd rmnbrd commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Issue: QOV-1993

Service catalog: list of blueprints

This PR is the entry point for the new Service Catalog feature. This PR focuses exclusively on two main elements:

  • the list of blueprints, represented by new cards on the "Create a new service" page (see first screenshot).
  • the blueprint details drawer, that can be opened by clicking on the "View details" button inside the blueprint cards (second screenshot).

Known limitations/issues

  • Some of the icons of the blueprint cards are not displayed. For now this is expected. The API is responsible for returning the correct icon URLs. For now it is not the case, some of them return 404s.
  • The "Deploy blueprint" and "Deploy" buttons don't do anything. This is expected for now. Another PR will implement the blueprint-based service creation flow.

Feature flag

Yes, the entry point of the feature (the list of blueprints) is conditioned by the service-catalog feature flag.

Screenshots / Recordings

image image

Testing

  • Changes tested locally in the relevant Console's pages and Storybooks
  • yarn test or yarn test -u (if you need to regenerate snapshots)
  • yarn format
  • yarn lint

PR Checklist

  • I followed naming, styling, and TypeScript rules (see .cursor/rules)
  • I performed a self-review (diff inspected, dead code removed)
  • I titled the PR using Conventional Commits with a scope when possible (e.g. feat(service): add new Terraform service) - required for semantic-release
  • I only kept necessary comments, written in English (watch for useless AI comments)
  • I involved a designer to validate UI changes if I am not a designer
  • I covered new business logic with tests (unit)
  • I confirmed CI is green (Codecov red can be accepted)
  • I reviewed and executed locally any AI-assisted code

@codecov

codecov Bot commented Jun 8, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 63.12500% with 59 lines in your changes missing coverage. Please review.
✅ Project coverage is 47.30%. Comparing base (3247d5d) to head (1c47ae2).

Files with missing lines Patch % Lines
...lueprint-details-panel/blueprint-details-panel.tsx 34.48% 17 Missing and 2 partials ⚠️
.../src/lib/service-new/service-card/service-card.tsx 68.42% 8 Missing and 10 partials ⚠️
...service-new/service-new-utils/service-new-utils.ts 75.75% 2 Missing and 6 partials ⚠️
...rvices/feature/src/lib/service-new/service-new.tsx 60.00% 2 Missing and 4 partials ⚠️
...ice-readme/use-blueprint-catalog-service-readme.ts 0.00% 4 Missing ⚠️
...oks/use-blueprint-catalog/use-blueprint-catalog.ts 0.00% 3 Missing ⚠️
libs/shared/util-js/src/index.ts 0.00% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           staging    #2743      +/-   ##
===========================================
- Coverage    47.34%   47.30%   -0.04%     
===========================================
  Files         1208     1178      -30     
  Lines        25612    25114     -498     
  Branches      7544     7471      -73     
===========================================
- Hits         12125    11880     -245     
+ Misses       11358    11125     -233     
+ Partials      2129     2109      -20     
Flag Coverage Δ
unittests 47.30% <63.12%> (-0.04%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@rmnbrd rmnbrd force-pushed the feat/services/replace-templates-with-catalog-QOV-1993 branch 4 times, most recently from 7f94ec2 to 0204495 Compare June 10, 2026 11:08
@rmnbrd rmnbrd force-pushed the feat/services/replace-templates-with-catalog-QOV-1993 branch 4 times, most recently from 6b94997 to c01d8b4 Compare June 11, 2026 11:56
@rmnbrd rmnbrd marked this pull request as ready for review June 11, 2026 11:56
Copilot AI review requested due to automatic review settings June 11, 2026 11:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 introduces a new “Blueprints” experience in the service creation/catalog flow, including data fetching via React Query, shared UI helpers for suspense/error handling, and supporting utilities.

Changes:

  • Added blueprint catalog fetching + README fetching (data-access query keys + feature hooks) and integrated the catalog into ServiceNew behind a service-catalog feature flag.
  • Introduced a reusable SuspenseQueryBoundary component in shared UI (with tests/snapshots) to standardize loading + retry error handling for suspense queries.
  • Added blueprint UI components (cards + details side panel) and a small utility to format cloud provider labels.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
libs/shared/util-js/src/lib/format-cloud-provider.ts Adds provider label formatting helper.
libs/shared/util-js/src/lib/format-cloud-provider.spec.ts Tests for formatCloudProvider.
libs/shared/util-js/src/index.ts Exports the new util.
libs/shared/ui/src/lib/components/suspense-query-boundary/suspense-query-boundary.tsx Adds a shared suspense + react-query + error boundary wrapper.
libs/shared/ui/src/lib/components/suspense-query-boundary/suspense-query-boundary.spec.tsx Unit tests for SuspenseQueryBoundary.
libs/shared/ui/src/lib/components/suspense-query-boundary/snapshots/suspense-query-boundary.spec.tsx.snap Snapshot coverage for the new boundary UI.
libs/shared/ui/src/index.ts Exports SuspenseQueryBoundary.
libs/domains/services/feature/src/lib/service-new/service-new.tsx Integrates blueprint catalog section + details panel into ServiceNew.
libs/domains/services/feature/src/lib/service-new/service-new.spec.tsx Adds test coverage for rendering/filtering/opening blueprint details.
libs/domains/services/feature/src/lib/service-new/service-new-utils/service-new-utils.ts Extracts service create-flow path helpers from ServiceNew.
libs/domains/services/feature/src/lib/service-new/service-card/service-card.tsx Extracts service cards + sections into a reusable module.
libs/domains/services/feature/src/lib/service-new/blueprint-card/blueprint-card.tsx Adds blueprint card UI.
libs/domains/services/feature/src/lib/service-new/blueprint-details-panel/blueprint-details-panel.tsx Adds blueprint details side panel and README rendering.
libs/domains/services/feature/src/lib/hooks/use-blueprint-catalog/use-blueprint-catalog.ts Adds a React Query hook for blueprint catalog.
libs/domains/services/feature/src/lib/hooks/use-blueprint-catalog-service-readme/use-blueprint-catalog-service-readme.ts Adds a React Query hook for blueprint README.
libs/domains/services/feature/src/index.ts Exports the new blueprint hooks.
libs/domains/services/data-access/src/lib/domains-services-data-access.ts Adds query keys + API calls for blueprint catalog and README.

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

Comment thread libs/domains/services/feature/src/lib/service-new/service-card/service-card.tsx Outdated
@rmnbrd rmnbrd force-pushed the feat/services/replace-templates-with-catalog-QOV-1993 branch from c01d8b4 to e02c15a Compare June 11, 2026 12:24
UI fixes

Add feature flag

Search now supports categories as well

Add details drawer

Split service-new into smaller components

refactor: data fetching and error handling

Display blueprint version only if it is not "default"

Better data loading and error handling

Remove useless link to repo
@rmnbrd rmnbrd force-pushed the feat/services/replace-templates-with-catalog-QOV-1993 branch from e02c15a to 1c47ae2 Compare June 11, 2026 14:58
@rmnbrd rmnbrd marked this pull request as draft June 11, 2026 15:53
@rmnbrd rmnbrd changed the title feat(service-catalog): add blueprints feat(service-catalog): list of blueprints Jun 11, 2026
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