Skip to content

Add Stewardship tab to user detail page#8240

Merged
adamsachs merged 6 commits into
mainfrom
adam/user-stewardship-tab
May 20, 2026
Merged

Add Stewardship tab to user detail page#8240
adamsachs merged 6 commits into
mainfrom
adam/user-stewardship-tab

Conversation

@adamsachs
Copy link
Copy Markdown
Contributor

@adamsachs adamsachs commented May 20, 2026

https://ethyca.atlassian.net/browse/ENG-3885

https://www.loom.com/share/1a0e2443ab7048ceb5e1bc6819166091

Description Of Changes

Adds a read-only Stewardship tab to the user detail page. The tab surfaces the systems and discovery monitors a given user is assigned as a steward of, so admins can quickly audit a steward's responsibilities from the user profile. Uses the existing /user/{id}/system-manager and /user/{id}/monitor endpoints — no backend changes.

Prototype feedback asked for a link to documentation explaining how to update a steward's monitor assignments (since this tab itself is read-only). That docs page doesn't exist yet, so the URL is currently a placeholder with a TODO comment in StewardshipTab.tsx flagging that it should be swapped once the docs are published. This is intentional and shouldn't block design or implementation review.

Code Changes

  • New StewardshipTab.tsx component renders two cards (Systems and Monitors) with antd Tables, each linking rows to the respective detail page.
  • UserManagementTabs.tsx registers the new tab.
  • StewardshipTab.tsx includes a placeholder documentation link in the Monitors card, gated by MONITOR_STEWARDSHIP_DOCS_URL with a TODO to update once the docs page exists.
  • Added changelog/user-stewardship-tab.yaml.

Steps to Confirm

  1. Log in to the admin UI and open the detail page for a user who is assigned as a steward of one or more systems and monitors.
  2. Click the new Stewardship tab; confirm both cards render with correct counts and that table rows link out to the correct system / integration pages.
  3. Open the detail page for a user with no assigned systems and/or no assigned monitors and confirm the empty states render.
  4. Click the documentation link in the Monitors card; confirm it opens in a new tab (it will 404 until the docs page is published — that's expected).

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

🤖 Generated with Claude Code

adamsachs and others added 3 commits May 16, 2026 18:51
Read-only tab on the user profile page that lists the systems and
monitors the user is assigned as a steward of. Uses the existing
/user/{id}/system-manager and /user/{id}/monitor endpoints; no
backend changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Addresses prototype feedback: surface a doc link explaining how to update
a steward's monitor assignments, since this tab itself is read-only. The
docs page does not exist yet, so the URL is a placeholder marked with a
TODO and will be swapped once published.

Also adds a changelog entry for the new tab.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 20, 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 May 20, 2026 7:45pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
fides-privacy-center Ignored Ignored May 20, 2026 7:45pm

Request Review

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 20, 2026

Title Lines Statements Branches Functions
admin-ui Coverage: 11%
8.54% (4053/47433) 7.59% (2094/27560) 5.82% (812/13945)
fides-js Coverage: 78%
79.17% (1977/2497) 66.25% (1249/1885) 73.31% (349/476)
privacy-center Coverage: 86%
83.95% (403/480) 81.25% (208/256) 76.13% (67/88)

adamsachs and others added 2 commits May 19, 2026 20:22
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Use RouterLink (Typography.Link-styled, prefetching) instead of bare
  NextLink for in-app navigation in both Systems and Monitors tables.
- Build URLs from EDIT_SYSTEM_ROUTE / INTEGRATION_DETAIL_ROUTE constants
  via the project-standard `.replace("[id]", value)` pattern, matching
  existing call sites.
- Replace `activeUserId as string` casts + skip flag with the idiomatic
  RTK Query `skipToken` sentinel, so the query argument types are honest.
- Migrate the top-level layout from Space (deprecated `direction` prop,
  per-child wrapper divs) to Flex, the documented vertical-stack primitive.
- Swap the inline `Typography.Link` for the project's DocsLink helper,
  which applies `rel="noopener noreferrer"` (addresses tab-nabbing more
  correctly than the previous `rel="nofollow"`).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@adamsachs adamsachs requested a review from speaker-ender May 20, 2026 13:40
@adamsachs adamsachs marked this pull request as ready for review May 20, 2026 13:40
@adamsachs adamsachs requested a review from a team as a code owner May 20, 2026 13:40
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@adamsachs adamsachs added this pull request to the merge queue May 20, 2026
Merged via the queue into main with commit 74eec83 May 20, 2026
51 checks passed
@adamsachs adamsachs deleted the adam/user-stewardship-tab branch May 20, 2026 19:58
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