Skip to content

Add System Access page#3095

Open
charliepark wants to merge 18 commits intomainfrom
system_level_access_page
Open

Add System Access page#3095
charliepark wants to merge 18 commits intomainfrom
system_level_access_page

Conversation

@charliepark
Copy link
Contributor

@charliepark charliepark commented Feb 26, 2026

This adds a system-level access page, with a form for setting fleet-level permissions.

Screenshot 2026-02-26 at 4 59 26 AM

One enhancement we might consider: It looks like there are a few booleans — silo_admin and fleet_viewer — on the CurrentUser object coming from Omicron, but there is not a fleet_admin attribute. If we add that in Omicron, we could disable the "Add User or Group" button and other controls on the System Access page for people without a fleet_admin role.

Closes #2916

@vercel
Copy link

vercel bot commented Feb 26, 2026

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

Project Deployment Actions Updated (UTC)
console Ready Ready Preview Mar 5, 2026 9:40pm

Request Review

@david-crespo
Copy link
Collaborator

Looks really good. Nice message in the form. Will review properly tomorrow.

requireFleetAdmin(cookies)

const newAssignments = body.role_assignments
.filter((r) => fleetRoles.some((role) => role === r.role_name))
Copy link
Collaborator

Choose a reason for hiding this comment

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

(r) => fleetRoles.includes(r.role_name) I think?

</NavLinkItem>
<NavLinkItem to={pb.systemAccess()}>
<Access16Icon /> System Access
</NavLinkItem>
Copy link
Collaborator

@david-crespo david-crespo Mar 5, 2026

Choose a reason for hiding this comment

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

System Update
System Access

doesn't feel right to me, though in both cases the qualifier is useful. On the other hand we are in the system section. Could we just call them Update and Access? @benjaminleonard @askfongjojo curious what you think.

Image

What about Fleet Access. Slightly uglier but more literal is often better. System Update + Fleet Access might feel less repetitive.

Image

Note the other ones are called Silo Access and Project Access because otherwise they would be incomprehensible. So I think we probably do need a qualifier.

Image Image

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fleet Access works for me. Agree that the stacked System felt a bit off.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Yeah, let's go with that for now. It's kind of a problem for us because fleet and system are synonymous, but I'm ok with using the term that we use in the access subsystem.

summary="Roles determine who can view, edit, or administer this fleet."
links={[docLinks.keyConceptsIam, docLinks.access]}
/>
</PageHeader>
Copy link
Collaborator

@david-crespo david-crespo Mar 5, 2026

Choose a reason for hiding this comment

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

Users can get fleet roles implicitly from a silo role if the fleet role mapping is set. I wonder if it's worth putting in some kind of info message on this page saying that the explicitly assigned roles don't necessarily exist exhaust the set of users who have permissions on the fleet, and you need to look at mapped fleet roles in the silos to be sure.

I guess ideally we'd actually be able to list those mappings on this page, but it's kind of gnarly because I think any silo could contribute? We could do something really cute and let the user pop a modal where we fetch all the silos and their mapping and list the ones that have mappings defined. Kind of elaborate but not really very hard. The only place it would be a problem is the colo rack, which has a million silos.

<EmptyMessage
icon={<Access24Icon />}
title="No authorized users"
body="Give permission to view, edit, or administer this fleet"
Copy link
Collaborator

Choose a reason for hiding this comment

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

Might also be worth mentioning here the fleet role mapping thing — that this list being empty doesn't necessarily mean nobody can see fleet stuff. Necessarily so 😁 because anyone who can see this page has to be a fleet viewer.

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.

System-level access and IAM page

2 participants