Team Roles
PAPI uses four roles to control access. Every team member has exactly one role, and permissions are enforced at the database level.
Permission Matrix
| Action | Product Owner | Release Manager | Developer | Viewer |
|---|---|---|---|---|
| View board and reports | ✓ | ✓ | ✓ | ✓ |
| View strategy reviews | ✓ | ✓ | ✓ | ✓ |
| Create and edit tasks | ✓ | ✓ | ✓ | — |
| Execute builds | ✓ | ✓ | ✓ | — |
| Submit reviews | ✓ | ✓ | ✓ | — |
| Run planning cycles | ✓ | ✓ | ✓ | — |
| Carry approved releases through the release path | ✓ | ✓ | ✓ | — |
| Invite team members | ✓ | — | — | — |
| Change team roles | ✓ | — | — | — |
| Remove a member | ✓ | — | — | — |
| Transfer the project | ✓ | — | — | — |
| Reset cycles | ✓ | — | — | — |
| Delete projects | ✓ | — | — | — |
Role Details
Product Owner
There is exactly one Product Owner per project — the person who created it, or whoever it has since been transferred to. They have full control: manage team membership, invite people, change roles, hand the project to somebody else, reset cycles, and delete it. They can also do everything a Developer or Viewer can.
Developer
A full participant in the build process. Developers can create tasks, run planning cycles, execute builds, and submit reviews. They can see everything the Product Owner can see, but they cannot manage team membership or change project-level settings.
Release Manager
A build participant with explicit responsibility for approved releases. Release Managers can create tasks, plan cycles, execute builds, submit reviews, and carry a release through PAPI's supported release path. The release path still respects project policy and GitHub merge permissions; this role does not manage members, change project settings, or become the owner.
Viewer
Read-only access. Viewers can see the board, reports, cycle history, and strategy reviews, but they cannot create tasks, build, or modify anything. This role is ideal for stakeholders who need visibility without write access.
Invitations
There are two ways in. An email invite is addressed to one person: they get a mail with a secure link, and only that address can accept it. A shareable link is addressed to nobody — use it when you do not have someone's email and would rather paste a link where your team actually talks. Either way the link expires after 7 days, works exactly once, and shows a preview of the project and the role before anyone commits.
If the invitee doesn't have a PAPI account yet, they'll be prompted to create one during the acceptance flow. Once accepted, they appear in the project's team list with their assigned role.