Skip to content

ROX-34928: Add CISA KEV UI display and policy criteria - #22103

Draft
ajheflin wants to merge 4 commits into
rox-34928/reporting-graphqlfrom
rox-34928/ui-and-policy
Draft

ROX-34928: Add CISA KEV UI display and policy criteria#22103
ajheflin wants to merge 4 commits into
rox-34928/reporting-graphqlfrom
rox-34928/ui-and-policy

Conversation

@ajheflin

@ajheflin ajheflin commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Description

Wire CISA KEV data through the UI and add policy criteria support. PR 4/4 in a stack.

  • Wire exploit { knownRansomwareCampaignUse } into all WorkloadCves GraphQL fragments so the existing KnownExploitLabel and KnownRansomwareCampaignLabel components (merged in ROX-31903: Add ROX_CISA_KEV in WorkloadCves #17901) receive data
  • Add Go-side boolean policy field (CISA KEV) following the Fixable pattern: field name, query builder, field metadata, violation message printer
  • Add UI policy criteria descriptor (radioGroup type) under Image Scanning, gated behind ROX_CISA_KEV

Stack: [Proto changes] → [Converter wiring] → [Reporting] → 4/4 — UI + Policy

Depends on: #21752

User-facing documentation

Testing and quality

  • the change is production ready: the change is GA, or otherwise the functionality is gated by a feature flag
  • CI results are inspected

Automated testing

  • modified existing tests

How I validated my change

  • Go policy tests pass: go test ./pkg/booleanpolicy/... -count=1
  • GraphQL fragments only add fields to existing template literals — no TypeScript logic changed
  • Policy criteria descriptor follows the established Fixable radioGroup pattern

ajheflin and others added 3 commits August 5, 2026 09:57
Add exploit { knownRansomwareCampaignUse } to all WorkloadCves GraphQL
fragments so the existing KnownExploitLabel and
KnownRansomwareCampaignLabel display components receive data.

Partially generated by AI.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Register CisaKev field name, query builder, and field metadata following
the Fixable pattern. Enables policies that fire on CVEs in the CISA KEV
catalog.

Partially generated by AI.
Add radioGroup descriptor for CISA KEV in the policy wizard under
Image Scanning. Users can create policies that fire when a CVE is
(or is not) in the CISA KEV catalog. Gated behind ROX_CISA_KEV.

Partially generated by AI.
@openshift-ci

openshift-ci Bot commented Aug 5, 2026

Copy link
Copy Markdown

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

🚀 Build Images Ready

Images are ready for commit c3ec371. To use with deploy scripts:

export MAIN_IMAGE_TAG=4.12.x-594-gc3ec371bb2

@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 35.71429% with 9 lines in your changes missing coverage. Please review.
✅ Project coverage is 51.35%. Comparing base (f79d38d) to head (c3ec371).

Files with missing lines Patch % Lines
pkg/booleanpolicy/querybuilders/special_cases.go 0.00% 6 Missing ⚠️
pkg/booleanpolicy/field_metadata.go 50.00% 2 Missing and 1 partial ⚠️
Additional details and impacted files
@@                     Coverage Diff                      @@
##           rox-34928/reporting-graphql   #22103   +/-   ##
============================================================
  Coverage                        51.35%   51.35%           
============================================================
  Files                             2857     2857           
  Lines                           178871   178885   +14     
============================================================
+ Hits                             91866    91874    +8     
- Misses                           78963    78967    +4     
- Partials                          8042     8044    +2     
Flag Coverage Δ
go-unit-tests 51.35% <35.71%> (+<0.01%) ⬆️

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:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

The copyFromImageComponentV2Cves function (used for bulk image upserts)
was missing the cisa_kev column, causing all values to be NULL in the
DB despite the converter correctly setting CVEInfo.CisaKev.

Partially generated by AI.
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