Skip to content

Delete role assignments when locally-managed users / groups are deleted - #11713

Draft
charliepark wants to merge 6 commits into
mainfrom
clean-up-role-assignments
Draft

charliepark wants to merge 6 commits into
mainfrom
clean-up-role-assignments

Conversation

@charliepark

@charliepark charliepark commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

In working on a console PR (oxidecomputer/console#3211) I discovered that #8605 was still open. (#9276 handled deletion of role assignments for SCIM-managed users / groups, but not for local ones). This PR adds a method that handles the deletion of role assignments for locally-managed users and groups, and calls it when the user / group is deleted.

Note: there is no method to delete groups locally, but deleting a silo without addressing the roles would leave some orphaned rows, so this code cleans up the roles during the silo deletion process.

"But wait!", I hear you say, "what about the orphaned rows from users that have already been deleted from the silo? Isn't that what prompted #8605 in the first place?" Good question. That is outside the scope of this PR, but the robot suggests there's a migration from before that covers similar territory: schema/crdb/cleanup-orphaned-subnet-pool-silo-links (version 248):

SET LOCAL disallow_full_table_scans = off;

DELETE FROM omicron.public.subnet_pool_silo_link
WHERE subnet_pool_id NOT IN (
    SELECT id FROM omicron.public.subnet_pool WHERE time_deleted IS NULL
);

So that's something we can talk through separately.

Unrelated, but I also came across some old uncalled code in silo_group_delete; this PR removes that method as well.

Closes #8605

@charliepark charliepark changed the title Clean up role assignments Delete role assignments when locally-managed users / groups are deleted Nov 5, 2026

This branch has not been deployed

No deployments
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.

Users and groups deletion leave behind role assignment records

1 participant