Skip to content

ENG-3489: Add CCPA/CPRA privacy request disclosure metrics page#7980

Merged
jpople merged 8 commits into
mainfrom
jpople/eng-3489/privacy-request-metrics
Apr 24, 2026
Merged

ENG-3489: Add CCPA/CPRA privacy request disclosure metrics page#7980
jpople merged 8 commits into
mainfrom
jpople/eng-3489/privacy-request-metrics

Conversation

@jpople
Copy link
Copy Markdown
Contributor

@jpople jpople commented Apr 21, 2026

Ticket ENG-3489

Fidesplus dependency: Requires fidesplus branch ENG-3528/privacy-request-disclosure-be (ethyca/fidesplus#3455) for the backend API endpoint.

Description Of Changes

Adds a new publicly accessible page to the Privacy Center (/privacy-request-metrics) that displays CCPA/CPRA annual privacy request disclosure metrics, as required by California Civil Code § 1798.130(a)(5) and 11 CCR § 7102.

The page shows a table of request types (delete, correct, know, opt-out, limit) with counts for received, complied with, denied, and median/mean response times. Data is fetched from the plus/privacy-request-metrics API endpoint, hardcoded to California (us_ca).

The page is gated behind the PRIVACY_REQUEST_DISCLOSURE_ENABLED feature flag (server-side notFound() when disabled).

Code Changes

  • New /privacy-request-metrics page route with server-side feature flag gate
  • New [propertyPath]/privacy-request-metrics route for multi-property support
  • PrivacyRequestMetrics component with CCPA-formatted disclosure table and legal footer
  • RTK Query endpoint for plus/privacy-request-metrics
  • Types, constants, and display label mappings for CCPA request categories
  • "Privacy request disclosures" footer link on homepage (respects basePath for property paths)
  • Footer link visibility gated on PRIVACY_REQUEST_DISCLOSURE_ENABLED, independent of SHOW_BRAND_LINK
  • Error state handling when API call fails
  • Changelog entry

Steps to Confirm

  1. Set FIDES_PRIVACY_CENTER__PRIVACY_REQUEST_DISCLOSURE_ENABLED=true
  2. Visit the Privacy Center homepage — confirm "Privacy request disclosures" link appears in the footer
  3. Click the link — confirm the metrics table renders with data
  4. Set the flag to false — confirm the footer link disappears and navigating directly to /privacy-request-metrics returns a 404
  5. If using multi-property, confirm /<propertyPath>/privacy-request-metrics also works

Pre-Merge Checklist

  • Issue requirements met
  • All CI pipelines succeeded
  • CHANGELOG.md updated
    • Add a db-migration This indicates that a change includes a database migration label to the entry if your change includes a DB migration
    • Add a high-risk This issue suggests changes that have a high-probability of breaking existing code label to the entry if your change includes a high-risk change (i.e. potential for performance impact or unexpected regression) that should be flagged
    • Updates unreleased work already in Changelog, no new entry necessary
  • UX feedback:
    • All UX related changes have been reviewed by a designer
    • No UX review needed
  • Followup issues:
    • Followup issues created
    • No followup issues
  • Database migrations:
    • Ensure that your downrev is up to date with the latest revision on main
    • Ensure that your downgrade() migration is correct and works
      • If a downgrade migration is not possible for this change, please call this out in the PR description!
    • No migrations
  • Documentation:
    • Documentation complete, PR opened in fidesdocs
    • Documentation issue created in fidesdocs
    • If there are any new client scopes created as part of the pull request, remember to update public-facing documentation that references our scope registry
    • No documentation updates required

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Apr 21, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
fides-plus-nightly Ready Ready Preview, Comment Apr 23, 2026 10:45pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
fides-privacy-center Ignored Ignored Apr 23, 2026 10:45pm

Request Review

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 21, 2026

Title Lines Statements Branches Functions
admin-ui Coverage: 8%
6.33% (2799/44163) 5.58% (1402/25082) 4.43% (579/13060)
fides-js Coverage: 78%
78.98% (1962/2484) 65.55% (1214/1852) 72.57% (336/463)
privacy-center Coverage: 88%
85.97% (331/385) 81.36% (179/220) 78.87% (56/71)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jpople jpople changed the title Jpople/eng 3489/privacy request metrics ENG-3489: Add CCPA/CPRA privacy request disclosure metrics page Apr 23, 2026
@jpople jpople marked this pull request as ready for review April 23, 2026 22:36
@jpople jpople requested a review from a team as a code owner April 23, 2026 22:36
@jpople jpople requested review from gilluminate and speaker-ender and removed request for a team and speaker-ender April 23, 2026 22:36
Copy link
Copy Markdown
Contributor

@gilluminate gilluminate left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Ship it!

Image

@jpople jpople added this pull request to the merge queue Apr 24, 2026
Merged via the queue into main with commit ebfac1c Apr 24, 2026
53 checks passed
@jpople jpople deleted the jpople/eng-3489/privacy-request-metrics branch April 24, 2026 01:54
eastandwestwind added a commit that referenced this pull request Apr 24, 2026
Co-authored-by: Catherine Smith <eastandwestwind@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.

3 participants