feat(ui): filter compliance by provider#11668
Draft
pfe-nazaries wants to merge 18 commits into
Draft
Conversation
- Add getAllProviderGroups to fetch every group for filter dropdowns - Add reusable ProviderGroupSelector with batch and instant modes - Add provider group chip/label resolution and the provider_groups filter param Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add the provider group selector to the Findings filters Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add the provider group selector to the Resources filters Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add the provider group selector to the Overview filters - Scope risk plot, risk pipeline, and severity-over-time to the selected group Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add the provider group selector to the Scan Jobs filter bar Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add the provider group selector to the Providers page filters - Mock getAllProviderGroups in the providers page data tests Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add FILTER_FIELD field-name source and a generic FilterParam<Field> template - Replace the FilterType enum with the same const dictionary - Add per-view filter param types co-located with each view's action - Tighten findings/resources filter maps and the findings display fn to their params Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Detect and extract the provider-scope filter keys from search params - Single source of truth for the scan vs provider-filter XOR Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- getCompliancesOverview and getComplianceRequirements forward provider filters and drop scan_id when present (backend XOR) - getComplianceRequirements now accepts an optional scanId Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- buildComplianceDetailPath carries provider filters instead of scanId in aggregated mode, preserving the scan vs provider XOR on drill-down Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Mount provider type/account and provider group selectors in the compliance filter bar; selecting a scan or provider filter clears the other (XOR) - Aggregate frameworks across the latest scan per matching provider; hide the ThreatScore badge while provider filters are active - Hide the per-scan CIS PDF and carry provider filters into the card drill-down in aggregated mode Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Detail page resolves requirements/metadata across provider filters when present; per-scan affordances (PDF, scan header, ThreatScore) degrade - Requirement findings scope by provider filters instead of a single scan in aggregated mode Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
added 2 commits
June 23, 2026 11:53
Aggregated mode sent provider filters with no scan/date to /findings, which the API rejects with 400, so requirement findings always rendered empty. Use /findings/latest in aggregated mode (needs neither; scopes to the latest scan per matching provider) and keep /findings for single-scan mode. Also tidies the provider-filter helpers (review nits): - Derive the filter keys/type from a FILTER_FIELD subset const - Accept ReadonlyURLSearchParams so call sites drop the search-params wrap Adds a regression test covering both aggregated and single-scan modes.
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.
Context
The Compliance overview and detail pages could previously only be scoped to a single scan. This PR lets users scope compliance by provider — provider type, account, or provider group — aggregating results across the latest completed scan of each matching provider, mirroring the provider-group filtering added to the other main views.
Important
Depends on #11659 (
feature/add-provider-group-filter). This PR is stacked on that branch and targets it as its base, so the diff here is only the compliance changes. It should be merged after #11659 — GitHub retargets it tomasterautomatically once #11659 lands.Description
compliance-provider-filtersmode helper that detects provider-scope filters and enforces the backendscan_id⊕ provider-filter XOR.FILTER_FIELD/FilterParam<Field>typing primitives from feat(ui): filter by provider group across main views #11659 for the compliance filter keys, replacing the bespoke literals and loosely-typed filter records.Steps to review
scanId) and carries the provider filters in the URL.Checklist
Community Checklist
UI (if applicable)
License
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
🤖 Generated with Claude Code