Alliance Research Indicators is a role-aware application: what you can see and do is determined by the role or roles assigned to your account. The backend enforces all authorization decisions; the client mirrors those checks in the UI to hide actions you would not be permitted to perform, but the server always has final say. Role assignment happens at user provisioning by a system administrator — it is not self-service. The application recognizes three numeric role identifiers that drive access decisions in theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/AllianceBioversityCIAT/alliance-research-indicators-client/llms.txt
Use this file to discover all available pages before exploring further.
RolesService and the route guards:
role_id | Role name | Guard |
|---|---|---|
1 | Admin (system-level) | rolesGuard — authenticated access to all routes; passes all capability checks |
9 | Center Admin | centerAdminGuard — requires role_id === 9 with matching focus_id === 1 and sec_role_id === 9, or role_id === 1 |
10 | MEL Regional Expert | rolesGuard — authenticated; isMelRegionalExpert computed signal is true |
canEditAnyResult computed signal is true for any user with role_id === 1, 9, or 10. Researchers and cross-platform consumers hold none of these roles and receive the base access set.
The four primary personas
Researcher / Result Reporter
The researcher is the primary creator of results. After authentication, a researcher can access all result-creation and editing flows for results they own. What a researcher can do:- Create a new result by selecting an indicator and filling the eleven metadata tabs
- Save partial progress on any tab and return later without data loss
- Attach evidence files (PDFs, images, datasets) via the file-manager service
- Search results by text, indicator, year, country, partner, or project
- Submit a completed result for MEL review
- See the current lifecycle status (draft / submitted / under review / accepted / returned) of their results
- Receive and address structured feedback when a result is returned from MEL review
- Edit results owned by other users (unless also holding a higher role)
- Access the Center Admin bulk-upload or SDG management tools
- Directly accept or publish results — that action belongs to MEL
Center Admin
The Center Admin role (role_id === 9) is for institutional administrators who need operational oversight and bulk capabilities for their center. Access to center-admin routes is gated by centerAdminGuard, which verifies that role_id === 9 with focus_id === 1 and sec_role_id === 9, or that the user holds the system Admin role (role_id === 1).
What a Center Admin can do:
- Everything a Researcher can do
- Bulk-upload capacity sharing events for their center from a structured spreadsheet template, with per-row validation feedback
- Manage SDG alignment settings at the center level so results roll up correctly in aggregate reporting
- View all in-flight results owned by their center and identify bottlenecks in the lifecycle
- Access bulk-upload or SDG management for centers other than their own (scope is enforced via
focus_id) - Accept or return results during MEL review — that action belongs to MEL Regional Experts
Center Admin access requires both the correct
role_id (9) and the correct focus_id / sec_role_id combination on the role record. Having role_id === 9 alone is not sufficient. System Admins (role_id === 1) bypass this check and can access center-admin routes for any center.MEL Regional Expert
The MEL Regional Expert role (role_id === 10) is for Monitoring, Evaluation & Learning specialists who are responsible for validating result quality and alignment within their regional scope. The canEditAnyResult computed signal in RolesService is true for users with this role.
What a MEL Regional Expert can do:
- Everything a Researcher can do
- Edit any result in their scope, regardless of who created it
- Leave structured review feedback on submitted results
- Accept a submitted result (moving it to published state) or return it to the reporter with feedback
- View aggregate dashboards filtered by region, indicator, and year
- Export structured metadata for selected results to Excel for offline analysis
- Access the Center Admin bulk-upload or SDG management tools (those require
role_id === 9orrole_id === 1)
Cross-Platform Consumer
Cross-platform consumers are authenticated users — funder analysts, leadership, partner researchers — who need to find and read results from across the federation. They hold neither a Center Admin nor a MEL Regional Expert role. What a cross-platform consumer can do:- Search results across the Alliance platform and federated results from STAR, TIP, PRMS, and AICCRA in a unified view
- Follow deep links to individual results and view full metadata, evidence, partners, and cross-platform counterparts
- Download OICR templates and reports
- Access aggregate dashboards and charts
- Create, edit, or submit results
- Access center-admin tools
- Accept or return results during review
Permissions matrix
The table below summarizes the key capabilities by role. “Yes (own)” means the action is permitted only on results the user created.| Capability | Researcher | Center Admin | MEL Regional Expert | Cross-Platform Consumer |
|---|---|---|---|---|
| Create a result | Yes | Yes | Yes | No |
| Edit own result (draft) | Yes | Yes | Yes | No |
| Edit any result | No | No | Yes | No |
| Submit result for review | Yes | Yes | Yes | No |
| Accept / return result (MEL review) | No | No | Yes | No |
| Bulk-upload capacity sharing | No | Yes | No | No |
| Manage center SDG alignment | No | Yes | No | No |
| View center-scoped result overview | No | Yes | No | No |
| Search and view all results | Yes | Yes | Yes | Yes |
| Export results to Excel | No | No | Yes | No |
| Download OICR templates | Yes | Yes | Yes | Yes |
| Access aggregate dashboards | Yes | Yes | Yes | Yes |
Role enforcement in the client
Two Angular route guards implement role-based routing:-
rolesGuard— the primary authenticated/unauthenticated gate. It checkscache.isLoggedIn()and theisLoggedInflag on route data. Unauthenticated users attempting to reach a protected route are redirected to/loginwith areturnUrlquery parameter so they land on their intended destination after authentication. -
centerAdminGuard— a composite guard that callsroles.canAccessCenterAdmin(). This computed signal checks the full(role_id, focus_id, sec_role_id)tuple. If access is denied, the user is redirected to/home— not to login.
RolesService exposes computed signals (isAdmin, isMelRegionalExpert, canEditAnyResult, canAccessCenterAdmin, canEditOicr) that components use to show or hide individual UI elements such as edit buttons, submit actions, and admin-only menu items.
Authentication
How AWS Cognito and JWT-based authentication work, including token refresh and the login flow.
Center Admin guide
Walkthrough of bulk capacity sharing upload and SDG management for Center Admins.