Users and Access (Owner/Admin)
Orgonaut's tenant authorization model currently uses five membership roles:
owneradminmanagermemberviewer
The management surface at /settings/members is intentionally limited to owner and admin. Managers, members, and viewers participate in the broader role-based authorization model across the app, but they cannot open the user-management page unless their role is changed.
Open the management page
Go to:
/settings/members
You will see different actions based on your role.
The Active Members table includes User Type, Joined Since, and Last Login so you can quickly see access level, membership age, and each member's most recent successful sign-in.
In the Invite User card, click user type in the helper sentence to open the live comparison matrix. The modal groups abilities by app section and shows exactly which roles can perform each action based on the current role bundle configuration.
Role boundaries
At a high level:
owner: full tenant administration plus all tenant feature abilitiesadmin: broad tenant administration without ownership transfermanager: operational modeling access, including destructive modeling actions, without tenant administrationmember: contributor access without tenant administration or destructive delete actionsviewer: read-focused access
In the current role bundles:
managercan delete actors, placements, positions, teams, departments, and initiativesmembercan create and update those records where allowed, but cannot delete them
In practice, viewers can read the tenant surfaces their role allows, but they do not get tenant-admin or mutation controls. For example, viewers cannot open /settings/members, /settings/export, or /settings/ai/costs, and they do not see edit, deactivate, compensation, or placement-management actions on people, agents, teams, departments, or positions.
Owner can:
- invite users as
admin,manager,member, orviewer - resend and revoke pending invites
- archive and reactivate non-owner memberships
- change non-owner user types
- transfer ownership to an active admin
- manage billing/subscription
- change tenant name and slug
For the owner billing workflow, see Billing and Subscriptions.
Admin can:
- invite users as
admin,manager,member, orviewer - resend and revoke pending invites
- archive and reactivate non-owner memberships
- change non-owner user types
Admin cannot:
- assign
ownerthrough invites or user-type changes - transfer ownership
- manage billing
- change tenant name/slug
- delete the tenant
Astro can describe the current members, invitations, and ownership context when your permissions allow it, but Astro cannot invite users, revoke invites, archive memberships, or transfer ownership. Those tenant-admin actions remain human-owned in the settings workflows.
Invitation workflow
Invitations are email-based and tenant-scoped.
Rules:
- invite role must be selected as one of
admin,manager,member, orviewer ownercannot be assigned from invites or user-type edits- invite links are single-use
- invite expiry is 7 days from creation
- invite links open an acceptance page that guides users to sign in or create an account first when needed
- invite emails are rendered from the shared tenant-branded invitation mailable for both new and existing users
- accepting account email must match the invite email (normalized compare)
- resending creates a new pending invite and revokes the previous pending invite
- the Pending Invitations table shows the invited user type for each pending invite
The user-type comparison modal is read directly from the current ability catalog and role bundles, so it stays aligned with the real enforcement rules used by the web app, API, tokens, and assistant.
Invite states:
pendingacceptedexpiredrevoked
Accepted, expired, and revoked invites are terminal.
Membership lifecycle
Membership lifecycle in V1:
activearchived
Archive is used instead of hard delete.
Effects of archive:
- archived users lose tenant-scoped web/API access
- archived users are removed from tenant switch/fallback membership eligibility
- owner membership cannot be archived
Reactivation restores tenant access for that membership.
User type updates:
- are available to tenant owners and admins on
/settings/members - use a modal-based edit flow from the User Type badge row action
- apply immediately to active memberships
- require archived memberships to be reactivated before the user type can be changed
- cannot assign
owner - cannot change the current owner row
Ownership transfer
Ownership transfer is immediate and atomic:
- source owner becomes
admin - target active admin becomes
owner - exactly one active owner is preserved
- the owner must confirm in a modal by entering their account password before the action is executed
Target must already be an active tenant admin.
API parity
The API mirrors the same permissions and lifecycle model:
GET /api/v1/tenant-membersPATCH /api/v1/tenant-members/{user}/archivePATCH /api/v1/tenant-members/{user}/reactivatePATCH /api/v1/tenant-members/{user}/rolePOST /api/v1/tenant-members/transfer-ownershipGET /api/v1/tenant-invitationsPOST /api/v1/tenant-invitationsPOST /api/v1/tenant-invitations/{invite}/resendPOST /api/v1/tenant-invitations/{invite}/revoke
Use the API reference for full request and response contracts.
Audit trail
Invitation lifecycle changes, membership lifecycle changes, and ownership transfer are written to the tenant activity/audit pipeline for operational traceability.