Skip to content

refactor: okta ui updates [ENG-2809]#7596

Merged
speaker-ender merged 2 commits intomainfrom
refactor/okta-ui-updates--ENG-2809
Mar 13, 2026
Merged

refactor: okta ui updates [ENG-2809]#7596
speaker-ender merged 2 commits intomainfrom
refactor/okta-ui-updates--ENG-2809

Conversation

@speaker-ender
Copy link
Contributor

@speaker-ender speaker-ender commented Mar 9, 2026

Ticket ENG-2809

Description Of Changes

Added a banner for infrastructure monitors in the action center explaining the content.
Updated all of the Add actions to be Approve to match the other monitor type actions.

Code Changes

Steps to Confirm

  1. Add a test integration monitor and run a scan
  2. Go to the action center and navigate to that integration monitor screen
  3. Confirm that a dismiss-able banner now appears above the search section with the expected text.
  4. Verify that all of the actions to Add the detected monitors are now labeled as Approve

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

Summary by CodeRabbit

Release Notes

  • New Features

    • Added an informational alert banner to the infrastructure systems discovery table.
  • Changed

    • Updated action label from "Add" to "Approve" for infrastructure system operations.
    • Refactored bulk actions menu to prioritize the "Approve" action with conditional "Restore" and "Ignore" options.

@vercel
Copy link
Contributor

vercel bot commented Mar 9, 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 Mar 13, 2026 3:35pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
fides-privacy-center Ignored Ignored Mar 13, 2026 3:35pm

Request Review

@coderabbitai
Copy link

coderabbitai bot commented Mar 9, 2026

📝 Walkthrough

Walkthrough

This PR refactors the infrastructure systems action-center to replace the "Add" action with an "Approve" action. Changes include updating the enum variant, component props, labels, icons, and related UI logic flows across tests, components, hooks, and utilities.

Changes

Cohort / File(s) Summary
Changelog and Tests
changelog/7596.yaml, clients/admin-ui/cypress/e2e/action-center/infrastructure-systems.cy.ts
Added changelog entry describing the Okta UX refactor; updated Cypress test selectors and expectations from "Add" label to "Approve" across non-ignored, ignored, and bulk action scenarios.
Action Type Constants
clients/admin-ui/src/features/data-discovery-and-detection/action-center/constants.ts
Replaced enum member ADD = "add" with APPROVE = "approve" in InfrastructureSystemBulkActionType, affecting downstream action type references.
Component Props and Logic
clients/admin-ui/src/features/data-discovery-and-detection/action-center/components/InfrastructureSystemActionsCell.tsx
Renamed addIcon prop to approveIcon (defaults to Checkmark); renamed handler from handleAdd to handleApprove; updated action type checks, button labels, aria-labels, and data-testid from "Add" to "Approve".
Bulk Actions Hook
clients/admin-ui/src/features/data-discovery-and-detection/action-center/hooks/useInfrastructureSystemsBulkActions.tsx
Replaced conditional checks against InfrastructureSystemBulkActionType.ADD with APPROVE throughout explicit and bulk selection flows; updated success messaging to reflect "approved/promoted" terminology.
Bulk Actions Menu Utility
clients/admin-ui/src/features/data-discovery-and-detection/action-center/utils/infrastructureSystemsBulkActionsMenu.tsx
Refactored getBulkActionsMenuItems to unconditionally include Approve action first, then conditionally add Restore and Ignore; expanded GetBulkActionsMenuItemsConfig interface with isBulkActionInProgress and onBulkAction fields.
Table UI Enhancement
clients/admin-ui/src/features/data-discovery-and-detection/action-center/tables/DiscoveredInfrastructureSystemsTable.tsx
Added informational Alert banner at top of table with message about detected systems and closable option; no changes to data fetching or table structure.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • jpople
  • lucanovera

Poem

🐰 From "Add" to "Approve," the journey's clear,
A refactor so bold, bringing cheer,
Enums renamed, props take flight,
Buttons relabeled, shining bright,
The action-center now approves with might! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'refactor: okta ui updates ENG-2809' accurately describes the main changes: a UI refactor for Okta/infrastructure systems including banner addition and action label updates.
Description check ✅ Passed The PR description includes all essential sections: clear description of changes (banner and action label updates), code changes context, detailed steps to confirm, and a mostly-completed pre-merge checklist with appropriate selections.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch refactor/okta-ui-updates--ENG-2809

