Trust and vendor file Access control
Access control
Last reviewed: [DATE]
This document sets out who can see and do what in Innorve Academy, how access is granted and removed, and how Innorve personnel access production systems.
How access is enforced
Access is enforced twice:
- In the database. PostgreSQL row-level security checks every query against the user's institution memberships and roles.
- In server code. Authorization is checked again on every request and every export.
The application holds no database service key. It always acts as the signed-in user. An automated test suite checks tenant isolation and role boundaries.
Role matrix
A person can hold more than one role in an institution. Their permissions are the sum of their roles. Reviewers and facilitators can be scoped to specific cohorts.
| Capability | Learner | Reviewer | Facilitator | Sponsor | Institution admin | Innorve platform staff |
|---|---|---|---|---|---|---|
| See own work, including own drafts | Yes | Own only | Own only | Own only | Own only | Own only |
| See own feedback after release | Yes | n/a | n/a | n/a | n/a | n/a |
| See other learners' drafts | No | No | No | No | No | No (denied by database rules) |
| See other learners' submitted work | No | Yes, in assigned institution or cohorts | No | No | No | [CONFIRM] |
| See answer keys | No | Yes | [CONFIRM] | No | No | Yes |
| See unseen assessments before release | No | Yes | [CONFIRM] | No | No | Yes |
| Score submissions and write feedback | No | Yes (not own work) | No | No | No | Only with a reviewer role [CONFIRM] |
| See unreleased feedback | No | Yes | No | No | No | [CONFIRM] |
| See enrollment and activity status | Own | [CONFIRM] | Yes | Aggregates only | [CONFIRM] | Yes |
| See released results | Own | Yes | Yes | Aggregates only | No | Yes |
| See detailed rubric scores of others | No | Yes | Released results | No | No | [CONFIRM] |
| See cohort aggregates with denominators | [CONFIRM] | [CONFIRM] | Yes | Yes | [CONFIRM] | Yes |
| See evidence-binder status (E1 to E8) | [CONFIRM] | [CONFIRM] | Yes | Yes | [CONFIRM] | Yes |
| See pilot workflow results | Enrolled cohort | [CONFIRM] | Yes | Yes | [CONFIRM] | Yes |
| Export cohort CSVs (logged) | No | [CONFIRM] | [CONFIRM] | [CONFIRM] | [CONFIRM] | [CONFIRM] |
| Read the institution's audit events | No | No | Yes [CONFIRM] | No | Yes [CONFIRM] | Yes |
| Invite users and change roles (audited) | No | No | [CONFIRM] | No | Yes | Yes |
| Create and administer institutions and cohorts | No | No | Cohort settings [CONFIRM] | No | No | Yes |
| Delete an institution or user account | No | No | No | No | No | Yes (audited, typed confirmation) |
"[CONFIRM]" cells reflect behavior that Innorve must confirm against the current build before the packet is shared.
Innorve facilitators and reviewers who work with a credit union are given the facilitator or reviewer role in that credit union's institution. They then have that role's access, with the same limits as credit-union staff in the same role. The "Innorve platform staff" column describes the separate administrative designation.
Role summaries
- Learners see their own work and released feedback.
- Reviewers see submitted (not draft) work in their assigned institution or cohorts, and the answer keys. They cannot assess their own work.
- Facilitators see enrollment and activity status and released results, but not learner drafts.
- Sponsors see cohort aggregates with denominators, the binder status and the workflow results, but not individual drafts or detailed scores.
- Institution admins manage membership only.
- Innorve platform staff administer institutions and cohorts. Database rules deny them learner drafts.
How access is granted
- Invitation. An institution admin, or Innorve platform staff at the credit union's request, invites a person by work email address and assigns roles and, for learners, a cohort.
- Acceptance on sign-in. The invitation is accepted when the person signs in with that exact email address, using a one-time link or 6-digit code sent to it. The person then receives the membership and, for learners, the enrollment.
- Expiry. Unaccepted invitations expire after 30 days and can be revoked before then.
- Role changes. Institution admins can change roles within their institution. Role changes are recorded in the audit log.
Because access follows the email address, the credit union's control of its own mailboxes is part of the access control. When a person leaves, the credit union should both remove them from the platform and disable their mailbox.
How access is removed
- An institution admin removes a person's membership or roles. The change is audited.
- Innorve platform staff can deactivate a membership on request.
- At the end of an engagement, institution data is deleted under RET-v1. See Retention and deletion.
- Access reviews: the credit union is responsible for reviewing its user list. Innorve can provide the current membership list on request. [CONFIRM]
Innorve personnel access
Through the application
Innorve platform staff are designated in the database. They administer institutions and cohorts through the application, subject to row-level security. Database rules deny them learner drafts.
The list of platform staff is limited to [CONFIRM names or number] and reviewed [CONFIRM frequency].
Through provider consoles (production access)
Some tasks need direct access to production systems: the Vercel and Supabase consoles, and the database itself. Console access with database-owner privileges is not subject to row-level security. It can reach all stored data. For that reason:
- it is limited to named personnel: [CONFIRM names];
- it requires multi-factor authentication on every provider account: [CONFIRM];
- each use requires a recorded justification (ticket or log entry stating who, when, why and what was accessed): [CONFIRM process];
- provider-side access logs are retained: [CONFIRM what each provider logs and for how long];
- personnel with this access are bound by confidentiality agreements [CONFIRM] and have had background checks [CONFIRM].
Where personnel are located
[CONFIRM: country or countries where personnel with production access are located.]
Authentication summary
- Passwordless sign-in by email: a one-time link or a 6-digit code.
- No passwords are stored.
- Session cookies are HttpOnly, Secure and SameSite=Lax.
- Single sign-on is planned but not yet available.
- There is no separate second factor in the platform. The strength of sign-in depends on the security of the user's work mailbox, which the credit union controls.