The consumer surface for administering who is in an organization and what they can do — members, roles, invitations, removals. Backed by FuzeFront's own Security API; no identity or policy vendor name appears anywhere in the UI. These frames freeze the flow, its states, and the build inventory before any UI is written. Walk each frame below.
The list: people in the org, their role pill, per-row change-role / remove. Cursor "Load more".
Email + required role in one step. Roles come from the tenant catalogue, never hard-coded.
Ordinary change, plus the refusal: the org's last admin cannot be demoted.
Confirm removal, plus the refusal: the org's last admin cannot be removed.
Loading, single-member org, load error, empty role catalogue, and 403 (never a sign-in redirect).
Approving these frames approves this component/package plan. Implementation
cannot quietly invent a different architecture. Mirrored in manifest.json →
build.
AccessAdminFlowMemberListMemberRowRolePillAddMemberDialogChangeRoleDialogRemoveMemberDialogRolePickerAccessDeniedNotice@fuzefront/access-admin-ui
Design system: @fuzefront/design-system (fuse-seam, tokens only) ·
Contract: packages/security/openapi.yaml → @fuzefront/security-client ·
Component: @fuzefront/access-admin-ui → AccessAdminFlow.
Commissioned by approval: a 409 LAST_ADMIN guard on demote/remove (frames c2,
d2) — it does not exist in the contract today. Reached from the account-security hub.
Approve per-flow by setting approved: true in manifest.json, or reply
@claude approve / @claude reject: <reason>.