Comment @coderabbitai help to get the list of available commands and usage tips.

@speaker-ender speaker-ender force-pushed the refactor/okta-ui-updates--ENG-2809 branch from 99362c6 to 55f31cf Compare March 9, 2026 14:44
@speaker-ender speaker-ender force-pushed the refactor/okta-ui-updates--ENG-2809 branch from 55f31cf to a401f55 Compare March 9, 2026 15:13
@speaker-ender speaker-ender force-pushed the refactor/okta-ui-updates--ENG-2809 branch from a401f55 to 03813df Compare March 9, 2026 15:55
@speaker-ender speaker-ender force-pushed the refactor/okta-ui-updates--ENG-2809 branch from 03813df to 9d0c224 Compare March 9, 2026 16:30
@speaker-ender speaker-ender force-pushed the refactor/okta-ui-updates--ENG-2809 branch from 9d0c224 to 1b1e18c Compare March 9, 2026 18:05
@speaker-ender speaker-ender force-pushed the refactor/okta-ui-updates--ENG-2809 branch from 1b1e18c to 2acfa7e Compare March 10, 2026 12:18
@speaker-ender speaker-ender force-pushed the refactor/okta-ui-updates--ENG-2809 branch from de3f49a to ebde3f0 Compare March 10, 2026 13:52
@speaker-ender speaker-ender marked this pull request as ready for review March 10, 2026 14:21
@speaker-ender speaker-ender requested a review from a team as a code owner March 10, 2026 14:21
@speaker-ender speaker-ender requested review from lucanovera and removed request for a team March 10, 2026 14:21
@greptile-apps
Copy link
Contributor

greptile-apps bot commented Mar 10, 2026

Greptile Summary

This PR makes two focused UI changes to the infrastructure monitor view in the Action Center: it adds a dismissible informational Alert banner above the systems table, and renames all "Add" labels/actions to "Approve" throughout the infrastructure systems feature (enum value, component props, button labels, tooltips, bulk-action menu items, and Cypress tests).

Key changes:

  • InfrastructureSystemBulkActionType.ADDAPPROVE in constants.ts, propagated consistently to the hook, cell component, menu utility, and all tests.
  • New Alert banner in DiscoveredInfrastructureSystemsTable with informational copy and a closable prop — dismissal is in-memory only and the banner will reappear on each component remount.
  • getBulkActionsMenuItems refactored from branched if/else to a single flat array with spread conditionals — functionally equivalent in practice, but the mutual-exclusivity invariant between isIgnoredTab and allowIgnore is now implicit rather than structural.

Confidence Score: 4/5

  • This PR is safe to merge — all changes are purely UI-level renames and a new informational banner with no backend impact.
  • The rename from ADD to APPROVE is applied consistently across all files and tests. The refactored bulk-actions menu is functionally equivalent given the current invariants. The only open question is whether the Alert banner dismissal should persist across navigation, which is a minor UX decision rather than a correctness issue.
  • DiscoveredInfrastructureSystemsTable.tsx — confirm whether the Alert dismissal is intentionally ephemeral (resets on navigation) or should be persisted.

Important Files Changed

Filename Overview
clients/admin-ui/src/features/data-discovery-and-detection/action-center/tables/DiscoveredInfrastructureSystemsTable.tsx Adds a dismissible Alert banner above the search bar. The dismissal is in-memory only and the banner will reappear on each component remount (e.g. navigation away and back).
clients/admin-ui/src/features/data-discovery-and-detection/action-center/constants.ts Renames InfrastructureSystemBulkActionType.ADD to APPROVE ("add" → "approve"). Clean, focused change.
clients/admin-ui/src/features/data-discovery-and-detection/action-center/utils/infrastructureSystemsBulkActionsMenu.tsx Refactors getBulkActionsMenuItems from branched if/else logic to a single flat array with spread conditionals. Also renames ADD to APPROVE. Introduces a minor behavioral difference: in the old code, isIgnoredTab always excluded IGNORE; the new code relies on allowIgnore being false on the ignored tab (which is guaranteed by the shouldAllowIgnore logic, making this safe in practice).
clients/admin-ui/src/features/data-discovery-and-detection/action-center/components/InfrastructureSystemActionsCell.tsx Renames addIcon prop to approveIcon, handleAdd to handleApprove, data-testid="add-btn" to "approve-btn", and updates all tooltip/label strings. Changes are consistent and no logic was altered.
clients/admin-ui/src/features/data-discovery-and-detection/action-center/hooks/useInfrastructureSystemsBulkActions.tsx Updates all InfrastructureSystemBulkActionType.ADD comparisons to APPROVE. Purely mechanical rename with no logic changes.
clients/admin-ui/cypress/e2e/action-center/infrastructure-systems.cy.ts Updates all Cypress test assertions and descriptions from "Add" to "Approve" to match the renamed UI labels. No new test coverage for the new Alert banner component.
changelog/7596.yaml Changelog entry for the PR. Correct type (Changed), description is brief but acceptable.

