Permissions
How access control actually works in Elixion today
Permissions
Elixion's access model has two levels: Space and Project. There is no Organization level and no visibility settings (no "Public / Private / Restricted" project modes, no "Open / Closed / Secret" space modes). Access to a project or space is determined entirely by whether you've been added as a member, and at what role.
Not yet shipped: a real organization/tenant boundary is tracked as ELI-1284 and has not shipped. Today, every Space and Project on an Elixion instance is reachable by any authenticated user who is added as a member — there is no company/tenant wall preventing, say, Client A's admin from being added (deliberately or by mistake) to a Space that belongs to Client B. Do not describe Elixion as multi-tenant in its current state.
Hierarchy
Space
└── Project
└── Issue
Issues do not have their own visibility rules independent of their project — if you can see the project, you can see its issues.
Space Roles
Space membership (SpaceMember.role) uses a fixed hierarchy:
| Role | Access | |------|--------| | OWNER | Full control of the space | | ADMIN | Manage space settings and membership | | MEMBER | Standard space access | | VIEWER | Read-only space access |
Superusers (platform admins) bypass this check entirely and are treated as
OWNER on every space.
Project Roles
Project membership (ProjectMember.role) is a free-form role label used for
both job function (DEVELOPER, QA_ENGINEER, DESIGNER, PROJECT_MANAGER,
etc.) and coarse access tier (OWNER, ADMIN, VIEWER). A project's owner
(Project.owner_id) always has full access regardless of their ProjectMember
role.
Project-level permission checks (who can view/edit issues, manage sprints,
etc.) are evaluated against ProjectMember rows and Project.owner_id
directly. They do not consult Space membership or Space role — being an
OWNER of a Space does not, by itself, grant access to every project inside
that space; conversely, being a project member does not require also being a
space member (the two are kept in sync on a best-effort basis when someone is
added to a project, but they are separate checks).
What does not exist
The following are not implemented, regardless of what older mockups or marketing copy may say:
- Organization-level roles or an "Org Admin"
- Space or Project visibility settings (Public/Private/Restricted, Open/Closed/Secret)
- Custom roles or a role builder
- Groups, or group-based permission assignment
- Field-level permissions (e.g. restricting a specific custom field to a subset of members)
- A permission audit log UI
If you need one of these for a specific rollout, file it against ELI-1284 rather than assuming it already exists.
Next: Settings - Platform configuration