Skip to content

[BE] - Export an accurate record of users and their permissions

Release notes

Problem to solve

Customers do not have a way to pull an accurate list of permissions based on role or permission source. The current exports do not factor in membership type, inheritance location, or path.

Proposal

New User Role Export Function

Create a new export endpoint that will list all users along with their associated permissions at each group and project level. This export will be sent as CSV via email notification.

Name Username Email Path Role Membership type Membership source Access granted Access expires Last activity
{First Name} {Last Name} {username} {email} {group}/{project} {default role} or {custom role} Direct, Inherited, Shared {group}/{group} {date} {date} {date}

Fields

  • Username/Name: There will be multiple rows for the user, because indirect/direct can result in multiple entries of access.
  • Path: The current membership path such as group, subgroup, or project level.
  • Role: This is the calculated and final role of the user between the three membership types.
  • Membership type
    • Direct: Directly added member
    • Indirect: Inherited from parent group
    • Shared: Membership shared from a group
  • Membership source: This value is the group or project path where the permission originates from.
    • If direct: The current path of group or project where the permission is defined. {group} or {group/project}
    • If indirect. The group path of where the last direct permission is defined. {group/subgroup/..}
    • If shared: The group path of invited group

Example

Name Username Email Path Role Membership type Membership source Access granted Access expires Last activity
Joe Randazzo jrandazzo j@gitlab.com group-a Owner Direct group-a 2024-02-01 2024-05-10
Joe Randazzo jrandazzo j@gitlab.com group-a/group-b Owner Indirect group-a 2024-02-01 2024-05-10
Joe Randazzo jrandazzo j@gitlab.com group-a/group-b/project-1 Owner Indirect group-a 2024-02-01 2024-05-10
Sarah Smith ssmith s@gitlab.com group-a/group-b/project-1 Owner Direct project-1 2024-02-01 2024-05-10
Jess Paige jpaige j@gitlab.com group-a/group-b Developer Shared group-users/devs 2024-02-01 2024-05-10

UI (See figma file for messaging)

  • Add export button to Roles and Permissions Page
  • Add modal what is included in the report
  • Alerts (Success/Failure) - See designs for messaging

Permissions

  • Self-managed admin or SaaS Group Owner

Resources

Figma

Proposed Export (Internal)

Edited by Jarka Košanová