Last reviewed commit: ebde3f0

Comment on lines +28 to +47
...(isIgnoredTab
? [
{
key: RESTORE,
label: "Restore",
onClick: () => onBulkAction(RESTORE),
disabled: isBulkActionInProgress,
},
]
: []),
...(allowIgnore
? [
{
key: IGNORE,
label: "Ignore",
onClick: () => onBulkAction(IGNORE),
disabled: isBulkActionInProgress,
},
]
: []),
Copy link
Contributor

Choose a reason for hiding this comment

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

Implicit coupling between isIgnoredTab and allowIgnore

The old implementation explicitly prevented the IGNORE item from appearing on the ignored tab by using a separate code path for that branch. The refactored version relies on allowIgnore always being false when isIgnoredTab is true — an invariant enforced by shouldAllowIgnore returning false when DiffStatus.MUTED is in the active filters.

This is safe today, but the coupling is now implicit. If getBulkActionsMenuItems is ever called with isIgnoredTab: true and allowIgnore: true (e.g. from a new call site or a future filter change), the ignored tab would unexpectedly display all three actions: Approve, Restore, and Ignore.

Consider adding a comment above these spread blocks to make the invariant explicit — e.g. noting that RESTORE and IGNORE are mutually exclusive because shouldAllowIgnore always returns false when DiffStatus.MUTED is active, which is the same condition that sets isIgnoredTab.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (3)
clients/admin-ui/src/features/data-discovery-and-detection/action-center/components/InfrastructureSystemActionsCell.tsx (2)

186-190: Dead code: button text will never render.

Since approveIcon has a default value (<Icons.Checkmark />), the condition !approveIcon && "Approve" will always be falsy and the text "Approve" will never be displayed. If the icon-only button is intentional, consider removing the dead code. If text should sometimes appear, remove the default value or change the condition.

🧹 Remove dead code
          icon={approveIcon}
          aria-label="Approve"
-        >
-          {!approveIcon && "Approve"}
-        </Button>
+        />
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@clients/admin-ui/src/features/data-discovery-and-detection/action-center/components/InfrastructureSystemActionsCell.tsx`
around lines 186 - 190, The JSX contains dead code: the Button child
{!approveIcon && "Approve"} will never render because approveIcon has a default
(Icons.Checkmark). Update InfrastructureSystemActionsCell to either remove the
dead branch or make text conditional correctly: either delete the noop
expression and keep the icon-only Button (remove {!approveIcon && "Approve"}),
or change the prop/default so approveIcon can be undefined when you want text
(remove the default value for approveIcon) and keep the conditional; locate the
Button usage and the approveIcon default to apply the chosen fix.

135-137: Minor text inconsistency.

The tooltip says "Restore systems before adding to the inventory" but the action is now labeled "Approve". Consider updating for consistency.

📝 Suggested fix
     if (isApprove && isIgnored) {
-      return "Restore systems before adding to the inventory";
+      return "Restore systems before approving";
     }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@clients/admin-ui/src/features/data-discovery-and-detection/action-center/components/InfrastructureSystemActionsCell.tsx`
