Documentation Index

Fetch the complete documentation index at: https://docs.unqork.io/llms.txt

Use this file to discover all available pages before exploring further.

Planning RBAC Infrastructure

Prev Next

RBAC (role-based access control) limits what end-users can see or do based on their assigned role. When planning an RBAC infrastructure, thorough testing is essential to confirm the configuration works correctly before deployment. Begin by listing all end-users, then map out which submissions each account requires.

Creating Test Accounts

As a best practice, use two accounts for every role and group. That way, each role and group can be tested twice to confirm the RBAC is correct. For this example, two agencies exist: Agency 1 and Agency 2. Each agency requires City Admin, Agency Admin, Program Manager, and Client roles. For testing purposes, create two accounts of each role for each agency. For example, Agency Admin 1A and Agency Admin 1B for Agency 1. Then, Agency Admin 2A and Agency Admin 2B for Agency 2.

To test the RBAC infrastructure, create unique logins for each account. As a best practice, use variations of the same email address for ease of testing. Begin with the email address, then add a + followed by a unique string between the username and the @ sign. This string should clearly represent the account. For example, the email address for the City Admin A account can be your_email+caa@unqork.com.

The following table shows an example email address for each account:

Name Email
City Admin A your_email+caa@unqork.com
City Admin B your_email+cab@unqork.com
Agency Admin 1A your_email+aa1a@unqork.com
Agency Admin 1B your_email+aa1b@unqork.com
Agency Admin 2A your_email+aa2a@unqork.com
Agency Admin 2B your_email+aa2b@unqork.com
Program Manager 1A your_email+pm1a@unqork.com
Program Manager 1B your_email+pm1b@unqork.com
Program Manager 2A your_email+pm2a@unqork.com
Program Manager 2B your_email+pm2b@unqork.com
Client 1A your_email+c1a@unqork.com
Client 1B your_email+c1b@unqork.com
Client 2A your_email+c2a@unqork.com
Client 2B your_email+c2b@unqork.com

Mapping Submission Access

Next, determine which submissions each role should be able to access. Map this out before configuring RBAC; use a spreadsheet, planning document, or any format that works for the team.

The example below shows the completed access map for this infrastructure. Use ✓ to indicate access and leave cells blank for no access. Adapt this structure to match your own role hierarchy and submission types.

Role City Admin submissions Agency 1 submissions Agency 2 submissions Program 1 submissions Program 2 submissions
City Admin
Agency Admin 1
Agency Admin 2
Program Manager 1
Program Manager 2
Client 1
Client 2

Creating Groups and Assigning Roles

Lastly, create groups and decide which roles should belong to each one. Include only roles that need access to specific submissions in each group. For this example, the groups are dept-labor-admin, agency-1, agency-2, program-1, and program-2.

The following table shows the role, group, and email assignments for this example:

Account Name Email Address Role Group(s) Description
City Admin A your_email+caa@unqork.com CityAdmin dept-labor-admin, agency-1, agency-2, program-1, program-2 Only City Admins are part of the dept-labor-admin group. As admins, they also need access to submission data in all other groups.
City Admin B your_email+cab@unqork.com CityAdmin dept-labor-admin, agency-1, agency-2, program-1, program-2 Only City Admins are part of the dept-labor-admin group. As admins, they also need access to submission data in all other groups.
Agency Admin 1A your_email+aa1a@unqork.com AgencyAdmin agency-1, program-1 An Agency Admin 1 must have access to agency-1 and program-1 submissions, but not those in the agency-2 or program-2 groups.
Agency Admin 1B your_email+aa1b@unqork.com AgencyAdmin agency-1, program-1 An Agency Admin 1 must have access to agency-1 and program-1 submissions, but not those in the agency-2 or program-2 groups.
Agency Admin 2A your_email+aa2a@unqork.com AgencyAdmin agency-2, program-2 An Agency Admin 2 must have access to agency-2 and program-2 submissions, but not those in the agency-1 or program-1 groups.
Agency Admin 2B your_email+aa2b@unqork.com AgencyAdmin agency-2, program-2 An Agency Admin 2 must have access to agency-2 and program-2 submissions, but not those in the agency-1 or program-1 groups.
Program Manager 1A your_email+pm1a@unqork.com ProgramManager program-1 A Program Manager 1 must have access to program-1 submissions, but not those in the program-2 group.
Program Manager 1B your_email+pm1b@unqork.com ProgramManager program-1 A Program Manager 1 must have access to program-1 submissions, but not those in the program-2 group.
Program Manager 2A your_email+pm2a@unqork.com ProgramManager program-2 A Program Manager 2 must have access to program-2 submissions, but not those in the program-1 group.
Program Manager 2B your_email+pm2b@unqork.com ProgramManager program-2 A Program Manager 2 must have access to program-2 submissions, but not those in the program-1 group.
Client 1A your_email+c1a@unqork.com Client program-1 A Client 1 must have access to program-1 submissions, but not those in the program-2 group.
Client 1B your_email+c1b@unqork.com Client program-1 A Client 1 must have access to program-1 submissions, but not those in the program-2 group.
Client 2A your_email+c2a@unqork.com Client program-2 A Client 2 must have access to program-2 submissions, but not those in the program-1 group.
Client 2B your_email+c2b@unqork.com Client program-2 A Client 2 must have access to program-2 submissions, but not those in the program-1 group.

Add a password column to manage temporary passwords for each account.

Test RBAC before building the full application. Using a simple test application, like the form and dashboard from this example, is an effective way to verify the configuration. Most of the work involves defining clear expectations and generating sample data for testing. This lets Creators confirm that roles and groups are configured correctly before building out the rest of the application.


Changelog

Date Change
2026-07-16 Initial publication.