Skip to content

ACL editor: show identity-less principals (service accounts)#691

Merged
AlexGodbehere merged 1 commit into
mainfrom
ag/acl-editor-service-accounts
Jul 23, 2026
Merged

ACL editor: show identity-less principals (service accounts)#691
AlexGodbehere merged 1 commit into
mainfrom
ag/acl-editor-service-accounts

Conversation

@AlexGodbehere

Copy link
Copy Markdown
Contributor

Summary

The ACL editor's principal list was built from auth.list_principals(), which only returns principals holding an identity record (kerberos/sparkplug). The F+ principals service-setup creates for OIDC service accounts (#688) deliberately have no identity, so they could hold grants but were invisible in the editor - there was no way to grant a wall display its MQTT read permission from the UI.

  • usePrincipalStore unions in the members of the ConfigDB Principal class (recursive membership, so all principals are covered); identity-less ones get kerberos: null.
  • The Principal column renders a muted "No identity" placeholder for them; the kerberos filter list drops nulls; the management sidebar hides the empty copyable; group-removal dialogs fall back to the principal's name.
  • Grant creation needed no changes: it operates on principal.uuid via the principal's Permissions tab, which now simply becomes reachable for service accounts.

How to test

  1. On a cluster with a service-account client (amrc-fp has polyptic-kiosk), open the admin UI's Access Control → Principals.
  2. "Service account: Polyptic kiosk" should appear, Principal column showing "No identity".
  3. Open it → Permissions tab → grant MQTT ReadWholeNamespace with wildcard target. Confirm the grant lands (/v2/acl/<uuid> returns it).
  4. Existing kerberos principals render and filter exactly as before.

🤖 Generated with Claude Code

The principal list came from the Auth service's identity table, so a
principal with no kerberos/sparkplug identity - which is what
service-setup now creates for OIDC service accounts - could hold
grants but never appeared in the editor, making it impossible to
grant to a wall display's principal from the UI. Union in the members
of the ConfigDB Principal class, shown with a muted 'No identity'
placeholder, and fall back to the principal's name in group-removal
messages.
@AlexGodbehere
AlexGodbehere merged commit b3d5c2f into main Jul 23, 2026
1 check passed
@AlexGodbehere
AlexGodbehere deleted the ag/acl-editor-service-accounts branch July 23, 2026 06:47
AlexGodbehere added a commit that referenced this pull request Jul 23, 2026
Adds the v6.1.3 section covering the ACL editor identity-less principals
fix (#691).

🤖 Generated with [Claude Code](https://claude.com/claude-code)
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.

1 participant