around lines 135 - 137, Tooltip text in InfrastructureSystemActionsCell is
inconsistent with the "Approve" action; update the string returned in the
isApprove && isIgnored branch to match the action label (e.g., change "Restore
systems before adding to the inventory" to "Approve systems before adding to the
inventory") so the tooltip reflects the "Approve" action; locate the conditional
in InfrastructureSystemActionsCell that checks isApprove and isIgnored and
replace the message accordingly.
changelog/7596.yaml (1)

1-4: Consider a more descriptive changelog entry.

The description "Okta ux refactor" is quite generic. A clearer entry would help users understand what changed, e.g., "Changed 'Add' action labels to 'Approve' for infrastructure monitors and added informational banner."

📝 Suggested improvement
 type: Changed # One of: Added, Changed, Developer Experience, Deprecated, Docs, Fixed, Removed, Security
-description: Okta ux refactor
+description: Updated infrastructure monitor action labels from "Add" to "Approve" and added dismissible informational banner
 pr: 7596 # PR number
 labels: [] # Optional: ["high-risk", "db-migration"]
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@changelog/7596.yaml` around lines 1 - 4, Update the changelog entry's
description field to be more specific and user-facing: replace the generic "Okta
ux refactor" with a concise summary of the user-visible changes (for example,
"Changed 'Add' action labels to 'Approve' for infrastructure monitors and added
an informational banner about Okta sign-in changes") and keep the pr: 7596 and
other metadata intact; ensure the new description accurately reflects the UX
changes implemented and is brief but descriptive.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@changelog/7596.yaml`:
- Around line 1-4: Update the changelog entry's description field to be more
specific and user-facing: replace the generic "Okta ux refactor" with a concise
summary of the user-visible changes (for example, "Changed 'Add' action labels
to 'Approve' for infrastructure monitors and added an informational banner about
Okta sign-in changes") and keep the pr: 7596 and other metadata intact; ensure
the new description accurately reflects the UX changes implemented and is brief
but descriptive.

In
`@clients/admin-ui/src/features/data-discovery-and-detection/action-center/components/InfrastructureSystemActionsCell.tsx`:
- Around line 186-190: The JSX contains dead code: the Button child
{!approveIcon && "Approve"} will never render because approveIcon has a default
(Icons.Checkmark). Update InfrastructureSystemActionsCell to either remove the
dead branch or make text conditional correctly: either delete the noop
expression and keep the icon-only Button (remove {!approveIcon && "Approve"}),
or change the prop/default so approveIcon can be undefined when you want text
(remove the default value for approveIcon) and keep the conditional; locate the
Button usage and the approveIcon default to apply the chosen fix.
- Around line 135-137: Tooltip text in InfrastructureSystemActionsCell is
inconsistent with the "Approve" action; update the string returned in the
isApprove && isIgnored branch to match the action label (e.g., change "Restore
systems before adding to the inventory" to "Approve systems before adding to the
inventory") so the tooltip reflects the "Approve" action; locate the conditional
in InfrastructureSystemActionsCell that checks isApprove and isIgnored and
replace the message accordingly.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 71ce7f0a-1b79-4c97-a91a-f7ad6b9b1ca4

📥 Commits

Reviewing files that changed from the base of the PR and between 9d24a80 and ebde3f0.

📒 Files selected for processing (7)
  • changelog/7596.yaml
  • clients/admin-ui/cypress/e2e/action-center/infrastructure-systems.cy.ts
  • clients/admin-ui/src/features/data-discovery-and-detection/action-center/components/InfrastructureSystemActionsCell.tsx
  • clients/admin-ui/src/features/data-discovery-and-detection/action-center/constants.ts
  • clients/admin-ui/src/features/data-discovery-and-detection/action-center/hooks/useInfrastructureSystemsBulkActions.tsx
  • clients/admin-ui/src/features/data-discovery-and-detection/action-center/tables/DiscoveredInfrastructureSystemsTable.tsx
  • clients/admin-ui/src/features/data-discovery-and-detection/action-center/utils/infrastructureSystemsBulkActionsMenu.tsx

Copy link
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.

Banner looks good and all the actions are labeled as approved. Code changes look good.

@speaker-ender speaker-ender added this pull request to the merge queue Mar 11, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Mar 11, 2026
feat: basic alert message

refactor: migrate more action labels

fix: linting

chore: update changelog

fix: types

chore: more updates after rebase

refactor: alert text treatment

fix: broken tests

wip: style and text updates

chore: revert styles that should come from global

fix: linting

fix: test updates
@speaker-ender speaker-ender force-pushed the refactor/okta-ui-updates--ENG-2809 branch from ebde3f0 to 5cea756 Compare March 13, 2026 15:30
@speaker-ender speaker-ender enabled auto-merge March 13, 2026 15:30
@speaker-ender speaker-ender added this pull request to the merge queue Mar 13, 2026
Merged via the queue into main with commit ceaf15a Mar 13, 2026
47 checks passed
@speaker-ender speaker-ender deleted the refactor/okta-ui-updates--ENG-2809 branch March 13, 2026 15:54
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