This repository was archived by the owner on Apr 7, 2025. It is now read-only.
[RFD - 0002] - Custom User Roles #68
AleksandarCole
started this conversation in
RFD
Replies: 2 comments 2 replies
-
It would be good to have an overview on the role assignments for particular users. For starters, I think including a number of users/groups directly assigned to a role would be enough. Since there are a few ways to acquire a role (e.g. through Github or through role inheritance), there could be many ways to represent that in a clear way, especially for organizations with broader set of roles. |
Beta Was this translation helpful? Give feedback.
2 replies
-
We're going to track progress of the documentation for this feature in #87 since we are already planning a "Permissions page" |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
[RFD - 0002] - Custom User Roles
@AleksandarCole
@VeljkoMaksimovic
@mattrym
In progress
What
Semaphore currently employs role-based access control, where users can have different predefined roles at both the organization level and the project level.
Custom User Roles is a proposed feature that will allow organizations to create their own user roles, assign specific permissions to those roles, and apply them at both the organization and project levels.
Why
While the default roles available on Semaphore suit most users, there have been several use cases and organization types that require custom adjustments to permissions. Organizations with a large number of members, as well as those adhering to security standards like SOC 2, often need more granular control over permissions.
Implementing this feature would provide maximum flexibility, allowing users to fully customize access rights within their Semaphore organization.
Use-cases
Case 1 - Organization secrets access
The default
Member
role in an organization includes access to the organization secrets page. Several organizations prefer restricting this access to Admin or higher roles, adhering to the principle of least privilege. This restriction helps these organizations comply with their security policies more easily.However, other organizations rely on the member role having this access, as it aligns with their workflow. Changing this default behavior could cause disruptions for them.
Case 2 - No ssh access for Contributor role in the project
The default Contributor role in an organization allows users to SSH into jobs. Some organizations prefer to restrict this capability to those with the Admin role on a project, enhancing security and control over sensitive operations.
Solutions
⚠ NOTE
The implementation of this project has already been kicked off.
Semaphore team working on a project can find links to the: Architecture details, wireframe and tasks breakdown [HERE].(https://renderedtext.operately.com/projects/b1ae334e-848c-4700-9b14-c0302df184cf)
Based on the results of the security review, these details will not be public.
However, we're describing the solution and functionality in more detail below.
Role Management Page - Summary
With the rollout of Project roles and Groups the backend system has been switched to full RBAC.
This allows us to create a new page in Organization Settings that would allow users to manage roles within Semaphore.
Within this page, for both
organization
andproject
roles users should be able to:not available in v1
)not available in v1
)UI and Navigation
Roles main page
On this page user can see all the roles that exist.
Role single page
Roles single page
This page is used to create a new role or edit/view existing one.
User can select:
roles_single.mov
⚠ Default project role
When creating the organization role, user can decide to automatically give access to all projects to the users with such role assigned. For example, by default all users that have
owner
organization role are automatically assignedadmin
role on every project within organization.Organization Role Permissions
List of the permissions that can be assigned to the organization role:
Project Role Permissions
List of the permissions that can be assigned to the project role:
Beta Was this translation helpful? Give feedback.
All reactions