Skip to content

Refresh privacy request activity timeline display#8140

Open
Kelsey-Ethyca wants to merge 4 commits into
mainfrom
kelsey/dash-update-activity-log
Open

Refresh privacy request activity timeline display#8140
Kelsey-Ethyca wants to merge 4 commits into
mainfrom
kelsey/dash-update-activity-log

Conversation

@Kelsey-Ethyca
Copy link
Copy Markdown
Contributor

Summary

Reworks the activity timeline on the privacy request detail page so the log reads as something a non-engineer can scan, rather than a list of raw dataset keys prefixed with `Fides:`.

  • Each row now starts with an icon: integration logo (looked up by `connection_key`), user avatar (comments / manual tasks), or a system glyph (audit events, dataset graph events).
  • Integration rows show the connection's configured display name; when no connection is found we humanize the snake_case key (`service_now_servicenow_itsm_api` → `Service now servicenow itsm api`).
  • The `Fides:` author prefix is dropped — the icon now communicates that it's a system event. User-authored rows (comments, completed/skipped manual tasks) still surface the user's name.
  • The `Request update` tag is renamed to `Automatically updated`.

Implementation notes

  • New `timelineDisplay.tsx` centralizes the icon factory + `humanizeIdentifier` helper.
  • `usePrivacyRequestEventLogs` now fetches the connection list once via `useGetAllDatastoreConnectionsQuery({ size: 1000 })` and resolves each result group's `connection_key` into a display name + `ConnectionTypeLogo` source.
  • `ActivityTimelineItem` gains `connectionLogo`, `icon`, and `resultsKey` fields. `resultsKey` keeps the original dataset key around so the log drawer lookup still works after the title is replaced with the friendlier display name.
  • `stubPrivacyRequests` adds a default empty connection list intercept so the timeline behaves predictably under Cypress.

Test plan

  • `tsc --noEmit` passes
  • `jest events-and-logs` passes (14/14)
  • `eslint` clean on changed files
  • Cypress `Privacy Requests` suite passes
  • Manual smoke: open a completed privacy request, verify integration logos render, "Fides:" is gone, manual task / comment rows show a user icon + name, tag reads "Automatically updated"

🤖 Generated with Claude Code

Replace the bare "Fides:" prefix and snake_case dataset keys with leading
icons, integration logos, and humanized labels so the activity log reads
as a more user-friendly timeline. Each row now renders an icon (integration
logo, user avatar, or system event glyph), drops the redundant "Fides:"
author, and prefers the connection's display name when one is available.
The "Request update" tag has also been renamed to "Automatically updated".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Kelsey-Ethyca Kelsey-Ethyca requested a review from a team as a code owner May 8, 2026 02:51
@Kelsey-Ethyca Kelsey-Ethyca requested review from speaker-ender and removed request for a team May 8, 2026 02:51
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 8, 2026

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

Project Deployment Actions Updated (UTC)
fides-plus-nightly Error Error May 11, 2026 0:03am
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
fides-privacy-center Ignored Ignored May 11, 2026 0:03am

Request Review

Kelsey-Ethyca and others added 2 commits May 9, 2026 15:34
Style timeline icons with branded backgrounds (terracotta for request
received, olive for approved, marble/sandstone with minos foreground for
user and policy events), bump icon size to 24px, swap to FlowData/Process/
ArrowRight/Checkmark glyphs, and pull SaaS connection logos through the
ConnectionSystemTypeMap so Stripe, Mailchimp, etc. show their integration
logo instead of the generic database fallback. Also add defensive guards
so an unmapped privacy request status no longer crashes the badge or the
bulk-action menu, drop the redundant Button wrapper around ClipboardButton
in request details, and reduce the connections page size from 1000 to 100
to stay under the backend pagination cap.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Polish the activity timeline with terracotta and olive row backgrounds for
error and finished states, swap user/comment glyphs (User stays for manual
task entries; new Chat glyph for internal comments), tune sandstone icon
tiles to be 50% lighter, and route SaaS connection logos through their
ConnectionSystemTypeMap encoded_icon plus a CSS scale to compensate for
built-in SVG padding. Also rename the "Access package upload" execution
log to "Access package sent" (keeping a frontend shim for legacy rows),
drop the now-redundant success message, and ship a refreshed manual task
integration icon.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Kelsey-Ethyca Kelsey-Ethyca requested a review from a team as a code owner May 11, 2026 00:01
@Kelsey-Ethyca Kelsey-Ethyca requested review from johnewart and removed request for a team May 11, 2026 00:01
@codecov
Copy link
Copy Markdown

codecov Bot commented May 11, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.23%. Comparing base (6d220c9) to head (06738b7).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #8140   +/-   ##
=======================================
  Coverage   85.23%   85.23%           
=======================================
  Files         638      638           
  Lines       42011    42011           
  Branches     4937     4937           
=======================================
  Hits        35808    35808           
  Misses       5096     5096           
  Partials     1107     1107           

☔ View full report in Codecov by Sentry.
📢 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.

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.

1 participant