Skip to content

refactor: system user table formatting [ENG-2429]#7352

Merged
speaker-ender merged 1 commit intomainfrom
refactor/system-user-table-formatting--ENG-2429
Feb 11, 2026
Merged

refactor: system user table formatting [ENG-2429]#7352
speaker-ender merged 1 commit intomainfrom
refactor/system-user-table-formatting--ENG-2429

Conversation

@speaker-ender
Copy link
Copy Markdown
Contributor

@speaker-ender speaker-ender commented Feb 10, 2026

Ticket ENG-2429

Description Of Changes

Note: Requires BE changes to test.

Updates the BE type definitions to include full data_steward data.
Updates the systems table to display users using the formatUser function in both the cells and the filter.

Code Changes

Steps to Confirm

  1. Create or find a system that has assigned data_stewards and view them in the systems page
  2. Verify that the data stewards are in the correct format (the same as the data stewards input in the monitor config form) for both the table data as well as the table filter.
  3. Check that no regressions in the table functionality have occured
  4. Verify that no other tables were effected.

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 Feb 10, 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 Feb 11, 2026 2:31pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
fides-privacy-center Ignored Ignored Feb 11, 2026 2:31pm

Request Review

@speaker-ender speaker-ender force-pushed the refactor/system-user-table-formatting--ENG-2429 branch from fa4423d to f64841e Compare February 10, 2026 15:55
@speaker-ender speaker-ender marked this pull request as ready for review February 10, 2026 15:55
@speaker-ender speaker-ender requested a review from a team as a code owner February 10, 2026 15:55
@speaker-ender speaker-ender requested review from lucanovera and removed request for a team February 10, 2026 15:55
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Feb 10, 2026

Greptile Overview

Greptile Summary

This PR updates the Systems table “Data stewards” column to display users using the shared formatUser helper in both the cell renderer and the filter UI, and updates the BasicSystemResponseExtended API model to represent data_stewards as full UserResponse objects.

Main issue to address before merge: the filter display-name callback currently can crash when the users list hasn’t loaded yet (calls .find on undefined). Also ensure the backend list endpoint and generated types are aligned with the new data_stewards: UserResponse[] shape so the table doesn’t receive username strings at runtime.

Confidence Score: 3/5

  • This PR is moderately safe to merge once the Data stewards filter crash and API shape alignment are confirmed/fixed.
  • The UI change is small but there is a definite runtime crash risk in the filter formatter when allUsers hasn’t loaded yet, and the data_stewards type change requires strict backend/frontend schema alignment for the Systems list endpoint.
  • clients/admin-ui/src/features/system/table/useSystemsTable.tsx; clients/admin-ui/src/types/api/models/BasicSystemResponseExtended.ts

Important Files Changed

Filename Overview
clients/admin-ui/src/features/system/table/useSystemsTable.tsx Updates Data stewards column to render/filter via formatUser; current filter display callback can throw when allUsers is undefined (calls .find on undefined).
clients/admin-ui/src/types/api/models/BasicSystemResponseExtended.ts Changes BasicSystemResponseExtended.data_stewards from string[] to UserResponse[]; requires backend/list endpoint and any consumers expecting string[] to be updated accordingly.
clients/admin-ui/src/types/api/models/SystemResponseExtended.ts Adds new SystemResponseExtended model mirroring SystemResponse with system_groups; appears consistent with existing SystemResponse connection_configs and data_stewards types.

Copy link
Copy Markdown
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

3 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

Comment on lines 321 to 329
filters: convertToAntFilters(
allUsers?.items?.map((user) => user.username),
allUsers?.items?.map(({ username }) => username),
(username) =>
formatUser(
allUsers?.items.find((u) => u.username === username) ?? {
username,
},
),
),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Filter formatter crashes

convertToAntFilters(..., (username) => formatUser(allUsers?.items.find(...))) will throw when allUsers is still undefined/loading because allUsers?.items.find(...) calls .find on undefined. This can crash the Systems table render before the users query resolves; guard the .find call (e.g., allUsers?.items?.find(...)) or otherwise avoid calling .find until items is available.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Feb 10, 2026

Additional Comments (1)

clients/admin-ui/src/types/api/models/BasicSystemResponseExtended.ts
Breaking API type change

data_stewards is changed from Array<string> to Array<UserResponse>, which will break any callers still expecting usernames (including the Systems list table and any filtering/serialization paths) unless the list endpoint schema and all downstream uses were updated in lockstep. Make sure the backend GET /system list response actually returns full UserResponse objects here (and regenerate types if applicable), otherwise the UI will mis-render or throw when formatUser reads object fields.

chore: formatting

feat: updating table

chore: add changelog

fix: failing test

fix: test properly

fix: function call
Copy link
Copy Markdown
Contributor

@lucanovera lucanovera left a comment

Choose a reason for hiding this comment

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

Shows first and last name correctly in the table now.

Image

@speaker-ender speaker-ender added this pull request to the merge queue Feb 11, 2026
Merged via the queue into main with commit 80fe843 Feb 11, 2026
45 checks passed
@speaker-ender speaker-ender deleted the refactor/system-user-table-formatting--ENG-2429 branch February 11, 2026 16:27
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