Skip to content

feat: [UIE-9358] - IAM Parent/Child: Child Account - Default Entity Access#12993

Merged
aaleksee-akamai merged 6 commits intolinode:developfrom
aaleksee-akamai:UIE-9358-iam-default-entity-access-tab
Oct 22, 2025
Merged

feat: [UIE-9358] - IAM Parent/Child: Child Account - Default Entity Access#12993
aaleksee-akamai merged 6 commits intolinode:developfrom
aaleksee-akamai:UIE-9358-iam-default-entity-access-tab

Conversation

@aaleksee-akamai
Copy link
Contributor

@aaleksee-akamai aaleksee-akamai commented Oct 16, 2025

Description 📝

This PR adds the Assigned entity table for Default Access

Changes 🔄

List any change(s) relevant to the reviewer.

  • Update AssignedEntityTable
  • Clean up

Scope 🚢

Upon production release, changes in this PR will be visible to:

  • All customers
  • Some customers (e.g. in Beta or Limited Availability)
  • No customers / Not applicable

Target release date 🗓️

11/04

Preview 📷

Before After
📷 image
📷 image
📷 image

How to test 🧪

Prerequisites

(How to setup test environment)

  • IAM parent/child DevCloud account (IAM Delegation (Parent/Child) flag should be enabled)
  • use MSW CRUD mode
  • create some entities (ex. linode and firewall)

Verification steps

(How to verify changes)

  • go to /iam/roles/
  • click 'view default roles' button
  • go to 'default entity access' tab
Author Checklists

As an Author, to speed up the review process, I considered 🤔

👀 Doing a self review
❔ Our contribution guidelines
🤏 Splitting feature into small PRs
➕ Adding a changeset
🧪 Providing/improving test coverage
🔐 Removing all sensitive information from the code and PR description
🚩 Using a feature flag to protect the release
👣 Providing comprehensive reproduction steps
📑 Providing or updating our documentation
🕛 Scheduling a pair reviewing session
📱 Providing mobile support
♿ Providing accessibility support


  • I have read and considered all applicable items listed above.

As an Author, before moving this PR from Draft to Open, I confirmed ✅

  • All tests and CI checks are passing
  • TypeScript compilation succeeded without errors
  • Code passes all linting rules

@aaleksee-akamai aaleksee-akamai self-assigned this Oct 16, 2025
@aaleksee-akamai aaleksee-akamai added the IAM Delegation Implementing the new Parent/Child delegation UI label Oct 16, 2025
@aaleksee-akamai aaleksee-akamai marked this pull request as ready for review October 20, 2025 08:19
location.pathname.includes('/iam/roles/defaults')) ??
false,
};
};
Copy link
Contributor

Choose a reason for hiding this comment

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

@mpolotsk-akamai just FYI - this is the same approached we had discussed during pair programming

You will probably need this hook for your own PR (with some additional path logic)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

that /iam/roles/defaults path includes both tabs, but something else might be needed here

Copy link
Contributor

@abailly-akamai abailly-akamai left a comment

Choose a reason for hiding this comment

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

PR looks great and testing with mock data worked well enough (tho with entity seeds it seems like we don't get all the data in the entities table but i think it just has to do with the delegation handler which you fixed to use relevant IDs, only for two entities)

Validated UI, data flows and logic ✅

currentRoute: '/iam/users/$username/entities',
currentRoute: isDefaultDelegationRolesForChildAccount
? '/iam/roles/defaults/entity-access'
: `/iam/users/$username/entities`,
Copy link
Contributor

Choose a reason for hiding this comment

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

No change needed, but eventually we may just allow location.pathname here.. It was done this way because location.pathname isn't type strict as the other router utils, but it does make sense to have it set as such

assignedUserRolesLoading,
delegateDefaultRolesLoading,
]
);
Copy link
Contributor

Choose a reason for hiding this comment

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

Could we try to simplify?

const loading = assignedUserRolesLoading || assignedUserRolesLoading

seems like it would work the same - same with the error above

Copy link
Contributor Author

@aaleksee-akamai aaleksee-akamai Oct 21, 2025

Choose a reason for hiding this comment

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

we still need to check isDefaultDelegationRolesForChildAccount, or you're saying that useMemo doesn't play a huge role there?

Copy link
Contributor

Choose a reason for hiding this comment

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

Both: useMemo doesn't play a role here since this value is always changing, and depending what mode you are on one will be a boolean and one will be undefined. I don't think we need the isDefaultDelegationRolesForChildAccount at all from what I can read

Copy link
Contributor Author

Choose a reason for hiding this comment

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

turns out that it won't be undefined: loading'd be false and error'd be null. So I think we need to check for the mode

@linode-gh-bot
Copy link
Collaborator

Cloud Manager UI test results

🔺 2 failing tests on test run #5 ↗︎

❌ Failing✅ Passing↪️ Skipped🕐 Duration
2 Failing839 Passing11 Skipped40m 26s

Details

Failing Tests
SpecTest
create-linode-with-placement-groups.spec.tsCloud Manager Cypress Tests→Linode create flow with Placement Group » can create a linode with a newly created Placement Group
clone-linode.spec.tsCloud Manager Cypress Tests→clone linode » can clone a Linode from Linode details page

Troubleshooting

Use this command to re-run the failing tests:

pnpm cy:run -s "cypress/e2e/core/placementGroups/create-linode-with-placement-groups.spec.ts,cypress/e2e/core/linodes/clone-linode.spec.ts"

Copy link
Contributor

@mpolotsk-akamai mpolotsk-akamai left a comment

Choose a reason for hiding this comment

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

LGTM, Default Entity Access table looks good; role updates and removals work as expected. ✅

@github-project-automation github-project-automation bot moved this from Review to Approved in Cloud Manager Oct 22, 2025
@aaleksee-akamai aaleksee-akamai merged commit 18ba87a into linode:develop Oct 22, 2025
34 of 35 checks passed
@github-project-automation github-project-automation bot moved this from Approved to Merged in Cloud Manager Oct 22, 2025
shagufa-akamai pushed a commit to shagufa-akamai/manager that referenced this pull request Dec 11, 2025
…ccess (linode#12993)

* feat: [UIE-9358] - IAM Parent/Child: Child Account - Default Entity Access

* move logic to the hook

* fix assigned default roles

* test and filter out assigned roles

* remove useMemo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

IAM Delegation Implementing the new Parent/Child delegation UI

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants