[go: up one dir, main page]

Skip to content

PARENT ISSUE: Create Dynamic "Seats Currently in Use Members List" for GitLab.com

Problem to solve

Users, particularly customers, often ask how they can see/count the number of unique members and see a list of them.

Target audience

Finance/Billing, Group owner

Further details

Particularly in the context of GitLab.com, two main reasons they ask for this:

  • align with subscription licensing number
  • access management

Currently, support will pull a report for customers upon request using a rails script. This is also not currently possible with a single API call.


Proposal

On the billing page, beneath the current subscription table, create a collapsible list of members who tie to the Seats currently in use value.

In the table include:

  1. Member Name - being address in MVC
  2. Username - being address in MVC
  3. Email address - being address in MVC - only if the email address is publicly available, otherwise display private
  4. IP address - not available per legal
  5. Role
  6. Highest Membership Location: The Group/Subgroup/Project where they were added.
    • Ideally, this value is linkable and takes the user to the members page for that Group/Subgroup/Project.

Rules

  1. Where a user appears as a member in multiple Groups/Subgroups/Projects:
    1. Link/display the location where the member has the highest role (where Guest = lowest, Owner = highest)
    2. If the member's role is the same across multiple Groups/Subgroups/Projects, link/display the highest location in the hierarchy (where Project = lowest, Group = highest)
  2. The data should be updated dynamically as changes to the members in the instance are made. If this is too draining, let's update once a day and include a hover text which states that the table is updated at xx:xx time daily (including the timezone).
    1. Can we give the user the the ability to manually refresh list with a rate limit?

Example:

Group X: Members = Red (role: developer), Yellow (role: developer)

  1. Subgroup 1: Members = Red (role: developer), Yellow (role: developer), Green (owner)
  2. Subgroup 2: Members = Red (role: owner), Yellow (role: developer)
    • Project 000: Members = Red (role: maintainer), Yellow (role: developer), Purple (maintainer)
  3. Project YYY: Members = Red (role: developer), Yellow (role: developer), Blue (reporter)

Expected Seats Currently in Use Members List

Member Name Role Highest Membership location
Red Owner Subgroup 2
Yellow Developer Group X
Green Owner Subgroup 1
Purple Maintainer Project 000
Blue Reporter Project YYY

Permissions and Security

This is consistent with what group Owners can already do, but it requires viewing every project members list, or similar calls to the API.

Documentation

Would need to update:

What does success look like, and how can we measure that?

  • Group owners can match their subscription user count to the group members list via UI or API.
  • Group owners can view which members are part of specific subgroups and projects.

Workarounds

Links / references

Edited by Amanda Rueda