Multi-tenant
Every organization fully isolated, every role a real, enforced boundary
organization_id lives on every tenant-owned table directly, and access is always resolved from your own membership -- an organization you don't belong to 404s, the same as one that doesn't exist at all.
Isolation enforced at the data layer, not just the UI
Every tenant-owned table carries organization_id directly, not just reachable through a join, and controllers and background jobs always scope through the currently-authenticated organization rather than a bare lookup by id. A user's access to any organization is resolved strictly from their own memberships: request one they don't belong to and it 404s exactly like one that doesn't exist, so whether an organization exists at all is never leaked to someone who isn't in it.
Four roles, ordered by privilege: owner, admin, member, viewer. Viewer is read-only everywhere. Member can additionally triage issues (resolve, ignore, reopen). Admin can create and configure projects, manage notification rules, and invite or manage other members. Owner adds the organization's most sensitive actions: SSO configuration, and permanently deleting the organization or any project in it -- every organization always has at least one, and removing the last one is refused outright.
Four roles, each a real ceiling on what's possible, not just what's shown.
Deactivation and removal are two different things
Removing a member's access doesn't have to mean deleting their history. Deactivating a membership keeps the row itself (its role, invitation history, any SCIM-provisioned identity) and is fully reversible; destroying it removes the membership outright. Both are guarded the same way against leaving an organization without its last owner, since deactivating that last owner would leave it just as ownerless as deleting them would.
Seats, not access, are what a plan actually limits
Role and permissions are the same on every plan -- what a plan caps is how many members an organization can have at all: one (solo) on Free, ten on Pro, unlimited on Business.